Semiconductor, Embedded/0. Digital, Analog, 회로 이론

DRAM 구조 및 동작 원리 (2)

잇(IT) 2024. 8. 9. 19:42

https://insoobaik.tistory.com/662

(1)에 이어 DRAM 구조 및 동작 원리에 대해 자세히 알아볼 것이다.


■ DRAM Structure

https://medium.com/@hritwik567/concurrent-refresh-aware-dram-memory-architecture-4ff2b2b302c8
https://www.easybuyic.com/article/show/54

 

컴퓨터 내부를 보게 되면 램 슬롯에 위와 같은 DRAM 모듈을 본적이 있을 것이다.

DRAM은 앞 뒤로 Chip이 붙어있고, 각 면을 Rank라고 부른다. (ex 한쪽 면이 Rank 0면 다른 한쪽은 Rank 1)

Rank에 붙어 있는 Chip은 우측에 그림과 같이 여러개의 Bank로 구성되어 있다.

하나의 Bank는 여러개의 MAT(Memory Array Tile)으로 구성되어 있다.

 

Rank는 주소를 가지며 Chip 자체에는 주소를 가지지 않는다. Rank 동시에 모든 Chip에 신호를 보낸다.

각 Chip은 Data Bus를 통해 전달되는 비트 중 자신에게 할당된 비트를 처리하게 된다.

(예를들어 Data Bus가 64비트, 8개의 Chip이 있다면 각 칩은 64비트 중 8비트씩 담당하여 전달된 Data를 처리하게 된다.)

이후 자세하게 설명하겠지만 Rank가 정해지면 각 Chip에 전달되는 Data를 통해 row, column이 정해지게 되고, Bank는 여러 겹의 MAT로 구성되기 때문에 특정 지점이 선택되면 MAT 겹의 수만큼 선택된다.

