책/메모리 시스템

메모리 시스템 Ch11_'기본적인 DRAM 메모리 액세스 프로토콜-3'

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

11.2 DRAM 커맨드 상호작용들

  자원 이용모델에서 DRAM 커맨드는 공유 자원의 가용성에 따라 연속적으로 예정될 수 있으며, 공유자원은 Sense Amplifier, I/O 게이팅 멀티플렉서와 같은 온칩 자원들과 커맨드, 어드레스, 데이터 버스들과 같은 오프칩 자원들로 이루어져 있다. 또한 디바이스 전류제한과 같은 고려사항은 연속적인 커맨드를 금지할 수 있다.

  이번 장에서는 단순한 Open Page, Close Page의 로우 버퍼 관리 정책을 가지는 시스템에서 Read, Write 커맨드를 검사하도록한다. 

 

11.2.1 동일한 랭크에 대한 연속적인 Read, Write 들

  현대 DRAM은 동일한 뱅크, 랭크. 채널의 메모리의 동일한 오픈 로우에 대한 read 커맨드가 디바이스의 내부 프리페치 길이와 데이터 버스위 데이터의 버스트 지속 기간에 따라 연속으로 파이프라인 되고 예약될 수 있다. 

  그림 11.12는 두개의 칼럼 Read 커맨드를 보여준다. read0, read1은 연속적으로 파이프라인 되어있다. 칼럼 read 커맨드가 커맨드와 어드레스 버스들에 위치하고 tCAS 이후, 디바이스는 데이터 버스로 데이터를 반환하기 시작한다. 동일 랭크의 오픈 뱅크들에 대한 칼럼 Read 커맨드들이 연속적으로 파이프라인될 수 있기 때문에, 동일한 오픈 로우에 대한 연속적인 칼럼 Read 커맨드는 tBURST 마다 예약될수 있다. (대신, tBURST가 tCCD보다 크거나 같아야한다. 대신 MAX(tBURST, tCCD)를 사용한다)

 

  마지막으로 랭크의 동일한 뱅크에 대한 연속적인 칼럼 Read 커맨드경우와 유사하게 랭크의 다른 뱅크에 대한 연속적인 칼럼 Read의 경우도 MAX(tBURST, tCCD)시간마다 예약 가능하다

 

11.2.2 Read에서 프리차지로의 타이밍

  그림 11.13은 칼럼 Read 커맨드 직후 프리차지 커맨드를 위한 최소 타이밍을 보여준다. 최소 커맨드 타이밍 수식은 tBURST + tRTP - tCCD와 같다. DRAM 디바이스의 내부 버스트 길이인 tCCD가 tBURST(칼럼 버스트 기간)와 같은 경우에, 칼럼 Read 커맨드와 Prechage 커맨드 사이의 최소 커맨드 타이밍은 간단하게 tRTP로 표현가능하다. 그러나 버스트 기간이 다수의 내부 데이터 버스트로 구성되는 경우가 존재한다. 예를들어 그림 11.4의경우 DDR2 내부 버스트 기간은 4beat에 불과한데 칼럼 액세스 커맨드들이 8beat의 버스트 기간동안 데이터를 전송하도록 프로그램 되어있다. 결과적으로 DDR2 시스템에서의 칼럼 Read에서 Precharge까지의 타이밍은 tRTP + tCCD로 표기할 수 있다. 

  본질적으로 tRTP는 자체적으로 칼럼 Read 커맨드와 Precharge 커맨드 사이에 필요한 최소한의 시간을 명시한다. 하지만 DDR2 디바이스와 같은 DRAM 디바이스에서는 칼럼 Read 커맨드를 위해서 다수의 짧은 버스트들이 하나의 연속적인 버스트를 이루어 사용된다. 이러한 경우 tRTP는 sense amplifer들이 계쏙해서 오픈되는 연장 시간이 반영되도록 변경되어어야 한다. 보다 일반적으로 해당 타이밍을 표현하는 수식은 tRTP + (N-1)tCCD가 되고, N은 단일 칼럼 Read 커맨드를 위한 하나의 확장 버스트를 형성하기 위하 내부 버스트의 수를 의미한다. 

 

