앞 포스팅에서는 DRAM의 기본적인 명령과 해당 명령을 수행하는데 필요한 타이밍 파라미터에 대하여 살펴보았었습니다. 이번엔 이러한 기본적인 DRAM 명령들이 상호작용하게 될 때에 발생할 수 있는 타이밍 파라미터에 대하여 살펴보겠습니다. 이러한 복합적이고 상호작용적인 명령은 오픈 페이지와 클로즈 페이지의 행 주소 버퍼를 제어하는 메모리 시스템에서, 읽기와 쓰기 명령을 수행할 때 사전 검사하도록 설계됩니다. 특히 오픈 페이지 행 주소 버퍼를 제어하는 설계 시스템에서는 해당 행 접근 주소가 개방된 이후에, 동일한 행 주소에 대한 읽기와 쓰기 명령에 대비하여 sense amplifier array가 계속하여 데이터를 유지하게끔 설계됩니다. 이 데이터 값을 유지하는 것은 동일한 bank의 다른 행 주소에 대한 접근 명령에 대하여, 메모리 컨트롤러를 강제하게 됩니다. 이때 sense amplifier를 precharge 하게 되고, 타깃 행 주소 외의 다른 행 주소 접근 명령에 대비하도록 할 때까지 유지되게 됩니다. 오픈 페이지 메모리 시스템의 경우 여러 번의 행 주소 접근 명령 없이 동일 선상의 행 주소에 대하여, 여러 번의 열 주소 접근이 가능한 특정 영역의 메모리를 접근하려 할 때에 사용하는 방법입니다. 오픈 페이지 메모리 시스템에서는 정해진 요청에 대한 DRAM 명령 순서는 메모리 시스템의 상태에 따라 달라지게 됩니다. 또한 오픈 페이지 메모리 시스템의 DRAM 명령 순서는 동적 특성을 갖기게, 상당한 양의 DRAM 명령을 상호작용할 수 있고, 이로 인해 메모리 시스템 상태 조합이 가능하다는 것을 의미합니다. 다수의 명령에 대한 상호작용은 메모리 컨트롤러가 해당 명령의 순서를 예약하는 데 있어서 많은 어려움을 만들게 됩니다. 이러한 상황들에 대하여 어떻게 메모리 컨트롤러가 대처하는지를 각각의 케이스별로 살펴보도록 하겠습니다.
1. 동일한 랭크 내에서 읽기와 쓰기 명령이 연속적일 때
대부분의 DRAM에서는 동일한 랭크(rank), 뱅크(bank), 그리고 채널의 동일한 오픈 행에 대한 읽기 명령이 해당 DRAM 디바이스의 내부 pre fetch 길이와 데이터 버스 위의 데이터 burst 지속 기간에 따라 연속으로 파이프라인 가능하며 해당 명령들에 대하여 예약이 가능합니다. 예를 들어, 0과 1을 연속적으로 읽어 올 때를 살펴보겠습니다. 열의 읽기 명령이 명령 및 주소 버스에 있고, tCAS 파라미터 시간 이후에 DRAM 디바이스는 데이터 버스로 해당 데이터를 전송해주게 됩니다. 동일한 랭크에서 임의적으로 열리게 된 bank들에 대한 열 읽기 명령이 연속적으로 파이프라인이 될 수 때문에, 메모리의 동일한 bank, 동일한 오픈 행에 대한 연속적인 열 읽기 명령은 tBURST 시간 주기마다 예약이 가능합니다. 여기서 가장 중요한 점은, bank의 오픈 로우에 대한 연속적인 열 읽기 명령 스케줄링 시, tBURST의 시간이 무조건 tCCD보다 크거나 같아야 한다는 사실입니다. 그러나 과거의 대부분의 DRAM의 경우 이러한 타이밍은 지켜지기에 큰 문제가 되지는 않습니다. 현재의 DRAM으로 발전되면서, DDR3 SDRAM의 경우, 해당 디바이스에서는 tCCD가 4 사이클인데, DDR3 SDRAM 디바이스의 pre fetch 길이는 보통 8 데이터입니다. 그렇기에, DRAM 디바이스에서 랭크가 동일하거나 다른 bank에 대한 연속적인 열 읽기 명령의 최적화된 시간 계산은 MAX(tBURST, tCCD)로 정의됩니다. 이는 연속적인 열 읽기 명령과 비슷하게, 메모리의 정해진 랭크의 동일한 뱅크 주소에 대한 연속적인 열 주소 쓰기 동작의 경우에도, 매번 이 MAX(tBURST, tCCD) 시간 주기마다 명령 예약이 가능합니다.
2. 읽기 동작 이후 precharge 동작 타이밍
읽기 명령 이후에 바로 오게 되는 precharge 명령을 수행할 때 필요한 파라미터로 Read to Precharge (tRTP)가 있습니다. 이러한 명령이 수행될 때 필요한 최소 명령 수행 시간은 tBURST + tRTP – tCCD로 계산할 수 있습니다. 여기서 tRTP는 DRAM 디바이스의 내부 버스트에 걸리는 시간인 tCCD가 tBURST와 같은 경우에 열의 읽기 명령과 prechrge 하는데 걸리는 최소 명령 타이밍을 나타냅니다. 일부의 DRAM에 한하여 버스트 시간이 다수의 내부 데이터 버스트로 구현될 수 있습니다. 이와 같은 경우를 타이밍 파라미터로 표현하면 tRTP + tCCD와 같이 표현 가능합니다. 기본적으로 tRTP 타이밍 파라미터는 자체적으로 열의 읽기 명령과 precharge 명령 사이에 필요한 최소한의 시간을 정의합니다. 읽기 명령이 전달된 이후에 해당하는 주소의 모든 셀의 정보를 해당 bit line에 전송하고, 이를 sense amplifier 단에서 제대로 sense 하기까지의 시간이 필요하기 때문입니다. 만약 연속적인 열의 읽기 동작이라면, 동작의 앞부분인 읽기에서는 자연스럽게 해당 시간이 확보되지만, 읽기 명령의 마지막 주소에서는 precharge 동작이 너무 이르게 동작할 시, sense amplifier 회로단의 정상적인 동작이 불가능할 수 있기 때문입니다. 한편, 읽기 명령을 수행하기 위해 다수의 짧은 버스트 명령을 하나의 연속적인 버스트로 이루어 사용되는 경우도 있습니다. 이럴 때에, DRAM 디바이스는 I/O 게이트 멀티플렉서를 드라이브하기 위해 sense amplifier를 오픈 상태로 유지할 수밖에 없고, tRTP의 경우 sense amplifier 회로가 계속하여 오픈되는 연장 시간이 충분히 확보하게끔 해야 하는 것입니다. 이를 일반화하여, 열의 읽기 명령에서부터 precharge 명령 사이의 시간을 수식으로 나타낼 수 있고, 이는 tRTP + (N-1) * tCCD로 표현할 수 있습니다. 이때, N은 단일 열 명령을 위한 버스트 수를 나타냅니다.
-참고문헌-
- Memory Systems: Cache, DRAM and Cross-Cutting Issue, Bruce Jacob 외, Elsevier.
'DRAM' 카테고리의 다른 글
복잡한 DRAM 명령의 상호작용 - (2) (0) | 2022.06.08 |
---|---|
DRAM 타이밍 파라미터 - 3 (Read and Write Cycle) (0) | 2022.06.02 |
DRAM 타이밍 파라미터 (Timing Parameter) - (2) (0) | 2022.06.01 |
댓글