실험 1 : SRAM (Static RAM)

【 이론 】

RAM은 사용자의 프로그램이나 데이터를 기입(write) 혹은 판독(read)하는 장치이다.

기억장치의 기본단위는 하나의 비트(bit)를 기억하는 회로, 즉 플립플롭이다. 이 플립플롭을 8개 혹은 16개를 한 묶음으로 해 놓은 것이 레지스터이고, 이러한 레지스터를 병렬적으로 나열해 놓은 것이 RAM이다. 즉, RAM은 레지스터 하나 하나가 모여서 이루어진다. 그리고 이들 각각의 레지스터에는 그림 16-7과 같이 번지(address)가 붙는다. 각 가옥에 번지가 붙은 이치와 같다.

하나의 번지에 들어갈 수 있는 2진수의 갯수, 즉 비트(bit) 수는 기종에 따라 다르지만, 마이크로 컴퓨터에서는 4비트, 8비트, 12비트, 16비트등이 보통이다. 몇 비트가 되든간에 하나의 번지에 기억되는 정보를 통틀어서 워드(word)라고 한다. 어떤 번지에 데이터를 기억시키면 그 전에 기억되어 있던 데이터는 모두 없어지고, 새로운 데이터가 그 번지의 내용이 된다. 이 내용은 새로이 어떤 데이터를 기입(write)시키지 않는 한 몇번을 읽어들이더라도 그대로 남는다.

앞에서 RAM은 레지스터가 병렬적으로 나열되어 있는 것이라고 하였다. 그러나, 실은 RAM에는 이외에도 그림 16-8과 같이 번지선택회로와 버퍼가 필요하다.

번지선택회로는 어떤 특정의 번지를 선택하기 위해서 필요하고, 버퍼는 선택된 특정 번지의 내용을 잠시 보존하기 위해서 필요하다. 번지선택회로는 일종의 디코더인데, 이 회로에서 선택된 번지의 내용이 버퍼를 거쳐서 밖으로 나간다. 예컨대, 그림 16-8과 같이 8개의 기억번지를 가진 RAM을 상정할 때, 번지선택버스에 010이라는 번지정보가 들어가면 번지선택회로에서 2번지가 선택되고, 그래서 2번지의 내용(00000110)이 버퍼를 거쳐서 데이터버퍼로 나간다.

RAM에는 이외에도 여러 칩 중에서 이 칩(RAM)만을 선택시키는데 필요한 칩선택선(chip select line)이 있고, 기입할 것인지 판독할 것인지를 결정하는데 필요한 WE(write enable)이라는 제어선이 있다. 그림 16-9는 SRAM의 블록선도이다.



그림 16-10(a)는 MOS SRAM의 셀을 표시한다. nMOS

Q_1

 
,

Q_2

 
는 F/F를 형성한다.

Q_1

 
의 드레인 단자 a가 강제적으로 HIGH가 되면

Q_2

 
는 ON,

Q_2

 
의 드레인 단자 b가 LOW,

Q_1

 
은 OFF가 된다. 반대로 a가 LOW가 되면

Q_2

 
는 OFF, b가 HIGH,

Q_1

 
은 ON이 된다. 이리하여 이 회로에 논리 1 또는 0을 기억시킬 수 있다. 이 셀에 데이터를 써 넣으려면 좌측 WRITE선에 데이터를 싣고 스위치 S1을 닫으면 된다. 또 기억된 데이터를 읽어내려면 스위치 S2를 닫으면 우측 READ선에 데이터가 나온다. 스위치 S1, S2는 nMOS로써 그 게이트를 HIGH로 하면 ON되고 LOW로 하면 OFF된다.

이 셀을 그림 16-10(b)와 같이 배열한 메모리를 워드선택방식(word selection scheme)이라 한다. 옆으로 배열된 셀들이 한 워드를 형성하며 이 메모리는 8워드×4비트/워드=32비트의 용량을 갖는다.(단순히 8×4라고 표현할 때가 많다.) 번지디코더(보통 메모리 IC에 내장되어 있다)는 2진수로 표시된 3비트 번지 A2A1A0를 디코딩하여 23 즉 8개의 워드선 중 하나를 HIGH로 하고 나머지는 다 LOW로 한다. 예컨대 동도에서 A2A1A0=010일 때 워드선 2만이 HIGH가 되어 위로부터 세 번째 워드의 4개 셀의 스위치 S1, S2 <그림 16-10(a) 참조>가 동시에 ON 된다. 동도에서 (b)의 하부에 점선 4각으로 표시된 제어회로는 구체적으로 그림 16-10(c)와 같다. 여기서,