11.2.3 동일한 뱅크의 다른 로우로에서 연속적인 Read 들

  대부분의 DRAM 디바이스들에서는 그림 11.12에 명시되어있듯, 동일한 오픈 뱅크의 동일한 로우에 대한 다수의 칼럼 Read 커맨드가 연속적으로 발행되고 파이프라인 될 수 있다. 그러나 동일한 뱅크의 다른 로우에 대한 칼럼 Read 커맨드의 경우, 현재 Array가 Prechage 되고 다른 로우가 Sense Amplifer들의 어레이에 의해 Activate 되어야 하기 때문에 전체 로우 사이클 시간을 필요로 한다.

 

최고의 시나리오

  그림 11.14는 메모리 어레이의 동일한 뱅크 내의 서로 다른 로웨 대한 연속적인 Read 요청이 있는 경우 타이밍과 커맨드 시퀸스를 나타낸다. read0 커맨드가 발행되고 다른 로우 액세스를 위해 오픈되기전 Precharge 되어야 한다. tRP 이후 로우 액세스 커맨드가 발행될 수 있고, 로우 액세스 커맨드 액세스 발행 tRCD 이후 read1으로 표기된 두번째 read 커맨드가 진행될 수 있다. 최적의 타이밍은 tBURST+tRTP-tCCD+tRP+tRCD이며, tRAS가 만족하는 내에서 유효하다.

 

최악의 시나리오

  그림 11.14는 동일한 뱅크의 서로다른 로우에 대한 연속적인 read 커맨드가 가질수 있는 최적의 타이밍을 보여준다. 하지만 그림 11.14의 타이밍은 적어도 이전 로우 액세스 이후로 tRAS 시간이 경과했고, 데이터가 이미 DRAM 셀에 복구된것을 가정하고 있다. 현재 로우 데이터가 복구되지 않는 경우에, 프리차지 커맨드는 동일한 뱅크에 들어온 이전 로우 액세스 이후 tRAS 시간 주기가 지나기전까지 발행될 수 없다. 그림 11.15는 동일한 뱅크의 서로다른 로우에 대한 연속적인 두 read 커맨드의 worst-case를 보여준다. 이때 첫번째 칼럼 커맨드는 로우 액세스 커맨드 직후에 바로 발행되었다. 이경우 프리차지 커맨드는 첫 칼럼 read 커맨드 직후에 바로 발행될 수 없고 이전 로우 액세스 커맨드 이후로 tRAS가 지나기 까지 기다려야 한다. 그리고 tRP가 지난이후에 두번째 로우 액세스 커맨드가 발행되고, tRCD가 지난이후 칼럼 Read 커맨드 시퀸스를 완성 시킬 수 있다.

 

11.2.4 다른 뱅크들로의 연속적인 read들 : 뱅크 충돌

  이번에는 다른 뱅크들에 대해서 연속적인 read 요청이 발생하는 상황에서 두번째 요청이 목표하는 뱅크의 활성 로우와 뱅크 충돌을 일으키는 경우에 대하여 다루도록 한다. 

  

커맨드 재정렬이 없는 경우

  그림 11.16은 동일한 랭크의 다른 뱅크에 대한 두개의 연속적인 read 요청의 커맨드 시퀸스와 타이밍을 보여준다. 그리고 두번째 read 요청이 뱅크의 Sense Amplifer의 어레이의 활성 로우가 아닌 다른 로우에 주어졌다. 이는 세가지 암묵적인 가정을 하고있다.

  1. i와 j뱅크 모두 열린 상태라는 것.

  2. 두번째 read 요청이 뱅크 j의 Sense Amplifer의 어레이 데이터를 유지하고있는 로우가 아닌 다른 로우를 향해 들어갔다. 이 경우 뱅크 j를 향한 프리차지 커맨드는 뱅크 i를 향한 칼럼 read 액세스와 동시에 진행될 수 있다.

  3. DRAM 컨트롤러가 다른 처리 요청 사이를 재정렬하는 커맨드 혹은 처리를 지원하지 않는다.(첫번째 요청에 대한 모든 커맨드가 처리되어야 두번째 커맨드 실행이 가능하다)

 

  그림 11.16은 뱅크 처리를 보여준다. 뱅크 j에 대한 read 요청이 세개의 DRAM 커맨드 시퀸스로 변환되었다. 첫번째 시퀸스는 뱅크 j의 Sense Amplifer를 프리차지한다. 두번째 커맨드는 Sense Amplifer들로 선택된 로우를 전송하는 역할을 한다. 마지막 커맨드는 실질적인 read 요청을 수행하고 데이터를 전송한다. 그림 11.16에서는 연속적인 Read 요청이 다른 로우에 이루어졌다. 구체적으로 두번째 read 요청이 동일한 뱅크의 다른 로우에 적용되었다. 이 요청은 최선의 겨웅에 tRP+tRCD의 최소 타이밍 간격을 가지도록 스케쥴된다.

 

