DRAM의 동작원리 핵심 3가지

DRAM(Dynamic Random Access Memory) 은 컴퓨터 메모리에서 매우 중요한 역할을 하며, 그 동작 원리를 이해하면 컴퓨터가 데이터를 어떻게 저장하고 처리하는지에 대한 이해도가 높아질 것입니다.

DRAM은 휘발성 메모리의 한 종류로, 컴퓨터와 같은 전자 기기에서 일시적인 데이터를 저장하는 데 사용됩니다.

DRAM의 가장 큰 특징은 매우 빠른 속도로 데이터를 읽고 쓸 수 있다는 점입니다. 하지만 전원이 꺼지면 데이터가 사라지는 휘발성 특성을 가지고 있습니다.

DRAM 의 동작원리 핵심 3가지와 그 핵심 원리들이 각각 디테일하게 어떻게 작동하는지에 대해서 알아보고자 합니다.

Capacitor 내에 전하가 어떻게 감지되고, 각 Cell 들의 주소를 지정하는 원리까지도 알아보겠습니다.

DRAM 의 구조

DRAM 동작원리

위 그림은 DRAM 셀의 구조를 도식화한 것입니다. 각 요소에 대해 설명하면 다음과 같습니다.

Capacitor (커패시터): 전하를 저장하는 요소입니다. 커패시터는 ‘1’ 또는 ‘0’의 데이터를 저장할 수 있습니다. 그림에서 커패시터는 아래쪽에 위치하고 있습니다.

Transistor (트랜지스터): 커패시터와 비트 라인(Bit Line) 사이의 연결을 제어합니다. 트랜지스터는 데이터 읽기 및 쓰기 동작을 가능하게 합니다. 그림에서 트랜지스터는 위쪽에 위치하고 있습니다.

Bit Line (비트 라인): 데이터를 읽고 쓰는 데 사용되는 선입니다. 각 셀은 비트 라인을 통해 데이터를 전송하거나 수신합니다. 그림에서 세로로 그려져 있습니다.

Word Line (워드 라인): 트랜지스터를 활성화하여 셀을 선택하는 데 사용되는 선입니다. 행 주소에 해당합니다. 그림에서 가로로 그려져 있습니다.

DRAM의 동작원리 3가지

DRAM의 동작은 크게 세 가지 단계로 나누어 설명할 수 있습니다: 데이터 쓰기, 데이터 읽기, 리프레시.

1. 데이터 쓰기(Write)

데이터 쓰기는 다음과 같은 과정을 거칩니다:

  • 행 주소 지정(Row Address Strobe, RAS): 먼저 메모리 셀의 행 주소가 선택됩니다. 이를 통해 특정 행에 접근할 수 있습니다.
  • 열 주소 지정(Column Address Strobe, CAS): 행이 선택된 후, 열 주소가 지정됩니다. 이를 통해 특정 셀을 선택할 수 있습니다.
  • 데이터 저장: 선택된 셀의 트랜지스터를 통해 커패시터에 데이터를 저장합니다. ‘1’을 저장할 경우 커패시터가 충전되고, ‘0’을 저장할 경우 커패시터가 방전됩니다.

2. 데이터 읽기(Read)

데이터 읽기는 데이터 쓰기와 비슷한 과정을 거칩니다:

  • 행 주소 지정(Row Address Strobe, RAS): 읽고자 하는 셀의 행 주소가 선택됩니다.
  • 열 주소 지정(Column Address Strobe, CAS): 행이 선택된 후, 열 주소가 지정됩니다.
  • 데이터 읽기: 선택된 셀의 트랜지스터를 통해 커패시터에 저장된 전하 상태를 감지 증폭기(Sense Amplifier)를 사용하여 읽어냅니다. 커패시터가 충전된 상태면 ‘1’, 방전된 상태면 ‘0’으로 읽힙니다.

3. Refresh – DRAM 동작원리의 핵심

DRAM(Dynamic Random Access Memory)은 각 셀이 커패시터와 트랜지스터로 구성되어 있습니다. 커패시터는 데이터를 전하(Charge)로 저장하지만, 시간이 지남에 따라 이 전하는 자연스럽게 소멸합니다. 리프레시는 이러한 전하 소멸을 방지하고 데이터를 유지하기 위해 주기적으로 각 셀의 전하를 재충전하는 과정입니다.

3.1 Refresh 의 필요성

DRAM의 커패시터는 아주 작고, 그에 저장된 전하는 시간이 지남에 따라 서서히 방전됩니다. 만약 이 전하를 재충전하지 않으면, 커패시터의 전하가 완전히 방전되어 데이터가 사라질 수 있습니다. 따라서 DRAM은 주기적으로 모든 셀을 리프레시하여 데이터를 유지합니다.

3.2 Refresh 동작 원리

리프레시 주기 : DRAM 칩은 일정한 주기마다 리프레시를 수행합니다. 일반적으로 수 밀리초(ms)마다 한 번씩 모든 셀을 리프레시합니다. 이 주기는 DRAM의 특성과 설계에 따라 다를 수 있습니다.

리프레시 명령 : 리프레시는 리프레시 명령을 통해 이루어집니다. 이 명령은 메모리 컨트롤러가 DRAM 칩에 주기적으로 전송하여 리프레시 과정을 시작하게 합니다.

