1. Testbench (테스트벤치)

Testbench는 설계된 하드웨어 모듈을 시뮬레이션하고 검증하기 위해 작성된 코드입니다. 실제 하드웨어에서 사용하는 입력 신호를 제공하고, 결과가 예상대로 나오는지 확인하는 역할을 합니다. Testbench는 실제 하드웨어로 구현되지 않으며, 시뮬레이션에서만 동작합니다.

Testbench의 주요 기능:

  • 입력 신호 생성: Testbench는 DUT에 필요한 입력 신호를 생성합니다. 이 신호들은 클록, 리셋, 데이터 입력 등 DUT의 동작을 유도하는 모든 신호를 포함합니다.
  • 결과 검증: Testbench는 DUT로부터 나오는 출력 신호를 확인하고, 예상한 결과와 비교하여 DUT가 올바르게 동작하는지 검증합니다.
  • 시뮬레이션 종료: 특정 시간 후 시뮬레이션을 종료하거나 특정 조건이 충족되면 시뮬레이션을 자동으로 종료합니다.

2. DUT (Device Under Test, 테스트 대상 장치)

DUT는 Testbench에서 검증하려는 실제 설계 모듈입니다. DUT는 최종적으로 하드웨어로 구현되며, Testbench에서 생성된 신호를 받아 그에 따라 동작하는 시스템의 중심이 됩니다.

DUT의 주요 역할:

  • 설계된 하드웨어 동작: DUT는 설계자가 구현한 하드웨어의 기능을 수행하는 모듈입니다. Testbench에서 제공된 입력 신호에 따라 동작하며, 출력 신호를 생성합니다.
  • 검증 대상: DUT는 검증 대상이므로, Testbench를 통해 올바르게 동작하는지 여부가 테스트됩니다. DUT의 출력이 예상한 결과와 일치하는지 확인하는 것이 Testbench의 목적입니다.

실습) Clock Gating Model 설계하기

> Logic을 사용하지 않을 때에도 Clock신호를 계속 입력하게 된다면 Power을 계속 소모하게 됩니다.

   이를 방지 하고자, 전력 절감 기술 중 하나로써, Clock 을 On/Off시키는 Clock Gating Model을 사용합니다.

>실제 현업에서 Clock을 함부로 건들이면 여러 문제가 야기 될 수 있기 때문에, 보통 Clock Gating용 Cell을 Library에서 불러서 사용합니다.

 

 

- Verilog Code

* https://github.com/Vamosssss/Basic/tree/main/02.%20Clock_Gating_model

 

 

 

* https://wpaud16.tistory.com/entry/Verilog-HDL-DUT-Test-Bench-8bit-adder-8%EB%B9%84%ED%8A%B8-%EB%8D%A7%EC%85%88%EA%B8%B0-vivado

'Verilog HDL > Basics' 카테고리의 다른 글

06. Combination Logic  (0) 2024.10.06
05. D Flip-Flop & Reset(실습)  (0) 2024.10.06
04. D Flip-Flop  (0) 2024.10.06
03. Values & Reset  (0) 2024.10.06
01. Clock 생성하기  (0) 2024.10.06


 

 

1. Clock (클록)

클록 신호는 디지털 회로에서 동작의 기준이 되는 타이밍 신호입니다. 클록은 일정한 주기로 반복되는 파형을 가지며, 시스템 내부의 상태 변화를 동기화하는 데 사용됩니다. 클록 신호의 상승 또는 하강 에지에서 신호가 처리되거나 데이터가 전송되는 등 다양한 작업이 발생합니다. 대표적인 클록 신호 형태는 사각파이며, 일반적으로 클록 신호는 매우 정확한 주기를 가지도록 설계됩니다.

2. Frequency (주파수)

