DRAM의 경우 유휴 상태일 때의 refresh 명령을 제외하면, 대부분 경우 동작 상태는 읽기와 쓰기를 반복하게 됩니다. 이번 포스팅에서는 이런 대부분의 읽기 사이클과 쓰기 사이클에서 발생하는 명령들을 살펴보고, 관련된 타이밍 파라미터들에 대하여 정리해 보겠습니다.
읽기 사이클: 대개의 DRAM 디바이스에서는 행 주소 접근 명령을 수행할 때 각각의 정해진 bank sense amplifier에 위치하는 array로 수천 개에 달하는 데이터를 전송하게 됩니다. 이렇게 전송된 데이터 중에서 필요한 타깃 데이터는, 읽기 명령을 통해 전달되는 열 주소를 참조하여, 관련된 일부의 수백 비트에 해당하는 데이터만을 해당 데이터 버스를 사용하여 메모리 컨트롤러로 전송하게 됩니다. 메모리의 스트리밍 방식으로 해당 데이터에 접근하게 되는 프로그램 또는 동작의 경우 관련된 sense amplifier에서 활성화된 데이터의 정해진 특정 행에 속하는 수천 개의 셀을 유지하는 것은 다른 행에 대한 접근으로 인해 발생되는 지연 시간이나 파워 소모 없이 메모리의 읽기 동작을 수행하게 됩니다. 즉, 메모리에서 어떠한 값을 읽어올 때, 연속된 공간에 쓰여 있는 값을 읽게 될 때, 동작속도도 빨라지고, 파워 소비도 줄어들게 되는 것입니다. 반대로, 타깃 행 주소와 인접한 위치의 다른 행에 속하는 데이터에 자주 접근하지 않는 메모리 시스템의 경우, 행 주소 접근 명령 이후에 DRAM 셀 array를 precharge 하여 주고, 이어서 동일한 bank 주소에 위치하는 다른 행 주소에 접근이 가능하도록 회로를 안정화하는 것이 속도나 파워 소모면에서 더 나은 결과를 보이게 됩니다. 단일 bank 내에서 DRAM 셀에 접근하는 명령 사이클을 예시로 살펴보겠습니다. 행 주소 접근 명령에 의하여, DRAM 셀로부터 sense amplifier로 해당 데이터가 전송되게 됩니다. 이때 tRCD 시간 이후에는 요청하였던 행의 데이터가 sense amplifier의 회로 동작에 의해 그 값이 판독됩니다. 이후 메모리 컨트롤러가 해당 DRAM 디바이스로 열의 읽기 또는 쓰기 명령을 전송할 수 있는 상태가 됩니다. 열 주소 접근 명령이 전송된 이후에, 메모리 디바이스는 sense amplifier의 데이터를 DRAM 셀에 전송하여 해당 셀의 원래 값에 대한 전압 레벨을 복구하여 줍니다. 그다음으로, 처음 행 주소 접근 명령을 기준하여 tRAS 시간이 지나면, DRAM 셀들은 bit line과 sense amplifier를 초기화시켜주는 precharge 명령을 수행하기 위하여 해당 회로를 안정화시킵니다. 이러한 상태의 순서에 따라, 메모리 시스템에서 bank를 precharge 하여 다른 행 주소 접근 명령을 준비하는 경우를 클로즈 페이지 메모리 시스템이라 부르고, 이와 반대로, sense amplifier의 행 주로 활성화 상태를 유지하는 경우는 오픈 페이지 메모리 시스템으로 부르고 있습니다.
쓰기 사이클: 일반적인 DRAM 디바이스에서 행 사이클 시간의 경우, 쓰기 사이클의 지속 시간에 의해서 그 시간이 제한되게 됩니다. 행 사이클 시간은 DRAM 디바이스가 임의의 데이터를, DRAM 셀이 속한 bank의 랜덤 한 행에 전송하기 위해 걸리는 최소한의 시간을 나타냅니다. 통상적으로 DRAM의 행에 접근을 하는 것은 읽기 또는 쓰기의 동작을 하기 위해 이루어집니다. 그렇기에 쓰기 명령의 경우 데이터는 반드시 메모리 컨트롤러에서 전송되는 값을 사용하여야 하고, 데이터 버스를 통해 전달되어, 해당 I/O 게이트의 멀티플렉서를 거치게 됩니다. 이렇게 도달한 신호는 sense amplifier를 드라이브하게 되고, 최종적으로 목표하는 해당 셀에 저장 되게 됩니다. 이 모든 일련의 과정들이, 관련된 precharge 명령이 수행되기 전까지 모두 완료되어야 하는 것입니다. 다시 정리해 보면, 행 사이클을 수행하는 시간은 행 주소 접근 시간과 열에 쓰기 동작을 하는 지연 시간, 데이터를 전송할 때 걸리는 시간, 쓰기 명령에 사용된 데이터의 복구 시간, 그리고 precharge를 수행하는 시간의 합이 됩니다. 이를 타이밍 파라미터로 살펴보면, tRAS의 시간은 tRCD + tCWD + tCCD + tWR 시간에 해당하는 모든 시간을 합친 시간 값 보다 커야 한다는 것을 의미합니다. 만약 해당 시간이 충족되지 않을 경우, 해당 DRAM 디바이스의 셀은 메모리 컨트롤러에서 의도한 값의 전압에 도달하지 못하고, 임의의 전압 레벨이 되거나, 아예 해당 쓰기 명령이 bypass 되는 경우가 생길 수 있습니다.
당연하게도, 현재 사용되고 있는 DRAM은 위에서 설명한 단순한 사이클로만 동작하는 것은 아닙니다. 서로 다른 명령들이 유기적으로 결합하여 좀 더 복잡한 명령을 수행하게 되고, 이때 원활한 메모리 동작을 위한 추가적인 타이밍 파라미터도 필요합니다. 복잡한 명령 조합의 예를 몇 가지 들어보겠습니다. 우선 column read and precharge 명령입니다. 이는 읽기 명령과 precharge 명령을 하나로 결합한 것으로써, 읽기 명령 이후에 DRAM의 bank를 precharge 하게 되는 클로즈 페이지 메모리 시스템에 사용됩니다. 이러한 명령을 사용하게 되면, 두 명령을 수행하기 위해 필요하던 주소 버스의 대역폭을 감소할 수 있는 장점이 있습니다. 연달아 오게 되는 precharge 명령은 DRAM의 메모리 컨트롤러가 별도의 주소와 명령 버스를 할당하지 않아도 되기에, 여기에 다른 명령이 배치될 수 있기 때문입니다. 이와 같이 연달아 오게 되는 prechrge 명령을 사용하면, tRAS 타이밍 조건을 위반하지 않도록 설계됩니다. 이러한 방식의 클로즈 페이지 메모리 시스템은 행 주소를 접근하는 precharge 명령에 대한 걱정 없이 DRAM 디바이스로부터 데이터를 검색하기 위한 최선의 타이밍에 해당 명령을 수행할 수 있게 되는 것입니다. 또 다른 복잡한 명령으로 posted CAS 명령이 있는데, 이는 메모리 컨트롤러가 행 주소 접근 명령 이후에 열 주소 접근 명령을 내리게 됨으로써, 클로즈 페이지 메모리 시스템을 위한 컨트롤러를 설계하는 데 있어서 매우 용이하다는 장점이 있습니다.
-참고문헌-
- Memory Systems: Cache, DRAM and Cross-Cutting Issue, Bruce Jacob 외, Elsevier.
'DRAM' 카테고리의 다른 글
복잡한 DRAM 명령의 상호작용 - (1) (0) | 2022.06.06 |
---|---|
DRAM 타이밍 파라미터 (Timing Parameter) - (2) (0) | 2022.06.01 |
DRAM 타이밍 파라미터 (Timing Parameter) - (1) (0) | 2022.05.28 |
댓글