책/메모리 시스템

메모리 시스템 Ch7_'DRAM 의 개요-2'

RyoTTa 2021. 10. 28. 20:17
반응형

7.2 DRAM 구조의 발전

 마이크로프로세스의 동작 속도 및 성능 개선은 DRAM 칩의 속도 및 성능 개선보다 훨씬 앞질렀다. 결과적으로 DRAM 인터페이스가 발전하기 시작하였고, 다수의 혁신적인 제안들이 쏟아져 나왔다. 즉 대부분의 경우에 고려되었던 진화 또는 혁신적인 것은 인터페이스이며 DRAM의 코어는 본질적으로 변경되지 않은 채로 있다.

 

DRAM 구조의 발전 양상

위 그림에서 볼 수 있듯이 시동기, 기본 비동기, FPM, EDO, BEDO, 동기(SDRAM) 까지 진행됨을 알 수 있다. 

 

7.2.1 처리량을 위한 구조 개선

 

 시동기 DRAM
  60~70년대의 DRAM, DRAM의 명령은 주기적인 클럭 신호에 의해 구동된다.

 

 기본 비동기식 DRAM

  70년대 중반의 비동기식 설계, 이전에 사용되었던 시동기와 같은 DRAM에서는  모든 단일 액세스가 이전에 설명한 모든 단계들을 거쳐야 한다. 즉 RAS/, CAS/ 모두 일치하여 상승해야한다.

 

 FPM DRAM

  기존의 DRAM에서 개선한 Page Mode를 구현한 것(Page Mode:로우 어드레스유지, 여러 칼럼 Read)

  Mem Controller는 CAS/가 토글하는동안 RAS/를 로직레벨 0으로 유지시켜 Sense Amp에 데이터가 유지된다. 

  이를 간단하게 오픈 페이지(Open Page)를 형성한다고 한다.

 

 EDO DRAM

  하이퍼 페이지 모드 DRAM이라고 불린다. FPM DRAM의 출력 드라이버에 트랜지스터를 추가하여 신속하게 메모리 어레이가 프리차지를 빨리 시작할 수 있도록 하기위해 CAS/ 를 허용한다. 또한 출력 경로에 위치한 래치 또한 DRAM 회로의 출력에 있는 데이터를 이전 DRAM보다 더 오래 유효하도록 하는것을 가능케 한다.

  

 BEDO DRAM

  새로운 칼럼 어드레스가 DRAM 칩으로 전송되는 매 순간 활성화 되는 로우에서 데이터를 연달아 접근한다는 개념을 추가했다. 

 IBM 고속 토글 모드 DRAM

  토글 모드는 DRAM에서 데이터를 송수신하는데 있어 스트로브의 한쪽 에지가 아닌 고속 데이터 스트로브의 양쪽 에지를 이용한다. 

 

 SDRAM

  FPM, EDO DRAM은 비동기적으로 제어되었다. Mem Controller의 RAS/ CAS/ 신호가 직접적으로 DRAM 내부의 래치를 컨트롤 하며 DRAM을 비동기로 만든다. 즉, 신호들이 언제든 DRAM의 핀에 도달 할 수 있었다. 이에 대한 대안으로 요청들이 규칙적인 간격으로 도달할 수 밖에 없는 동기화 DRAM이 필요했다. 모든 데이터와 제어신호의 전송을 클럭 시놓와 연계함으로 결과의 타이밍을 좀더 예측 할 수 있도록 만들었다. 

  Burst Mode도 지원한다. 따라서 SDRAM은 요청당 소요되는 몇번의 싸이클에 걸쳐 많은 바이트를 되돌리기도 한다.

 

7.2.2 처리량 위한 인터페이스

 동시 발행하는 RDRAM, 직접적인 PDRAM

  RDRAM(Rambus DRAM)은 전통적인 버스보다 폭이 좁은 버스를 사용하고, 완전한 멀티플렉스 방법을 취했다. 어드레스 컨트롤 데이터 칩셀렉트 정보가 각 다른 타이밍에 모두 같은 라인을 이용해 이동한다. 

 DDR SDRAM

  IBM의 고속 토글 모드의 양쪽 에지를 사용하는 스킴과 매우 흡사한 DDR 방식을 사용한다. 클럭 양쪽 에지(상승, 하강)에서 데이터를 이동시킴으로써, 이용가능한 데이터 대역폭은 SDR(Single Data Rate) SDRAM의 두 배가 된다.

 

7.2.3 Latency 위한 구조 개선