주파수는 클록 신호가 1초에 몇 번 반복되는지를 나타내는 값으로, Hz(헤르츠) 단위로 표현됩니다. 주파수는 클록 신호의 속도를 나타내며, 더 높은 주파수는 더 짧은 시간에 더 많은 작업을 처리할 수 있음을 의미합니다.

  • 여기서 period는 클록 신호가 한 번 주기적으로 반복되는 데 걸리는 시간을 의미합니다.

3. Period (주기)

주기는 클록 신호의 한 사이클이 완료되는 데 걸리는 시간을 나타내며, 초(s) 단위로 측정됩니다. 주기는 클록 신호의 주파수와 역수 관계에 있습니다. 즉, 주파수가 높을수록 주기는 짧아지고, 주파수가 낮을수록 주기는 길어집니다.

4. 클록, 주파수, 주기의 관계

클록의 주파수와 주기는 역수 관계에 있습니다. 예를 들어, 클록 주파수가 1MHz(메가헤르츠)라면 주기는 1μs(마이크로초)가 됩니다. 반대로, 주기가 10ns(나노초)인 클록 신호는 100MHz의 주파수를 갖습니다.

 

 

 


실습) 100MHz 의 Freq을 갖는 clock 생성하기

- Verilog Code

* https://github.com/Vamosssss/Basic/blob/main/01.%20tb_clock_generator.v

 

 

 

 

* http://watson.latech.edu/WatsonRebootTest/ch12s4p2.html

 

Watson

12.4.2  The clocked R-S flip-flop A clock is a device that generates a signal that periodically cycles between a high state, “1”, and a low state, “0”. Clocks ensure that the operations performed by a computer proceed in an orderly manner. They do

watson.latech.edu

 

 

 

 

'Verilog HDL > Basics' 카테고리의 다른 글

06. Combination Logic  (0) 2024.10.06
05. D Flip-Flop & Reset(실습)  (0) 2024.10.06
04. D Flip-Flop  (0) 2024.10.06
03. Values & Reset  (0) 2024.10.06
02. Testbench & DUT(Design under test)  (0) 2024.10.06

1. 명령어(command) 발행

  • 명령어 발행: 메모리 컨트롤러가 DRAM에 특정 명령어를 발행합니다. 예를 들어, 데이터 읽기를 원할 경우 READ 명령어를 발행합니다. 이 명령어에는 특정 주소가 포함되어 있어야 합니다.

2. 배열/셀(array/cell) 선택

  • 행 활성화 (ACTIVATE): 발행된 명령어에 따라 특정 행(row)이 활성화됩니다. 이 과정에서 주소가 사용되며, 해당 행에 있는 데이터가 DRAM의 비트라인으로 로드됩니다.
  • 비트라인(bit line): 활성화된 행의 데이터가 비트라인으로 전송되며, 이 데이터는 이후 읽기 또는 쓰기 작업을 위해 준비됩니다.

3. 드라이버(driver) 활성화

  • 드라이버 활성화: 비트라인의 신호를 받아 데이터 전송을 위한 드라이버가 활성화됩니다. 이 드라이버는 선택된 비트라인의 데이터를 외부로 전송하거나 외부에서 들어오는 데이터를 비트라인에 기록합니다.

4. 읽기/쓰기(W/R) 수행

  • 쓰기(W): 드라이버가 외부에서 들어오는 데이터를 비트라인을 통해 활성화된 셀에 기록합니다. 이 과정에서 셀의 전하가 변경되어 새로운 데이터가 저장됩니다.
  • 읽기(R): 드라이버는 비트라인으로부터 활성화된 셀의 데이터를 읽어옵니다. 이 데이터는 메모리 컨트롤러로 전송되어 최종적으로 CPU나 다른 장치에 전달됩니다.

 

http://qdpma.com/ServerSystems/DRAM.html

'CPU ARCHITECTURE1 > DRAM' 카테고리의 다른 글

05. DRAM Signals  (0) 2024.10.02
04. DRAM Structure  (0) 2024.10.02
03. DRAM Array  (0) 2024.10.02
02. DRAM Write & Read  (0) 2024.10.02
01. DRAM Cell  (0) 2024.10.02

