본문 바로가기

전체 글18

DRAM은 어떻게 발전했을까? - Intel 1103, Asynchronous DRAM DRAM의 역사에 대해 살펴보도록 하겠습니다. 첫 번째 DRAM은 잘 알려져 있다시피, 1966년 IBM의 Robert Dennard에 의해 발명되었습니다. 이후 1970년에 Intel에서 1103으로 이름 지어진 첫 번째 사용 DRAM을 출시하게 됩니다. 이후에는 다양한 목적과 종류의 DRAM이 꾸준히 개발되어 왔습니다. 하지만 1990년대 중반까지는 대부분 더 높은 집적도와 낮은 가격을 목표로 아키텍처가 개발되어왔습니다. 그 이후부터, 상용 DRAM은 좀 더 다양한 요구를 직면하게 됩니다. 이는 이 시기에 출시되는 개인용 컴퓨터나 전자기기의 발전을 생각해보면 당연한 일입니다. 그리하여 DRAM은 낮은 가격, 높은 대역폭, 낮은 지연시간(latency), 낮은 파워 소모 등 여러 목적에 부합하는 설계 .. 2022. 6. 12.
복잡한 DRAM 명령의 상호작용 - (3) Bank Interleave 지난 포스팅에서는 동일한 bank 주소에서 서로 다른 행 주소에 접근하여 연속적인 읽기 명령을 수행할 때 어떠한 지연이 발생할 수 있는지에 대해 살펴보았습니다. 그렇다면 bank의 주소가 다를 때, 서로 다른 행 주소에 연속적인 읽기 명령을 수행하는 경우엔 어떤 파라미터를 고려해야 할까요? 이것과 관련하여 이번 글에서는 서로 다른 뱅크를 연속적으로 접근할 때 어떤 일이 발생할 수 있는지 살펴보겠습니다. 특히, 타이밍이 불충분한 조건을 갖춘 경우에 연속적인 읽기 명령이 요청되었을 때 해당 bank에서는 어떻게 명령을 처리할 수 있는지에 집중하여 살펴보겠습니다. Bank Interleave가 없을 때 우선 동일한 rank의 주소에서, 서로 다른 bank에 대한 두 개의 연속적인 읽기 명령을 요청하는 경우를 .. 2022. 6. 9.
복잡한 DRAM 명령의 상호작용 - (2) 대부분의 DRAM의 경우 단일 읽기 명령이나 쓰기 명령을 수행하는 경우보단, 연속적인 읽기 또는 쓰기 명령을 하는 경우가 많습니다. 특히 동일한 bank 주소 내에서의 동일한 행 주소에 접근하여 연속적인 읽기 또는 쓰기를 하는 경우, 이후의 명령들을 파이프라인 하여 수행할 수 있습니다. 하지만 bank 주소나 행 주소가 다른 주소에 연속적인 읽기 또는 쓰기를 수행하는 경우, 현재 열 명령을 수행하고 있는 행에 대하여 precharge를 수행하여 해당 행을 닫아주고, 이후에 타깃 행을 열어야 하기 때문에, 이에 걸리는 추가 지연 시간이 필요해지고, 이는 전체적인 tRC의 증가를 발생하게 됩니다. 이번 포스팅에서는 이와 같이 DRAM 내부에서 연속적인 명령을 수행 시, 해당 주소에 따라 발생할 수 있는 명령.. 2022. 6. 8.
복잡한 DRAM 명령의 상호작용 - (1) 앞 포스팅에서는 DRAM의 기본적인 명령과 해당 명령을 수행하는데 필요한 타이밍 파라미터에 대하여 살펴보았었습니다. 이번엔 이러한 기본적인 DRAM 명령들이 상호작용하게 될 때에 발생할 수 있는 타이밍 파라미터에 대하여 살펴보겠습니다. 이러한 복합적이고 상호작용적인 명령은 오픈 페이지와 클로즈 페이지의 행 주소 버퍼를 제어하는 메모리 시스템에서, 읽기와 쓰기 명령을 수행할 때 사전 검사하도록 설계됩니다. 특히 오픈 페이지 행 주소 버퍼를 제어하는 설계 시스템에서는 해당 행 접근 주소가 개방된 이후에, 동일한 행 주소에 대한 읽기와 쓰기 명령에 대비하여 sense amplifier array가 계속하여 데이터를 유지하게끔 설계됩니다. 이 데이터 값을 유지하는 것은 동일한 bank의 다른 행 주소에 대한 접.. 2022. 6. 6.
DRAM 타이밍 파라미터 - 3 (Read and Write Cycle) DRAM의 경우 유휴 상태일 때의 refresh 명령을 제외하면, 대부분 경우 동작 상태는 읽기와 쓰기를 반복하게 됩니다. 이번 포스팅에서는 이런 대부분의 읽기 사이클과 쓰기 사이클에서 발생하는 명령들을 살펴보고, 관련된 타이밍 파라미터들에 대하여 정리해 보겠습니다. 읽기 사이클: 대개의 DRAM 디바이스에서는 행 주소 접근 명령을 수행할 때 각각의 정해진 bank sense amplifier에 위치하는 array로 수천 개에 달하는 데이터를 전송하게 됩니다. 이렇게 전송된 데이터 중에서 필요한 타깃 데이터는, 읽기 명령을 통해 전달되는 열 주소를 참조하여, 관련된 일부의 수백 비트에 해당하는 데이터만을 해당 데이터 버스를 사용하여 메모리 컨트롤러로 전송하게 됩니다. 메모리의 스트리밍 방식으로 해당 데이.. 2022. 6. 2.
DRAM 타이밍 파라미터 (Timing Parameter) - (2) 이번 글에서는 DRAM 동작 파라미터 중에서 Precharge와 Refresh 명령에 대하여 살펴보겠습니다. 각 명령을 수행하는데 필요한 파라미터가 무엇이 있고, 어떻게 정의되며, 해당 파라미터들이 기존의 다른 파라미터와 어떠한 연관성을 갖게 되는지에 집중하여 정리해 보겠습니다. Precharge 명령: DRAM의 여러 동작 중 precharge 명령은 행 동작이 끝남을 알리게 됩니다. 즉, DRAM 셀 array에 읽기 또는 쓰기 동작을 수행 후에, 해당 행에 더 이상의 접근 명령이 없게 된다면, 또는 특정 조건을 만족하여서 강제로 해당 행의 동작을 마쳐야 할 때, 이 precharge 명령이 수행되는 것입니다. 보통 DRAM의 경우 데이터를 접근할 때 크게 두 가지의 과정으로 분류할 수 있습니다. 첫.. 2022. 6. 1.