(예를들어 Bank가 8겹의 MAT으로 구성되어 있다면 특정 row, column이 선택되면 총 8비트가 선택되어 진다. (MAT의 한지점은 하나의 DRAM 셀을 가지고 있다.)


 

1. Control Logic

DRAM 모듈의 동작을 제어하는 블록 row, column, cache line 주소를 관리한다. 해당 주소 정보를 통해 DRAM Bank, SRAM Cache에 접근하게 된다.

2. Row Address / Decoder

 2.1. Row Address : row에 대한 주소 정보를 나타낸다. DRAM의 Bank 내의 특정 row를 선택한다.

 2.2. Row Decoder : 입력된 row 주소를 받아 해당 row를 선택한다. DRAM Bank 내에서 특정 row을 활성화하여 row의 data가 sense amp를 통해 전달된다.

3. Column Address / Decoder

 3.1. Column Address : column에 대한 주소 정보를 나타낸다. 특정 data bit들이 위치한 column을 선택한다.

 3.2. Column Decoder : 입력된 column 주소를 해독하여, 선택된 column에 접근한다. column까지 접근해야 Cell에서 data를 Read하거나 Write 할 수 있다.

 

* Column Decoder가 SRAM Cache에만 전달되는 이유

Cache는 DRAM보다 상대적으로 속도가 빠르고 CPU에서 DRAM에 직접 접근해서 Data를 직접 Read, Write하기에는 속도 차이가 많이 나기 때문에 Cache에서 Data를 Read, Write하게 된다. 이 때 Cache는 Data가 있다면 바로 전달하지만 없는 경우(Miss) DRAM의 Column을 선택해서 필요한 Data를 Read, Write하게 된다. DRAM은 row, column이 둘 다 선택된 후에야 Read, Wrtie 작업을 수행할 수 있다.


■ DRAM 동작 원리

 

- CKE(Clock Enable) : DRAM에서 사용되는 Clokc 신호를 비/활성화 시키는 신호

- CS(Chip Select) : DRAM 모듈에서 특정 Chip이나 Rank를 선택하기 위한 신호

- ACT(Active) : DRAM 모듈에서 특정 ROW를 비/활성화 시키기 위한 신호, ACT 신호가 들어오면, 해당 ROW에 해당하는 메모리 Cell들이 선택되고, 데이터가 Sense Amp로 전송된다.

- RAS(Row Address Strobe) : RAS 신호가 활성화되면, Memory Controller는 DRAM 모듈의 ROW 주소를 전송한다.

- CAS(Column Address Strobe) : CAS 신호가 활성화되면 Column 주소를 지정하게 되고, 해당 Column에 Data를 Read, Write하게 된다.

- WE(Write Enable) : DRAM에 Data를 Read, Write 여부를 결정하는 신호다.

메모리 기초 (tistory.com)

 

ACT 신호가 주어지면 RAS 신호와 함께 특정 ROW가 선택되고 활성화 된다.

 

메모리 기초 (tistory.com)

 

CAS 신호가 주어지면, Column 주소가 선택되어 Data를 Read, Write 할 준비가 되고, WE 신호에 따라 데이터를 Read, Write하게 된다.


■ Delay

 

DRAM에서 Read, Write 동작을 수행하는 동안 각 동작마다 Delay가 발생하게 된다. DRAM은 하나의 명령을 수행한 후에 다음 명령을 수행할 수 있다.

Basic of the DRAM Subsystem :: 쵸코아몬드의 블로그 (tistory.com) 우

 

위 그림은 Read, Write 명령을 수행하는 단계와 Delay를 보여주고 있다.

 

Read 수행을 예시로 설명하자면

1. ACT <-> RD (tRCD)

특정 RAS 신호에 의해 Row가 선택되고 난 후, CAS 신호에 의해 Column이 선택되기까지 걸리는 Delay를 의미한다.

2. RD <-> PRE (tRTP, tCL)

tCL은 CAS 신호가 입력된 후 Data를 실제로 Read를 시작하기까지의 Delay를 의미한다.

tRTP는 Read 동작이 완료된 후 Precharge 명령을 내리기까지의 Delay를 의미한다.

3. PRE <-> ACT (tRP)

tRP는 다음 Row를 활성화하기 전에 Precharge를 완료하기 위해 필요한 Delay 시간을 의미한다.

 

DRAM은 하나의 명령을 수행하기 위해 많은 Delay가 존재하기 때문에 하나씩 수행하게 되면 오랜 시간이 걸리게 된다. 이를 해결하기 위한 방법이 Bank Interliving을 통해 DRAM 의 성능을 최적화 할 수 있다.

DRAM의 여러 Bank가 독립적으로 작동할 수 있게 하는 방식이다. Bank Interliving에 대해선 추후에 다뤄보도록 하겠다. 


■ MPS / MPR

 

- MPR (Multi Purpose Register)

DRAM에서 다양한 기능을 수행할 수 있는 레지스터에 해당한다. DRAM의 초기화 과정, 기능 테스트, 데이터 신호의 타이밍 조정 등을 목적으로 사용된다.

주로 데이터 전송 테스트를 통해 사전에 데이터를 전송하여 Memory Interface의 신호 타이밍이 적절한지, 데이터 전송 경로가 제대로 작동하는지 확인하는 용도로 사용된다.

 

- MPS (Multi Purpose Strobe)

DRAM에서 특정 신호 조정이나 동기화를 위해 사용되는 신호다.

데이터가 전송되는 시점을 정밀하게 제어하여 신호 간섭이나 타이밍 오류를 최소화하기 위해 사용되는 신호다.

타이밍 조정, 상태 모니터링을 위해 사용된다.


■ DDR(Double Data Rate)

 

DDR은 Memory 데이터 전송의 효율성을 극대화하기 위해 고안된 기술이다.

https://en.wikipedia.org/wiki/Double_data_rate#/media/File:SDR_DDR_QDR.svg

 

위 그림을 보게 되면

SDR의 경우 상승 엣지에서만 데이터를 전송한다. 즉, 한 클럭 주기 동안 1비트의 데이터가 전송된다.

DDR의 경우 상승 엣지, 하강 엣지 모두에서 데이터를 전송한다. 즉, 한 클럭 주기 동안 2비트의 데이터가 전송된다.

QDR의 경우 내부, 외부 클럭을 구분하여 한 번의 메모리 접근에서 4비트 데이터를 처리할 수 있는 구조를 가지고 있다.

 

728x90