1. ROW Access: Activate

Activate는 특정 행(Row)을 선택하여 그 행에 있는 모든 메모리 셀을 활성화하는 과정입니다.

  • 목적: 메모리 셀에 저장된 데이터를 메모리 내부의 Sense Amplifier로 전달합니다.

주요 단계

  1. 행 주소 전달:
    • **Row Address Strobe (RAS)**가 활성화됩니다.
    • 명령어는 메모리 컨트롤러에 의해 전송되며, 활성화할 메모리 블록의 행 주소가 전달됩니다. 이 주소는 행 디코더에 의해 해석되어 특정 행을 선택합니다.
  2. 셀 충전 및 Sense Amplifier 활성화:
    • 선택된 행에 있는 각 메모리 셀의 전하 상태는 매우 약하므로, Sense Amplifier는 이 전하를 감지하고 증폭합니다.
    • 감지된 데이터는 Sense Amplifier에 일시적으로 저장되며, 이 과정을 통해 행 전체의 데이터가 Row Buffer로 로드됩니다.
  3. 활성화 완료:
    • 행이 활성화되면 그 행의 데이터를 읽거나 쓸 준비가 됩니다.

주요 신호

  • RAS# (Row Address Strobe): 행 주소의 활성화를 제어하는 신호입니다.
  • Row Address: 선택된 행을 가리키는 주소입니다.
  • **CAS# (Column Address Strobe)**는 이 단계에서 비활성화되어 있습니다.

 

2. COL Access: Read/Write

행이 활성화된 후, 메모리 셀의 특정 열(Column)에 접근하여 데이터를 읽거나 쓰는 과정입니다.

Read 동작

  1. 열 주소 전달:
    • **Column Address Strobe (CAS)**가 활성화됩니다.
    • 메모리 컨트롤러는 열 주소를 전송하여, 열 디코더가 특정 열을 선택합니다.
  2. 데이터 읽기:
    • Sense Amplifier로부터 증폭된 데이터 중 열 디코더가 선택한 열의 데이터를 DRAM 외부로 전달합니다.
    • 이 데이터는 데이터 버스를 통해 CPU 또는 다른 장치로 전송됩니다.
  3. 읽기 완료:
    • 열의 데이터가 전달되면 Read 동작이 완료됩니다.

주요 신호 (Read)

  • CAS# (Column Address Strobe): 열 주소의 활성화를 제어하는 신호입니다.
  • OE# (Output Enable): 출력 제어 신호로, 데이터 버스가 데이터를 읽을 수 있도록 합니다.
  • DQS (Data Strobe): 데이터가 정확히 전송되는 타이밍을 맞추기 위한 신호입니다.

Write 동작

  1. 열 주소 전달:
    • 읽기 동작과 마찬가지로, CAS# 신호가 활성화되고, 메모리 컨트롤러는 열 주소를 전송합니다.
  2. 데이터 쓰기:
    • 데이터 버스를 통해 쓰기할 데이터를 DRAM으로 전송합니다. 이 데이터는 선택된 열의 메모리 셀에 저장됩니다.
    • Sense Amplifier는 새로운 데이터로 메모리 셀의 전하를 갱신합니다.
  3. 쓰기 완료:
    • 새로운 데이터가 메모리 셀에 기록되면 Write 동작이 완료됩니다.

주요 신호 (Write)

  • CAS# (Column Address Strobe): 열 주소의 활성화를 제어하는 신호입니다.
  • WE# (Write Enable): 데이터를 쓰기 위한 제어 신호입니다.
  • DQS (Data Strobe): 데이터 쓰기의 정확한 타이밍을 맞추는 신호입니다.

 

각 단계에서의 주요 시그널 동작 요약

  • RAS#: ROW Access를 위한 신호, 행을 선택할 때 활성화됩니다.
  • CAS#: COL Access를 위한 신호, 열을 선택할 때 활성화됩니다.
  • WE#: 쓰기 동작을 제어하는 신호입니다.
  • OE#: 출력 동작을 제어하는 신호로, 읽기 시 데이터를 버스에 출력할 때 활성화됩니다.
  • DQS: 데이터 전송 및 쓰기 타이밍을 맞추기 위한 데이터 스트로브 신호입니다.

 