커맨드 재정렬이 있는 경우

  그림 11.17은 컨트롤러가 다른처리 요청에 대한 인터리브 또는 재정렬을 할 수있는 경우 대역폭을 최대로 사용할 수 있는 상황을 설명하고 있다. 뱅크 i에 대한 칼럼 read 커맨드 처리 요청을 처리하기 전에 뱅크 j에 대한 프리차지 커맨드를 허가하는 경우를 설명한다. 이 경우 두 커맨드들이 다른 뱅크에서 다른 자원을 사용하기 때문에 뱅크 i에 대한 컬럼 Read와 뱅크 j 에 대한 프리차지 커맨드는 병렬로 처리 가능하다. 따라서 두개의 칼럼 read 커맨드들이 tRP+tRCD-tCMD의 타이밍을 가지고 스케쥴링 된다. 

11.2.5 다른 랭크로의 연속적인 Read 요청들

  그림 11.18은 다른 랭크에 대한 두 개의 연속 read 커맨드의 커맨드 시퀸스와 타이밍에 대해 설명하고 있다. read-write 데이터 스트로브(DQS) 재동기화 시간이 tRTRS로 명시되어 있다. 상대적으로 낮은 주파수 SDRAM 메모리 시스템에서는 데이터 동기화 스트로브가 사용되지 않는다. 따라서 tRTRS가 0이다. 그러나 DDRx SDRAM에서는 모든 랭크에서 공유되는 시스템-레벨 데이터 스트로브 신호를 사용하기 때문에 tRTRS만큼의 데이터 스트로브 재동기화 페널티가 존재한다. 

11.2.6 다른 랭크로의 연속적인 Write 요청들

 연속적인 칼럼 read 커맨드와 다르게 버스 터미네이션 전략을 사용함에 따라 DRAM 디바이스의 다른 랭크에 대한 연속적인 칼럼 write 커맨드는 파이프라인 될 수 있다. DRAM디바이스의 다른 랭크에 대한 연속적인 칼럼 Read 커맨드와, 연속 칼럼 Write 커맨드의 차이점은 다음과 같다. DRAM 디바이스의 다른 랭크에 대한 연속 칼럼 Read 커맨드 경우에는 반드시 DRAM 디바이스의 하나의 랭크가 먼저 공유 데이터 버스로 데이터를 보내고 통제권을 가져와 자신의 데이터를 DRAM 컨트롤러로 보낸다. 하지만 메모리가 다른 랭크로 연속 칼럼 write 커맨드를 전송하는 경우에는 공유 데이터 버스 통제권을 다른 버스 마스터로 포기할 필요가 없다. 

  그러나 데이터 속도 증가로 인해 무결성을 위해 메커니즘을 추가할 수 밖에 없다. DDR2 에서는 능동소자를 이용하는 것으로, ODT(On-Die Termination)을 사용한다. 그러나 ODT를 사용하는데에 2사이클이 필요하고 종료하는데에 2와 1/2사이클이 필요하다는 점이 있다. 이러한 추가 사이클은 버블을 발생시켰다. 그림 11.19 다른 랭크에 대한 두개의 write 커맨드를 설명하고 있따. write 0, write 1은 서로 다른 랭크에 tOST로 표기된 ODT 스위칭 시간 페널티를 가지고 연속적으로 파이프라인되어있다. 즉, 메모리의 오픈뱅크로 연속 칼럼 write 커맨드가 매 tBURST+tOST 사이클마다 발생할 수 있음을 설명한다. DDR2, DDR3 시스템의 경우, 시그널링 특성을 정교하게 조정해야 함에 따라 추가적인 사이클이 필요하다. rank-to-rank read의 경우에도 tOST가 필요하다. 그러나 tRTRS가 일반적으로 tOST보다 크거나 같기 때문에 MAX(tOST, tRTRS)는 보통 tRTRS로 사용된다. 

 

