개인 공부/DRAM

DRAM (Dynamic Random Access Memory)

RyoTTa 2025. 8. 5. 15:28
반응형

https://www.imec-int.com/en/imec-magazine/imec-magazine-june-2020/the-history-and-future-of-dram-architectures-in-different-application-domains-an-analysis

DRAM: Basic

DRAM메모리의 경우 Bit cell은 Capacitor(커패시터)와 Transistor(트랜지스터)로 구성된다. 커패시터는 전하를 저장하는데 사용되고 트랜지스터는 커패시터에 액세스하여 저장된 전하량을 읽거나 새로운 전하를 충전하는데 사용된다.

Wordline(워드라인)은 항승 트랜지스터 게이트에 연결되어 커패시터에 대한 액세스를 제어한다.

Bitline(비트라인)은 트린지스터의 소스에 연결되어 셀에 저장된 전하를 읽거나, 셀에 새 값을 충전할 때 전압을 제공한다.

 

커패시터에서 전류가 누출되어 시간이 지남에 따라 정보를 잃게된다. 이 문제는 주기적으로 DRAM을 Refresh(리프레시) 하여 메모리의 내용을 읽고 다시 쓰는 방식으로 해결한다.

Access bit cell array

많은 셀들은 큰 매트릭스와 같은 구조로 결합이 가능하다. 긴 워드라인과 비트라인이 서로 교차하고 각 교차점에 Bit cell이 존재한다.

워드라인에 전압을 인가하면 워드라인에 연결된 모든 셀이 선택되고, 이는 해당 비트라인에 전하를 인가한다. 이 전하는 비트라인의 전압을 아주 약간 변경하고 이 변경을 Sense Amplifier(센스 앰플리파이어)가 감지한다. 만약 비트라인의 전압이 약간 증가하면 High voltage (Logical 1)으로 증폭하고, 전압이 약간 감소하면 Low voltage (Logical 0)으로 증폭한다.

 

센스 앰플리파이어는 해당 Logical value를 Row buffer(로우 버퍼)라고 하는 latche(래치)구조에 저장한다. 로우 버퍼는 값을 읽을때 Bit cell이 파괴되므로 읽은 값을 보관하는 일종의 캐시처럼 작동한다.

위의 Sensing은 매우 느린 작업으로 커패시터가 작을수록 비트라인이 길수록 해당 작업은 느려진다.

 

각 DRAM세대에서 사용 가능한 Bandwidth가 계속 증가하는것은 Cell 접근시간을 줄이는 것이 아닌 DRAM 칩에서 더 많은 병렬처리를 활용함으로써 가능하다.

DRAM Architecture

Processor에는 Memory Controller라는 전용 로직이 있다. 이 로직은 CPU에서 Main Memory로의 모든 접근을 처리한다.

프로세서에는 여러개의 메모리 컨트롤러가 존재할 수 있으며, 각 메모리 컨트롤러에는 1개 이상의 Channel이 있다. 각 Channel에는 Command/Address Bus와 Data Bus (보통 64bit width)로 구성된다. Channel에는 1개 이상의 메모리 모듈을 연결 할 수있다.

 

각 메모리 모듈은 1개 또는 2개의 Rank로 구성된다. Rank는 각 사이클에서 Data bus를 채우기에 충분한 비트를 제공하는 여러개의 DRAM칩이 포함된다. Data bus가 64bit width이고 각 Chip이 8bit(x8)을 제공하는 경우에는 1개의 Rank에는 8개의 Chip이 포함된다. Rank가 2개 이상인경우 Rank는 동일한 Bus에서 Multiplexing 되므로 동시에 Bus에 Data를 넣을 수 없다. Rank당 Chip은 Lockstep으로 작동하므로 항상 동일한 명령을 실행하고 별도로 주소를 지정할 수 없다.

 

각 Chip은 여러개의 Bank로 구성되며 이는 워드라인, 비트라인, 센스 앰플리파이어, 로우 버퍼 등이 있는 Bit cell의 큰 Matrix이다. Rank의 Chip은 Lockstep으로 작동하므로 Bank라는 용어는 같은 Rank의 8개 Chip에 걸쳐있는 8개 Bank를 나타낼 수도있다. 이는 각 Chip에존재하는 Bank는 Physical Bank라고 부를수 있고, Rank에 걸친 8개의 Bank에 대해서는 Logical Bank라고 부를수 있다.

Regular DDR

가장 기본이되는 SDR (Single Data Rate)는 Interface와 Data bus가 동일한 Clock을 사용하며 이는 Internal Clock과 IO Clock과 동일하다는 뜻이다.

 

첫번째 DDR (Double Data Rate) 는 매 IO Clock 사이클마다 두개의 데이터 워드를 전송하는 것을 목표로 했다. 첫번째 워드는 Clock의 Rising Edge에서 두번째 워드는 Clock의 Falling Edge에서 전송한다. 이는 Prefetch 라는 개념을 도입하여 수행했다.

 

