본문 바로가기
DRAM

DRAM 회로의 구성과 기본 동작

by 토리윤 2022. 5. 18.

 DRAM을 처음 연구하게 되었을 때, 우선 그 방대한 데이터 시트와 여러 가지 동작 명령, 그리고 수많은 신호선들에 당황했던 기억이 납니다. 현재 상용되는 대부분의 DRAM의 셀(cell) 구조는 1개의 트랜지스터와 1개의 capacitor로 이루어진 1T1C 구조로 이루어져 있습니다. 이 기본 구조인 셀이, 수십만 또는 수백만 개가 모여 하나의 DRAM chip을 구성하게 됩니다. 결국, 셀을 하나의 공간, 또는 방이라고 생각하면, DRAM chip은 이런 방이 2차원 배열로 가지런히 정리된 큰 아파트나 빌딩이라고 생각하면 될 것 같습니다. 이 구조적인 특징으로 인하여, 기본적인 동작인 쓰기, 읽기를 하기 위해서는 필수적으로 필요한 여러 가지 요소들로 구성되어 있습니다. 크게 보면, 메모리 코어 파트, 주소 관련 파트, 데이터 관련 파트, 그리고 각종 신호들을 제어할 수 있는 제어 파트로 볼 수 있습니다. 코어 파트의 경우에는 메모리 cell들로 이루어진 메모리 cell array이가 있고, 여기에 접근하기 위하여 필요한 row decoders와 column decoders 회로가 있습니다. 이 코어에 접근하기 위해서 필요한 것이 주소와 데이터입니다. 예를 들어 아파트를 예로 들자면, 한국 아파트 101동 505호에는 4명이 거주한다 라는 식입니다. 물론 DRAM은 디지털 회로이기 때문에, 데이터는 1 또는 0이 전부입니다. 주소 관련 파트에는 주소를 파악할 수 있는 decoder 회로와 counter회로 등으로 구성되어 있고, 데이터 관련 파트에는 각 셀에 있는 데이터를 접근할 수 있는 I/O와 I/O 버퍼, 그리고 sense amplifier 등의 회로로 구현되어 있습니다. 마지막으로 제어 파트에는 메모리 동작을 담당하는 RAS, CAS, WE, CS 등등의 매우 의문스럽게 보이는 신호들을 제어하게 됩니다. 앞으로의 포스팅에서는 이 주요 회로들이 어떻게 구성되어 있고, 수많은 신호 중에서 DRAM을 동작하는데 제일 중요한 신호들이 언제 어떻게 동작하게 되는지 살펴보도록 하겠습니다.


 DRAM의 발전 방향에 중요한 3가지 요소를 꼽는다면, 크기를 증가하는 집적도와, 데이터를 읽고 쓰는 속도 증가, 그리고 동작하는데 필요한 전력 소모를 줄이는 것입니다. 이를 위해 I/O interface를 고속화하기 위해 독특한 방법들을 적용하게 됩니다. 모든 신호들은 동기화하여 컨트롤하는데, 이들 신호를 명령화 하여 사용하는 구조인 것입니다. 이는 DRAM 데이터 시트의 command truth table에 정리되어 있습니다. 데이터가 출력 흐름을 보자면, 주소 입력을 통해 row address, column address 가 활성화되고, row decoder에 의해 word line이 활성화되어 각 셀의 데이터가 sense amplifier에 sensing 됩니다. 이후에 필요한 데이터가 column decoder에 의해 선택되고, 이렇게 선택된 데이터가 I/O 파트를 거쳐 출력되는 것입니다.  입력의 경우는 입력된 주소 값을 row decoder와 column decoder를 통해 선택되는 셀에, 입력한 데이터가 써지게 됩니다. DRAM에 임의의 주소 값이 입력된다면, word line이 선택되고, 필요한 셀의 데이터가 bit line에 실리게 됩니다. 이때 sense amplifier가 해당 값을 감지하게 되고 이를 일정한 전압으로 증폭시켜줍니다. 이 증폭된 신호는 data bus line으로 전송되게 되고, data output은 이 신호를 다시 증폭하여 외부로 전달하게 됩니다. DRAM의 동작 원리를 파악할 때 제일 중요한 사실은 DRAM 셀을 구성하고 있는 capacitor입니다. 이 capacitor를 기억소자로 사용하고, 이를 제어하기 위해 NMOS transistor를 사용하는 것이죠. 셀의 capacitor의 특성으로는 capacitance가 중요합니다. 왜냐하면 capacitor에 저장되는 전하는 그 저장되어 있는 값이 항상 유지되지 않기 때문입니다. 자연적인, 또는 주변 환경에 따라 가속되어 전하가 누설되게 되고, 이 누설되는 전하 값을 보충하기 위해 별도의 동작인 refresh가 필요합니다. DRAM의 데이터 보존성을 높이고 보다 더 신뢰성 높은 DRAM을 구현하기 위해서, refresh에 관련된 많은 연구들이 이뤄지고 있습니다. 


 DRAM 셀에 데이터를 기록하고 읽는 동작을 간단히 살펴보겠습니다. 셀은 1 또는 0의 값으로만 읽거나 쓰게 됩니다. 셀에 1이라는 값을 쓰기 위해서는, 해당하는 셀의 bit line에 1에 해당하는 전압을 인가하고, 셀의 트랜지스터인 word line을 turn on 하여 셀의 capacitor를 1에 해당하는 전압만큼 드라이브하여 줍니다. 그리고 word line을 turn off 하고, bit line을 원래의 전압으로(예를 들어 동작 전압의 절반 값) 드라이브하게 되는데, 이렇게 하여도 셀의 capacitor는 그 값을 일정한 시간 동안 유지하게 됩니다. 0을 쓰는 경우에는 그 순서가 1을 쓰는 경우와 같고, 전압 상태만 반대가 됩니다. 셀의 데이터 값을 읽어내는 경우를 살펴보겠습니다. 우선 셀에 1의 값이 쓰여 있다고 가정하겠습니다. 해당하는 셀의 word line을 tur on 하게 되면, capacitor에 있던 전하들이 bit line 쪽으로 이동하게 되고, 이 작은 전하들에 의하여 bit line의 전압이 미세하게 변하게 됩니다. 이 미세하게 변한 값이, bit line 끝 부분에 있는 sense amplifier에 sensing 됩니다. 이후 sense amplifier에 의하여 bit line은 해당 셀이 의도한 전압 즉 1에 해당하는 전압으로 증폭되고, 결과적으로 이 값이 I/O 버퍼에 기록되어 최종 출력되는 것입니다. 셀에 0이 쓰여 있는 경우, 순서는 동일하고, 0에 해당하는 전압 값으로 회로가 동작하게 됩니다. 

 

 다음 포스팅에서는 sense amplifier의 구체적인 동작 타이밍과 read, write 동작에 관여하는 컨트롤 신호들에 대해 주로 살펴보겠습니다. 

 

'DRAM' 카테고리의 다른 글

DRAM의 간단한 Read 와 Write 동작  (0) 2022.05.21
간단한 Sense Amplifier 동작 원리  (0) 2022.05.19
DRAM 신뢰성 문제: Row Hammer (행 해머)  (0) 2022.05.15

댓글