CS/컴퓨터구조

Internal Memory

young_3060 2022. 4. 22. 18:08
728x90

[ 요약 ] 

Semiconductor Main Memory : RAM / ROM / Flash memory

RAM  - Volatile(전원이 공급되지 않으면 data lost)

종류 : DRAM(dynamic)과 SRAM(static)

 

ROM - Nonvolatile

종류 : ROM, PROM, EPROM, EEPROM

 

Flash memory - Nonvolatile

 

Dynamic RAM (DRAM)


DRAM은 capacitors에 저장되는데 capacitor은 charged/discharged의 electronic charge를 이용하므로 leak가 발생된다. 이는 data의 loss로 이어지므로 이를 대처하기 위해 전원에 연결되었을때도 포함해서 refreshing해주는 refresh circuits가 필요하다.

DRAM은 simple한 구조를 가지고 있어서 작고 덜비싸지만 느리고 analog한 면을 가지고 있다. (charge의 정도에 따라 value가 결정되므로) 또한 volatile memory로 전원이 꺼지면 메모리가 지워진다.

leaking -> refreshing

 

DRAM 구조

 

Static RAM (SRAM)

DRAM과 마찬가지로 volatile 특성을 가지고 있으며 flip-flop 방식의 메모리 장치를 가지고 있는 RAM이다. flip-flop 방식을 가지므로 DRAM처럼 leak charge가 없어 refreshing이 필요없다.

하지만 구조가 DRAM보다 복잡하고 집적도가 낮으며 비싸기 때문에 소용량의 메모리나 cache에 주로 사용된다.

 

SRAM 구조

예를 들어 State 1 일때 C1 = high, C2 = low상태가 된다. 그결과 C1으로 인해 T2가 on이 되고 T4는 not으로 인해 off가 된다. 똑같이 C2로 인해 T3는 on이 되고 T1는 off가 된다. State 0일때는 이것의 반대라고 생각하면 된다.

 

< SRAM vs DRAM >

공통 - volatile : data 보존하기위해선 전원이 공급되어야한다

dynamic cell

- 작고 simpler to build

- more dense

- less expensive

- needs refresh

- larger memory units

 

static

- faster & cache

 

ROM (Read Only Memory) : permanent 저장소, Non-volatile

[ 종류 ]

Mask ROM : 공정 도중 written되며 제조과정이 아주 비싸기 때문에 대량생산용이다.

 

PROM (Programmable ROM)

: Read-only ! 한번만 write되고 특별한 장비가 요구된다. 한번만 write되므로 편리하긴하다.

 

EPROM (Erasable Programmable ROM)

: read & write가 되는 ROM! 무슨말이냐 하면 이름 그대로 내용을 지울 수 있는 ROM이다. UV를 이용하여 지울 수 있으며 쓰기전에는 반드시 지우고 써야한다! (뭔가 당연한 말)

 

EEPROM (Electrically Erasable ROM)

: EPROM과 유사하게 read & write가 되는 ROM으로 electrically하게 지워질 수 있으며 읽는것보다 쓰는게 훨씬 오래걸린다..!

 

Flash Memory

: EEPROM의 일종으로(사실 위에 세개 짬뽕), EEPROM처럼 electrically erasing technique를 이용한다. EPROM처럼 erased -> reprogrammed 순으로 이루어져야하며 이건 write랑은 좀 다른 개념이다. chip전체를 지울건지 block단위로 지울건지 선택할 수 있다.(byte단위는 지원하지않는다) EPROM, PROM과 reading이 같지만 EPROM과 programming이 다르다! 왜냐면 오직 한개의 transistor을 사용하므로 EPROM보다 높은 밀도를 가진다.

flash memory는 internal memory와 external memory 두 군데에 모두 쓰인다.

Flash memory는 transistor구조에 floating gate가 추가된 구조로 1일때는 연결되어있지만 0일때는 floating gate가 (-)상태로 연결이 되지 않는다. 즉 switch의 역할을 하는 셈이다.

 

[ NOR NAND Flash ]

NOR Flash : Random, direct access interface로 EPROM을 그대로 대체한다.

Fast random read , Slow erase & write

large density

bad bits allowed!

bit reset은 erase block에서만 가능하고 보통 128kB정도이다.

 

NAND Flash : I/O mapped access로 Disk를 대체하고 no bad bits!

작은 cell size를 가지고 비용이 더 적다.

작은 erase block을 가지고 subdivided된 512byte의 pages로 이루어져있다.

erase & write에 있어서 더 나은 성능을 가지고 있고 solid state file storage를 가진다.

 

 

성능 비교 ->

  NOR NAND
read 200ns 10us
write 210.5us 200.5us
erase 1.2sec 2ms

 