DRAM 부분의 응답 대기시간을 낮추기 위한 시도, 회로 속도를 높이거나 캐시를 통해 평균 응답 시간을 개선하는 것등...

 

7.3 오늘날 DRAM의 표준

 JEDEC이 모든 DRAM의 호환성을 좌우하는 표준을 설정한다.

 

7.3.1 JEDEC SDRAM 기술의 특징

 4가지의 버스(Bus)

  1. 데이터, 상대적으로 넓다. 현대 PC 시스템의 경우 보통 64bit 

  2. 어드레스, 각각의 DRAM 디바이스에 저장된 비트수에 비례하여 증가한다. 최근 버스는 보통 15bit

  3. 컨트롤, Row 스트로브, Column 스트로브, 출력 인에이블, 클럭, 클럭 인에이블, 기타 유시신호..

  4. 칩 셀렉트, DRAM 랭크당 하나의 독특한 선을 사용함으로 물리적 메모리 최대량과 비례한다. DRAM의 랭크를 카능케 하는데 이용이 된다.

 

 비동기 DRAM이 CAS/ RAS/ 신호를 스트로브로 사용하는 반면에 SDRAM은 클럭을 스트로브로 사용하고, RAS/CAS/ 신호는 때를 맞춰 스스로 버스로부터 샘플링하는 단순한 명령에 불과하다. 

 

 SDR SDRAM
  모든 정보를 동기화 시키기 위해 한쪽 에지 클럭을 사용한다. 즉 다양한 버스의 모든 전송 과정이 시스템 클럭의 한개의 에지에 맞추어 시작된다는 뜻이다. 전의 DRAM과 다르게 몇 가지 특징을 가지게 되는데 곧 버스트 길이와 응답 시간이 프로그램이 가능하다는 점이다.

 

 프로그램 가능한 버스트 길이 : 데이터를 연달아 뽑아내기위해 CAS/신호를 연속 토글하는 대신, SDRAM 칩은 일단 CAS/신호가 주어지면 프로그램가능한 모드 레지스터에 지시하는 비트 수 만큼을 클럭 토글에 맞추어 전송하거나 수신한다. 즉 버스트 길이를 지정하는 레지스터의 값에 상응하는 칼럼의 개수를 연달아 출력한다. 따라서 Mem Controller는 CAS/를 토글해야하는 필요성을 제거함으로 이러한 사이클동안에 다른 뱅크에 또 다른 요청을 보낼 수 있다. 

 

 프로그램 가능한 CAS/ 응답 대기시간 : 위의 모드 레지스터는 SDRAM 칩의 CAS/ 응답 대기시간 또한 저장하고 있는데, 이는 지연의 척도이다. CAS/ 명령을 수신한 후 데이터를 반환하는데 필요한 SDRAM의 클럭 사이클 수를 나타낸다. 

 

 

 DDR SDRAM

  SDR SDRAM 구조에서는 반결할 수 없는 몇가지 특징, 클렁의 양쪽 에지에서 동작과 온칩 지연동기회로를 갖는다. 

  

  듀얼 에지 동기화 : DDR SDRAM은 컨트롤 및 어드레스 전송을 동시에 진행하기 위해 SDRAM과 마찬가지로 한쪽 에지 클럭을 사용하는 반면, 데이터 전송과정에서는 양쪽 에지 클럭을 사용한다. 듀얼 에지 스킴에서 클럭 에지는 데이터와 '에지에 정렬' 이거나 '가운데 정렬'이다. 이는 클럭이 데이터로 버스로 보내거나 버스에서 읽어 낼 수 있지만 두개를 할 수 없다는 것을 의미한다. 아래 그림은 클럭이 데이터의 '에지에 정렬'된 것이다. 정확한 타이밍을 위해 부가적인 메커니즘이 추가된다. 예를들어 DRAM 읽기 과정에서 데이터 스트로브는 데이터 및 시스템 클럭과 에지에 정렬된다. Mem Controller는 가운데 정렬된 에지를 발생시키는 자체적 메커니즘을 제공해야한다. 이때의 스트로브를 DQS라고한다.

 