https://user.eng.umd.edu/~blj/talks/DRAM-Tutorial-isca2002.pdf

DRAM에서 CS (Chip Select), ACT (Activate), RAS (Row Address Strobe), CAS (Column Address Strobe), **WE (Write Enable)**는 메모리 액세스를 제어하는 중요한 신호들입니다. 이 신호들은 메모리 컨트롤러가 DRAM에 데이터를 읽거나 쓸 때 사용되며, 각 신호는 특정 동작을 수행하게 합니다. 아래에서 각 신호의 기능을 자세히 설명하겠습니다.

1. CS (Chip Select)

  • 설명: **Chip Select (CS)**는 메모리 컨트롤러가 특정 DRAM 모듈을 선택할 때 사용되는 신호입니다.
  • 동작:
    • CS가 활성화되면 해당 DRAM 모듈이 선택되어 명령어를 처리할 준비가 됩니다.
    • DRAM이 여러 개의 모듈로 구성된 경우, 특정 모듈을 선택하는 데 사용됩니다.
    • 활성화 신호는 일반적으로 Low(0) 상태로, CSLow일 때만 나머지 명령들이 유효하게 동작합니다.

주요 특징:

  • CS = 0: 해당 DRAM이 선택되어 명령이 유효함.
  • CS = 1: DRAM이 선택되지 않으며, 명령이 무시됨.

2. ACT (Activate)

  • 설명: **ACT (Activate)**는 특정 **행(Row)**을 활성화하는 명령으로, DRAM에서 데이터를 읽거나 쓸 준비를 하기 위한 첫 번째 단계입니다.
  • 동작:
    • ACT 명령을 통해 DRAM 컨트롤러는 특정 **행 주소(Row Address)**를 지정하고, 해당 행의 모든 셀을 **비트 라인(Bit Line)**에 연결하여 데이터를 **행 버퍼(Row Buffer)**에 로드합니다.
    • 이 과정은 **워드 라인(Word Line)**을 활성화하여 이루어지며, 이후 READWRITE 명령이 행 버퍼에 로드된 데이터에서 수행됩니다.

주요 특징:

  • ACT 명령은 읽기 또는 쓰기 전에 필수적으로 수행되며, 새로운 행을 선택할 때마다 필요한 과정입니다.
  • ACT를 통해 DRAM은 특정 행의 데이터를 준비하고, 이후 CAS와 함께 데이터 접근을 할 수 있게 합니다.

3. RAS (Row Address Strobe)

  • 설명: **RAS (Row Address Strobe)**는 **행 주소(Row Address)**가 유효하다는 것을 DRAM에 알리는 신호입니다. RAS는 주로 **행(Row)**과 관련된 동작을 제어합니다.
  • 동작:
    • RAS = Low일 때, 메모리 컨트롤러는 특정 행 주소를 DRAM에 전달하며, 이로써 해당 행의 데이터를 처리할 준비를 합니다.
    • RASACTIVATE 명령과 밀접하게 연관되어 있으며, 주로 특정 행을 활성화하는 데 사용됩니다.

주요 특징:

  • RAS = Low: 행 주소가 유효하며, DRAM이 해당 행을 활성화함.
  • RAS = High: 행 주소 신호가 유효하지 않으며, 행 동작이 비활성화됨.

4. CAS (Column Address Strobe)

  • 설명: **CAS (Column Address Strobe)**는 **열 주소(Column Address)**가 유효하다는 것을 DRAM에 알리는 신호입니다. CAS는 주로 **열(Column)**과 관련된 동작을 제어합니다.
  • 동작:
    • CAS = Low일 때, 메모리 컨트롤러는 특정 열 주소를 DRAM에 전달하며, 행 버퍼에 로드된 데이터 중 해당 열의 데이터를 읽거나 쓸 준비를 합니다.
    • READWRITE 명령은 CAS와 함께 특정 열 데이터를 처리하게 됩니다.

