집적회로소자개론 [11] Full Adder와 Subtractor
집적회로소자개론 [10] Logic Devices집적회로소자개론 [9] MOSFET2026.04.17 - [학교 수업/집적회로소자개론] - 집적회로소자개론 [8] MOS Capacitor 집적회로소자개론 [8] MOS Capacitor집적회로소자개론 [7] MS Junct
mayunchem.tistory.com
1. SRAM (Static Random Access Memory)
앞에서 우리는 연산(Adder)은 MOSFET으로 만들었다. 이때 데이터를 저장하는 장치로 등장한 것이 Memory(SRAM)이다.
SRAM은 전원이 유지되면 계속 값이 유지되는 빠른 메모리이다.
SRAM에서 'static'이라는 말은 저장방식의 특징이다. SRAM은 전원이 공급되는 동안 내부 회로가 계속 연결된 상태를 유지하며 데이터를 저장하기 떄문에 '전원이 유지되는 한 상태가 변하지 않는 안정적인 저장방식'이다.
Random Access는 메모리의 어떤 위치든지 순서와 관계없이 바로 접근할 수 있다는 뜻이다.
1-1. Memory Array 구조
메모리를 실제로 어떻게 많이 저장할까?
하나의 Cell만으로는 1 bit 밖에 저장할 수 없기 때문에, 수많은 cell을 효율적으로 배열하는 구조가 필요하다. 그래서 등장하는 것이 Memory array이다.

메모리는 기본적으로 2차원 Matrix 구조로 배열된다. 이때, 중요한 2가지의 선이 있다.
Word Line (WL): 행을 선택하는 신호
Bit Line (BL): 데이터를 전달하는 신호
즉, 특정 WL을 활성화하면 그 행에 있는 Cell들이 선택되고, BL을 통해 해당 Cell의 데이터를 읽거나 쓸 수 있다.

메모리의 동작은 크게 2가지이다.
- Write = 데이터를 저장 (0 또는 1을 Cell에 강제로 넣음)
- Read = 저장된 데이터를 감지
메모리의 특성에는 다음과 같다.
Endurance: 몇 번이나 쓸 수 있는가
Retention: 얼마나 오래 데이터를 유지하는가
Disturbance: 주변 cell의 영향으로 데이터가 깨지는 문제
속도 측면에서는
read/write time
latency
가 중요한 성능 지표가 된다.
1-2. SRAM Cell
SRAM이 실제로 데이터를 어떻게 저장할까?

SRAM Cell은 총 6개의 트랜지스터로 구성된다. 이때 4개는 inventer 2개이고 (저장), 2개는 Access Transistor (접근)역할을 한다.
4개 → inverter 2개 (저장 역할)
2개 → access transistor (접근 역할)
이 구조의 핵심은 Cross-coupled Inventor로, 두 개의 inventor가 서로 연결되어 피드백을 형성한다. 이 구조 덕분에 한번 상태가 정해지면 계속 유지되며, 이게 바로 static이다.

두 개의 inventer를 서로 연결하면, 출력은 다음 두가지 상태 중 하나로 안정된다.
- Q = 1, Q' = 0
- Q = 0, Q' = 1
이 상태는 외부에서 건드리지 않는 한 계속 유지된다. 왜냐하면, 한쪽이 1이면 반대쪽이 0, 그 0이 다시 입력으로 들어가 1을 유지한다. 이게 반복되면서 안정 상태가 된다. 이 구조 자체가 1 bit memory 역할을 한다.
1-3. SRAM Array
SRAM은 M×N 구조로 배열된다.
- WL(행) → 어떤 row 선택
- BL(열) → 데이터 전달

특정 WL을 켜면, 그 행의 모든 Cell이 활성화된다. 하지만, 실제로는 Column Select를 통해 필요한 bit만 읽는다. 핵심은 대량의 데이터를 효율적으로 저장하기 위한 구조라는 점이다.
2. SRAM에서 Write / Read
1을 쓴다 = Cell의 내부 상태를 (1,0)으로 만든다
2-1. Write '1'
가운데는 Cross-coupled inventor(저장)이 있고, 양쪽에는 Access transistor(WL로 제어)한다. 또한 연결된 선은 BL(bit line), BLB(bit line bar)가 있다. 우리는 여기에 1을 저장하려 한다. 즉, Q= 1 , Q' = 0으로 만들고 싶어한다.