⊙ CS(Chip Select)를 LOW로 하면 AND 게이트 W1, R1의 출력이 모두 LOW가 되므로 3상태 버퍼 W2, R2가 Hi-Z가 되어 W2를 통하여 데이터를 써넣을 수도 없고, R2를 통하여 데이터를 읽어낼 수도 없다.

⊙ CS를 HIGH로 하고 R/W을 HIGH로 하면 W2는 Hi-Z의 상태가 되고 R2는 그대로 버퍼 역할을 하므로 우측 READ선에 실린 셀의 출력데이터가 읽어져 나온다.

⊙ CS를 HIGH로 하고 R/W를 LOW로 하면 위와 반대로 R2가 Hi-Z상태가 되고 W2가 정상적 버퍼역할을 하므로 이를 통하여 출력데이터를 좌측 WRITE선에 실릴 수 있다.

컴퓨터에서는 CPU가 메모리의 번지를 지정하여 번지버스에 실어 보내고, 또 제어신호(CS, R/W 등)를 제어버스에 실어 내보내고, 데이터는 데이터버스에 실린다(그림16-10).


그림 16-11은 SRAM의 MOS 메모리셀의 몇가지 회로를 그렸다. (a)는 이미 설명한 그림 16-10(a)에 대한 것이고, (b)는 여기서 저항 대신에 MOSFET의 게이트를 드레인에 연결하여 대치한 것으로 자주 쓰인다. (c)는 pMOS와 nMOS를 상보적으로 연결하여 구성한 CMOS셀이다. 워드선이 LOW이면, 스위치

S1

 
,

S2

 
가 오픈되어 셀에 메모리를 써넣을 수도 없고 저장된 데이터를 읽어낼 수도 없다. 지금 워드선이 HIGH이면 두 nMOS 스위치

S1

 
,

S2

 
가 ON 되는데 이때 WRITE선에 실린 데이터가 HIGH이면

Q2

 
ON,

Q4

 
OFF,

Q2

 
의 드레인 LOW,

Q1

 
, OFF,

Q3

 
ON되어 결국 셀 출력이 LOW가 된다. 반대로 WRITE선이 LOW이면 이상과 반대로 셀 출력이 HIGH가 된다. (d)는 멀티-에미터를 갖는 BJT를 사용한 메모리 셀이다. 워드선이 LOW이면 BJT를 흐르는 전류는 워드선쪽으로 흐르고 데이터선쪽으로는 흐르지 않는다. 워드선이 선택되고(즉 HIGH가 되고) CS를 HIGH로 한 다음에 데이터를 써 넣고 읽어내고 할 수 있다.

다음의 설명은 그림 16-10(c)의 제어회로를 참조한다.

⊙ 데이터를 써넣기 위해서는 R/W을 LOW로 한다. 그러면

R2

 
는 Hi-Z 상태가 되고 W2는 버퍼로써 동작한다. 따라서 만일 입력데이터가 HIGH이면 WRITE선이 HIGH가 되고

Q1

 
은 OFF된다. (두 에미터가 HIGH이기 때문에), 그러면 F-F의 원리에 의하여

Q2

 
는 ON이 된다.(그 전류는 우측

R2

 
를 흐른다.) 이후 워드선이 LOW가 되더라도

Q2

 
의 전류가 워드선 쪽으로 스위치되지만 그 ON 상태는 보존된다. 이 상태는 CS가 LOW가 되더라도 불변이다(만일 처음에 써넣은 입력데이터가 LOW이면

Q1

 
ON,

Q2

 
OFF 상태가 보존된다).

⊙ 이상과 같이 기억된 정보를 읽어내기 위해서는 CS와 R/W을 HIGH로 한다. 이때,

Q1

 
이 OFF,

Q2

 
가 ON 상태였다면 우측

R2

 
양단의 HIGH 전압이 버퍼

R2

 
를 통하여 출력된다