주요 특징:

  • CAS = Low: 열 주소가 유효하며, DRAM이 해당 열의 데이터를 처리함.
  • CAS = High: 열 주소 신호가 유효하지 않으며, 열 동작이 비활성화됨.

5. WE (Write Enable)

  • 설명: **WE (Write Enable)**는 DRAM에서 데이터를 쓸 때 활성화되는 신호입니다. WE는 주로 쓰기 동작과 관련된 명령을 제어합니다.
  • 동작:
    • WE = Low일 때, WRITE 명령이 수행되며, 메모리 컨트롤러가 데이터 값을 DRAM에 쓰기 시작합니다.
    • WE = High일 때, 읽기 동작이 수행되며, 데이터가 DRAM에서 출력됩니다.

주요 특징:

  • WE = Low: 쓰기 동작이 활성화되어, DRAM에 데이터를 기록함.
  • WE = High: 읽기 동작이 활성화되어, DRAM에서 데이터를 읽음.

DRAM 주요 신호들의 상호작용:

  1. 데이터 읽기(Read):
    • CS가 활성화되고, ACTIVATE 명령으로 RAS = Low가 되어 특정 행이 활성화됩니다.
    • 이후 CAS = Low가 되어 열 주소가 전달되면, WE = High 상태에서 데이터를 읽어옵니다.
  2. 데이터 쓰기(Write):
    • CS가 활성화되고, ACTIVATE 명령으로 RAS = Low 상태에서 특정 행이 선택됩니다.
    • CAS = Low 상태에서 열 주소가 지정되며, WE = Low 상태에서 데이터를 쓰는 동작이 수행됩니다.

'CPU ARCHITECTURE1 > DRAM' 카테고리의 다른 글

07. DRAM CMD FLOW  (0) 2024.10.02
04. DRAM Structure  (0) 2024.10.02
03. DRAM Array  (0) 2024.10.02
02. DRAM Write & Read  (0) 2024.10.02
01. DRAM Cell  (0) 2024.10.02

DRAM(Dynamic Random Access Memory)의 구조는 셀 구조, 배열 구조, 인터페이스 등을 포함하여, 데이터를 저장하고 읽기/쓰기를 효율적으로 수행하기 위해 설계되었습니다. DRAM은 기본적으로 메모리 셀, 워드 라인 및 비트 라인, 감지 증폭기 등 여러 구성 요소로 이루어져 있습니다.

1. DRAM의 기본 구조

DRAM의 기본적인 구조는 데이터를 저장하는 개별 셀들이 2차원 그리드 형식으로 배열되어 있는 형태입니다. 여기서 각 셀은 하나의 트랜지스터와 하나의 캐패시터로 구성됩니다.

(1) 메모리 셀

  • 트랜지스터: DRAM 셀의 액세스 스위치로 작동하며, 데이터를 읽거나 쓸 때 워드 라인 신호에 의해 셀을 열고 닫는 역할을 합니다.
  • 캐패시터: 데이터를 저장하는 소자로, 전하를 저장해 0 또는 1의 상태를 유지합니다. 시간이 지나면 캐패시터의 전하가 누설되기 때문에 주기적으로 데이터를 복원하는 리프레시 동작이 필요합니다.

(2) 워드 라인(Word Line)과 비트 라인(Bit Line)

  • 워드 라인: 행(row)에 해당하며, 특정 셀의 트랜지스터를 제어합니다. 워드 라인이 활성화되면, 해당 행의 모든 셀이 비트 라인에 연결되어 데이터의 읽기/쓰기가 가능해집니다.
  • 비트 라인: 열(column)에 해당하며, 데이터를 읽거나 쓸 때 데이터가 전달되는 경로입니다. 비트 라인은 감지 증폭기와 연결되어 셀의 상태를 판별합니다.