11.2.7 연속적인 Write 요청들 : 뱅크 충돌

 

동일한 뱅크의 다른 로우로에서 연속적인 Write 들

  동일한 뱅크의 다른 로우에 대한 연속 read 요청의경우와 비슷하게 wrtie요청도 tRAS, tRP 타이밍 조건을 준수해야 한다. 추가적으로 Write 는 tWR의 타이밍 조건도 준수해야한다. 동일한 뱅크의 다른 로우에 Write 커맨드를 전송하는 경우에, Write Recovery란 데이터가 디바이스 인터페이스로부터 Sense Amplifer를 통과하여 DRAM 셀로 이동하는 시간을 말한다. 그림 11.20은 동일한 뱅크의 다른 로우로 두개 연속 write 요청이 이루어지는 두가지 최적의 타이밍을 설명하고있다. 동일한 뱅크의 다른 로우로 두 write 커맨드가 이루어지는 최소 간격의 스케쥴링은 tCWD+tBURST+tWR+tRP+tRCD 이다. 

  그림 11.20 아래는 다른 랭크로 연속 write 요청이 이루어지는 동시에 두번째 write 요청이 뱅크 충돌을 일으키는 경우에 대해 설명하고 있다. 이경우 첫번째 write 커맨드가 진행되고, 랭크 n의 뱅크 j가 이전 tRAS 타이밍을 만족한 경우를 가정하면 서로 다른 랭크의 다른 뱅크에 대한 프리차지 커맨드가 즉시 발행될 수 있다. read 요청과 유사하게, 뱅크간 그리고 랭크간 충돌을 일으키는 연속 write 요청은 커맨드 재정렬을 통해 혜택을 볼 수 있다. 

11.2.8 Read 요청에 이어지는 Write 요청 : 오픈 뱅크

  칼럼 Write 커맨드가 칼럼 Read 커맨드 뒤에 바로 이어 지는 조합의 경우에 각각 데이터 버스에 대한 데이터 버스트 타이밍에 맞추어 연속적으로 스케쥴 가능하다. 그림11.21은 칼럼 Write 커맨드의 내부 데이터 움직임이 칼럼 Read 커맨드의 내부 데이터 움직임과 충돌하지 않는것을 보여준다. 이의 최소 간격은 tCAS+tBURST+tRTRS-tCWD 로 표현됨을 보여준다.

 

11.2.9 서로다른 뱅크로의 Read요청에 이어지는 Write 요청, 뱅크 충돌, 최상의 케이스, 재정렬 없음

  그림 11.22는 Write 요청이 Read 요청 뒤에 따라오지만 다른 뱅크를 향하고 있는 경우를 설명한다. 칼럼 Read 커맨드가 뱅크 i로 발행되고, 칼럼 Write 커맨드가 뱅크 j로 발행되었다. 11.21과 다르게 뱅크 j에 의해 유지되고있는 로우와는 다른 로우에 write 커맨드가 발행된 경우를 가정하고있다. 결과적으로 뱅크 j를 프리차지하고, 칼럼 write 커맨드가 발행되기전 새로운 로우 액세스 커맨드를 발행해야한다. 즉, tCDM+tRP+tRCD의 최소 간격을 가질 수 있다.

이 경우 뱅크 j로 전송된 프리차지 커맨드가 뱅크 i로의 칼럼 Read 커맨드에 의해 제한되지 않는다. 즉, 상호배치를 지원하는 메모리 시스템에서는 Read 요청 직후에 Write 요청에 의한 뱅크 충돌이 일어나는 경우를 스케줄링하는 것의 효율 또한 그림 11.16, 11.17에서 연속 read 요청과 마찬가지의 방식으로 증가시킬수 있다.

