앞의 글을 읽으시면 이해에 도움이 됩니다.
2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Introduction to the Memory Hierarchy
1. four primary technologies
memory hierarchy에서는 메모리가 4개로 나눌 수 있습니다.
- SRAM (static random access memory) : processor와 가까움. cache로 이용
- DRAM (dynamic random access memory) : main memory를 구성한다.
- Flash Memory : SSD
- Magnetic Disk : HDD
1GHz = 1 / 1ns이므로, SRAM은 0.4Ghz~2Ghz가 됩니다.
아무튼 SRAM은 DRAM에 비해서 약 100배 가량 빠르다고 볼 수 있습니다.
다만 빠르면 빨라질 수록 가격도 올라가는 모습도 보입니다.
2. SRAM Technology
SRAM은 read/write를 위한 single access port를 가지는 메모리 배열입니다.
6~8개의 트렌지스터로 이루어져 있으며, 전원이 공급되는 한 값이 지워지지 않습니다.
만약 값을 유지한다면 최소한의 전력으로 값을 유지하는 것이 가능합니다.
플리플롭 방식이라 전원만 공급하면 값이 유지되므로, 메모리만 기억하면 됩니다.
따라서 속도가 빠르다는 것이 장점입니다.
하지만 회로가 복잡하여 집적도가 낮고, 가격이 많이 비쌉니다.
따라서 이를 Cache Memory로 사용합니다.
3. DRAM Technology
DRAM은 SRAM과 다르게 축전지 방식입니다.
저장된 값에 접근하기 위해서는 하나의 트랜지스터만 필요합니다.
즉 하나의 트렌지스터가 하나의 비트를 저장하므로, 집적도가 높고, 값이 쌉니다.
다만 축전지의 한계로, 값이 누수되고, 반드시 refresh가 필요합니다.
즉 시간의 흐름에 따라 값이 자연적으로 바뀌기 때문에 이름이 Dynamic입니다.
그렇기 때문에 주기적으로 값을 refresh를 해줘야 하며, DRAM에는 이를 위한 회로가 있습니다.
따라서 DRAM은 축전지의 값을 계속해서 신경 써야 하므로, 속도가 느릴 수 밖에 없습니다.
하지만 DRAM은 SRAM에 비해 용량이 크기 때문에 이를 Main memory로 사용합니다.
4. DRAM Organization
DRAM은 row organization으로 작동합니다.
이는 refresh를 도울 뿐만 아니라, 성능 향상에도 도움을 줍니다.
반복되는 접근을 위해 DRAM에는 row buffer가 있습니다.
DRAM은 주소를 받으면 해당 주소에 해당하는 row를 반환합니다.
이때 바로 반환하는 것은 느리기 때문에, 주소의 인근 범위에 있는 row를 함께 row buffer에 넣습니다.
따라서 address를 바꾼다 하더라도, 근처에 있다면 buffer에서 바로 줄 수 있으므로 성능 향상에 도움이 됩니다.
음...그냥 row 방향으로 access 된다고만 기억해도 될 것 같아요..
아무튼 이런 DRAM도 점점 발전하여 여러 Advanced 버전이 있습니다.
우선 DRAM에 Clock을 추가한 Synchronouse DRAM인 SDRAM이 있습니다.
이를 추가함으로써 memory와 processor 사이의 synchronize 하는 시간을 없앴습니다.
이런 SDRAM에는 burst 모드가 있습니다.
어떤 주소를 주고 burst 모드를 한다면, 새로운 주소를 주지 않아도 다음 주소에 스스로 access하며 값을 반환합니다.
또한 Double data rate (DDR) SDRAM은 clock의 rising, falling edge에서 값을 교환 및 저장합니다.
원래 SDRAM은 오로지 rising edge에서만 값을 교환 및 저장을 할 수 있었습니다.
DRAM banking은 여러 개의 DRAM에 동시에 접근할 수 있게 합니다.
DDIMS는 일반적으로 4~16개의 DRAM을 소유하고 있습니다.
이 파트는 저도 자세히 잘 모르는 부분이라 간략하게 용어만 설명드렸습니다....
5. Flash Memory & Disc Memory
Flash Memory는 SSD라 봐도 무방할 것 같습니다.
Flash Memory는 electrically erasable programmable read-only memory (EEPROM)의 한 종류입니다.
만약 특정 bit를 읽고, 쓰고 한다면 닳아 없어지는 단점이 있습니다.
따라서 대부분의 Flash Memory는 특정 bit가 자주 사용되는 것을 방지하기 위해 remapping 기술을 가지고 있습니다.
이런 기술을 wear leveling이라고 합니다.
다만 닳아 없어지기 때문에, 내구성은 약 10년 정도입니다.
Disk Memory는 하드 디스크라 봐도 무방합니다.
속도가 많이 느리다는 것이 단점이지만, 용량이 매우 큽니다.
음....
아무튼 메모리의 종류에 대한 글은 여기까지 적도록 하겠습니다.
다음 글에서는 Memory Hierarchy의 upper level인 Cache에 대해 적도록 하겠습니다.
2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] The Basic of Cache
감사합니다.
지적 환영합니다.
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Direct Mapping (0) | 2022.11.23 |
---|---|
[컴퓨터 구조] The Basic of Cache (0) | 2022.11.22 |
[컴퓨터 구조] Introduction to the Memory Hierarchy (0) | 2022.11.22 |
[컴퓨터 구조] RISC-V Simulator (0) | 2022.11.22 |
[컴퓨터 구조] Control Hazard in Pipelined Datapath (0) | 2022.11.16 |