Prefetch Buffer라는 것이 DRAM Bank와 출력 회로 사이에 삽입되었다. 이는 원래 SDR 설계에서 각 사이클마다 버스에 저장될 비트 수의 2배를 저장 할 수있는 작은버퍼이다. x8 chip의경우 Prefetch buffer는 16bit이다. 이를 2n Prefetch Buffer라고 한다.

DDR2 에서는 Prefetch Buffer가 4n이다. 이를 통해 Internal Clock에 비해 IO Clock을 두배로 늘리고 모든 사이클에 데이터 버스를 데이터로 채울 수 있다.

DDR3 에서는 Prefetch Bufer가 8n이고 IO Clock을 Internal Clock의 4배로 늘렸다.

그러나 Prefetch를 늘리는 것은 한계가 있다. Prefetch Buffer를 16n으로 하면 각 읽기 명령어에 대해 16 x 64 bit가 프로세서로 전송된다. 이는 프로세서 에서 사용되는 기본 데이터 단위인 Cacheline의 2배 크기이다. 따라서 시간과 에너지를 낭비하게되어 DDR4는 Bank Group이라는 또다른 기술을 적용했다.

 

이 기술은 여러 Group의 Bank를 도입하고 각 그룹은 고유한 8n Prefetch Buffer를 가지며 Multiplexer를 사용하여 올바른 Group에서 출력을 선택한다. Memory Controller의 요청이 Interleave하여 연속적인 요청에서 다른 Group에 요청되는 경우 IO 속도를 다시 두 배로 높일 수 있으며 이는 IO Clock이 Internal Clock의 8배가 된다.

DDR5에서는 이미 LPDDR4에서 구현된기술을 차용한다. 64bit bus는 2개의 독립적인 32bit Channel로 나뉜다. 각 Channel은 32 bit만 제공하므로 Prefetch 사이즈를 16n으로 늘릴 수 있으며 16 x 32bit로 64Byte이므로 Cacheline 크기와 동일하다.

LPDDR

LPDDR은 Low Power Double Data Rate이다. 이것은 메모리의 전력 사용량을 낮추기 위해 개발되었다.

Regualr Memory 와 첫번째 차이점은 메모리가 프로세서와 연결되는 방식이다. LPDDR 메모리는 프로세서와 아주 가깝게 배치 및 통합되어있으며 메인보드에 납땜하거나 CPU에 가까이 아니면 On-package로 제공된다. 가까이 통합할 수록 긴 와이에서 저항이 줄어들어 전력이 낮아질 수 있다.

두번째로는 Channel width이다. LPDDR메모리는 고정된 Bus width가 없지만 32 bit Bus가 가장 일반적이다. 이는 일반 메모리에 비해 Bus가 작아 전력을 절약한다. 또한 메모리에 사용되는 전압이 상대적으로 낮아 적은 전력소모를 가진다.

 

마지막으로 LPDDR메모리에서는 다양한 아이디어(Temperate adjusted refresh, Partial array self-refresh, Deep power-down states)으로 Refresh 작업을 최적화 하여 메모리의 대기 전력을 크게 줄인다.

GDDR

GDDR은 Graphic Double Data Rate이다. 이것은 그래픽 카드에서 사용하도록 의도된 메모리이다. 그래픽 카드등은 높은 대역폭에 대한 수요가 높은 디바이스중 하나이다. GDDR은 PCB에 납땜되어 프로세서와 매우 밀접하게 통합된다. 이는 GPU 칩셋 에 구현되지는 않으며, 원하는 용량에 도달하기 어렵고 발열 제어가 어렵기 때문이다.

 

각 GDDR 칩은 Regular DDR에 비해 width가 더 크며, 각 칩은 고정된 64bit 크기의 버스에서 멀티펠릭싱되지 않고 GPU에 직접 연결된다. 즉, GDDR칩이 많을 수록 Bus width는 증가하고 멀티플렉싱 연결을 사용하지 않기 대문에 더 높은 주파수를 가질수 있다. 이러한 구조로 인해 GPU의 최종 메모리 용량은 제한된다. 대형 GPU주위에 12개의 GDDR 칩구조만 가능하기 때문이다.

GDDR은 세대 전체에서 DDR과 동일한 기술을 사용하여 메모리 대역폭을 개선했다. GDDR2는 DDR을 기반으로, GDDR3는 DDR2를 기반으로, GDDR4는 제품이 거의 없었다. GDDR5는 DDR3를 기반으로 여전히 사용중이다. GDDR5X는 Granularity를 희생하여 16n prefetch를 갖춘 QDR 모드를 도입했다.

 

