Random Access Memory (RAM)¶
앞서 살펴본 것처럼 Address를 통해 위치를 지정하여 읽고 쓰는 방식의 memory 를 random access memory (RAM)
라고 부른다.
컴퓨터를 조립할 때 사용하는 RAM이 바로 random acces memory의 약어임.
주로,
Volatile Memory
라는 점을 주의할 것 (전원이 꺼지면 데이터가 사라짐). Core RAM이라는 Non-volatile RAM이 초기에 있었으나 사용해 본적은 없음.
RAM은 크게 다음과 같은 두 종류로 나뉜다.
- Static RAM (SRAM)
- static(정적) : refresh가 필요없음. 전원이 공급되는 기억한 데이터를 유지하기 위한 recharge등이 필요없음.
- Dynamic RAM (DRAM)
- dynamic(동적) : capacitor를 사용하기 때문에 leakeage current로 인해 recharge가 주기적으로 필요함.
컴퓨터 조립 등의 경우에 흔히 애기하는 RAM은 Dynamic RAM의 일종임.
Static RAM (SRAM)¶
SRAM은 flip-flop
, register
처럼 gate (좀더 정확히는 transistor)로 만들어진 Memory 로 구성되기 때문에,
- Transistor를 다량으로 집적(1bit 기억하는
D Flip-Flop
에 보통 6개의NAND
가 들어감)시켜야 - 저장용량이 커지는 구조임.
즉, 대용량 memory로 만들기가 어렵다.
즉, 용량당 들어가는 비용이 매우 큰 편이다. 하지만 속도 측면에서는 매우 높은 성능을 보인다.
- on-chip memory로 쓰임. (CPU의 L1-Cache 등)
- CPU 와 main memory는 수행속도가 차이가 나며, 이를 보완하기 위해 중간에 cache가 들어감.
- cache는 CPU 내에서 CPU 에 해당하는 속도로 동작
- 이와 달리, main memory는 마더보드의 Front Side Bus (FSB) 에 해당하는 속도(보다 느림)로 동작.
- 용량별 단가가 높으나 빠른 속도 와 낮은 소비전력 이 장점.
- 전원이 꺼지면 데이터가 사라지나, 전원이 켜있는 한 refresh(또는 충전)가 필요 없다.
cache
의 경우,
buffer
와 마찬가지로 속도의 차이가 나는 두 소자 사이에 놓여
속도차이에 의한 문제를 완화시켜주는 역할을 한다.
차이점이라면,cache
는 prefetch 방식과 같이 필요할 것으로 예측되는 데이터를 미리 가져다 놓는 알고리즘 등이 적용된 소자에 사용 되는 용어임.buffer
가 보다 넓은 개념으로 사용된다.
Dynamic RAM (DRAM)¶
DRAM은 capacitor
를 이용 하여 필요한 transistor의 수를 대폭 줄인 memory이다.
기생 capacitor(Transistor 제조시 생기는 capacitor)를 활용하는 기술 등의 발전은 집적도가 매우 높은 DRAM 구현(1셀당 1개 tr, 1개 c)을 가능 하게 함.
오늘날 대용량의 memory를 위해 주로 채택되는 방식 이다.
Capacitor를 사용하기 때문에 누설전류로 인한 데이터 소실을 막기 위한 주기적인 충전(recharge)이 필요(전력효율이 낮음) 하고 SRAM에 비해 속도가 느림.
- computer의 main memory로 사용됨.
- 소비전력이 높고 속도도 느리지만,
- 용량별 단가가 SRAM 대비 압도적으로 낮고, 고밀도 집적화 가 가능함.
- 초기에는 비동기식이었으나, Synchronous Dynamic RAM (SDRAM)이 개발된 이후로는 system bus (=Front Side Bus)와 동기화 되어 사용됨.
Synchronous DRAM (SDRAM)¶
SDRAM
은 Synchronous Dynamic RAM 을 가르키며, Single Data Rate SDRAM (SDR SDRAM
, SDR)에서 시작하여 Double Data Rate SDRAM (DDR SDRAM
, DDR)으로 발전했으며, DDR의 경우 DDR5까지 개발된 상태임.
- Single Data Rate (SDR) SDRAM :
- clock cycle 하나당
- 하나의 데이터를 전송
- rising edge만 사용.
- Double Data Rate (DDR) SDRAM :
- clock cycle 하나당
- 2개의 데이터를 전송
- rising and falling edge 모두 사용.