본문 바로가기
DRAM

복잡한 DRAM 명령의 상호작용 - (2)

by 토리윤 2022. 6. 8.

  대부분의 DRAM의 경우 단일 읽기 명령이나 쓰기 명령을 수행하는 경우보단, 연속적인 읽기 또는 쓰기 명령을 하는 경우가 많습니다. 특히 동일한 bank 주소 내에서의 동일한 행 주소에 접근하여 연속적인 읽기 또는 쓰기를 하는 경우, 이후의 명령들을 파이프라인 하여 수행할 수 있습니다. 하지만 bank 주소나 행 주소가 다른 주소에 연속적인 읽기 또는 쓰기를 수행하는 경우, 현재 열 명령을 수행하고 있는 행에 대하여 precharge를 수행하여 해당 행을 닫아주고, 이후에 타깃 행을 열어야 하기 때문에, 이에 걸리는 추가 지연 시간이 필요해지고, 이는 전체적인 tRC의 증가를 발생하게 됩니다. 이번 포스팅에서는 이와 같이 DRAM 내부에서 연속적인 명령을 수행 시, 해당 주소에 따라 발생할 수 있는 명령 수행 시간의 차이에 대하여 살펴보겠습니다.

동일한 bank의 서로 다른 행 주소일 때 (최적의 타이밍)
 DRAM의 명령 수행 시, 메모리 array의 동일한 bank 주소 안에서 서로 다른 주소를 갖는 행에 대한 연속적인 읽기 명령의 요청이 있는 경우를 가정해 보겠습니다. 이와 같은 명령 순서에서는 첫 번째 읽기 명령이 발행된 이후에, sense amplifier의 array가 동일한 bank 주소의 다른 행 주소에 접근하기 위해 해당 행을 활성화시키기 전에 precharge가 완료되어야 합니다. 즉, 같은 bank 주소에 위치하는 서로 다른 행 주소에 접근할 때에는, 한 번에 한 개의 행 주소에만 접근하여야 하고, 이를 위해 word line 전압이 완벽하게 On/Off 되는 전압으로 설정이 되는 시간이 확보되어야 하는 것입니다. 이때, 전자로 접근되었던 word line이 완벽하게 비활성화되기 위해선, precharge 시간을 필히 준수하여야 합니다. 이렇게 precharge 명령 이후에 tRP 시간만큼 해당 회로가 동작을 끝내게 되면, 다른 행 주소에 대하여 접근이 가능해지고, 이 다른 행 주소에 접근하는 tRCD 시간 이후에, 타깃 행에 대한 읽기 명령을 수행할 수 있게 됩니다. 이를 최적의 타이밍이라고 할 때, 걸리는 시간은 tBURST + tRTP – tCCD + tRP + tRCD로 계산할 수 있습니다. 이러한 동작은 tRAS의 복구 시간이 유효한 동안에 연속적인 열에 대한 읽기 명령을 수행할 수 있습니다.

동일한 bank의 서로 다른 행 주소일 때 (최악의 타이밍)
 위에서는 동일한 bank 주소 내에서, 서로 다른 행 주소에 대한 읽기 동작 시 최적의 타이밍에 대하 살펴보았습니다. 그러나 항상 이와 같이 베스트 케이스만 발생할 수는 없습니다. 왜냐하면 위에 예시에서는 이전 행 주소에 접근하는 타이밍 이후로 tRAS의 시간이 지나게 되고, 해당 데이터가 이미 DRAM 셀에서 refresh 되는 것을 가정하였기 때문입니다. 만약 현재의 행 데이터가 DRAM의 각각의 셀에 복구가 되지 않은 경우에, precharge 명령은 동일한 bank에 들어온 이전의 행 주소 접근에 대한 tRAS 시간 주기가 지나지 전까지 수행될 수 없기 때문입니다. 즉, 이전 행에서 어떠한 명령을 수행하였든, 해당 행을 열고 있어야 하는 시간인 tRAS가 확보되어야, 이후에 precharge 명령도 발생할 수 있고, 해당 행 주소에 대하여 동작을 닫고, 이후에 오게 될 행을 열 수 있기 때문입니다. 이렇게 동일한 bank 주소 안에서 서로 다른 행 주소에 대하여 연속적인 열 명령 수행을 하게 되더라도, 최악의 타이밍으로 접근하게 될 수 있습니다. 이런 경우, 첫 번째 열 명령이 수행되는 타이밍은, 행 주소 접근 명령 이후에 바로 발행된 것이라고 가정하겠습니다. 이러한 경우에는 precharge 명령이 첫 번째 열 읽기 명령 직후에 바로 발행될 수 없습니다. 이전에 접근한 행 주소 명령이 발행된 이후, tRAS 시간 주기가 지나기까지 기다려야 합니다. 이후에는 precharge 명령 이후에 tRP 시간 주기가 흐르게 되면 두 번째 행 접근 명령이 발행될 수 있는 것입니다. 이후에는 다시 tRCD 시간 주기 이후에 두 번째 열 읽기 명령이 해당 명령 순서에 대하여 완성할 수 있게 됩니다. 즉, 앞선 최적의 타이밍 경우에 대해 살펴보았듯이, 최악의 경우에는 연속적인 tRAS + tRP 시간, 즉, tRC 시간이 걸릴 수 있는 것입니다.

 이와 같이, 동일한 bank 주소 내에서 서로 다른 행 주소에 접근하는 경우에, 상황에 따라 열의 읽기 명령이 최적화될 수도 있고, 아닐 수도 있는 경우에 대하여 살펴보았습니다. 이러한 최적의 타이밍과 최악의 타이밍이 차이 나는 이유는 크게 두 가지이고 다음과 같습니다. 우선, DRAM 메모리 컨트롤러가 무조건 해당 행 주소 접근 명령의 타이밍을 알고 있어야 합니다. 또한, 모든 행 주소에 대한 precharge 명령을 수행하는 경우, 이전에 접근하고 있는 행 주소에 대한 복원 조건이 충족되어야 할 때까지 해당 행 주소에 대한 열 명령 수행을 지연해야만 합니다. 한편, tRP 시간이 충분히 주어지지 않을 때, DRAM 내부적으로 같은 bank 주소 내에서 다른 행 주소에 있는 셀의 값을 읽어올 때, 어떠한 문제가 발생할 수 있는지 생각해볼 필요성이 있습니다. 이와 같은 경우에 대하여 DRAM의 내부 회로가 어떤 방식으로 동작할지 알 수는 없으나, 확실한 것은 단일 시간에 메모리 array에서 접근할 수 있는 행 주소는 오직 한 개여야만 하고, 이를 위한 타이밍 확보가 중요하다는 사실입니다. 이처럼 DRAM 명령이나 타이밍 파라미터가 충분한 시간이 확보되지 않을 때 DRAM이 어떻게 오동작하는지에 대하여 많은 연구들이 이뤄져 있습니다. 이것과 관련된 일부 뛰어난 논문 자료들을 분석하여, 추후 포스팅하는 기회를 가져보도록 하겠습니다.

 


-참고문헌-

  • Memory Systems: Cache, DRAM and Cross-Cutting Issue, Bruce Jacob 외, Elsevier.

댓글