행 리프레시 : 리프레시는 보통 한 번에 하나의 행(Row) 단위로 수행됩니다. 각 행의 모든 셀을 선택하여, 각 셀의 데이터를 재읽고 다시 써넣는 과정을 거칩니다. 이를 통해 커패시터의 전하가 재충전됩니다.

자동 리프레시(Auto-Refresh): 일반적으로 메모리 컨트롤러가 DRAM 칩에 리프레시 명령을 주기적으로 보내어 리프레시를 수행합니다.

자율 리프레시(Self-Refresh): DRAM 칩이 저전력 모드로 전환될 때, 내부 타이머를 사용하여 자체적으로 리프레시를 수행합니다. 이는 특히 전력 소모를 줄여야 하는 모바일 기기에서 유용합니다.

3.3 Refresh의 영향

리프레시는 DRAM의 데이터를 유지하는 데 필수적이지만, 그 과정에서 일부 성능 저하가 발생할 수 있습니다. 리프레시 동안 메모리 접근이 일시적으로 중단되기 때문에, 이를 최소화하기 위해 고성능 DRAM에서는 리프레시 주기를 최적화하고 있습니다.

DRAM의 전하 상태 감지 원리

주소 지정 및 셀 선택 : 먼저, 읽고자 하는 데이터가 저장된 셀의 행(Row)과 열(Column) 주소가 선택됩니다. 이를 통해 특정 셀에 접근할 수 있게 됩니다.

감지 증폭기(Sense Amplifier) 활성화 : 셀의 커패시터에 저장된 전하 상태를 읽기 위해, 감지 증폭기(Sense Amplifier)가 활성화됩니다. 이 증폭기는 매우 작은 전하 변화를 감지하고 이를 증폭하는 역할을 합니다.

비트선(Bit Line) 전압 변화 : 셀의 커패시터는 비트선(Bit Line)과 연결되어 있습니다. 감지 과정에서, 셀의 트랜지스터가 활성화되면 커패시터에 저장된 전하가 비트선으로 흐르게 됩니다. 이때 비트선의 전압이 미세하게 변화합니다.

전하 상태 감지 : 감지 증폭기는 비트선의 전압 변화를 감지합니다. 초기 상태에서 비트선의 전압은 중간 값으로 유지되며, 셀의 커패시터가 방전된 상태이면(즉, 데이터가 0이면) 비트선 전압이 낮아지고, 충전된 상태이면(데이터가 1이면) 비트선 전압이 높아집니다. 감지 증폭기는 이 전압 변화를 감지하여 셀의 데이터를 읽어냅니다.

데이터 복원 : DRAM의 특성상, 읽기 과정에서 커패시터의 전하가 소모됩니다. 따라서 읽기 동작 후에는 원래의 데이터를 복원하기 위해 감지 증폭기의 출력값을 다시 셀에 저장합니다. 이를 리프레시(Refresh)라고 합니다.

DRAM의 주소 지정 원리

DRAM의 주소 지정은 두 단계로 이루어집니다: 행 주소 지정(Row Address Strobe, RAS)과 열 주소 지정(Column Address Strobe, CAS). 이 두 단계를 통해 특정 셀에 접근하여 데이터를 읽거나 쓸 수 있습니다.

1. 행 주소 지정 (Row Address Strobe, RAS)

행 주소 지정은 DRAM 셀의 행(Row)에 접근하는 과정입니다:

  • 행 주소 전송: 메모리 컨트롤러는 먼저 행 주소를 DRAM 모듈로 전송합니다. 이 행 주소는 메모리 셀의 특정 행을 선택하는 데 사용됩니다.
  • RAS 신호: 행 주소가 전송된 후, RAS 신호가 활성화됩니다. 이 신호는 DRAM 모듈에게 행 주소가 유효하다는 것을 알려줍니다.
  • 행 디코더: DRAM 내부의 행 디코더(Row Decoder)는 행 주소를 받아 해당 행을 활성화합니다. 이렇게 하면 해당 행의 모든 셀이 준비 상태가 됩니다.

2. 열 주소 지정 (Column Address Strobe, CAS)

열 주소 지정은 특정 행 내의 열(Column)에 접근하는 과정입니다

  • 열 주소 전송: 행 주소가 지정된 후, 메모리 컨트롤러는 열 주소를 DRAM 모듈로 전송합니다. 이 열 주소는 활성화된 행 내의 특정 셀을 선택하는 데 사용됩니다.
  • CAS 신호: 열 주소가 전송된 후, CAS 신호가 활성화됩니다. 이 신호는 DRAM 모듈에게 열 주소가 유효하다는 것을 알려줍니다.
  • 열 디코더: DRAM 내부의 열 디코더(Column Decoder)는 열 주소를 받아 해당 열을 활성화합니다. 이렇게 하면 행과 열이 교차하는 지점에 위치한 특정 셀에 접근할 수 있습니다.

3. 데이터 접근

행 주소와 열 주소가 지정된 후, DRAM은 해당 셀에 접근하여 데이터를 읽거나 쓸 수 있습니다:

  • 데이터 읽기(Read): 커패시터의 전하 상태를 감지 증폭기(Sense Amplifier)가 읽어 데이터를 반환합니다. 전하가 충전된 상태면 ‘1’, 방전된 상태면 ‘0’으로 읽힙니다.
  • 데이터 쓰기(Write): 원하는 데이터를 커패시터에 저장합니다. ‘1’을 저장할 경우 커패시터가 충전되고, ‘0’을 저장할 경우 방전됩니다.