DRAM과 SRAM의 차이, ROM의 종류에 대해 간단히 알아보자.
RAM: Random-Access Memory
말 그대로 임의 접근 메모리이다. 접근할 데이터의 주소(위치)에 따라 접근시간이 다른 기억장치(Disk, Tape 등)와는 다르게, 임의의 데이터에 동일한 시간 내로 접근할 수 있다. 전원 공급이 중단되면 저장된 데이터가 손실(휘발)된다는 특징이 있으며, 데이터를 저장하는 소자에 따라 DRAM과 SRAM으로 나뉜다.
DRAM: Dynamic Random-Access Memory
Capacitor에 전하를 충전하는 방식으로 데이터를 저장한다. Capacitor는 시간이 지남에 따라 전자를 누전하므로 주기적인 재충전이 필요하며, 이 때문에 Dynamic Memory라고 한다. DRAM은 1비트 당 1개의 transistor와 1개의 capacitor가 필요하기 때문에 집적 밀도가 높고 비트 당 가격이 저렴하지만, 속도는 비교적 느린 편이다. 따라서 DRAM은 대용량의 주기억장치로 사용된다.
SRAM: Static Random-Access Memory
Flip-Flop 소자에 전하를 충전하는 방식으로 데이터를 저장한다. 이 방식은 전원이 공급되는 한 전자를 누전하지 않으므로 재충전없이 동작하며, 이 때문에 Static Memory라고 한다. SRAM은 1비트 당 4개 또는 6개의 transistor가 필요하기 때문에 집적 밀도가 낮고 가격이 비싸지만, 속도는 비교적 빠른 편이다. 따라서 용량보다 속도가 중요한 곳(특히 CPU의 캐시)에 사용된다.
ROM: Read-Only Memory
전원 공급이 중단되면 내용이 휘발되는 RAM과는 다르게, 데이터가 반영구적으로 유지된다. 그 이유는 애초에 회로가 프로그램되기 때문이다. 즉, 내용을 수정하기 위해서는 설계를 다시 해야 한다. 하지만 이것은 매우 큰 불편일 수 있다. 따라서 ROM은 다음과 같은 종류로 발전되어왔다.
PROM: Programmable ROM
PROM은 생산 후 사용자가 1번만 쓰기가 가능하다. 사실 데이터가 이미 기록된 상태에서 다시 기록할 수 있다는 뜻은 아니다. PROM은 각 셀에 퓨즈가 있고, 퓨즈가 연결되어 있으면 1, 끊어져 있으면 0으로 인식하는 구조를 가진다. 그래서 PROM을 생산할 때 모든 퓨즈가 연결된 상태, 즉 모든 비트가 1인 상태로 생산한다. 이것을 사용자가 ROM Writer로 과전류를 흘려 퓨즈를 끊음으로써 0을 기록하는 것이다.
EPROM: Erasable PROM
퓨즈를 통해 0과 1을 표현하는 PROM과는 다르게, 각 셀에 담긴 전자의 수에 따라 0과 1을 표현한다. 각 셀은 절연되어있어(이를 floating gate라고 한다) 전원 공급이 중단되어도 전자는 보존된다. 셀에 고전압을 가하면 전자가 주입(hot carrier injection)되며, 강한 자외선을 쬐면 전자를 지울 수 있다. 이를 통해 여러 번 쓰고 지울 수 있지만, 고전압이 내구성을 줄이기 때문에 쓰기 가능 횟수는 낮다.
EEPROM: Electrically Erasable PROM
전기적으로 데이터를 쓰고(field electron emission) 지울 수 있어 EPROM보다 훨씬 편리하다. 또한 쓰기 가능 횟수도 굉장히 높고 수명도 길다. 하지만 한 번에 1 바이트만 지울 수 있어 속도가 느리고 전력소모량이 높으며 저장 밀도가 낮기 때문에 플래시 메모리를 대체할 수는 없다.
Flash Memory
구성에 따라 NAND형과 NOR형으로 구분된다.
- NOR형: 메모리 셀 배열이 NMOS 트랜지스터의 병렬 접속으로 구성된다. 따라서 바이트 단위로 읽기/쓰기가 가능하다. 셀 당 3개의 접속 선 수를 가진다.
- NAND형: 메모리 셀 배열이 NMOS 트랜지스터의 직렬 접속으로 구성된다. 따라서 페이지 단위로 읽기/쓰기가 가능하며, 블록단위로 삭제가 가능하다. 셀 당 2개의 접속 선 수를 가진다.
위 특징을 이유로, NOR형 메모리는 작은 데이터의 잦은 접근에 적합하며 NAND형 메모리는 큰 데이터의 접근에 적합하다. 따라서 SSD등의 고용량/고속 저장장치는 NAND Flash Memory를 기반으로 한다.