(3) 감지 증폭기(Sense Amplifier)

비트 라인의 전압 변화를 감지하고, 이를 증폭하여 데이터의 '0' 또는 '1' 상태를 결정하는 중요한 회로입니다. DRAM 셀의 전압 변화는 매우 미미하기 때문에, 감지 증폭기가 이를 명확하게 판별하여 데이터를 처리할 수 있도록 도와줍니다.

(4) 리프레시 회로(Refresh Circuit)

DRAM의 캐패시터는 시간이 지나면 전하가 자연스럽게 누설됩니다. 이 때문에 리프레시 회로는 일정한 주기로 모든 메모리 셀의 데이터를 다시 읽고, 원래 상태로 충전해 줍니다. 이 과정은 자동으로 이루어지며, DRAM의 휘발성 메모리 특성을 보완합니다.

2. DRAM의 계층적 구조

(1) 셀 배열(Cell Array)

DRAM 셀은 2차원 배열로 구성되며, 각 셀이 비트와 워드 라인의 교차점에 위치해 있습니다. DRAM의 배열 구조는 저장 공간을 효율적으로 활용할 수 있게 하며, 특정 셀에 빠르게 접근할 수 있는 메커니즘을 제공합니다.

(2) 뱅크(Bank)

DRAM은 여러 개의 셀 배열을 **뱅크(bank)**로 분리하여 관리합니다. 뱅크는 독립적인 메모리 블록으로, 하나의 뱅크가 액세스되는 동안 다른 뱅크는 비활성 상태로 남아 대기 시간을 줄이면서 병렬 처리를 가능하게 합니다. 하나의 DRAM 칩은 여러 뱅크로 구성되며, 이를 통해 대역폭을 향상시킬 수 있습니다.

(3) 서브 어레이(Sub-Array)

뱅크는 더 작은 단위인 **서브 어레이(sub-array)**로 나뉩니다. 각 서브 어레이는 독립적인 셀 배열로 구성되며, 데이터 접근을 더욱 효율적으로 관리합니다. 서브 어레이 구조는 메모리 접근의 병목 현상을 줄이고, 병렬 처리 성능을 향상시킵니다.

(4) 행 버퍼(Row Buffer)

DRAM의 성능을 높이기 위해, 데이터는 먼저 **행 버퍼(row buffer)**로 로드된 후 처리됩니다. 한 번에 여러 셀의 데이터를 읽어들인 후, 이를 행 버퍼에 저장한 다음 순차적으로 접근할 수 있습니다. 이를 통해 읽기 및 쓰기 속도를 높이는 데 기여합니다.

 

 

 

http://qdpma.com/ServerSystems/DRAM.html

'CPU ARCHITECTURE1 > DRAM' 카테고리의 다른 글

07. DRAM CMD FLOW  (0) 2024.10.02
05. DRAM Signals  (0) 2024.10.02
03. DRAM Array  (0) 2024.10.02
02. DRAM Write & Read  (0) 2024.10.02
01. DRAM Cell  (0) 2024.10.02

1. DRAM Array 구조

DRAM 셀은 **행(row)과 열(column)**의 2차원 그리드 형태로 배열됩니다. 각 셀은 하나의 비트(0 또는 1)를 저장하는 단위이며, 이러한 셀들이 수천 개에서 수백만 개까지 배열되어 하나의 DRAM 칩을 구성합니다.

  • 워드 라인(Word Line): **행(row)**에 해당하며, 특정 셀의 액세스 트랜지스터를 제어하는 역할을 합니다. 하나의 워드 라인이 활성화되면, 해당 행의 모든 셀들이 비트 라인에 연결되어 데이터 읽기/쓰기가 가능해집니다.
  • 비트 라인(Bit Line): **열(column)**에 해당하며, 데이터를 읽거나 쓸 때 데이터의 전달 경로가 됩니다. 비트 라인을 통해 셀의 데이터가 외부로 출력되거나, 외부로부터 셀로 입력됩니다.
  • 셀(Cell): 각 교차점에 있는 DRAM 셀은 하나의 트랜지스터와 하나의 캐패시터로 구성되며, 1비트를 저장합니다. 셀의 캐패시터에 전하가 있으면 '1', 없으면 '0'으로 표현됩니다.

