무늬인가 우연인가
9장의 도감은 무늬가 또렷할 때 쓰는 책이다. 실제 맵은 그렇게 친절하지 않다. 무작위 불량만 뿌려도 덩어리와 줄이 보이고, 진짜 무늬는 무작위 불량에 묻혀 한 장으로는 보이지 않는다. 탐정이 얼룩 하나를 보고 범인을 지목하지 않듯, 맵을 읽는 사람도 "이것이 우연히 생길 확률이 얼마인가"를 먼저 물어야 한다. 이 장은 그 질문을 숫자로 바꾸는 방법을 다룬다.
- 완전 공간 무작위라는 귀무가설을 세우고, 이웃 쌍 통계의 기대값과 z 점수로 뭉침을 판정한다.
- 반지름·각도 프로파일과 구역별 불량률에 신뢰 구간을 붙이고, 여러 구역을 한꺼번에 볼 때의 함정을 설명한다.
- 스택 맵에서 장비 무늬는 진해지고 웨이퍼마다 다른 무늬는 흐려지는 이유를 신호와 잡음으로 설명한다.
- 슬롯별 수율을 비교해 무늬가 어느 웨이퍼에만 있는지 가른다.
- 규칙 기반 분류기와 CNN 분류기의 원리와 한계, 그리고 통계적 유의성이 원인을 뜻하지 않는 이유를 설명한다.
눈은 무작위에서도 무늬를 본다
동전을 스무 번 던지면 앞면이 네 번 넘게 이어지는 구간이 한 번쯤 나오는 것이 보통이다. 사람은 그 구간을 보고 "동전이 이상하다"고 느낀다. 무작위는 고르다는 뜻이 아니다. 고르게 띄엄띄엄 놓인 점은 오히려 서로를 피하도록 누군가 배치한 것이다. 진짜 무작위는 빈 곳과 뭉친 곳이 함께 있다.
웨이퍼 맵도 같다. 다이 1,228개에 불량률 12%를 무작위로 뿌리면 불량 다이는 약 147개다. 이 불량들이 변이나 꼭짓점으로 맞닿아 이루는 덩어리 가운데 가장 큰 것은 대개 다이 7개 안팎이고, 열 장에 한 장은 11개를 넘는다. 불량률이 30%면 수십 개짜리 덩어리가 저절로 생긴다. 다이 일곱 개가 붙어 있다고 해서 군집 무늬라고 부를 수는 없다는 뜻이다. 무늬를 주장하려면 "무작위가 이 정도를 만들 수 있는가"에 답해야 한다.
아래 시뮬레이터에서 먼저 눈으로 판단해 보고, 그다음에 숫자와 비교하자. z 점수의 정의는 바로 다음 절에 나온다. 지금은 "0 근처면 무작위와 구별되지 않고, 2를 넘으면 무작위로는 드문 뭉침"이라고만 알아 두면 된다.
무작위 맵 공장
이 실험에서 세 가지를 얻는다. 무작위는 생각보다 뭉쳐 보인다. 숫자 하나로 판정하면 무늬가 없어도 일정한 비율로 "있다"는 답이 나온다. 그리고 약한 무늬는 한 장으로는 눈으로도 통계로도 잡히지 않는다. 뒤의 절들은 이 세 문제를 각각 다룬다.
귀무가설과 이웃 쌍 통계
통계적 판정은 재판과 닮았다. 먼저 "아무 일도 없었다"는 귀무가설(Null hypothesis)을 세우고, 관측한 것이 그 가설 아래에서 얼마나 드문지를 계산한다. 충분히 드물면 가설을 버린다. 맵의 귀무가설은 완전 공간 무작위(Complete spatial randomness, CSR)다. 불량 다이의 수는 주어진 대로 두고, 그 불량들이 어느 자리에 놓일지는 모든 배치가 똑같이 그럴듯하다는 가정이다. 불량 수를 고정하는 까닭은 수율이 낮은 것 자체를 무늬로 착각하지 않기 위해서다. 수율이 얼마인지는 4장의 문제이고, 여기서 묻는 것은 자리뿐이다.
뭉침을 재는 가장 단순한 통계가 이웃 쌍 통계(Join count statistic)다. 변을 맞댄 두 다이를 하나의 이웃 쌍으로 치고, 두 다이가 모두 불량인 쌍의 수 \(FF\)를 센다. 불량이 뭉쳐 있으면 \(FF\)가 크고, 서로 피해 있으면 작다.
기대값은 간단하다. 다이 \(n\)개 가운데 \(n_F\)개가 불량일 때, 아무 두 자리가 함께 불량일 확률은 \(n_F(n_F-1)/n(n-1)\)이다. 이웃 쌍이 \(J\)개이므로 기대값은 그 확률의 \(J\)배다. 분산은 쌍들이 다이를 공유하기 때문에 조금 복잡하다.
사건 YB-12의 격자로 숫자를 넣어 보자. 다이 1,228개의 이웃 쌍은 2,376개다. 불량률 12%(불량 약 150개)면 기대값은 약 35쌍, 표준편차는 약 5쌍이다. 관측이 41쌍이면 \(z \approx 1.1\)로 흔한 일이고, 51쌍이면 \(z \approx 3\)으로 무작위에서는 천 번에 한두 번 나오는 일이다. \(z\)는 무작위일 때 평균 0, 표준편차 1인 정규 분포에 가깝다. 한쪽 검정으로 \(z > 1.645\)이면 유의수준 5%, \(z > 2.33\)이면 1%에 해당한다. 관측과 기대의 비 \(FF/E[FF]\)는 뭉침의 크기를 나타내는 군집 지수로 쓴다.
이웃 쌍 통계가 잡는 것과 놓치는 것
이웃 쌍 통계는 웨이퍼 전체를 숫자 하나로 줄인다. 그래서 넓게 퍼진 무늬(도넛, 한쪽 치우침, 넓은 가장자리 고리)에는 민감하고, 다이 몇십 개에만 걸친 스크래치나 작은 군집에는 둔하다. 앞의 시뮬레이터에서 본 대로다. 좁은 무늬는 창을 미끄러뜨리며 국소적으로 찾아야 한다.
반복 결함은 더 나쁜 경우다. 샷마다 같은 자리의 다이 하나가 불량이면 불량끼리는 항상 다이 세 칸씩 떨어져 있다. 서로 붙지 않으므로 \(FF\)는 늘지 않고, 불량 수만 늘어 기대값이 올라가므로 \(z\)는 0 아래로 내려간다. 사건의 홀수 슬롯 웨이퍼는 반복 결함이 수율을 약 6%p 깎고 있는데도 \(z \approx -0.7\)이다. 이웃 쌍 통계가 "무작위"라고 답했다고 무늬가 없는 것이 아니다. 이 통계가 물은 것은 "붙어 있는가"뿐이다. 반복 결함은 좌표를 샷으로 접어서 물어야 하고(11장), 그 통계가 샷 안 자리별 불량률이다.
| 통계 | 묻는 것 | 잘 잡는 무늬 | 놓치는 무늬 |
|---|---|---|---|
| 이웃 쌍 z | 불량끼리 붙어 있는가 | 도넛, 한쪽 치우침, 넓은 고리, 큰 군집 | 반복 결함(음수가 된다), 가는 스크래치, 작은 군집 |
| 반지름 프로파일 | 중심에서의 거리에 따라 달라지는가 | 가장자리 고리, 중심, 도넛 | 한쪽 치우침, 스크래치, 반복 결함 |
| 각도 프로파일 | 방향에 따라 달라지는가 | 한쪽 치우침, 세 점, 가장자리 일부 | 동심원 무늬 전부 |
| 샷 자리별 불량률 | 샷 안 자리에 따라 달라지는가 | 반복 결함, 필드 한쪽 | 웨이퍼 기준 무늬 전부 |
| 국소 창 탐색 | 어느 한 곳에 몰려 있는가 | 스크래치, 군집 | 넓고 옅은 무늬 |
| 스택 맵 | 웨이퍼마다 같은 자리인가 | 장비·레티클이 만든 모든 무늬 | 웨이퍼마다 자리가 다른 무늬 |
통계 하나가 모든 무늬를 잡지 못한다. 각 통계는 좌표계 하나를 골라 그 좌표에 대해 불량률이 고른지를 묻는다(2장의 좌표계). 어떤 무늬를 찾는지에 따라 물을 좌표가 달라진다.
반지름·각도 프로파일과 구역 분석
장비 무늬의 대부분은 회전 대칭이거나 한 방향으로 기운다(9장). 그래서 다이를 반지름 구간으로 묶어 구간별 불량률을 그린 반지름 프로파일(Radial profile)과, 방향 구간으로 묶은 각도 프로파일(Angular profile)이 가장 먼저 그리는 그래프다. 2차원 맵을 1차원으로 접으면 같은 구간의 다이 수십~수백 개가 평균되어 잡음이 줄고, 봉우리의 위치를 mm와 도 단위로 읽을 수 있다. 이 숫자가 12장에서 장비의 치수와 맞춰 볼 단서가 된다.
구간의 불량률에는 오차가 있다. 다이 \(n\)개 가운데 \(f\)개가 불량인 구간의 불량률 \(\hat p = f/n\)는 이항 분포를 따르고, 표준오차는 \(\sqrt{p(1-p)/n}\)이다. 불량률 12%인 구간에 다이가 100개면 표준오차는 약 3.2%p다. 그 구간이 18%로 나와도 2σ 안이다. 다이가 25개면 표준오차는 6.5%p로, 24%가 나와도 놀랄 일이 아니다. 그래서 프로파일의 막대에는 반드시 신뢰 구간(Confidence interval)을 붙인다. 다이 수가 적거나 불량률이 0에 가까운 구간에서도 무리가 없는 것이 윌슨 구간이다.
구역 분석(Zonal analysis)은 같은 생각을 2차원으로 넓힌 것이다. 웨이퍼를 고리와 부채꼴로 나누고 구역마다 불량률과 구간을 구한다. 구역별 수율 추세를 로트마다 쌓아 두면 "가장자리 구역만 3주째 내려가고 있다"는 식의, 전체 수율에는 아직 드러나지 않은 변화를 일찍 잡을 수 있다.
함정은 다중 비교(Multiple comparisons)다. 구역이 많을수록, 볼 통계가 많을수록 그 가운데 하나가 우연히 문턱을 넘을 확률이 커진다. 가장 단순한 대책이 본페로니 보정(Bonferroni correction)으로, 검정을 \(m\)번 하면 각각의 유의수준을 \(\alpha/m\)으로 낮춘다. 보정은 공짜가 아니다. 문턱이 올라가는 만큼 약한 무늬를 놓친다. 그래서 무턱대고 잘게 나누지 않고, 의심하는 장비의 구조에 맞는 구역(척의 온도 구역, 연마 헤드의 압력 구역)으로 나눈다.
반지름·각도 프로파일
스택 맵: 겹치면 남는 것
약한 무늬는 한 장에서 잡히지 않는다. 다이 하나는 합격 아니면 불량, 두 값뿐이어서 불량률 12%와 25%의 차이를 다이 하나가 말해 줄 수 없다. 여러 장을 겹쳐 다이 자리마다 불량률을 구하면 이야기가 달라진다. 이것이 스택 맵(Stacked map, composite map)이다.
한 자리의 무작위 불량률이 \(p\)이고, 장비 무늬가 그 자리의 불량률을 \(\Delta p\)만큼 올린다고 하자. \(N\)장을 겹치면 그 자리의 초과 불량 수는 \(N\Delta p\)로 장수에 비례해 는다. 무작위 불량 수의 요동은 \(\sqrt{Np(1-p)}\)로 장수의 제곱근에 비례한다. 둘의 비가 신호 대 잡음비다.
그래서 스택은 무늬를 두 부류로 가른다. 웨이퍼마다 같은 자리에 생기는 무늬는 남는다. 장비의 구조가 만드는 가장자리 고리·도넛·한쪽 치우침, 레티클이 만드는 반복 결함이 그렇다. 웨이퍼마다 자리가 다른 무늬는 지워진다. 스크래치와 파티클 군집은 한 장에서는 가장 눈에 띄지만 25장을 겹치면 그 자리의 불량률을 4%p 올릴 뿐이다. 스택에 남은 것이 장비의 지문이고, 스택에서 사라진 것은 간헐적인 사고다. 둘 다 정보다.
스택 맵과 슬롯별 수율
웨이퍼 간 비교: 무늬는 누구에게 있는가
스택이 "어디에"를 묻는다면 웨이퍼 간 비교는 "누구에게"를 묻는다. 한 로트의 25장은 같은 순서로 같은 공정을 지나지만 모두 같은 일을 겪지는 않는다. 챔버가 여럿인 장비는 웨이퍼를 번갈아 받고, 매엽식 장비는 슬롯 순서대로 한 장씩 처리하며, 배치식 장비는 보트 안의 위치가 다르다. 그 차이가 수율의 차이로 남는다. 가장 싼 그래프가 슬롯별 수율 막대다.
| 슬롯별 수율의 모양 | 뜻하는 것 | 다음에 확인할 것 |
|---|---|---|
| 고르게 낮다 | 모든 웨이퍼가 겪은 일(레시피, 재료, 레티클, 챔버 하나짜리 장비) | 다른 로트와 비교, 스택 맵 |
| 홀짝으로 번갈아 오르내린다 | 두 갈래로 나뉘어 처리된 공정이 있다 | 홀수·짝수 스택을 따로 그려 무늬 비교 |
| 세 장 주기 | 세 갈래로 나뉘어 처리된 공정이 있다 | 주기별 스택 |
| 앞쪽이나 뒤쪽 슬롯만 낮다 | 처리 순서에 따른 변화(첫 웨이퍼 효과, 대기 시간, 소모품의 수명) | 공정별 처리 순서와 시각 |
| 한두 장만 낮다 | 간헐적인 사고(스크래치, 파티클 낙하, 반송 오류) | 그 웨이퍼의 맵과 이력 |
여기서도 먼저 물을 것은 "이 차이가 우연인가"다. 다이 1,228개, 수율 88%인 웨이퍼의 수율은 무작위 요동만으로 표준편차 약 \(\sqrt{0.88 \times 0.12/1228} \approx 0.9\)%p만큼 흔들린다. 두 웨이퍼의 수율이 2%p 다른 것은 흔한 일이다. 두 무리의 차이는 두 비율의 검정으로 판정한다.
슬롯 번호를 쓸 때 조심할 것이 하나 있다. 로트의 슬롯 순서는 공정 내내 같지 않다. 웨이퍼를 다른 카세트로 옮기면 순서가 뒤집히기도 하고, 공장에 따라서는 장비 사이의 상관을 끊으려고 일부러 순서를 섞는 설비를 둔다. 슬롯별 수율에서 본 주기는 "어느 공정에서의 슬롯 순서인가"를 확인한 뒤에야 장비의 챔버 배정과 맞춰 볼 수 있다. 홀짝 무늬가 어느 장비의 어느 챔버를 가리키는지는 12장과 13장에서 다룬다.
자동 패턴 분류
하루에 수천 장씩 나오는 맵을 사람이 모두 볼 수는 없다. 그래서 맵마다 무늬의 종류를 자동으로 붙이고, 사람은 경보가 뜬 것만 본다. 방법은 크게 둘이다.
규칙 기반: 특징과 문턱
이 장에서 배운 통계가 그대로 특징이 된다. 이 책의 엔진에 들어 있는 분류기(WM.classify)는 다음과 같이 점수를 낸다. 가장자리·중심·도넛·한쪽 치우침은 각 무늬의 본보기 모양과 불량 맵 사이의 상관 계수에 \(\sqrt{n}\)을 곱해 z에 해당하는 값으로 만든다. 도넛은 반지름을, 한쪽 치우침은 방향을 바꿔 가며 가장 큰 값을 고른다. 반복 결함은 샷 안 자리별 불량률의 z 가운데 최댓값을 쓴다. 스크래치와 군집은 길쭉한 띠와 둥근 창을 웨이퍼 위에서 미끄러뜨리며 불량이 가장 몰린 곳의 z를 구한다. 가장 높은 점수가 3을 넘지 못하면 "무늬 없음"이다.
여기에도 다중 비교가 숨어 있다. 도넛의 반지름 8가지, 한쪽 치우침의 방향 12가지, 수천 개의 창 위치 가운데 최댓값을 고르는 것은 검정을 그만큼 여러 번 하는 것이다. 문턱 3은 그 값을 치르고 나서의 숫자이고, 그래도 무늬 없는 맵의 몇 %는 잘못 걸린다.
학습 기반: CNN과 WM-811K
맵을 영상으로 보고 합성곱 신경망(Convolutional neural network, CNN)으로 분류하는 방법이 널리 연구된다. 공개 데이터로는 WM-811K가 표준처럼 쓰인다. 실제 양산 웨이퍼 맵 약 81만 장으로 이루어져 있고, 그 가운데 약 17만 장에 전문가가 붙인 라벨(9장에서 소개한 무늬 8종과 "무늬 없음")이 있다. 이 데이터의 성질이 그대로 현장의 어려움이다.
- 불균형. 라벨이 붙은 맵의 약 85%가 "무늬 없음"이다. 모든 맵을 "무늬 없음"이라고 답해도 정확도가 85%다. 그래서 정확도 하나가 아니라 분류별 재현율(있는 무늬를 얼마나 찾았나)과 정밀도(찾았다고 한 것 가운데 얼마가 맞나)를 본다. 7장의 결함 분류에서 본 순도와 같은 생각이다.
- 라벨 없는 다수. 80%쯤은 라벨이 없다. 사람이 붙이는 라벨이 비싸기 때문이다. 라벨도 사람마다 다르다. 가장자리 일부와 가장자리 고리, 군집과 굵은 스크래치의 경계는 전문가끼리도 갈린다.
- 겹친 무늬. 한 맵에 무늬가 둘이면 분류 하나를 고르는 방식은 반드시 하나를 잃는다. 무늬마다 "있다/없다"를 따로 답하게 하거나, 빈별로 맵을 나눠 따로 분류한다.
- 제품이 바뀐다. 다이 크기가 다르면 맵의 해상도와 가장자리 모양이 달라진다. 한 제품으로 배운 분류기는 다른 제품에서 다시 확인해야 한다.
자동 분류기 시험대
통계가 말해 주지 않는 것
이 장의 도구들은 모두 한 가지 질문에 답한다. "이 모양이 우연히 생길 수 있는가." 그 답이 "아니다"일 때 얻는 것은 무늬가 있다는 사실까지다. 그다음은 통계의 몫이 아니다.
- 유의하다는 것은 원인을 안다는 뜻이 아니다. 반지름 107 mm에 봉우리가 있다는 것은 사실이지만, 그 반지름에 구조를 가진 장비는 여럿이다. 식각의 척, 연마 헤드, 회전 세정이 모두 후보다. 무늬를 장비에 잇는 일은 12장, 그 장비가 맞는지 확인하는 일은 13장이다.
- 유의하다는 것은 크다는 뜻이 아니다. 웨이퍼 수백 장을 겹치면 수율에 0.2%p밖에 영향을 주지 않는 무늬도 z가 10을 넘는다. 표본이 크면 무엇이든 유의해진다. 손실이 몇 %p인지를 함께 적어야 먼저 잡을 것을 고를 수 있다.
- 유의하지 않다는 것은 무늬가 없다는 뜻이 아니다. 검출력이 모자랐을 수 있고(약한 무늬, 적은 장수), 좌표를 잘못 골랐을 수 있다(반복 결함을 이웃 쌍으로 찾기). "찾지 못했다"와 "없다"를 구별해서 적는다.
- p값은 가설이 참일 확률이 아니다. p = 0.01은 "무늬가 없는데 이런 맵이 나올 확률이 1%"라는 뜻이지 "무늬가 없을 확률이 1%"가 아니다. 무늬 없는 웨이퍼가 대부분인 공장에서 문턱을 겨우 넘은 경보는 여전히 오경보일 가능성이 크다.
- 보고 나서 세운 가설은 값을 치러야 한다. 맵을 이리저리 돌려 보다가 눈에 띈 구역을 골라 검정하면 거의 언제나 유의하게 나온다. 눈이 이미 수십 번의 비교를 한 뒤이기 때문이다. 한 로트에서 찾은 무늬는 다른 로트에서 같은 자리에 다시 나오는지로 확인한다. 재현이 가장 강한 검정이다.
- 무늬가 공정에서 왔다는 보장이 없다. 프로브 카드의 한 자리가 만드는 격자 무늬(8장)도 통계적으로는 똑같이 유의하다. 통계는 맵이 어떻게 만들어졌는지 모른다.
그래서 통계의 자리는 추리의 가운데다. 앞에서는 도감이 "이런 모양이 있다"고 알려 주고, 통계는 "이 맵에 그 모양이 정말 있는가, 어디에, 누구에게, 얼마나"를 숫자로 답한다. 뒤에서는 그 숫자를 들고 장비를 찾아간다.
겹치고, 나누고, 잰다
9장에서 빈별로 가른 맵은 무늬가 둘임을 보여 주었다. 이제 로트 25장 전체로 숫자를 낸다. 25장을 겹친 스택에서 샷 안의 한 자리(왼쪽에서 3번째 열, 아래에서 2번째 행)는 불량률이 약 97%다. 모든 웨이퍼의 모든 샷에서 거의 빠짐없이 불량이라는 뜻으로, 우연의 여지가 없다. 반면 반지름 95~120 mm의 띠는 스택에서 약 25%로, 배경 12%보다 높기는 하지만 흐리다.
슬롯별 수율이 답을 준다. 수율이 톱니처럼 오르내린다. 홀수 슬롯 13장은 평균 약 83%, 짝수 슬롯 12장은 약 73%다. 둘로 나눠 겹치면 도넛은 짝수 슬롯 12장에만 있고 그 스택에서는 띠의 불량률이 약 45%로 또렷하다. 홀수 슬롯의 스택에서 같은 띠는 배경과 같다. 전체 스택에서 흐렸던 까닭은 절반에만 있는 무늬를 전부와 함께 평균했기 때문이다. 짝수 슬롯 스택의 반지름 프로파일은 약 107 mm에서 봉우리를 이룬다. 반복 무늬는 홀짝 어느 쪽에서나 약 97%로 같다.
핵심 정리
- 무작위는 고르지 않다. 불량률 12%인 무작위 맵에서 다이 7개 안팎의 덩어리는 보통이다. 무늬를 주장하려면 무작위가 그 정도를 만들 확률을 먼저 계산한다.
- 귀무가설은 완전 공간 무작위다. 이웃 쌍 통계는 불량–불량 이웃 쌍의 수를 무작위 배치의 기대값·분산과 견주어 z로 나타낸다. 넓은 무늬에 민감하고, 좁은 무늬와 반복 결함은 놓친다.
- 반지름·각도 프로파일과 구역 분석은 맵을 좌표 하나로 접어 평균한다. 막대에는 신뢰 구간을 붙이고, 구역이 많으면 다중 비교를 보정한다. 보정은 검출력을 깎는다.
- 스택 맵에서 신호는 N, 잡음은 √N으로 늘어 신호 대 잡음비가 √N으로 좋아진다. 웨이퍼마다 같은 자리의 무늬(장비, 레티클)는 남고, 자리가 다른 무늬(스크래치, 군집)는 1/N로 흐려진다.
- 스택은 평균이다. 일부 웨이퍼에만 있는 무늬는 흐려지므로 슬롯별 수율을 보고 가설에 따라 나눠 겹친다. 나눈 기준이 단서가 된다.
- 자동 분류기는 특징과 문턱(규칙 기반) 또는 학습(CNN)으로 무늬에 이름을 붙인다. 약한 무늬와 좁은 무늬를 놓치고, 배운 적 없는 무늬를 아는 이름으로 부른다.
- 통계가 말하는 것은 "우연이 아니다"까지다. 원인, 손실의 크기, 맵이 만들어진 경로는 따로 확인한다. 가장 강한 확인은 다른 웨이퍼에서의 재현이다.
확인 퀴즈
불량률 12%인 웨이퍼 맵에서 불량 다이 여섯 개가 한 덩어리로 붙어 있다. 가장 알맞은 판단은?
반복 결함(샷마다 같은 자리의 다이 하나가 불량)만 있는 웨이퍼의 이웃 쌍 z는 0보다 조금 낮게 나온다. 그 이유는?
약한 가장자리 무늬가 한 장에서는 보이지 않다가 25장을 겹치자 드러났다. 장수를 100장으로 늘리면 다이 한 자리의 신호 대 잡음비는 25장일 때의 몇 배가 되는가?
로트 25장을 모두 겹친 스택에서 도넛 띠의 불량률이 약 25%로 흐렸다. 짝수 슬롯만 겹치자 약 45%로 또렷해졌다. 이 결과에서 바로 말할 수 있는 것은?