[ Flash Memory 장점 ]

Non-volatile

작고 가벼우며 적은 전력

robust

disk에 비해 빠른 read access time

 

[ 단점 ]

write에 있어서는 많이 느리다

No in-place-update : erase가 먼저 선행되어야 write가 가능하고 erase가 write보다 훨씬 큰 단위로 이루어진다.

HDD보다 수명이 짧다

 

Hamming Error Correcting Code


M-bit data가 있을때 2^k - 1 > m + k 원리를 이용한 K-bit code가 있다.

고로 M+K-bit의 codeword가 저장되는데 k-bit는 1의 even parity를 따른다. 즉 1이 짝수개 있어야 한다는 뜻!

예제와 함께 살펴보자.

data 4-bit = 1110가 있을 때,

왼쪽 그림처럼 원 세개에 4-bit를 배치시켰을때 각 원에 1이 짝수개 있어야 하므로 A에는 1, B,C에는 0을 넣는다.

3-bit의 code = 100이 된다.

 

그럼 이제 이걸로 error correction하는 것을 살펴보자.

 

 

만약 왼쪽 그림처럼 0의 error가 들어왔다.

그럼 A, C에서의 1에 대한 even parity가 깨지게 된다.

 

=> A와 C가 겹쳐져 있으면서 B는 해당되지 않은 곳에 error가 발생함을 알 수 있다.

 

 

 

[ Single Bit Errors ]

위의 예제는 짧은 bit이므로 원리를 더 쉽게 파악 가능한 그래프를 이용하여 알아보았다. 그렇다면 더 긴 bit words는?

이번에는 8-bit word 예제로 알아보겠다. input = 00111001

위의 공식으로 K는 4임을 알수 있고, 2의 지수승이므로 총 12-bit 중 2^0, 2^1, 2^2, 2^3 bit를 check bit로 둔다. 나머지에는 data bit로 채워준다.

그리고 XOR 연산을 이용하여 각 check bit의 자리수에 해당하는 data bit 연산을 진행한다.

 

아래 그림을 참고하면.

연산결과 C1 = 1, C2 = 1, C4 = 1, C8 = 0,

check bit = 1110이 나옴을 알 수 있다.

store word = 001101001111 (check bit = 1110)

왼쪽 : 연산 과정 / 오른쪽 : 연산 결과

여기서 001111101111로 error가 발생했다고 가정하자.

그러면 연산결과 check bit가 1000으로 나오게 된다. 원래의 check bit와 XOR연산을 하면 0110으로 6번째 bit가 error임을 알 수 있다!

6번째는 D3이므로 D3 bit에서 에러가 발생함을 알 수 있다.

 

[ SEC-DED ]

single error만을 correct할 수 있는 hamming code를 SEC(single-error-correction)이라 하고

double error을 감지할 수 있는 것은 SEC-DED (double-error-detector)이라고 한다.

SEC-DED는 1bit을 더 필요로 하는데 이는 그래프 전체에 대한 even parity로 그래프에 1이 3개 있으니 바깥의 bit는 1이 된다.

만약 왼쪽 위 원의 0->1, 가운데 1->0으로 double-error 발생시 1이 총 5개로 even parity가 성립되지 않으므로 error가 발생했음을 알 수 있다.

그렇다. correction은 안되고 감지만 가능하다ㅎㅎ 그래서 이름도 detector

 

 

Synchronous DRAM (SDRAM)

: external clock과 동기화해서 동작하는 SDRAM으로 clock의 rising에 맞춰서 읽는데, 한번 저장할때는 DRAM의 속도로 저장하고 그 후에 읽을때는 rising에 따라 SRAM속도로 읽어온다. 두번째부터 진가를 발휘하는 셈!

 

DDR-RAM (Double Data Rate RAM)

clock이 rising, falling 둘 다 data가 나온다. 즉 SDRAM의 두배 속도로 data를 읽어온다!

 

NVRAM (NonVolatile RAM) : power off해도 값이 남아있는 RAM!

STT_RAM

: Magnetic RAM의 새로운 타입으로써, 읽고쓰는 속도가 빠르다.

PCRAM

: amorphous <-> crystalline 상태변화를 이용해서 0,1을 저장한다.

ReRAM

: 필라멘트를 산화/환원처리해서 산화-저항 높아짐 (0), 환원-저항 낮아짐(1) 으로 해석한다. 용량이 크고 저전력이며 endurance가 아주 좋다. 아직까지는 theory..

 

728x90

'CS > 컴퓨터구조' 카테고리의 다른 글

Control Unit Operation  (0) 2022.06.02
External Memory  (0) 2022.04.21
Chapter 1 ) Basic Concepts and Computer Evolution  (0) 2022.03.23