11.2.10 동일한 랭크에서의 write 커맨드에 이어지는 read 커맨드 - 오픈 뱅크

   그림 11.23은 동일한 랭크의 오픈 뱅크에서 칼럼 Read 커맨드 직후 칼럼 Write 커맨드가 이어지는 경우를 설명하고 있다. Read 커맨드와 Write 커맨드의 차이는, 데이터 흐름이 반대가 된다는 점이다. 그림11.23 에서 데이터 흐름에 의해 칼럼 Read 커맨드와 칼럼 Write 커맨드 사이에 최소 지연 시간 스케줄링이 제한되는 것을 묘사한다. 메모리 컨트롤러가 데이터를 데이터 버스에 위치시키면, 선택된 뱅크의 특정한 칼럼으로 Write 데이터를 버퍼를 통해 전송하기 위해 DRAM 디바이스는 반드시 글로벌 I/O 게이팅을 사용해야 한다. 글로벌 I/O 게이팅은 모든 뱅크 그룹이 공유하기 때문에 Write 커맨드 뒤에 오는 Read 커맨드가 동일한 랭크로 발행되기 위해서는, 칼럼 액세스 커맨드를 통해 사용하고자 하는 특정 뱅크의 ID와는 무관하게 Write 커맨드가 글로벌 I/O 게이팅의 사용을 마칠 때까지 대기해야 한다는 것을 의미한다. 이렇게 동일한 랭크를 향한 Write 커맨드와 이어지는 Read 커맨드 사이의 최소 지연 시간을 위한 커맨드 스케줄링은 tCWD+tBURST+tWTR로 설명할 수 있다.

 

 

11.2.11 Write에서 프리차지로의 타이밍

  그림 11.24 는 칼럼 read에서 칼럼 write로의 타이밍과 칼럼 read에서 프리차지로 이어지는 타이밍 사이의 미세한 차이를 설명하고 있다. 본질적으로 tWTR은 DRAM 디바이스의 인터페이스에 존재하는 글로벌 I/O 게이팅의 멀티플렉서로부터 뱅크 그룹의 로컬 I/O 게이팅을 거쳐 특정 뱅크의 Sense Amplifier로 데이터를 전송하는 데 걸리는 시간을 의미한다. 칼럼 Write 커맨드가 완료되고 tWTR 이후에는 칼럼 Read 커맨드가 글로벌 I/O 게이팅을 사용하여 활성화된 Sense Amplifier로부터 DRAM 디바이스 외부의 데이터 버스로 데이터를 이동시킬 수 있다. 칼럼 Read-to-Precharge 커맨드의 조합과 칼럼 Write-to-Write 커맨드 조합의 차이는 프리차지 커맨드가 Sense Amplifier 내부에 존재하는 데이터를 방출하고 Sense Amplifier를 프리차지하느냐 하지 않느냐에 있다. 프리차지 커맨드는 Write 커맨드가 글로벌 I/O 게이팅과 로컬 I/O 게이팅을 통과하여 Sense Amplifier로 데이터를 이동시키고 DRAM 셀에 새로운 데이터를 입력할 때까지 실행될 수 없다.

 

11.2.12 오픈뱅크에서의 Write와 다른 랭크로 이어지는 Read

  그림 11.25는 그림 11.23에서의 칼럼 Write 커맨드 뒤에 칼럼 Read 커맨드가 이어지는 것과는 약간 다른 상황을 보여주고 있다. 그림 11.25에서는 칼럼 Write 커맨드와 칼럼 Read 커맨드가 서로 다른 랭크로 발행되는 경우를 설명한다. 메모리 시스템의 다른 랭크에서 데이터 전송이 발생하기 때문에 데이터의 전송 방향이 서로 다르더라도 이 경우는 그림 11.23에서 발생하는 처리 지연 현상과는 전혀 다른 모습을 보여준다. 따라서 서로 다른 랭크에 발행되는 Write 커맨드와 Read 커맨드 사이의 최소 지연 시간을 위한 타이밍 스케줄링은 tCWD+tBURST+tRTRS-tCAS로 표현할 수 있다.

반응형