2. Array 구조의 특징

(1) 고밀도 저장

DRAM의 셀은 매우 작은 공간을 차지합니다. 트랜지스터 하나와 캐패시터 하나로 구성된 단순한 셀 덕분에, 많은 셀을 좁은 공간에 배열할 수 있어 높은 저장 밀도를 실현할 수 있습니다. DRAM의 높은 용량이 이러한 고밀도 배열 덕분입니다.

(2) 2차원 배열로 대규모 데이터 저장

DRAM의 셀 배열은 2차원 배열 구조로, 데이터를 효율적으로 관리할 수 있습니다. 각 워드 라인과 비트 라인은 수백 또는 수천 개의 셀을 제어하며, 이를 통해 대규모 데이터를 한 번에 처리할 수 있습니다.

(3) 대역폭 효율성

비트 라인과 워드 라인을 통해 다수의 셀에 동시에 접근할 수 있기 때문에, DRAM은 병렬 처리가 용이합니다. 이러한 구조는 데이터 대역폭을 극대화하고, 시스템 성능을 높이는 데 기여합니다.

(4) 리프레시(Refresh) 필요

DRAM의 캐패시터는 시간이 지나면 전하가 누설되기 때문에, 주기적인 리프레시가 필요합니다. 리프레시를 통해 배열에 저장된 셀들의 전하를 재충전하며, 이를 통해 데이터가 유지됩니다. 리프레시가 주기적으로 이루어져야 하므로 전력 소모가 발생하고, 일정 시간 동안 다른 작업을 처리하지 못하는 경우가 있습니다.

(5) 접근 시간

DRAM의 셀은 매우 작은 공간에 밀집되어 있기 때문에, 특정 셀에 접근할 때 랜덤 접근 시간이 발생합니다. 또한 워드 라인을 활성화하고 비트 라인을 통해 데이터를 읽거나 쓰는 과정에서 지연이 발생할 수 있습니다. 이러한 이유로, DRAM의 성능은 캐시 메모리SRAM보다 낮지만, 저장 용량 면에서는 훨씬 유리합니다.

(6) 배열 크기의 확장

DRAM의 용량을 확장하기 위해, 배열의 크기를 키우거나 다중 배열(뱅크) 구조를 사용합니다. 여러 개의 뱅크(bank)를 만들어 병렬로 데이터에 접근할 수 있도록 하여, 성능과 용량을 동시에 향상시킬 수 있습니다.

 

 

http://qdpma.com/ServerSystems/DRAM.html

'CPU ARCHITECTURE1 > DRAM' 카테고리의 다른 글

07. DRAM CMD FLOW  (0) 2024.10.02
05. DRAM Signals  (0) 2024.10.02
04. DRAM Structure  (0) 2024.10.02
02. DRAM Write & Read  (0) 2024.10.02
01. DRAM Cell  (0) 2024.10.02

DRAM의 write(쓰기)read(읽기) 동작은 액세스 트랜지스터를 통해 캐패시터에 데이터를 저장하거나, 그 데이터를 다시 읽어오는 과정으로 이루어집니다. 이 과정은 비트 라인, 워드 라인, 트랜지스터, 캐패시터가 상호작용하여 동작합니다.

1. Write(쓰기) 동작 과정