데이터 전송률에서의 버스 클럭

  온 칩 DLL : DRAM에서 나가는 데이터 및 DQS(데이터 스트로브)신호를 Mem Controller의 글로벌 클럭과 동기화 시킨다. 즉 DRAM에서 전송되는 데이터와 Mem Controller의 클럭 신호를 동기화 시켜, 데이터가 예정된 시간에 Mem Controller에 도착하게 된다. Mem Controller는 두개의 내부클럭이 존재한다.(글로벌 클럭과 동시성을 가지는것, 90도 지연된 DRAM에서 들어오는 데이터를 샘플링하는데 이용 되는것) 

  DQS는 오로지 DRAM에서 보내진 DQS 신호를 Mem Controller의 클럭과 올바르게 정렬시키는 데에 이용된다. Mem Controller의 90도 지연된 클럭은 수신된 데이터를 샘플링하는데 이용되며 이는 DRAM의 DLL이 글로벌 클럭과 내보내는 데이터 간의 최소 왜곡을 보장하기에 가능하다. 

 

 즉 위의 메커니즘들은 신호를 원하는 목적지로 전송하는데 걸리는 시간의 변화 때문이다. (시스템의 불확실성)

 

DDR SDRAM에 있어 DLL의 이용

 맨 위 그림은 DLL없는 DDR의 형태를 나타낸다. 클럭 receiver 를 통한 고유의 delay 때문에, multi-stage amp와 온칩 wires, 출력 패드, bonding wire, 출력 드라이브등 기타 효과들 때문에 데이터 출력은 시스템 클럭에 대해 약간 delay된다. 

 아래 그림은 DLL을 추가함으로 나타난 효과를 나타낸다. DLL은 들어오는 클럭 신호를 delay시켜, 해당 부분의 출력이 시스템 클럭과 더 긴밀히 정렬되도록 만든다. 이것이 extra 응답 대기시간을 해당 파트의 동작으로 이끌게 됨을 주의해야 한다.

 

7.3.2 램버스 기타 특정 기술들

7.3.3 Rambus와 JEDEC DRAM 비교

7.3.4 대체 기술들

7.4 FB-DIMM : 일종의 타협

 

7.5 DRAM 시스템의 이슈들, 간략

7.5.1 아키텍쳐와 스케일링

 DRAM의 매 세대마다 대역폭의 개선에는 채널 용량에 대한 비용을 생각해 왔으나, 액세스 단위에 드는 비용도 생각해 왔다. DRAM 설계자들은 DRAM 코어의 속도를 증가시키기 않고, I/O 핀의 데이터 전송률을 개선해왔다. DDR는 2n Prefetch 구조, 즉 DRAM 코어에서 전송되는 비트가 두배인 구조로 변경하여 SDR보다 속도를 개선했다. 또한 I/O 속도 면에서는 2배, 코어는 너비 면에서 2배값을 갖게 되었다. DDR2는 4n Prefetch, DDR3는 8n Prefetch이다. 각각 DRAM이 읽거나 쓸 수있는 최소 비트수의 두배로 증가했다. 

 

7.5.2 토폴로지 및 타이밍

 시스템 구성의 변화는 신호 신뢰성에 상당한 개선 또는 후퇴를 불러온다. 이는 버스 토폴로지 경우에도 마찬가지다. 단방향 버스는 소스 동기화 클럭과 원만히 작동하려는 경향을 보이지만. 소스 동기화 클럭은 글로벌 클럭 스킴처럼 단순하지 않다.

 

7.5.3 핀과 프로토콜 효율성

 핀의 비용 문제는 중요한 이슈가 되고 있다. 트랜지스터나 온 다이 캐패시터의 비용 절감은 급속도로 이루어지고있지만, 패키징 비용은 그처럼 빠르게 감소하지 않는 추세이다. 데이터와 대역폭의 감소를 야기하지 않으면서, 필요 핀의 개수를 줄일 수 있는 방법은 프로토골을 재고하고, 데이터에 사용되는 핀과 컨트롤 간의 균형관계를 받아 들이는 것이다.

 

7.5.4 파워와 열손실

 DRAM은 전통적으로 전력이나 열 손실에 고려하지 않았다. 그러나 칩 간 핀당 신호 변동률이 1Gbps를 넘어서면서 전력과 열 소실 문제가 대두되기 시작했다. 과거보다 현재의 FB-DIMM은 10배의 양에 달하는 양이 소실된다. 따라서 발열 문제가 중대하다는 것을 알 수있다.

 

7.5.5 향후 방향

 대역폭 증가를 위한 DRAM 설계는 디바이스의 최적화를 지나치게 강조하는 반면, 시스템에 소홀한 경향을 보인다. 즉 이 두가지 관점을 어떻게 결합시키는가는 앞으로 계속해서 마주하게 될 주요 현안이 될것이다.

반응형