과정은 다음과 같다.
① Bit Line 설정
BL = 1
BLB = 0
여기서 핵심은 BL은 강한 전압 (High), BLB는 LOW(GND)이다. 즉, 왼쪽은 올리고 오른쪽은 내린다.
② Word Line ON
WL = 1 → access transistor ON
이제 BL과 내부 노드가 연결된다.
③ 전류 흐름
원래 상태가 반대였다고 가정할때 (Q = 0, Q' = 1), 이 상태를 뒤집어야 한다.
| 왼쪽 노드 (Q) | BL = 1 연결됨 (내부는 원래 0) 그 결과, BL이 전류를 밀어넣어서 Q를 끌어올린다. |
| 오른쪽 노드 (Q') | BLB = 0 연결됨 (내부는 원래 1) 그 결과 전류가 빠지면서 Q'가 떨어진다. |
여기서 한쪽이 올라가고, 다른쪽이 내려가면서 inventer feedback이 작동한다.
- Q가 올라가면 → 반대쪽 inverter가 Q'를 더 강하게 0으로 만듦
- Q'가 내려가면 → 반대쪽 inverter가 Q를 더 강하게 1로 만듦
결국, 한번 기울면 완전히 뒤집히는 것이다. 따라서, Write가 성공하려면 BL 쪽 힘 > inverter 유지 힘이어야한다.
2-2. Write '0'
0을 쓴다 : Q = 0, Q' = 1


① Bit Line 설정
BL = 0
BLB = 1
왼쪽 노드 = Low로 끌어내림
오른쪽 노드 = High로 끌어올림
② Word Line ON
WL = 1 → access transistor ON
이제 BL과 내부 노드가 연결된다.
③ 전류 흐름
원래 상태가 반대였다고 가정할때 (Q = 1, Q' = 0), 이 상태를 뒤집어야 한다.
| 왼쪽 노드 (Q) | BL = 0 연결됨 (내부는 원래 1) Q → BL → GND로, Q가 떨어진다. |
| 오른쪽 노드 (Q') | BLB = 1 연결됨 (내부는 원래 0) BLB → Q'로, Q'가 상승한다. |
여기서 한쪽이 올라가고, 다른쪽이 내려가면서 inventer feedback이 작동한다.

2-3. Read '1'
SRAM에서 Write가 강제로 바꾸는 것이라면, Read는 데이터를 건드리지 않고 알아내야 한다. 여기서 알아야 할것은 저장값이 1이면 BLB가 떨어지고, 0이면 BL이 떨어진다.

① Precharge( 두 bit line을 동일하게 맞춤 )
BL = high
BLB = high
비교를 위해 둘이 같게 시작해야한다.
② WL ON
access transistor를 ON하면, 내부 노드가 BL과 연결된다. 그 결과 Q = 1, Q' = 0이다.
전류 흐름은 다음과 같다. (전류는 Low 노드 쪽으로 흐른다)
| Q = 1 쪽 (왼쪽) | - BL = high - 내부 = high = 전류가 거의 흐르지 않고, 그대로 유지된다. |
| Q' = 0 쪽 (오른쪽) | - BLB = high - 내부 = Low = 전류가 흐른다. ( BLB → cell → GND ) |
결과적으로 BLB가 살짝 떨어지고, BL 은 그대로 유지된다. 이를 1이라고 해석한다.
2-4. Read '0'
흐름은 정확히 동일하나, 단지 저장된 값이 다르다.
Q = 0
Q' = 1
① Precharge
BL = high
BLB = high
② WL ON
access transistor를 ON하면, 내부 노드가 BL과 연결된다. 그 결과 Q = 0, Q' = 1이다.
전류 흐름은 다음과 같다.
| Q = 1 쪽 (왼쪽) | - BL = high - 내부 = low = BL이 떨어진다. |
| Q' = 0 쪽 (오른쪽) | - BLB = high - 내부 = high = 변화가 없다. |
이번에는 BL이 떨어졌으므로 0이 저장된다.

'학교 수업 > 집적회로소자개론' 카테고리의 다른 글
| 집적회로소자개론 [14] DRAM (2) (0) | 2026.05.07 |
|---|---|
| 집적회로소자개론 [13] DRAM (1) (0) | 2026.05.04 |
| 집적회로소자개론 [11] Full Adder와 Subtractor (0) | 2026.04.17 |
| 집적회로소자개론 [10] Logic Devices (0) | 2026.04.17 |
| 집적회로소자개론 [9] MOSFET (0) | 2026.04.17 |