테스트와 수율
웨이퍼에서 막 나온 메모리 다이는 그대로 팔 수 없다. 셀이 수백억 개나 되니 불량 셀이 하나도 없는 다이는 거의 없고, 겉으로 멀쩡해 보여도 몇 주 뒤에 죽을 다이가 섞여 있다. 메모리 회사는 모든 다이의 모든 셀을 여러 온도와 전압에서 읽고 써 보고, 불량 셀을 여분 셀로 바꿔 끼우고(리페어), 고온·고전압으로 미리 혹사시켜(번인) 약한 칩을 걸러 낸 뒤에야 출하한다. 이 장에서는 메모리가 어떻게 고장 나는지를 모델로 정리하고, 그 고장을 최소 시간에 찾아내는 테스트 알고리즘, 불량 다이를 살려 내는 리던던시, 그리고 웨이퍼 한 장에서 양품이 몇 개 나오는지를 예측하는 수율 모델을 직접 계산하고 시뮬레이션해 본다.
- 웨이퍼 테스트 → 리페어 → 패키징 → 번인 → 패키지 테스트로 이어지는 흐름과 각 단계의 목적을 설명할 수 있다.
- 고착·천이·결합·주소 디코더·리텐션 결함을 구분하고, MATS+와 March C-가 각각 어떤 결함을 잡는지 추적할 수 있다.
- 테스트 알고리즘의 복잡도(\(n\), \(n\sqrt n\), \(n^2\))로 16 Gb 소자의 테스트 시간을 계산할 수 있다.
- 여분 로우·칼럼 배정 문제(must-repair, 탐색)를 풀고, 리던던시가 유효 수율을 얼마나 올리는지 추정할 수 있다.
- 웨이퍼당 다이 수와 Poisson·Murphy·음이항 수율 모델로 양품 다이당 원가를 계산하고, 번인이 출하 불량률(DPPM)을 낮추는 원리를 설명할 수 있다.
테스트는 어디에 있는가
14장에서 본 전공정이 끝나면 웨이퍼 위에는 다이 수백~천여 개가 놓여 있다. 이 가운데 어떤 다이가 양품인지는 전기를 넣어 보기 전에는 알 수 없다. 메모리 테스트는 한 번으로 끝나지 않고, 제조 흐름 여러 곳에 나뉘어 있다. 원칙은 단순하다. 불량은 되도록 일찍, 값싼 단계에서 걸러 낸다. 불량 다이를 패키징하면 패키지 비용을 버리게 되고, 불량 패키지를 모듈에 붙이면 모듈 전체를, HBM 스택에 넣으면 멀쩡한 다이 열두 장을 함께 버리게 된다(7장).
웨이퍼 테스트: 프로브 카드로 다이를 직접 찌른다
첫 번째 관문은 웨이퍼 테스트다. 국내에서는 EDS(Electrical Die Sorting), 해외에서는 웨이퍼 소트(wafer sort) 또는 프로브 테스트라고 부른다. 수만~십만 개 이상의 미세한 탐침이 달린 프로브 카드(probe card)를 웨이퍼의 패드에 눌러 붙이고, 자동 테스트 장비 ATE(Automatic Test Equipment)가 전원과 신호를 넣는다. 메모리용 프로브 카드는 300 mm 웨이퍼 전체를 한 번에(또는 몇 번에 나누어) 접촉해 다이 수백 개 이상을 동시에 시험한다. 로직 칩은 다이 몇 개씩 옮겨 가며 찍는데, 메모리가 이렇게까지 병렬로 시험하는 까닭은 뒤에서 계산해 볼 테스트 시간 때문이다.
웨이퍼 테스트는 보통 고온과 저온에서 각각 수행한다. 리텐션 불량은 고온에서, 타이밍·트랜지스터 구동력 관련 불량은 저온에서 더 잘 드러나기 때문이다(11장). 여기서 얻는 결과물은 두 가지다. 하나는 다이별 양·불량과 등급을 기록한 웨이퍼 맵이고, 다른 하나는 다이 안의 어느 셀이 불량인지를 기록한 불량 비트 맵(fail bit map)이다. 불량 비트 맵은 곧바로 리페어의 입력이 된다.
| 단계 | 접촉 수단 | 주요 조건 | 주로 잡는 것 |
|---|---|---|---|
| 웨이퍼 테스트(EDS) | 프로브 카드 | 고온·저온, 느슨한 속도 | 셀 불량, 리텐션 꼬리, DC 불량 → 리페어 |
| 웨이퍼 번인(선택) | 프로브 카드 | 고온·고전압 | 초기 고장을 조립 전에 선별 |
| 번인(TDBI) | 번인 보드·소켓 | 약 125°C, 정격보다 높은 전압, 수 시간~수십 시간 | 잠재 결함(산화막, 접촉 불량) |
| 패키지(최종) 테스트 | 소켓·핸들러 | 정격 속도, 고온/저온, 전압 코너 | 타이밍(AC), 전류(IDD), 속도 등급 |
| 모듈·시스템 레벨 테스트 | 실제 보드·슬롯 | 실사용 패턴, 트레이닝 | 실장 호환성, ATE가 놓친 불량 |
테스트 비용은 시간에서 나온다
테스트는 제품에 아무것도 더하지 않는 공정이다. 그런데도 메모리 원가에서 무시할 수 없는 몫을 차지한다. 제품과 세대에 따라 다르지만 흔히 제조 원가의 약 10% 안팎에서 그 이상까지로 추정한다. 테스트 원가는 사실상 장비 시간이다. 수십억 원대 장비를 다이 하나가 얼마나 오래 점유하는지로 정해진다.
로직 칩은 스캔 체인으로 수 초 안에 시험이 끝나지만, 메모리는 모든 셀을 여러 번 읽고 써야 하고 리텐션 시험처럼 일부러 기다려야 하는 항목도 있다. 그래서 메모리 한 개를 처음부터 끝까지 시험하는 데 걸리는 시간은 분 단위에서 시간 단위다. 메모리 테스트 기술의 역사는 이 시간을 줄이는 싸움이었다. 같은 불량을 잡으면서 연산 수가 적은 알고리즘을 쓰고, 칩 안에 테스트 회로를 넣고, 한 번에 더 많은 다이를 시험한다. 아래에서 차례로 살펴본다.
테스트는 완벽할 수 없다. 불량을 양품으로 통과시키는 테스트 이스케이프(test escape)는 고객 불량으로 이어지고, 양품을 불량으로 버리는 오버킬(overkill)은 수율 손실이 된다. 테스트 조건을 엄하게(가드밴드를 넓게) 잡으면 이스케이프가 줄지만 오버킬이 늘어난다. 둘 사이의 균형을 잡는 것이 테스트 엔지니어의 일이다.
고장 모델: 메모리는 어떻게 틀리는가
물리적 결함(defect)은 종류가 끝이 없다. 파티클 때문에 끊어진 배선, 덜 뚫린 콘택, 얇아진 유전막, 이웃 셀과 붙어 버린 커패시터 등이다. 이것을 하나하나 겨냥해 테스트를 만들 수는 없다. 그래서 결함이 논리적으로 어떤 오동작으로 보이는지를 몇 가지 유형으로 추상화하는데, 이것이 고장 모델(fault model)이다. 테스트 알고리즘의 품질은 "어떤 고장 모델을 100% 검출하는가"로 평가한다.
| 고장 모델 | 표기 | 논리적 증상 | 물리적 원인의 예 |
|---|---|---|---|
| 고착 결함(Stuck-At Fault) | SA0, SA1 | 셀 값이 0 또는 1에 고정 | 커패시터 단락·개방, 콘택 불량 |
| 천이 결함(Transition Fault) | <↑/0>, <↓/1> | 0→1 또는 1→0 한 방향 쓰기가 안 됨 | 약한 액세스 트랜지스터, 쓰기 구동력 부족 |
| 반전 결합(CFin) | <↑;↕> | 공격자 천이 때 희생자 값이 뒤집힘 | 이웃 셀·비트라인·워드라인 사이의 브리지와 용량성 결합 |
| 멱등 결합(CFid) | <↑;0> 등 | 공격자 천이 때 희생자가 특정 값으로 강제됨 | |
| 상태 결합(CFst) | <1;0> 등 | 공격자가 특정 상태인 동안 희생자가 특정 값으로 강제됨 | |
| 주소 디코더 결함(AF) | — | 접근 안 되는 셀, 한 주소에 여러 셀, 여러 주소에 한 셀 | 디코더 배선 단락·개방 |
| 이웃 패턴 민감 결함(NPSF) | — | 주변 여러 셀이 특정 패턴일 때만 오동작 | 누설·결합의 데이터 패턴 의존성 |
| 리텐션 결함(DRF) | — | 쓴 직후에는 맞지만 기다리면 값이 바뀜 | 접합·GIDL 누설이 큰 셀(11장의 꼬리 셀) |
마지막 두 가지가 DRAM에서 특히 까다롭다. NPSF(Neighborhood Pattern Sensitive Fault)는 한 셀의 동작이 주변 4개 또는 8개 셀의 값 조합에 따라 달라지는 결함이다. 4장의 6F²·4F² 배치처럼 셀이 촘촘할수록 이웃의 영향이 커진다. 주변 패턴을 모두 시험하려면 조합이 많고, 무엇보다 물리적으로 누가 이웃인지 알아야 한다. 논리 주소와 물리 위치는 주소 스크램블링 때문에 다르다. 제조사는 자기 칩의 배치를 알기 때문에 물리적 이웃을 겨냥한 패턴(체커보드, 로우 스트라이프, 칼럼 스트라이프 등)을 만들 수 있다.
리텐션 결함은 시간을 써야만 찾을 수 있다. 데이터를 쓰고, 리프레시를 멈춘 채 정해진 시간만큼 기다린 뒤 읽는다. 여기에 VRT(Variable Retention Time)가 겹친다. 11장에서 보았듯 VRT 셀은 리텐션 시간이 두 상태 사이를 무작위로 오간다. 테스트하는 순간 좋은 상태였다면 통과하고, 출하 뒤에 나쁜 상태로 바뀌면 고객 환경에서 오류가 난다. 그래서 제조사는 리텐션 시험을 규격(예: 64 ms)보다 훨씬 긴 시간과 높은 온도로, 여러 번 반복해 가드밴드를 확보한다. 그래도 남는 것은 온다이 ECC와 시스템 ECC가 받아 준다.
테스트 알고리즘: 모든 셀을, 최소 횟수로
가장 단순한 테스트는 전체에 0을 쓰고 읽은 뒤, 전체에 1을 쓰고 읽는 MSCAN(메모리 스캔)이다. 연산 수는 \(4n\)(\(n\)은 셀 수)으로 싸지만 고착 결함 말고는 잡는 것이 거의 없다. 모든 셀에 같은 값을 쓰기 때문에, 주소 디코더가 고장 나 엉뚱한 셀에 쓰고 읽어도 알아차리지 못한다. 0과 1을 바둑판 모양으로 쓰는 체커보드도 \(4n\)이며, 물리적으로 인접한 셀이 서로 반대 값을 갖게 해 셀 사이 단락과 누설을 드러낸다. 리텐션 시험의 기본 패턴이기도 하다.
반대쪽 끝에는 GALPAT(GALloping PATtern)과 워킹 1/0이 있다. 배경을 모두 0으로 채우고 한 셀만 1로 바꾼 뒤, 나머지 모든 셀을 하나씩 읽으며 그 사이사이 기준 셀을 다시 확인한다. 이것을 모든 셀에 대해 반복한다. 결합 결함과 주소 결함을 빠짐없이 찾고 불량 위치까지 알려 주지만, 연산 수가 \(O(n^2)\)이다. 1970년대 킬로비트급 메모리에서는 쓸 수 있었으나, 용량이 4배가 될 때마다 시간이 16배가 되므로 메가비트 시대에 이미 한계에 닿았다. 기준 셀과 같은 로우·칼럼만 읽도록 줄인 변형도 \(O(n\sqrt n)\)이다.
March 테스트
오늘날 메모리 테스트의 뼈대는 March 테스트다. March 테스트는 March 원소의 나열이다. 원소 하나는 "주소를 오름차순(⇑) 또는 내림차순(⇓)으로 훑으면서 각 셀에 정해진 읽기·쓰기를 순서대로 수행한다"는 뜻이다. 한 셀에서 할 일을 모두 끝내고 다음 셀로 넘어간다. 표기법은 다음과 같다.
- ⇑ 주소 오름차순, ⇓ 내림차순, ⇕ 어느 쪽이든 무방
- w0, w1 0 또는 1 쓰기, r0, r1 읽어서 0 또는 1인지 확인
이 단순한 구조가 왜 강력한지 따져 보자. 원소 ⇑(r0,w1)이 진행되는 동안, 현재 주소보다 낮은 주소의 셀은 이미 1이고 높은 주소의 셀은 아직 0이다. 낮은 주소의 셀에 1을 쓰는 동작이 높은 주소의 셀을 건드렸다면, 그 셀에 도착했을 때 r0이 잡아낸다. 주소 방향을 뒤집으면(⇓) 반대 방향의 영향도 잡는다. 값을 뒤집어 한 번 더 하면 반대 천이의 영향까지 잡는다. March C-는 오름·내림 두 방향 × 상승·하강 두 천이의 네 조합을 모두 한 번씩 수행하고, 매번 쓰기 전에 읽어서 확인한다. 그 결과 연산 \(10n\)회로 다음을 모두 검출한다(van de Goor의 분석).
| 알고리즘 | 연산 수 | SAF | TF | AF | CF (반전·멱등·상태) | 16 Gb, 10 ns/연산 |
|---|---|---|---|---|---|---|
| MSCAN | 4n | ○ | 일부 | × | × | 약 11분 |
| 체커보드 | 4n | ○ | 일부 | × | 인접 셀 단락 위주 | 약 11분 |
| MATS+ | 5n | ○ | 일부(↑만 보장) | ○ | 일부 | 약 14분 |
| March C- | 10n | ○ | ○ | ○ | ○ (서로 연결되지 않은 결함) | 약 29분 |
| GALPAT (로우·칼럼 한정) | ~4n√n | ○ | ○ | ○ | ○ + 위치 진단 | 약 2.9년 |
| GALPAT (전체) | ~4n² | ○ | ○ | ○ | ○ + 위치 진단 | 약 37만 년 |
마지막 열의 산수를 확인해 보자. 16 Gb는 \(n = 2^{34}\approx1.72\times10^{10}\) 비트다. 한 번에 한 비트씩, 연산 하나에 10 ns가 걸린다고 가정하면 March C-는 \(10n\times10\,\text{ns}\approx1{,}718\) 초, 약 29분이다. 같은 조건에서 전체 GALPAT은 \(4n^2\times10\,\text{ns}\approx1.2\times10^{13}\) 초다. 선형 알고리즘이 아니면 애초에 쓸 수 없다는 뜻이다. 실제 테스트는 DQ 여러 개로 여러 비트를 동시에 접근하고, 칩 내부에서 여러 비트를 한꺼번에 비교해 결과만 내보내는 병렬 비트 테스트 모드를 써서 이보다 훨씬 짧다. 하지만 패턴 하나가 아니라 수십 가지 패턴을 여러 온도·전압·타이밍 조건에서 반복하므로, 전체 테스트 시간은 다시 분~시간 단위가 된다.
테스트 시간 계산기: n, n√n, n²
March 테스트를 직접 돌려 보기
아래 시뮬레이터는 16셀짜리 메모리에 결함 하나를 심고 March 테스트를 한 연산씩 실행한다. 읽은 값이 기대와 다르면 그 순간 결함이 검출된다. 결함의 종류와 공격자 셀의 위치(희생 셀보다 낮은 주소인지 높은 주소인지)에 따라 MATS+가 놓치는 경우와 March C-가 잡는 원소가 어떻게 달라지는지 추적해 보자.
March 테스트 스테퍼
March C-의 결합 결함 검출은 결함들이 서로 연결되지 않았을 때(unlinked) 보장된다. 두 결함이 같은 희생 셀에 반대 방향으로 작용해 서로를 가리는 연결 결함(linked fault)에는 March A, March B, March LR 같은 더 긴 알고리즘이 필요하다. NPSF는 물리 배치를 고려한 배경 패턴을 바꿔 가며 March를 반복해 잡는다. 읽기 동작 자체가 셀을 흔드는 읽기 디스터브 결함이나 반복 읽기에서만 드러나는 동적 결함을 겨냥해 r0,r0처럼 같은 셀을 연달아 읽는 원소를 넣은 March SS, March RAW 같은 변형도 있다. 리텐션은 위 시뮬레이터처럼 원소 사이에 정지 시간을 넣어 시험한다.
BIST와 테스트용 설계(DFT)
March 테스트는 구조가 규칙적이다. 주소 카운터 하나, 0/1 데이터 배경, 읽은 값을 기대값과 비교하는 회로만 있으면 된다. 그렇다면 이것을 값비싼 외부 장비가 아니라 칩 안의 작은 회로가 하게 할 수 있다. 이것이 BIST(Built-In Self-Test), 메모리용은 MBIST다. 유한 상태 기계(FSM)가 March 원소를 순서대로 진행하고, 주소 생성기가 오름·내림차순 주소를, 데이터 생성기가 배경 패턴을 만들고, 비교기가 읽은 데이터를 확인한다.
BIST에 리페어까지 붙이면 칩이 스스로를 고친다. 불량 주소를 받아 어느 스페어를 쓸지 계산하는 회로를 BIRA(Built-In Redundancy Analysis), 그 결과를 퓨즈에 써서 실제로 치환하는 것까지를 BISR(Built-In Self-Repair)라고 한다. SoC에 들어가는 임베디드 SRAM은 외부에서 직접 접근할 핀이 없어서 오래전부터 MBIST와 BISR이 표준이었다. 범용 DRAM·NAND는 전용 메모리 테스터로 시험하는 것이 기본이지만, 그 안에도 테스트를 돕는 회로가 많이 들어 있다. 이런 설계를 통틀어 DFT(Design For Testability)라고 한다.
- 테스트 모드: 특수한 명령 순서로 들어가는 숨겨진 동작 모드. 내부 전압을 올리거나 내리고, 리프레시를 끄고, 센스 앰프 타이밍을 바꿔 약한 셀을 일부러 드러낸다.
- 병렬 비트 테스트: 여러 셀에 같은 데이터를 쓰고, 칩 안에서 한꺼번에 읽어 일치 여부만 내보낸다. 테스트 시간과 테스터 핀 수를 함께 줄인다.
- 핀 수 축소: 다이당 필요한 테스터 채널을 줄여 한 번에 더 많은 다이를 시험한다. 웨이퍼 테스트 병렬도를 정하는 핵심이다.
- 웨이퍼 번인 모드: 모든 워드라인을 동시에 올리는 등 정상 동작에서는 불가능한 방식으로 스트레스를 건다.
- 적층 메모리: HBM처럼 다이가 쌓여 외부에서 직접 접근하기 어려운 경우 IEEE 1500 테스트 포트와 MBIST, 여분 TSV 리페어가 규격에 들어간다(7장).
BIST에도 비용이 있다. 회로 면적이 늘고, BIST 회로 자체가 고장 날 수 있으며, 고정된 알고리즘만 돌릴 수 있어 새로운 불량 유형에 대응하기 어렵다. 그래서 March 원소를 프로그램할 수 있게 만든 프로그래머블 MBIST가 쓰인다. DDR5에는 시스템이 부팅 중에 DRAM의 자체 테스트와 리페어를 시키는 기능도 들어갔는데, 이는 리페어 절에서 다시 본다.
리던던시와 리페어: 불량 다이를 살린다
16 Gb DRAM 다이에는 셀이 약 170억 개 있다. 셀 하나가 불량일 확률이 100억분의 1이라 해도 다이마다 평균 한두 개의 불량 셀이 생긴다. 여기에 리텐션 꼬리 셀까지 더하면 불량 셀이 하나도 없는 다이는 사실상 없다. 그런데도 메모리 수율이 80~90%대에 이를 수 있는 것은 리던던시(redundancy) 덕분이다. 어레이 옆에 여분 로우와 여분 칼럼을 미리 만들어 두고, 불량 셀이 있는 로우나 칼럼을 통째로 여분으로 바꿔 끼운다.
퓨즈: 불량 주소를 기억하는 방법
치환 정보는 전원이 꺼져도 남아야 하므로 일회성 비휘발 소자인 퓨즈에 기록한다. 초기에는 웨이퍼 상태에서 레이저로 금속 배선을 끊는 레이저 퓨즈를 썼다. 지금은 전기적으로 프로그램하는 이퓨즈(e-fuse)와 안티퓨즈(antifuse)가 주류다. 안티퓨즈는 얇은 게이트 산화막에 고전압을 걸어 절연을 파괴해 도통시키는 방식으로, 끊는 것이 아니라 잇는다는 점이 반대다. 전기 퓨즈의 결정적인 장점은 패키징 후에도 프로그램할 수 있다는 것이다.
| 방식 | 프로그램 원리 | 가능 시점 | 특징 |
|---|---|---|---|
| 레이저 퓨즈 | 레이저로 배선 절단 | 웨이퍼 상태만 | 별도 장비 필요, 퓨즈 면적이 크고 미세화가 어려움 |
| 이퓨즈 | 큰 전류로 배선(실리사이드) 전자이동·용단 | 웨이퍼 · 패키지 · 시스템 | 표준 공정으로 구현, 프로그램 전류가 큼 |
| 안티퓨즈 | 고전압으로 게이트 산화막 파괴 → 도통 | 웨이퍼 · 패키지 · 시스템 | 면적이 작고 DRAM에서 널리 사용, PPR의 기반 |
리페어 분석: 어떤 스페어를 어디에 쓸 것인가
불량 비트 맵이 주어졌을 때 한정된 여분 로우 \(S_R\)개와 여분 칼럼 \(S_C\)개로 모든 불량을 덮을 수 있는지, 있다면 어떻게 배정할지를 정하는 것이 리페어 분석(redundancy analysis)이다. 불량 비트를 간선으로, 로우와 칼럼을 정점으로 보면 이것은 이분 그래프에서 정점 수에 제약이 있는 정점 덮개 문제이고, 일반적으로 NP-완전이다(Kuo와 Fuchs, 1987). 다행히 실제 문제는 크기가 작고 구조가 있어서 다음 두 단계로 빠르게 푼다.
- 필수 수리(must-repair): 한 로우에 불량 비트가 남은 여분 칼럼 수보다 많으면, 칼럼으로는 다 덮을 수 없으므로 그 로우는 반드시 여분 로우로 고쳐야 한다. 칼럼도 마찬가지다. 이 규칙을 더 적용할 수 없을 때까지 반복한다. 필수 수리에 필요한 스페어가 모자라면 그 다이는 수리 불가다.
- 탐색: 남은 흩어진 불량에 대해 "이 비트를 로우로 고칠까, 칼럼으로 고칠까"를 분기하며 찾는다. 스페어가 \(S_R+S_C\)개이므로 탐색 깊이는 그 이하이고, 가지치기(branch and bound)로 충분히 빠르다. 테스트 장비에서는 다이마다 이 계산을 실시간으로 한다.
리던던시 리페어 퍼즐
패키지 후 리페어(PPR)
패키징과 번인, 그리고 고객의 실사용 중에도 새 불량 셀이 생긴다. 예전에는 이런 칩이나 모듈을 버릴 수밖에 없었다. JEDEC은 DDR4에서 PPR(Post-Package Repair)을 규격에 넣어, 시스템이 불량 로우 하나를 여분 로우로 치환하도록 DRAM에 요청할 수 있게 했다. 두 가지가 있다.
- hPPR(hard PPR): 내부 퓨즈를 실제로 프로그램한다. 영구적이고 전원을 꺼도 유지되지만, 되돌릴 수 없고 프로그램에 시간이 걸린다.
- sPPR(soft PPR): 치환 정보를 휘발성 래치에만 기록한다. 빠르지만 전원을 끄면 사라진다. 부팅 때마다 다시 적용하거나, 나중에 hPPR로 확정한다.
사용할 수 있는 여분 로우는 많지 않다. DDR4는 뱅크 그룹당 하나 이상을 보장하는 수준이다. DDR5도 hPPR과 sPPR을 지원하며, 여기에 DRAM이 스스로 어레이를 시험하고 찾은 불량을 리페어하는 MBIST 기반 PPR(mPPR)이 선택 기능으로 추가됐다. 서버는 11장에서 본 것처럼 ECC가 같은 주소에서 반복해서 정정하는 오류를 기록해 두었다가, 다음 부팅 때 그 로우에 PPR을 요청한다. 테스트와 리페어가 공장을 넘어 제품 수명 전체로 확장된 셈이다.
수율 모델: 웨이퍼 한 장에서 양품이 몇 개 나오는가
수율(yield)은 만든 것 가운데 팔 수 있는 것의 비율이다. 메모리는 표준화된 제품이라 가격을 시장이 정하므로(16장), 이익은 원가에서 갈리고 원가는 수율에서 갈린다. 먼저 웨이퍼 한 장에 다이가 몇 개 들어가는지부터 세어 보자.
웨이퍼당 다이 수
지름 \(d\)인 웨이퍼에 면적 \(A\)인 다이를 깔면, 넓이 비 \(\pi (d/2)^2/A\)에서 가장자리에 걸려 버려지는 다이를 빼야 한다. 널리 쓰는 근사식은 다음과 같다.
60 mm²는 2020년대 초 10 nm급 공정의 16 Gb DDR5 다이 크기(약 50~70 mm²)를 염두에 둔 값이다. 실제로는 웨이퍼 가장자리 몇 mm를 쓰지 않고(에지 제외), 다이 사이에 절단용 스크라이브 레인이 있으며, 배치를 어떻게 정렬하느냐에 따라 수가 조금 달라진다.
결함 밀도와 Poisson 모델
다이를 죽이는 결함이 웨이퍼 위에 무작위로, 서로 독립적으로 떨어진다고 하자. 단위 면적당 평균 결함 수가 결함 밀도 \(D_0\)(개/cm²)이면, 면적 \(A\)인 다이에 떨어지는 결함 수는 평균 \(\lambda=A D_0\)인 Poisson 분포를 따른다. 결함이 하나도 없어야 양품이라면 수율은 결함이 0개일 확률이다.
이 식에서 두 가지를 읽을 수 있다. 수율은 다이 면적에 대해 지수적으로 떨어진다. 그리고 같은 공정이라도 다이가 작을수록 유리하다. 미세화로 다이를 줄이면 웨이퍼당 다이 수가 늘 뿐 아니라 수율도 함께 오른다.
결함은 뭉친다: Murphy와 음이항 모델
실제 웨이퍼에서 Poisson 모델은 큰 다이의 수율을 너무 낮게 예측한다. 결함이 고르게 퍼지지 않고 뭉쳐 있기 때문이다. 긁힌 자국, 장비에서 떨어진 파티클 무리, 웨이퍼 가장자리의 공정 불균일 같은 것들이다. 결함 수가 같다면 뭉쳐 있을수록 죽는 다이가 적다. 한 다이에 결함이 다섯 개 떨어지든 한 개 떨어지든 죽는 다이는 하나이기 때문이다.
이를 반영하려면 \(D_0\)를 상수가 아니라 웨이퍼·위치마다 다른 확률 변수로 보고 평균을 낸다. \(D\)의 분포를 삼각형으로 가정하면 Murphy 모델, 감마 분포로 가정하면 음이항 모델(negative binomial)이 나온다.
| 모델 | 결함 밀도 분포 가정 | A·D₀ = 0.5 | A·D₀ = 1 | A·D₀ = 3 |
|---|---|---|---|---|
| Poisson | 균일(상수) | 60.7% | 36.8% | 5.0% |
| Murphy | 삼각형 분포 | 61.9% | 40.0% | 10.0% |
| 음이항 (α = 2) | 감마 분포 | 64.0% | 44.4% | 16.0% |
| Seeds (α = 1) | 지수 분포 | 66.7% | 50.0% | 25.0% |
\(A D_0\)가 작을 때는 어느 모델이든 \(1-AD_0\)에 가까워 차이가 없다. 다이가 크거나 공정이 미숙해 \(AD_0\)가 커질수록 모델 사이의 차이가 벌어진다. 아래 시뮬레이터에서 결함을 직접 뿌려 보면서 어느 모델이 맞는지 확인하자.
웨이퍼 맵 수율 시뮬레이터
임계 면적: 모든 결함이 치명적이지는 않다
지금까지는 다이에 떨어진 결함이 모두 다이를 죽인다고 가정했다. 실제로는 결함의 크기와 떨어진 위치에 따라 다르다. 배선 간격보다 작은 파티클은 두 배선을 잇지 못하고, 패턴이 없는 빈 곳에 떨어진 파티클은 아무 일도 일으키지 않는다. 결함의 중심이 그 안에 떨어지면 실제 고장이 나는 영역의 넓이를 임계 면적(critical area) \(A_c\)라고 한다. 수율 식의 \(A\)는 정확히는 \(A_c\)이며, 결함 크기 분포로 평균한 값을 쓴다.
리던던시가 수율 식을 바꾼다
메모리 다이의 면적 대부분은 셀 어레이이고, 어레이에 떨어진 결함은 리페어로 고칠 수 있다. 다이 면적 가운데 리페어 가능한 영역의 비율을 \(f\), 스페어로 감당할 수 있는 결함 수를 \(R\)이라 하면 Poisson 가정에서 유효 수율은 다음과 같다.
이것이 메모리가 신공정의 선두 주자 역할을 해 온 이유 가운데 하나다. 결함 밀도가 높은 양산 초기에도 리던던시 덕분에 팔 수 있는 다이가 나오고, 불량 비트 맵이 결함의 위치와 모양을 그대로 알려 주므로 공정 문제를 찾는 데 쓸 수 있다.
수율 학습 곡선과 다이당 원가
결함 밀도는 고정된 값이 아니다. 새 공정을 처음 돌릴 때는 높고, 불량 분석과 공정 개선이 쌓이면서 내려간다. 이것을 수율 학습(yield learning)이라고 한다. 흔히 \(D_0(t)=D_\infty+(D_{\text{init}}-D_\infty)\,e^{-t/\tau}\)처럼 지수적으로 줄어드는 곡선으로 근사한다. 개발 초기 \(D_0\)가 1 /cm²를 넘던 공정이 성숙하면 0.1 /cm² 수준이나 그 아래로 내려간다. 학습 속도 \(\tau\)가 짧은 회사가 같은 세대에서 먼저 원가 우위를 얻는다. 수율이 곧 원가이기 때문이다.
수율 모델 비교와 양품 다이당 원가
여기서 구한 것은 다이 한 장의 수율이다. HBM처럼 다이를 \(N\)장 쌓으면 스택 수율은 \(Y^N\)과 접합 수율의 곱으로 떨어지고, 그래서 적층 전에 양품만 고르는 KGD 테스트가 필수가 된다. 이 계산은 7장의 스택 수율과 KGD에서 다뤘다. 박화된 웨이퍼의 미세 범프에 프로브를 대고 고속·고온으로 시험해야 하므로 HBM의 웨이퍼 테스트는 일반 DRAM보다 훨씬 어렵고 길다.
번인과 배스터브 곡선: 일찍 죽을 칩을 미리 죽인다
테스트를 통과한 칩이 모두 건강한 것은 아니다. 지금은 규격 안에서 동작하지만 산화막이 국부적으로 얇거나, 콘택이 겨우 붙어 있거나, 미세한 균열이 있는 칩이 섞여 있다. 이런 잠재 결함(latent defect)은 사용 초기에 스트레스가 쌓이면서 고장으로 바뀐다. 11장의 배스터브 곡선에서 왼쪽 내리막, 초기 고장 구간이 이것이다.
고장 시간의 분포는 흔히 와이블 분포(Weibull)로 나타낸다. 형상 파라미터 \(\beta\) 하나로 배스터브의 세 구간을 모두 표현할 수 있기 때문이다.
초기 고장 구간에서 \(\beta<1\)이라는 사실이 번인(burn-in)의 근거다. 고장률이 시간이 갈수록 줄어든다면, 출하 전에 칩을 일정 시간 미리 동작시켜 약한 칩을 공장에서 죽이고 나면 살아남은 칩의 고장률은 낮아져 있다. 문제는 시간이다. 사용 조건에서 몇 달치 스트레스를 주려고 몇 달을 기다릴 수는 없다. 그래서 온도와 전압을 올려 가속한다. 온도 가속은 11장의 아레니우스 모델을 그대로 쓰고, 산화막 결함처럼 전계에 민감한 메커니즘에는 전압 가속을 곱한다.
DRAM은 번인 보드에 수백 개씩 꽂아 고온 챔버에 넣고, 스트레스를 주는 동안 읽기·쓰기 테스트도 함께 하는 TDBI(Test During Burn-In)가 일반적이다. 긴 번인 시간을 테스트에도 쓰는 셈이다. 조립 전에 웨이퍼 상태에서 스트레스를 거는 웨이퍼 번인도 쓴다. 패키지 비용을 들이기 전에 걸러 낼 수 있고, HBM처럼 조립 뒤에는 되돌릴 수 없는 제품에서 특히 중요하다.
배스터브 곡선과 번인 효과
DPPM과 품질 등급
출하 품질은 DPPM(Defective Parts Per Million), 출하한 100만 개 가운데 불량 개수로 나타낸다. 100 DPPM이면 만 개에 하나다. 시간당 고장률인 FIT(11장)와는 다른 지표로, DPPM은 고객이 받아서 쓰기 시작한 초기에 드러나는 불량의 비율이다. 요구 수준은 용도에 따라 크게 다르다. 소비자용보다 서버용이 엄하고, 차량용은 한 자릿수 DPPM 이하, 궁극적으로는 불량 0을 목표로 한다. 서버 한 대에 DRAM 칩이 수백 개 들어가므로 칩 기준 100 DPPM은 서버 기준으로는 수 퍼센트의 초기 불량이 된다.
DPPM을 낮추는 수단은 번인만이 아니다. 테스트 조건을 규격보다 엄하게 잡는 가드밴드, 통계적으로 이상한 다이를 버리는 기법(같은 웨이퍼의 이웃 다이가 대부분 불량이면 통과한 다이도 버린다), 더 넓은 온도 범위의 시험이 함께 쓰인다. 모두 비용이나 수율을 내주고 품질을 사는 선택이다.
비닝: 같은 웨이퍼에서 다른 등급이 나온다
양품이라고 다 같지 않다. 공정 편차 때문에 다이마다 트랜지스터 속도와 누설이 조금씩 다르다. 패키지 테스트에서는 동작하는 최고 속도와 전류를 측정해 다이를 등급별로 나누는데, 이것을 비닝(binning)이라고 한다. 같은 설계, 같은 웨이퍼에서 DDR5-6400을 통과하는 칩과 DDR5-4800까지만 통과하는 칩이 함께 나온다(타이밍 파라미터는 5장). 빠른 등급이 비싸게 팔리므로 속도 분포를 오른쪽으로 옮기는 것도 수율 향상의 일부다. 속도 말고도 대기 전류, 리텐션 여유, 동작 온도 범위(상업용·산업용·차량용)에 따라 등급을 나눈다.
NAND는 다르게 다룬다: 불량 블록과 함께 출하하기
DRAM의 철학은 "출하 시점에 불량 셀 0개"다. 리페어로 완벽하게 만든 뒤 내보낸다. NAND 플래시는 철학이 다르다. 셀이 수조 개인 데다 쓸수록 닳는 소자이므로(11장), 완벽함을 요구하는 대신 불완전한 채로 출하하고 컨트롤러가 관리하게 한다.
- 공장 불량 블록(factory bad block): 웨이퍼·패키지 테스트에서 소거나 프로그램이 안 되거나 오류가 너무 많은 블록은 고치지 않고 표시만 한다. 블록의 정해진 위치(첫 페이지의 스페어 영역 등)에 불량 표시를 써 둔다. 데이터시트는 최소 유효 블록 수를 보증하는데, 보통 전체의 약 98% 이상이다.
- 불량 블록 테이블(BBT): SSD 컨트롤러는 처음 초기화할 때 모든 블록의 불량 표시를 읽어 테이블을 만들고, 그 블록에는 영원히 쓰지 않는다. 이 표시는 소거하면 사라질 수 있으므로 표시를 읽기 전에 블록을 지우면 안 된다.
- 후발 불량 블록(grown bad block): 사용 중에 프로그램·소거가 실패하거나 ECC 한계를 넘는 블록이 생기면 컨트롤러가 테이블에 추가하고 예비 블록으로 대체한다. 10장의 오버 프로비저닝 공간이 이 예비 역할을 겸한다.
- 셀 단위 오류는 리페어하지 않고 ECC가 처리한다. LDPC가 감당할 수 있는 RBER 안에 있으면 그 블록은 양품이다.
그렇다고 NAND에 리던던시가 없는 것은 아니다. 비트라인이나 페이지 버퍼가 불량이면 모든 블록의 같은 칼럼이 죽으므로 칼럼 리던던시로 치환하고, 주변 회로와 워드라인 계단의 불량은 여전히 다이 수율을 결정한다. 3D NAND에서는 채널 홀 식각 불량처럼 수백 단을 관통하는 결함이 블록 단위 불량의 주된 원인이다(9장). NAND 테스트는 블록 소거, 페이지 프로그램, 읽기를 반복해 불량 블록을 찾고 Vt 분포의 여유를 확인하는 데 대부분의 시간을 쓴다. 프로그램과 소거가 ms 단위로 느려서 DRAM보다 병렬도를 더 높여 시험한다.
| DRAM | NAND 플래시 | |
|---|---|---|
| 출하 시 불량 셀 | 0개가 원칙(리페어로 치환) | 불량 블록을 표시한 채 출하 |
| 치환 단위 | 로우·칼럼 (퓨즈) | 블록 (컨트롤러의 BBT), 칼럼 (퓨즈) |
| 사용 중 불량 | PPR, ECC | 후발 불량 블록 대체, ECC, 읽기 재시도 |
| 테스트 시간을 지배하는 것 | 리텐션 대기, 패턴 수, 번인 | 느린 프로그램·소거 동작 |
| 관리 주체 | 칩 자체(+ 메모리 컨트롤러) | SSD 컨트롤러의 FTL |
DRAM도 미세화가 진행되면서 "완벽한 셀"을 고집하기 어려워졌다. DDR5의 온다이 ECC는 약한 셀 일부를 리페어하지 않고 ECC로 흡수하고, PPR은 출하 뒤의 불량을 시스템이 고치게 한다(11장). 테스트에서 잡고, 리페어로 고치고, 남는 것은 ECC가 받고, 그래도 생기는 것은 시스템이 대체한다. 메모리의 신뢰성은 이 여러 겹의 방어선이 함께 만든다.
핵심 정리
- 메모리 테스트는 웨이퍼 테스트(EDS) → 리페어 → 패키징 → 번인 → 패키지 테스트 → 모듈·시스템 테스트로 나뉜다. 불량은 일찍 걸러 낼수록 싸고, 테스트 원가는 장비 시간이므로 수백 개 다이를 동시에 시험한다.
- 고장 모델은 물리적 결함을 논리적 증상으로 추상화한 것이다. 고착(SAF), 천이(TF), 결합(CFin·CFid·CFst), 주소 디코더(AF), 이웃 패턴 민감(NPSF), 리텐션(DRF) 결함이 대표적이고, VRT 때문에 리텐션은 한 번의 시험으로 다 잡을 수 없다.
- March 테스트는 주소를 오름·내림차순으로 훑으며 셀마다 읽기·쓰기를 수행한다. MATS+(5n)는 SAF와 AF를, March C-(10n)는 SAF·TF·AF와 연결되지 않은 결합 결함을 모두 검출한다. 리텐션 결함에는 정지 시간이 필요하다.
- 16 Gb에서 March C-는 10 ns/연산 기준 약 29분, \(n^2\) 알고리즘인 GALPAT은 수십만 년이다. 대용량 메모리에는 선형 알고리즘만 쓸 수 있고, 병렬 비트 테스트와 MBIST 같은 DFT로 시간을 더 줄인다.
- 리던던시는 불량 로우·칼럼을 여분으로 치환하며 불량 주소는 레이저 퓨즈, 이퓨즈, 안티퓨즈에 기록한다. 스페어 배정은 일반적으로 NP-완전이지만 필수 수리와 분기 탐색으로 푼다. DDR4·DDR5의 PPR(hPPR, sPPR)은 출하 후에도 로우를 리페어한다.
- 웨이퍼당 다이 수는 \(\pi(d/2)^2/A-\pi d/\sqrt{2A}\)로 근사한다. 수율은 Poisson \(e^{-AD_0}\), Murphy, 음이항 \((1+AD_0/\alpha)^{-\alpha}\)로 모델링하며, 결함이 뭉칠수록(α가 작을수록) Poisson 예측보다 수율이 높다.
- 리던던시는 어레이 결함을 \(R\)개까지 허용해 유효 수율을 크게 올린다. 양품 다이당 원가는 \(C_{\text{wafer}}/(N_{\text{gross}}Y)\)이고, 결함 밀도는 수율 학습으로 시간에 따라 내려간다. 적층 제품은 여기에 스택 수율이 곱해진다.
- 초기 고장은 와이블 \(\beta<1\)(감소하는 고장률)이므로, 고온·고전압으로 가속한 번인으로 약한 칩을 미리 걸러 출하 DPPM을 낮춘다. 양품은 속도·전류에 따라 비닝한다. NAND는 불량 블록을 표시한 채 출하하고 컨트롤러가 BBT와 ECC로 관리한다.
확인 퀴즈
16 Gb(\(n\approx1.72\times10^{10}\)비트) 메모리에 March C-를 한 번에 한 비트씩, 연산당 10 ns로 수행하면 걸리는 시간은?
MATS+ {⇕(w0); ⇑(r0,w1); ⇓(r1,w0)}가 검출을 보장하지 못하는 결함은?
여분 로우 2개, 여분 칼럼 2개가 있는 어레이에서 한 로우에 불량 비트가 3개 있다. 리페어 분석의 올바른 판단은?
다이 면적 0.8 cm², 결함 밀도 0.25 /cm²일 때 Poisson 모델의 수율은?
평균 결함 수(\(AD_0\))가 같을 때, 결함이 한곳에 뭉치는 공정(α가 작다)의 수율이 균일하게 퍼지는 공정보다 높은 이유는?
번인이 출하 후 고장률을 낮추는 데 효과가 있으려면 초기 고장의 와이블 형상 파라미터 β가 어떠해야 하는가?
DDR4·DDR5의 sPPR(soft PPR)과 hPPR(hard PPR)의 차이로 옳은 것은?