7.1 DRAM 기초 : 내부와 동작
위 그림은 DRAM 내부에 위치한 저장 셀을 위한 회로를 나타낸다. 이 회로는 누설 전류로 인해 각각 Cell(Capacity) 에 저장된 정보를 유지하기 위해 주기적으로 Refresh(갱신)을 해야하기 때문에 동적이다.
각 DRAM 다이(Die)는 하나 또는 그 이상의 메모리 어레이이다. 배열들이 직사각형의 격자들이기 때문에 Row, Column으로 나누어 져 구분이 가능하다. Row, Column 의 Address를 지정함으로 Mem Controller가 DRAM 칩 내부의 Cell에 접근하여 데이터를 읽거나 쓰는 것을 가능케 한다.
가장 간단한 DRAM의 구별법은 내부 메모리 어레이의 개수이다. 메모리 어레이가 전체적으로 작용하도록 설계된 경우, Mem Controller가 DRAM에 접근할 때 마다 어레이의 개수와 동일한 비트 수를 송출하거나 전송받는다.
예를들어 x4 DRAM은 최소 네개의 메모리 어레이를 가지며 Column 너비가 4bit라는 것을 나타낸다. 각각 1bit 데이터를 읽는 4개의 어레이가 모여 Mem Controller가 한개의 Column을 읽을 때 마다 4bit를 송출한다. 즉 x8의 DRAM은 최소 8개의 메모리 어레이를 가진다.
위의 Array는 Bank라고 보긴 어렵다. 여기서 뱅크란 각각의 메모리 어레이의 집합체들이 독립적으로 작동할 때, 이 집합체를 의미하는 개념으로 어레이와 차이가 있다. 각 뱅크는 몇가지를 제외하고 타 뱅크들이 작동, 프리차지, 읽기등 작업을 동시에 할 수 있기 때문에 독립적이다.
Interleaving(인터리빙) 다중 메모리 뱅크는 높은 대역폭 메모리 버스를 위해 널리 이용되어왔다. 예를들어 한개의 DRAM Bank가 10ns마다 데이터를 생성할 때 DRAM은 두개의 Bank사이를 번갈아 가며 5ns 마다 새로운 메모리를 만들어낸다.
Rank는 DIMM 레벨의 독립적인 동작과 내부 Bank 레벨의 독립적 동작을 구분하기 위해 쓰인다.
시스템은 다수의 DIMM, 각 DIMM은 한개 또는 이상의 랭크,. 각 랭크는 DRAM 디바이스의 집단, 각 디바이스는 여러 뱅크의 집단, 각 뱅크는 다수의 어레이로 구성. 이는 데이터 너비에 의해 좌우된다.
즉 x4 DRAM은 1개의 뱅크당 4개의 종속 어레이를 가진다. 랭크와 뱅크레벨에서 동시성을 가진다는 것은 메모리에 대한 요청을 파이프라인 처리 기능을 통해 대역폭을 제공한다.
DRAM에서 데이터 송수신하는 Data Bus는 보통 64bit, 고성능 시스템일 수록 값이 더 커지기도 한다.
전용 어드레스 버스는 Row, Column 어드레스들을 DRAM으로 전달하고 DRAM 디바이스의 물리적인 저장공간에 비례.
컨트롤 버스는 로우와 칼럼 스트로브, 아웃풋 인에이블, 클럭, 클럭 인에이블을 비롯해 신호들로 구성되어있다.
랭크의 메모리 컨트롤러에서부터 각 DRAM으로 연결된 칩 셀렉트 네트워크가 있다.
위 그림은 DRAM요청에 포함된 단계들을 설명한다. Mem Controller는 마이크로프로세서와 DRAM사이에서 수행한다.
요청을 명령하고 Queue에 보관 후 마이크로프로세서는 주어진 요청을 Mem Controller로 전송한다. 요청이 도착하면 DRAM이 준비되고, 우선순위가 높은 작업을 한 후 요청된다.
Word Line, Bit Line으로 교차지점에 위치한 각각 Capacity들은 매우 작고, 약간의 전자를 갖고있다. 따라서 Sense Amplifier라 불리는 회로가 Capacity가 관련 Bit Line에 연결될때 Capacity에 저장된 값을 검출하기 위해 사용된다. Sense Amplifier는 처음으로 Bit Line들을 전압 레벨에서 Precharge하는데, 이때 전압 레벨이란 로직레벨 0, 로직레벨 1 사이의 중간값을 뜻한다.
Capacity가 Bit Line에 연결될때 Capacity는 전압 레벨을 약간 변경한다. Sense Amp는 이를 감지하고 비트 라인 전압을 로직레벨 0 또는 로직레벨 1로 끌어 당긴다.
Read 요청을 처리하는 단계로 설명한다.
1. Mem Controller는 데이터 어드레스를 메모리 시스템 범주 내의 랭크, 뱅크, 로우.칼럼으로 해석해야한다. 최종적인 구성요소는 Row Address와 Column Address로 구성된다.
2. 해당하는 뱅크의 Bit Line 이 Precharge 되어 있어야 한다. 적절한 로우를 활성화(Activation)하도록 로우 어드레스와 뱅크 구분자를 버스로 보내고 RAS 핀에 신호를 보낸다. 이는 전체 Row(Page) 값을 Sens Amp로 보낸다는 것을 뜻한다.
3. Sense Amp는 값을 회복하고 비트라인이 적절한 로직 레벨로 끌어 당겨지면 Mem Controller는 Column을 읽는 마지막 단계를 수행한다(Column은 Row 내부의 원하는 데이터 집합). 칼럼 어드레스와 뱅크 구분자를 버스로 보내고 CAS 핀에 신호를 보낸다. 이는 Sense Amp에서 몇몇의 선택 비트가 출력 드라이브에 연결되게 하고 데이터 버스를 통해 데이터가 출력된다.
클럭은 high(로직 레벨1), low(로직 레벨0)값을 일정한 간격으로 연속된 신호로 전송한다. 위의 그림과 같이 상승부분(상승 에지)과 하강부분(하강 에지)의 반복적으로 나타나는 파형으로 나타난다.
컴퓨터 시스템의 기본 클럭은 시스템 클럭, 글로벌 클럭이라고 하는데 클럭이 DRAM을 직접 구동하는 경우 동기(Synchronous) DRAM, 직접 구동하지 않을 경우 비동기(Asynchronous) DRAM 이라고 한다.
'책 > 메모리 시스템' 카테고리의 다른 글
메모리 시스템 Ch8_'DRAM 디바이스 조직 : 기본 회로와 구조-3' (0) | 2021.10.28 |
---|---|
메모리 시스템 Ch8_'DRAM 디바이스 조직 : 기본 회로와 구조-2' (0) | 2021.10.28 |
메모리 시스템 Ch8_'DRAM 디바이스 조직 : 기본 회로와 구조-1' (2) | 2021.10.28 |
메모리 시스템 Ch7_'DRAM 의 개요-2' (1) | 2021.10.28 |
메모리 시스템 레퍼런스 레퍼런스 (0) | 2021.03.17 |