SRAM과 메모리 회로
요즘 프로세서 다이를 찍은 사진을 보면 넓은 면적이 바둑판처럼 반복되는 무늬로 덮여 있다. 캐시, 레지스터 파일, 버퍼, 태그 배열. 모두 SRAM이다. 칩 하나에 SRAM 비트가 수억~수십억 개 들어가니, 셀 하나가 0.001 µm²만 커져도 칩 전체가 눈에 띄게 커진다. 그래서 SRAM 셀은 공정이 허락하는 가장 작은 트랜지스터로, 가장 아슬아슬한 비율로 짓는다. 이 장에서는 8장의 래치를 극한까지 줄인 6T 셀이 어떻게 읽히고 써지는지, 읽는 동안 왜 내용이 지워질 뻔하는지, 미세한 비트라인 전압 차를 어떻게 0과 1로 키우는지, 그리고 공정 변동이 왜 SRAM의 최저 전압과 수율을 정하는지를 직접 만져 본다.
- 메모리 배열의 행 디코더·워드라인·비트라인·열 MUX·센스 앰프가 주소 하나로 어떻게 함께 움직이는지 설명한다.
- 6T 셀의 읽기·쓰기·유지 동작을 트랜지스터 수준에서 따라가고, 나비 곡선의 최대 내접 정사각형으로 정적 잡음 여유(SNM)를 구한다.
- 셀 비율 β와 풀업 비율 γ가 읽기 안정성과 쓰기 능력 사이에서 어떻게 맞서는지, 어시스트 회로가 그 줄다리기를 어떻게 푸는지 안다.
- 비트라인 커패시턴스·셀 전류·센스 시점으로 읽기 지연과 에너지를 계산하고, 변동이 SRAM 수율과 Vmin을 정하는 이유를 설명한다.
메모리 배열: 주소가 행과 열이 되기까지
메모리는 기억 소자를 바둑판처럼 늘어놓은 배열(Array)이다. 비트 하나를 기억하는 비트셀(Bitcell)이 가로 행과 세로 열로 반복되고, 각 행에는 가로로 지나가는 워드라인(Wordline, WL)이, 각 열에는 세로로 지나가는 비트라인(Bitline, BL)이 있다. 워드라인은 "이 행의 셀들은 비트라인에 연결되어라"라는 스위치 명령이고, 비트라인은 데이터가 오가는 통로다.
주소는 둘로 쪼개진다. 윗자리는 행 디코더(Row decoder)로 가서 수많은 워드라인 중 정확히 하나만 켠다. 아랫자리는 열 MUX(Column multiplexer)로 가서, 켜진 행의 여러 열 중 원하는 워드의 열만 골라 센스 앰프(Sense amplifier)나 쓰기 드라이버(Write driver)에 잇는다. 왜 굳이 열을 다시 고를까? 한 행에 워드 하나만 두면 배열이 기다란 막대가 되어 비트라인이 지나치게 길어진다. 한 행에 워드 여러 개를 섞어 넣으면 배열을 정사각형에 가깝게 만들 수 있다.
배열의 위쪽에는 프리차지(Precharge) 회로가 있어 읽기 전에 모든 비트라인을 \(V_{DD}\)로 채워 둔다. 그림에서 보듯 워드라인이 켜진 행의 셀은 선택되지 않은 열에서도 비트라인에 연결된다. 이 "반쯤 선택된" 셀(Half-selected cell)들은 사실상 읽기를 당하는 셈이라, 뒤에서 볼 읽기 안정성을 모두 갖춰야 한다.
같은 워드의 비트들이 물리적으로 4열씩 떨어져 있으면, 우주선 입자 하나가 이웃한 셀 여러 개를 한꺼번에 뒤집어도 한 워드 안에서는 한 비트만 틀린다. 한 비트 오류는 ECC로 고칠 수 있다. 소프트 에러와 ECC는 16장에서 다룬다.
6T SRAM 셀: 서로 붙잡은 두 인버터
8장에서 인버터 두 개를 고리로 이으면 두 안정 상태를 갖는 쌍안정 회로가 된다는 것을 보았다. 6T SRAM 셀(Six-transistor SRAM cell)은 바로 그것이다. 교차 결합된 인버터 두 개(트랜지스터 4개)가 노드 Q와 QB에 서로 반대 값을 붙잡고 있고, 여기에 nMOS 접근 트랜지스터(Access/pass-gate transistor) 두 개가 Q를 BL에, QB를 BLB에 잇는다. 접근 트랜지스터의 게이트가 워드라인이다. 클럭도, 리셋도, 전송 게이트도 없다. 래치에서 덜어낼 수 있는 것은 모두 덜어낸 것이다.
세 가지 동작은 다음과 같다.
- 유지(Hold): WL = 0. 접근 트랜지스터가 꺼져 셀은 바깥과 떨어지고, 두 인버터가 서로를 영원히 다시 세운다. 전원만 있으면 값이 지워지지 않는다. 그래서 정적(Static) RAM이다.
- 읽기(Read): BL·BLB를 \(V_{DD}\)로 프리차지한 뒤 띄워 두고 WL = 1. 0을 담은 쪽 노드가 접근 트랜지스터와 풀다운을 통해 비트라인을 천천히 끌어내린다. 두 비트라인의 작은 전압 차가 데이터다.
- 쓰기(Write): 쓰기 드라이버가 BL과 BLB를 강하게 반대 값(0과 \(V_{DD}\))으로 몰고 WL = 1. 0으로 몰린 비트라인이 1을 담은 노드를 끌어내려 셀을 뒤집는다.
읽기에서 눈여겨볼 것이 있다. Q = 0인 셀을 읽으면 접근 트랜지스터는 \(V_{DD}\)로 차 있는 BL에서 Q로 전류를 밀어 넣고, 풀다운 nMOS는 그 전류를 접지로 빼낸다. 두 nMOS가 직렬로 맞서는 전압 분배기가 되어 Q는 0보다 조금 높은 \(V_{read}\)에 머문다. 이 값이 반대편 인버터의 스위칭 문턱을 넘으면 셀이 저절로 뒤집힌다. 읽기가 쓰기가 되어 버리는 읽기 교란(Read disturb)이다. 그래서 풀다운은 접근 트랜지스터보다 강해야 한다. 반대로 쓰기에서는 접근 트랜지스터가 풀업 pMOS를 이겨야 한다. 세 트랜지스터의 힘겨루기가 SRAM 설계의 전부라고 해도 과장이 아니다.
DRAM은 트랜지스터 하나와 커패시터 하나(1T1C)로 비트를 전하로 담고, 전하가 새기 전에 수십 ms마다 다시 써 주는 리프레시가 필요하다. 플래시는 전원이 꺼져도 전하가 남는 비휘발성 셀이다. 셀이 훨씬 작아 용량은 크지만 로직 공정과 따로 만들고 느리다. 이 둘의 셀·배열·인터페이스는 시리즈의 MemoryBook이 자세히 다룬다. 이 책은 로직 공정 그대로 칩 안에 넣을 수 있는 SRAM에 집중한다.
정적 잡음 여유와 나비 곡선
셀이 얼마나 튼튼한지 하나의 숫자로 말할 수 있을까? 4장에서 인버터 하나의 노이즈 마진을 VTC로 구했다. 셀에는 인버터가 둘이고 서로의 입력이 서로의 출력이다. 그래서 두 VTC를 한 그래프에 겹친다. 인버터 1의 VTC는 \(V_{QB} = f(V_Q)\)로 그리고, 인버터 2의 VTC는 축을 바꿔 \(V_Q = g(V_{QB})\)로 그린다. 두 곡선은 세 점에서 만나는데, 양 끝의 두 점이 안정 상태(0과 1)이고 가운데가 준안정점이다. 두 곡선이 둘러싼 두 개의 눈 모양이 나비 날개를 닮아 나비 곡선(Butterfly curve)이라 부른다.
두 인버터 입력에 같은 크기의 직류 잡음 전압이 반대 방향으로 끼어든다고 해 보자. 그러면 두 곡선이 서로를 향해 평행 이동한다. 잡음이 커져서 한쪽 눈이 닫히는 순간 그 안정 상태가 사라지고 셀은 뒤집힌다. 눈이 닫히기까지 버틸 수 있는 잡음의 크기가 정적 잡음 여유(Static noise margin, SNM)이고, 기하학적으로는 작은 쪽 눈에 들어가는 가장 큰 정사각형의 한 변이다(Seevinck, 1987).
나비 곡선과 SNM
유지 모드에서 SNM은 \(V_{DD}\)의 약 35%로 넉넉하다. 읽기 모드로 바꾸면 0쪽 출력이 \(V_{read}\)만큼 떠오르고 VTC의 아래 끝이 들려, 눈이 절반 가까이 줄어든다. 셀이 가장 위험한 순간은 가만히 있을 때가 아니라 읽힐 때다. 그래서 SRAM에서 "SNM"이라 하면 보통 읽기 SNM(Read SNM, RSNM)을 가리킨다. 읽기 SNM을 지키는 가장 직접적인 손잡이가 셀 비율이다.
시뮬레이터에서 β를 3까지 올리면 읽기 SNM이 늘어난다. 그렇다면 왜 모든 셀을 β = 3으로 만들지 않을까? 잃는 것 두 가지를 떠올려 보자.
답 보기
첫째, 면적이다. 풀다운이 넓어지면 셀이 커지고, 수억 개를 곱하면 칩이 커진다. 둘째, 같은 셀 면적이라면 접근 트랜지스터를 줄여 β를 키우게 되는데, 그러면 읽기 전류가 줄어 비트라인이 늦게 내려가고(읽기 지연↑), 접근 트랜지스터가 약해져 쓰기가 어려워진다. 읽기 안정성과 쓰기 능력은 늘 반대 방향으로 당긴다.
ΔVt 슬라이더를 움직여 보자. 두 인버터가 조금만 달라져도 한쪽 눈이 줄고 다른 쪽이 커진다. SNM은 작은 쪽 눈으로 정해지므로 불일치는 언제나 손해다. ΔVt가 ±0.15 V쯤 되면 β가 작은 셀은 읽기 중 눈 하나가 아예 닫힌다. 셀이 단안정이 되어 읽는 순간 한쪽 값으로 굴러 떨어진다. 최소 크기 트랜지스터의 Vt는 무작위 도펀트 요동 같은 이유로 셀마다 수십 mV씩 흩어지므로, 수억 개 중 몇 개는 반드시 이 꼬리에 걸린다. 이 이야기는 마지막 절의 수율로 이어진다.
평면 트랜지스터 시절에는 폭을 연속적으로 골라 β = 1.5 같은 비율을 쉽게 맞췄다. FinFET에서는 폭이 핀 개수로 양자화된다. 가장 작은 고밀도 셀은 풀업·접근·풀다운이 모두 핀 1개인 "1-1-1" 구조라 β = 1, γ = 1에 묶인다(밀도형 1-1-1, 성능형 1-2-2 등). β로 읽기 SNM을 벌 수 없으니 FinFET 이후의 SRAM은 아래에서 볼 어시스트 회로에 크게 기댄다. GAA(나노시트)는 시트 폭을 어느 정도 다시 연속적으로 고를 수 있게 한다.
쓰기 능력: 접근 트랜지스터 대 풀업
Q = 1을 담은 셀에 0을 쓰는 순간을 보자. BL은 0 V로 몰려 있고 WL이 켜진다. Q 노드에는 두 힘이 걸린다. 접근 nMOS는 Q를 BL 쪽(0)으로 끌어내리고, 풀업 pMOS(게이트 QB = 0이라 완전히 켜져 있다)는 Q를 \(V_{DD}\)로 붙잡는다. 두 전류가 같아지는 Q 전압이 반대 인버터의 문턱보다 낮아지면 QB가 올라가기 시작하고, 그러면 풀업이 꺼지며 되먹임이 셀을 끝까지 뒤집는다. 그러니 쓰기의 손잡이는 풀업 비율(Pull-up ratio)이다.
정리하면 6T 셀의 크기 순서는 풀다운 > 접근 > 풀업이다. 풀다운이 접근을 이겨야 읽기가 안전하고(β > 1), 접근이 풀업을 이겨야 쓰기가 된다(γ 작게). 접근 트랜지스터는 그 사이에서 양쪽의 눈치를 본다. 접근이 강하면 읽기가 빠르고 쓰기도 쉽지만 읽기 SNM이 줄고, 약하면 그 반대다. 이 줄다리기는 \(V_{DD}\)를 낮출수록 팽팽해진다.
읽기 동작과 센스 앰프
셀은 작고 비트라인은 길다. 비트라인 하나에는 같은 열의 셀이 수백 개 매달려 있고, 각 셀의 접근 트랜지스터 드레인 커패시턴스와 배선 커패시턴스가 쌓여 \(C_{BL}\)은 수십 fF에 이른다. 반면 셀이 흘릴 수 있는 전류는 최소 크기 트랜지스터 두 개를 직렬로 지난 수십 µA다. 비트라인을 \(V_{DD}\)에서 0까지 끌어내리려면 수백 ps가 걸린다. 그래서 SRAM은 비트라인을 끝까지 기다리지 않는다. 두 비트라인 사이에 수십 mV의 차만 생기면 센스 앰프가 그것을 \(V_{DD}\) 크기로 키운다.
가장 흔한 센스 앰프는 래치형(Latch-type / strobed sense amplifier)이다. 교차 결합 인버터 쌍을 비트라인에 걸고 센스 인에이블(SAE) 신호로 꼬리 트랜지스터를 켜면, 두 노드의 작은 전압 차가 양의 되먹임으로 지수적으로 벌어진다. 8장의 메타안정성 해소와 같은 식이다: \(V_{diff}(t) = V_{diff}(0)\,e^{t/\tau}\). 문제는 SAE를 언제 켤지다. 너무 이르면 ΔV가 오프셋보다 작아 틀린 쪽으로 넘어가고, 너무 늦으면 시간과 에너지를 버린다.
비트라인 방전과 센스 시점
열당 행 수를 256에서 512로 늘리면 같은 오프셋을 넘기는 데 필요한 센스 시점은 어떻게 될까? 열당 에너지는?
답 보기
\(C_{BL}\)이 거의 두 배(25.6+2 → 51.2+2 fF)가 되므로 \(t_{sense} = C_{BL}\Delta V/I\)도 거의 두 배가 된다. 에너지 \(C_{BL}V_{DD}\Delta V\)도 두 배다. 그래서 큰 메모리는 하나의 긴 배열로 만들지 않고 128~256행 정도의 작은 뱅크(Bank / sub-array) 여럿으로 쪼갠다. 배열을 쪼갤수록 주변 회로(디코더·센스 앰프) 면적이 늘어 효율이 떨어지므로, 그 균형점에서 뱅크 크기가 정해진다.
약한 셀로 바꿔 보자. 같은 센스 시점에서 ΔV가 40% 줄어 오프셋 아래로 떨어질 수 있다. 실제 설계는 평균 셀이 아니라 수백만 개 중 가장 약한 셀(−5σ, −6σ)과 가장 나쁜 센스 앰프 오프셋이 만나도 성공하도록 센스 시점을 잡는다. 그래서 SAE 타이밍은 보통 실제 비트라인을 흉내 내는 복제 비트라인(Replica bitline)으로 만든다. 공정·전압·온도가 바뀌면 복제 경로도 같이 느려져 타이밍이 스스로 따라간다.
BL과 BLB를 함께 쓰는 차동 읽기는 두 선에 똑같이 실린 잡음(전원 흔들림, 이웃 선의 결합)을 빼 버린다. 기준 전압 하나와 비교하는 단일 선 읽기보다 훨씬 작은 ΔV로도 확실히 판정할 수 있다. 쓰기에서도 BL·BLB를 반대로 몰아 한쪽은 끌어내리고 한쪽은 받쳐 주므로 쓰기가 쉽다.
디코더: 주소에서 워드라인까지
행 디코더는 n비트 주소를 받아 \(2^n\)개 워드라인 중 하나만 켜는 회로다. 가장 단순한 방법은 행마다 n입력 AND 게이트를 두고 각 입력을 주소 비트나 그 보수에 잇는 것이다. 그러나 8입력 NAND는 nMOS 8개가 직렬로 쌓여 느리고(5장의 스택 효과), 주소선 하나가 행의 절반, 수백 개 게이트를 구동해야 한다. 그래서 실제 디코더는 미리 디코딩(Predecoding)을 쓴다. 주소를 2~3비트씩 묶어 먼저 작은 디코더(2→4, 3→8)로 풀어 놓고, 행 게이트는 각 묶음에서 한 선씩만 골라 AND한다.
논리적 노력으로 보면 디코더는 가지치기 노력이 큰 경로다. 주소선 하나(참 또는 보수)는 \(2^n/2\)개 행으로 갈라지고, 끝에서는 워드라인 하나가 한 행의 접근 트랜지스터 수백 개와 긴 배선을 끌어야 한다.
n = 8에서 경로 노력은 수천~만 단위다. 단당 노력 4를 맞추려면 6~7단이 필요하고, 디코더 지연만 FO4 7~8개 정도가 된다. SRAM 접근 시간의 상당 부분이 셀이 아니라 디코더와 워드라인에서 쓰이는 이유다. 워드라인 자체도 긴 RC 배선이어서 끝의 셀이 늦게 켜진다. 배선의 분산 RC는 14장에서 다룬다.
레지스터 파일, CAM, ROM
같은 배열 구조가 쓰임새에 따라 모양을 바꾼다. 프로세서의 레지스터 파일(Register file)은 한 사이클에 여러 레지스터를 동시에 읽고 쓴다. 예를 들어 슈퍼스칼라 코어는 명령 4개를 한 번에 처리하려고 읽기 포트 8개, 쓰기 포트 4개를 가진다. 포트마다 워드라인과 비트라인이 하나씩(쓰기는 차동이라 둘) 더 필요하고, 셀은 배선 트랙 수로 크기가 정해진다. 가로·세로가 함께 늘어나니 면적은 포트 수의 대략 제곱으로 커진다.
캐시의 태그 비교, TLB, 네트워크 라우터의 주소 표처럼 "이 값이 어디에 있는가"를 묻는 곳에는 CAM(Content-addressable memory, 내용 주소 메모리)을 쓴다. 보통 메모리가 주소를 받아 내용을 내놓는다면 CAM은 내용을 받아 주소를 내놓는다. 각 셀에 비교 트랜지스터를 붙이고, 한 항목의 셀들이 하나의 매치라인(Matchline)을 공유한다. 매치라인을 프리차지한 뒤 검색 키를 서치라인에 실으면, 한 비트라도 다른 셀은 매치라인을 끌어내린다. 끝까지 높게 남은 매치라인이 일치한 항목이다. 7장의 동적 NOR(와이어드 OR)와 같은 구조다.
CAM은 검색 한 번에 모든 항목을 동시에 비교하므로 빠르지만, 매번 대부분의 매치라인이 방전되었다가 다시 충전되어 전력이 크다. 그림에서 "방전된 매치라인"이 거의 늘 항목 수에 가깝다는 것을 확인해 보자. CAM 셀은 10T(TCAM은 16T) 정도라 면적도 크다. 그래서 꼭 필요한 작은 표에만 쓴다.
ROM(Read-only memory)은 가장 단순한 배열이다. 저장 값이 제조 때 정해지므로 셀은 "그 교차점에 트랜지스터가 있느냐 없느냐"(또는 비아가 있느냐) 하나로 1비트를 담는다. 비트라인을 프리차지하고 워드라인을 켜면 트랜지스터가 있는 열만 방전된다. 부트 코드, 마이크로코드, 상수 표에 쓰인다. 구조는 CAM의 매치라인과 마찬가지로 동적 NOR다.
저전압 SRAM과 수율
전력을 줄이는 가장 강력한 방법은 \(V_{DD}\)를 낮추는 것이다(15장). 로직은 0.5 V 아래에서도 느리게나마 돌지만, SRAM은 보통 그보다 훨씬 먼저 실패한다. 칩이 정상 동작하는 가장 낮은 전압을 Vmin이라 하는데, 많은 SoC에서 Vmin을 정하는 것은 로직이 아니라 SRAM이다. 이유는 SNM 시뮬레이터에서 이미 보았다. \(V_{DD}\)가 낮아지면 SNM이 줄고, 셀 사이의 Vt 불일치는 그대로다. 평균 셀은 멀쩡해도 수억 개 중 꼬리에 있는 몇 개가 실패한다.
저전압에서 SRAM을 살리는 길은 크게 둘이다. 하나는 셀을 바꾸는 것이다. 8T 셀은 6T에 읽기 전용 트랜지스터 2개(저장 노드를 게이트로 보는 nMOS + 읽기 워드라인 nMOS)를 붙여 읽기 경로를 저장 노드에서 떼어 낸다. 읽기 비트라인이 셀 노드에 직접 닿지 않으니 읽기 교란이 사라지고, 셀은 읽는 중에도 유지 SNM을 누린다. 위의 레지스터 파일 그림에서 R = 1, W = 1이 바로 8T 셀이다. 대가는 약 30% 큰 면적과 단일 선 읽기다. 그래서 8T는 낮은 전압에서 돌아야 하는 L1 캐시나 레지스터 파일에, 6T는 밀도가 중요한 큰 캐시에 쓰는 식으로 나눈다.
다른 하나는 셀은 그대로 두고 주변 회로로 돕는 것, 곧 어시스트 회로(Assist circuits)다.
- 읽기 어시스트: 워드라인 전압을 \(V_{DD}\)보다 조금 낮춰(WL 언더드라이브) 접근 트랜지스터를 약하게 한다. 실효 β가 커져 읽기 SNM이 오른다. 대신 읽기 전류가 줄어든다.
- 쓰기 어시스트: 쓰는 순간 BL을 0 V 아래로 잠깐 끌어내리거나(음의 비트라인), 셀 전원을 잠깐 낮춰(셀 \(V_{DD}\) 붕괴) 풀업을 약하게 한다. 위 쓰기 그림의 \(V_{BL}\) 슬라이더가 음의 비트라인이다.
- 이중 전원: 로직은 낮은 전압으로 돌리고 SRAM 배열만 조금 높은 별도 전원에 둔다. 경계에는 레벨 시프터가 들어간다.
σVt = 25 mV, \(V_{DD}\) = 0.6 V에서 0.5 V로 낮추면 6T 셀 실패 확률은 대략 몇 배가 될까? 2배? 10배? 그보다 훨씬 더?
답 보기
그림에서 직접 확인해 보면 μ/σ가 약 5.6에서 4.9로, 0.7σ쯤 줄어든다. 정규 분포의 꼬리에서 이 차이는 확률로 수십 배다(5.6σ ≈ 1e-8, 4.9σ ≈ 5e-7). 평균 읽기 SNM은 겨우 13% 줄었는데 실패 확률은 한 자릿수 넘게 뛰고, 1 Mb 배열 수율은 99%에서 약 55%로 떨어진다. 수율이 "평균"이 아니라 "꼬리"로 정해지기 때문이다. 이것이 SRAM이 전압 미세화를 가장 먼저 멈추게 하는 이유다. 변동과 몬테카를로는 16장에서 더 다룬다.
실제 수치: 비트셀 면적과 캐시 용량
오랫동안 SRAM 비트셀 면적은 공정 세대마다 약 절반씩 줄었고, 파운드리는 새 공정을 발표할 때 고밀도 SRAM 셀 면적을 가장 먼저 내세웠다. 그런데 5 nm급 이후 그 곡선이 거의 평평해졌다. 로직 밀도는 계속 늘었지만 SRAM 셀은 0.02 µm² 근처에서 머물렀다. 핀 하나짜리 트랜지스터를 더 좁게 늘어놓기 어렵고, 크기가 줄수록 Vt 변동이 커져 앞 절의 수율을 맞추기 어렵기 때문이다. 아래 표는 공개 발표의 대략값이다.
| 공정 (대략 양산 연도) | 고밀도 6T 셀 면적 | 이전 세대 대비 | 비고 |
|---|---|---|---|
| 90 nm (~2004) | 약 1.0 µm² | — | 평면 트랜지스터 |
| 65 nm (~2006) | 약 0.57 µm² | ×0.57 | |
| 45 nm (~2008) | 약 0.35 µm² | ×0.61 | High-k 금속 게이트 |
| 32 nm (~2010) | 약 0.17 µm² | ×0.49 | |
| 22 nm (~2012) | 약 0.09 µm² | ×0.54 | 첫 FinFET 세대 |
| 14 nm (~2014) | 약 0.06 µm² | ×0.64 | |
| 7 nm급 (~2018) | 약 0.027 µm² | ×0.45 | DG-7이 흉내 내는 세대 |
| 5 nm급 (~2020) | 약 0.021 µm² | ×0.78 | 감소 폭이 줄기 시작 |
| 3 nm급 (~2022–23) | 약 0.020–0.021 µm² | ≈×1.0 | 사실상 정체 |
| 2 nm급 GAA (~2025) | 약 0.0175 µm² | ×0.85 | 나노시트로 약간 회복 |
0.021 µm² 셀이면 1 MB(8 Mb) 배열의 셀만 약 0.18 mm²다. 디코더·센스 앰프·리던던시 같은 주변 회로까지 넣으면 배열 효율이 60~70%여서 실제로는 그보다 1.5배쯤 크다. 그럼에도 칩에 넣는 SRAM은 계속 늘고 있다.
| 제품 (연도) | 온칩 SRAM 캐시 | 메모 |
|---|---|---|
| 스마트폰 SoC 프라임 코어 (~2024) | L2 약 1~2 MB/코어, 시스템 캐시 약 8~32 MB | 코어 하나보다 캐시 면적이 큰 경우도 많다 |
| 데이터센터 GPU (~2022) | L2 약 50 MB | 레지스터 파일만 수십 MB |
| 3D 적층 캐시 데스크톱 CPU (~2022) | L3 약 96 MB | SRAM 다이 약 64 MB를 위에 쌓음 |
| 3D 적층 캐시 서버 CPU (~2023) | L3 약 1.1 GB | SRAM이 로직보다 잘 안 줄자 SRAM만 오래된 공정 다이로 떼어 쌓는 흐름 |
SRAM이 로직만큼 줄지 않자, 큰 캐시를 따로 덜 비싼 공정의 다이에 만들어 쌓는 방식이 늘고 있다. 캐시를 어떤 계층으로 얼마나 둘지는 아키텍처의 문제로 SoCBook의 캐시 장이, 칩 밖의 큰 메모리(DRAM·HBM)와 비휘발성 메모리는 MemoryBook이 다룬다.
eDRAM(로직 공정 안의 DRAM), MRAM(자기 터널 접합) 같은 내장 메모리는 셀이 SRAM보다 작지만 공정 단계가 늘고, 속도나 쓰기 에너지·내구성에서 손해가 있다. 일부 제품의 마지막 단계 캐시나 비휘발성 저장에 쓰인다. 소자 원리는 DeviceBook, 공정은 ProcessBook을 보자.
핵심 정리
- 메모리 배열은 행 디코더가 워드라인 하나를 켜고, 열 MUX가 그 행의 여러 열 중 워드를 골라 센스 앰프·쓰기 드라이버에 잇는 구조다. 선택된 행의 나머지 셀도 반쯤 선택되어 읽힌다.
- 6T 셀은 교차 결합 인버터와 nMOS 접근 트랜지스터 2개다. 유지는 WL = 0, 읽기는 프리차지된 BL·BLB의 작은 차, 쓰기는 BL을 강하게 몰아 뒤집는다.
- 정적 잡음 여유는 나비 곡선의 작은 쪽 눈에 들어가는 최대 정사각형의 한 변이다. 읽기 중에는 0 노드가 떠올라(읽기 교란) SNM이 크게 줄어든다.
- 크기 순서는 풀다운 > 접근 > 풀업. β(풀다운/접근)는 읽기 안정성을, γ(풀업/접근)를 작게 하는 것은 쓰기 능력을 지킨다. FinFET 셀은 비율이 핀 수로 묶여 어시스트 회로에 기댄다.
- 읽기는 비트라인을 끝까지 내리지 않는다. \(\Delta V = I_{cell}t/C_{BL}\)이 센스 앰프 오프셋을 넘는 순간 래치형 센스 앰프가 증폭한다. 큰 메모리는 \(C_{BL}\)을 줄이려고 뱅크로 쪼갠다.
- 디코더는 가지치기·전기적 노력이 큰 경로라 미리 디코딩과 워드라인 드라이버 사슬로 단당 노력을 맞춘다.
- SRAM 수율은 평균이 아니라 수억 개 셀 분포의 꼬리(5~6σ)가 정한다. 그래서 SRAM이 칩의 Vmin을 정하고, 8T 셀·어시스트·이중 전원으로 이를 푼다. 비트셀 면적은 5 nm급 이후 약 0.02 µm²에서 거의 멈췄다.
확인 퀴즈
Q1. 6T SRAM 셀에서 읽기 중 내용이 뒤집히는 읽기 교란을 막으려면 어떤 두 트랜지스터의 세기 관계가 가장 중요한가?
Q2. 나비 곡선에서 SNM을 정하는 것은?
Q3. 열당 512행, 셀당 0.1 fF(고정분 무시), 셀 전류 25 µA일 때 비트라인에 50 mV 차가 생기는 데 걸리는 시간은 대략?
Q4. 쓰기가 실패하는 셀을 살리는 쓰기 어시스트로 알맞지 않은 것은?
Q5. 8T SRAM 셀이 저전압에서 6T보다 유리한 가장 큰 이유는?
Q6. 셀 실패 확률이 1e-6에서 1e-9로 줄면, 1 Mb(약 1.05×10⁶ 비트) 배열의 수율(리던던시 없음)은 대략 어떻게 바뀌는가?