1. DRAM의 구성요소
DRAM은 한개의 트랜지스터와 1개의 캐패시터로 구성됩니다. 트랜지스터는 전류의 흐름과 차단을 조절하는 소자이며(일종의 스위치), 캐피시터는 전하를 저장하는 소자입니다.(일종의 배터리)
1.1. Transistor(MOSFET)
트랜지스터는 gate, source, drain 3개의 연결지점을 가지는데 source와 drain중 전위가 높은 곳이 drain이 되고, 낮은 곳이 source가 됩니다. 즉, 전류는 전위가 높은 곳에서 낮은 곳으로 흐르므로 drain에서 source로 전류가 흐르게 됩니다. 또한 source와 drain의 위치가 전위의 상대적인 차이로 고정되지않고 바뀌므로, DRAM에서 전류는 양방향으로 흐를 수 있습니다. 이때 흐르는 전류의 양은 gate와 source노드 사이의 전위차 V(gs)에 의해 결정됩니다.
1.2. Capacitor
캐패시터는 전하를 저장할 수 있습니다.(베터리와 비슷하지만 저장하는 방식은 다릅니다. 베터리만큼 많은 에너지를 저장할 수는 없지만 베터리보다 훨씬 빠르게 충전, 방전할 수 있습니다. capacitance는 farad단위로 측정하는데 DRAM cell의 capacitance는 약 30femto(10**-15)farad입니다.
2. DRAM의 동작원리
gate에 높은 전압이 들어가면 gate가 열리는데, 이때 캐패시터에 전하의 이동이 가능해져 이로 인해 Read&Write가 가능해집니다. 이때 캐패시터가 충전이 되며 cell이 충전된 상태일때 트랜지스터를 pass transitor라 부르고, cell은 이진수 1의 값을 가지고 있다 말합니다.
반면 gate에 낮은 전압이 걸리면 gate가 닫히는데 이때 캐패시터는 floating상태가 되고, 누설전류로 인해 cell에 저장된 전압이 점점 낮아져 방전됩니다. 이경우 cell은 이진수 0을 가지고 있다 합니다.
2.1. cell의 값을 확인하는 방법
DRAM은 수천개의 bit line과 word line으로 연결된 2차원 array로 구성됩니다. 이러한 cell에 영향을 미치는 일부 캐패시터가 충전됨을 볼 수있는데 이 cell에는 이진수 1의값, 다른 cell에는 이진수 0의 값이 들어갑니다. 여기서 노란 cell의 값을 읽어보도록 합시다.
각 bit line은 DRAM 모듈 전체에 공급되는 전압의 절반에 해당되는 전압으로 pre-charged됩니다. 이 경우에서는 DRAM 공급전압이 3V이므로 bit line에 1.5V가 사전충전됩니다. 그 뒤 bit line은 sense amplifer에서 분리되는데 이것을 우리는 bit line이 floating되었다고 말합니다.
word line은 비교적 높은 전압으로 설정되는데, word line에 전압이 걸리면 충전된 패스 트랜지스터의 gate가 열립니다. 이때 전하가 캐패시터에서 bit line으로 이동하여 캐패시터는 조금 방전될 것이고 bit line의 전압은 조금 감소할 것입니다. 이과정에서 delta기호를 사용해 1.5V +-delta라고 표현할 수 있습니다. 이렇게 표현할 수 있는 이유는 bit line의 capacitance가 memory cell보다 훨씬(약5~10배)크기 때문입니다. 그럼에도 불구하고 이러한 전압차이는 sense amplifer에 의해 충분히 감지될 수 있습니다.
Sense amp는 새로운 bit line전압을 원래 값과 비교합니다. 여기서 주목해야할 점은 sense amp의 반대쪽에 있는 bit line은 여전히 1.5V로 충전되어 있으며 이러한 이유로 differential sense amplifer라 불리며 1.5V + delta의 값은 VDD(1)로 올려주고. 1.5V - delta는 0으로 낮춰주어 특정 cell의 값이 1인지 0인지 읽어낼 수 있습니다.
3. Destructive Readout
Sense amplifer는 cell에서 방금 읽은 값을 임시로 저장할 수 있는 filp-flop, latch회로를 포함합니다. DRAM에서 memory cell을 읽는 것은 매우 파괴적이라 할수 있는데 이는 읽는 과정에서 캐패시터에 저장되어 있는 값(전하)의 손실이 발생하기 때문입니다. 즉, 모든 읽기 작업 후 그 읽은 값으로 다시 해당 cell에 쓰는 refresh작업이 필요합니다. 이렇게 실제로 한 cell의 값을 간단히 읽거나 변경하려면 먼저 전체 행을 읽고 다시 작성해야 합니다.
또한 DRAM을 가만히 두면 memory cell에서 bit line으로 전하가 누출되는데 이러한 이유로 패스 트랜지스터가 닫히더라도 모든 DRAM cell은 주기적으로 refresh되어야합니다. 즉, data가 필요하지 않더라도 정기적으로 읽고, 다시 작성해야합니다. 이러한 이유로 Dyanmic RAM이라는 이름이 붙여졌습니다.
'전공 수업 CS > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조] 모듈러 연산 (1) | 2022.11.19 |
---|---|
[컴퓨터 구조] 카르노맵 (0) | 2022.10.12 |
[컴퓨터 구조] 부동 소수점 & 바이어스 수 biased number 127 (0) | 2022.09.23 |
[컴퓨터 구조] 1의 보수와 2의 보수 표현법 이해 (1) | 2022.09.23 |
[컴퓨터 구조] 실수 표현 - 실수 표현 | 단일 정밀도 부동 소수점 | 지수, 바이어스 값 |IEEE 754 (1) | 2022.09.22 |