다음으로 GDDR6에서는 LPDDR4와 마찬가지로 Channel을 분리하여 동일한 버스에 두개의 독립적인 작은 채널이 제공되어 더 작은 Granulartiy를 사용할 수 있으므로 16n prefetch QDR 모드가 표준이 된다. 즉 GDDR6는 GQDR6라고 부르는것이 더 적절하다.

3D DRAM

DRAM에 3D 구조를 차용하여 Die 사이의 Micro bump를 사용하여 연결 할 수 있는 다이의 수직 상호 연결인 Trough-Silicon-Vias (TSVs)를 사용한다. 서로 상하에 놓인 두개의 다이는 매우작은 수직 상호연결과 통신할 수 있다.

가장 유명한것은 GDDR의 3D 대응 제품인 High Bandwidth Memory (HBM)이다.

 

유사한 Hybrid Memory Cube (HMC)는 마이크론이 개발한 Regular DDR과 유사한 애플리케이션을 위해 제안한 3D 대응 제품이였지만 2018년 취소되었다.

Wide I/O는 삼성이 SoC에서 LPDDR 메모리의 3D 대응 제품에 대한 JEDEC 표준이지만 아직 실제 구현에 대한 발표는 없다.

High Bandwidth Memory (HBM)

HBM은 GDDR과 많은 공통점을 가진다. HBM도 GDDR과 마찬가지로 GPU와 긴말하게 통합되어있다. 또한 GPU 다이위에 스택형식으로 올려놓지 않는다. 여전히 많은 용량이 필요하고 발열 문제로 인한 구조적 문제 때문이다.

 

차이점 첫째, GPU에 가까운 PCB에 메모리 칩을 배치하는 대신 칩과 GPU를 연결하는 인터포저에 배치한다. 오늘날은 일반적으로 Passive Silicon Interposer가 사용되는데 인터커넥트만 존재하여 전력을 많이 소모하지않는 훨씬 더 많은 병렬 인터커넥터를 라우팅 할 수있다는 것이다. 결론적으로 PCB에서 불가능 했던 매우 넓은 Bud Width를 만들 수 있다.

 

둘째, 메모리 칩을 3D 형식으로 쌓아서 수평면의 작은 면적에서 큰 용량을 구현할 수 있다. 이러한 칩에는 많은 양의 TSV가 있어 스택의 칩을 서로 연결하고 하단의 로직다이를 연결한다. 이 로직다이를 다시 인터포저의 넓은 버스에 연결하여 메모리칩과 GPU간의 높은 대역폭을 구현할 수 있다. 버스가 넓기 때문에 메모리 칩의 IO Clock을 더 낮은 주파수로 완하하여 energy per bit가 매우 낮게 (약 3배) 유지되어 훨씬 낮은 비트당 에너지 소모율을 가진다.

Hybrid Memory Cube (HMC)

마이크론이 설계한 HMC는 취소 되었지만, 미래 서버에서 Regualr DDR 메모리의 3D 대응 제품이였다. HBM은 대체로 Bandwidth에 초저을 맞추고 있으며, 용량과 확장성을 희생하며 Core와 긴밀하게 통합되어야 한다. 이를 업계에서는 Near Memory 라고 한다. HMC는 용량 확장성에 초점을 맞추고 더 많은 메모리 스택을 서버에 쉽게 설치하는것과 마찬가지로 더 많은 DDR 메모리는 빈 슬롯이 있는 메인보드에 쉽게 플러그인 할 수 있다. 이를 Far Memory라고 한다.

 

그러나 HMC는 언급된 다른 모든 표준보다 DDR과 가장 다른 표준이다. 버스를 통한 DDR 신호전달을 사용하는대신 프로세서와 메모리 큐브간의 고속 SerDes 링크로 전송되는 메모리 패킷을 사용한다. 메모리 컨트롤러는 DDR처럼 CPU 다이에 있거나 HBM처럼 GPU와 메모리 스택에 분산되는 대신 각 큐브의 기본 다이에 통합되어있다.

Wide I/O

Wide I/O는 LPDDR메모리의 3D 대응 제품으로 가능한 가장 낮은 전력에 도달하기 위해 극한의 통합을 선택했다. 메모리는 TSV를 사용하여 CPU 다이에 직접 연결하여 SoC 위에 직접 통합될 것으로 예상된다. 이를 통해 가장 짧은 상호연결이 가능해져 모든 표준중 가장 낮은 전력이 필요하다. 그러나 이러한 극한의 통합은 SoC에 TSV가 필요하여 비용이 높아지게 된다.

 

반응형

'개인 공부 > DRAM' 카테고리의 다른 글

High Bandwidth Memory 3 (HBM3)  (4) 2025.08.06
High Bandwidth Memory 2 (HBM2)  (3) 2025.08.06
High Bandwidth Memory (HBM)  (2) 2025.08.05
DDR, LPDDR, GDDR, HBM  (2) 2025.08.05