DRAM에 데이터를 기록하는 과정은 다음과 같습니다:

  1. 워드 라인 활성화: DRAM 제어기가 원하는 메모리 주소에 대응하는 워드 라인을 활성화합니다. 이는 해당 셀의 액세스 트랜지스터를 열어 주는 신호입니다. 워드 라인이 'HIGH' 상태가 되면, 해당 셀의 트랜지스터가 열리게 됩니다.
  2. 비트 라인으로 데이터 전달: 기록하고자 하는 데이터(0 또는 1)가 비트 라인을 통해 해당 DRAM 셀로 전달됩니다. 비트 라인은 한쪽이 'HIGH'이고 다른 쪽이 'LOW'가 되는 차등 신호를 통해 0과 1을 구분합니다.
  3. 캐패시터에 데이터 저장: 트랜지스터가 열린 상태에서, 비트 라인을 통해 들어온 데이터는 캐패시터에 전하로 저장됩니다. 만약 '1'을 쓰려면 캐패시터에 전하가 충전되고, '0'을 쓰려면 캐패시터가 방전됩니다.
  4. 워드 라인 비활성화: 데이터가 캐패시터에 저장된 후, 제어기는 워드 라인을 비활성화합니다. 이로 인해 트랜지스터가 닫히고, 셀에 저장된 데이터는 유지됩니다. 이때 캐패시터의 전하는 시간이 지남에 따라 누설되므로, 리프레시(refresh) 과정이 필요합니다.

2. Read(읽기) 동작 과정

DRAM에서 데이터를 읽어오는 과정은 다음과 같습니다:

  1. 워드 라인 활성화: 읽고자 하는 메모리 주소에 대응하는 워드 라인을 활성화하여 해당 DRAM 셀의 액세스 트랜지스터를 엽니다. 트랜지스터가 열리면 셀의 캐패시터에 저장된 전하가 비트 라인으로 전달됩니다.
  2. 비트 라인의 전압 변화 감지: 캐패시터에 저장된 전하가 비트 라인으로 전달되면서, 비트 라인의 전압이 약간 변화하게 됩니다. 이 변화는 매우 미미하므로, 이를 증폭하기 위해 **감지 증폭기(sense amplifier)**가 필요합니다. 감지 증폭기는 비트 라인의 전압 변화를 감지하여 '0' 또는 '1'로 데이터를 판별합니다.
  3. 데이터 복구 및 리프레시: DRAM에서 데이터를 읽는 과정은 캐패시터의 전하를 방전시키는 동작과 같습니다. 따라서 읽기 동작 후에는 데이터를 다시 원래 상태로 복구하기 위해 해당 셀에 리프레시가 이루어집니다. 즉, 캐패시터의 상태를 다시 기록하여 원래의 데이터를 유지합니다.
  4. 워드 라인 비활성화: 데이터가 비트 라인을 통해 읽혀진 후, 워드 라인이 비활성화되어 트랜지스터가 닫히고, 셀은 다시 안정된 상태가 됩니다.

읽기/쓰기 동작에서의 중요 요소

  • 감지 증폭기: 읽기 동작 시 비트 라인의 작은 전압 변화를 감지하고 증폭하여 데이터의 '0' 또는 '1' 상태를 확실하게 판별합니다.
  • 리프레시(refresh): DRAM의 캐패시터는 시간이 지남에 따라 전하가 누설되기 때문에 주기적인 리프레시 동작이 필요합니다. 이는 데이터가 유지될 수 있도록 셀을 재충전하는 과정입니다.

DRAM의 읽기/쓰기 동작은 이처럼 간단한 구조로 빠르게 데이터를 처리할 수 있지만, 리프레시 과정이 필요하다는 단점이 있습니다.

 

 

https://vir-us.tistory.com/entry/Memory-DRAM%EC%9D%B4%EB%9E%80-%EA%B8%B0%EB%B3%B8%EB%8F%99%EC%9E%91-Read-Write-Refresh

'CPU ARCHITECTURE1 > DRAM' 카테고리의 다른 글

07. DRAM CMD FLOW  (0) 2024.10.02
05. DRAM Signals  (0) 2024.10.02
04. DRAM Structure  (0) 2024.10.02
03. DRAM Array  (0) 2024.10.02
01. DRAM Cell  (0) 2024.10.02

+ Recent posts