28편에서 fab이 왜 시뮬레이션하기 어려운 시스템인지 개관했다. 이번 글부터 두 편은 실전이다 — fab DES 모델을 실제로 지을 때 무엇을 어떻게 모델링하는가. 이번 글은 모델의 반쪽인 장비(equipment) 쪽을 다루고, 다음 글에서 나머지 반쪽인 흐름·물류를 다룬다.
장비 모델링의 핵심 질문은 하나로 요약된다. “장비 하나를 얼마나 자세히 모델링할 것인가?” 처리 시간 분포 하나로 뭉갤 수도 있고, 챔버와 로봇 팔 단위까지 내려갈 수도 있다. 이 글은 그 사이의 선택지들을 하나씩 펼쳐 본다.
툴그룹: 병렬 기계, 그러나 완전히 같지는 않은
fab의 장비는 보통 낱개가 아니라 툴그룹(tool group) — 같은 기능을 하는 장비들의 묶음 — 단위로 관리된다. 스케줄링 이론의 언어로는 병렬 기계(parallel machines), 즉 같은 작업을 여러 대 중 아무 데서나 처리할 수 있는 구조다. 큐잉의 언어로는 서버가 대인 다중 서버 대기열이다.
그런데 “아무 데서나”가 실제로는 성립하지 않는다. 같은 툴그룹 안의 장비라도 qualification 제약 — 장비마다 처리할 수 있는 레시피(recipe, 공정 조건의 세트)가 다르고, 새 레시피를 어떤 장비에서 처리하려면 그 장비에 대한 인증 절차를 거쳐야 한다는 제약 — 이 있기 때문이다. 모델에서는 이를 호환성 행렬로 표현한다. lot이 수행할 스텝(레시피) 와 장비 에 대해
이 행렬이 말하는 것: 툴그룹의 실효 용량은 “장비 대수”가 아니라 레시피별로 다른 부분집합의 대수다. 장비 5대짜리 툴그룹이라도 특정 레시피를 처리할 수 있는 장비가 2대뿐이면, 그 레시피의 lot들에게 이 툴그룹은 사실상 2대짜리다. 가 대부분 1이면 유연한(잘 섞이는) 툴그룹이고, 드문드문 1이면 이름만 그룹인 셈이다. dedication — 특정 제품이나 레시피를 특정 장비에 고정해 두는 운영 방식 — 도 같은 계열의 제약으로, 행렬의 1을 의도적으로 더 줄여 놓은 경우라고 보면 된다.
시뮬레이션 관점에서 qualification을 무시하면(모든 로 가정하면) 툴그룹의 용량과 유연성을 과대평가하게 되어, 실제보다 대기가 짧고 cycle time이 좋은 낙관적 모델이 된다. capacity 분석에서 흔히 빗나가는 지점이다.
처리 방식 세 종류
툴그룹이 정해졌으면 다음 질문은 “장비가 lot을 어떤 방식으로 처리하는가”이다. 크게 세 부류다.
(1) 낱장/lot 단위 처리 장비
가장 단순한 경우. lot(또는 웨이퍼) 하나를 받아 일정 시간 처리하고 내보낸다. 모델링도 단순하다 — 처리 시간 분포 하나면 된다. 분포를 데이터에서 어떻게 적합하는지는 10편에서 다룬 그대로다.
(2) Batch 장비 — 기다릴 것인가, 출발할 것인가
확산로(diffusion furnace) 같은 batch 장비는 여러 lot을 한 배치(batch)로 묶어 동시에 처리한다. 특징은 처리 시간이 배치 크기와 거의 무관하게 길다는 것 — lot 1개를 넣든 꽉 채워 넣든 걸리는 시간이 비슷하다.
이때 모델링의 진짜 쟁점은 처리 시간이 아니라 배치 형성 정책(batching policy) 이다. 장비가 비었고 대기 중인 lot이 배치 정원에 못 미칠 때, 두 선택지가 있다.
- 기다린다 — 최소 배치 크기를 채울 때까지 출발을 미룬다. 한 번의 (긴) 처리로 더 많은 lot을 소화하므로 장비 효율은 오르지만, 먼저 온 lot들은 뒤에 올 lot을 기다리느라 대기가 길어진다.
- 지금 출발한다 — 있는 것만 싣고 돌린다. 대기는 짧아지지만, 같은 처리 시간에 적은 lot만 소화하므로 실효 용량이 깎이고, 부하가 높으면 오히려 뒤쪽 대기가 폭발한다.
전형적인 “기다림 vs 효율” trade-off이고, 정답은 부하 수준과 lot 도착 패턴에 의존한다. 여기에 실무 제약이 겹친다 — 배치는 보통 같은 레시피의 lot끼리만 묶을 수 있으므로, 레시피가 다양할수록 각 레시피별 대기열이 얕아져 배치 채우기가 더 어려워진다.
batch 장비 앞의 대기 행렬은 큐잉 직관이 잘 안 통하는 지점이기도 하다. 통상의 큐잉 직관은 “서버가 놀고 있으면 손님을 받는” 시스템을 전제하는데, 배치 형성 대기는 서버가 비어 있는데도 일부러 손님을 안 받는 시간이 정책적으로 존재하는 구조라서, 대기 시간이 이용률만으로 설명되지 않고 배치 정책·레시피 믹스에 크게 좌우된다. 그래서 batch 장비가 많은 구간일수록 해석적 근사보다 시뮬레이션의 가치가 크다.
(3) Cluster tool — 장비 하나가 하나의 시뮬레이션
Cluster tool은 로드락(loadlock, 진공과 대기 사이의 출입구 역할 챔버)·이송 로봇·공정 챔버 여러 개가 하나의 진공 플랫폼에 결합된 장비다. 웨이퍼가 장비 내부에서 챔버들을 순회하며 여러 처리를 받는다. 이 내부 동작 — 로봇 팔의 이송 순서, 챔버별 점유, 웨이퍼들의 파이프라인 — 을 그대로 모델링하면 그 자체가 하나의 어엿한 시뮬레이션이 된다.
그래서 fab 전체 모델에서는 보통 cluster tool 내부를 열지 않는다. 내부 동작을 유효 처리 시간(effective processing time) — 웨이퍼별·챔버별 세부를 lot 하나가 장비를 통과하는 데 걸리는 시간 하나로 근사한 값 — 으로 뭉개고, lot 단위 장비처럼 취급한다. 내부가 파이프라인이라 lot 처리 시간은 웨이퍼 수에 거의 선형으로 늘어나므로, 실무에서는 이 근사를 “첫 웨이퍼가 나오기까지의 지연 + 웨이퍼당 추가 시간”의 1차식으로 잡는 경우가 많다. cluster tool 자체의 설계·최적화가 질문이라면 내부를 여는 별도의 상세 모델을 만들고, fab 수준 질문에는 그 결과를 요약해 가져다 쓴다. 20편에서 말한 fidelity 선택의 가장 대표적인 사례다.
Setup: 레시피 전환의 비용
장비가 레시피 를 처리하다가 레시피 로 바꾸려면 setup(전환 준비 시간)이 발생할 수 있다. 온도·가스·타겟 교체 등 물리적 전환 작업 때문이다. 일반적으로 setup 시간은
처럼 직전 레시피 와 다음 레시피 의 쌍에 의존하는 sequence-dependent 구조일 수 있다. 이 식이 말하는 것: 같은 레시피를 이어 처리하면 setup이 없고(), 어떤 전환은 싸고 어떤 전환은 비싸다. 따라서 어떤 lot을 어떤 순서로 이어 붙이느냐가 setup에 쓰는 총 시간을 바꾼다 — setup 모델은 장비 파라미터인 동시에 디스패칭 문제와 얽혀 있다. 같은 레시피 lot을 몰아서 처리하면(campaigning) setup 손실은 줄지만 다른 레시피 lot의 대기가 길어지는, batch에서 본 것과 닮은 trade-off가 또 등장한다.
시뮬레이션 모델에 setup을 넣는다는 것은 곧 “장비가 마지막으로 처리한 레시피”라는 상태 변수를 추가하고, 디스패칭 규칙이 그 상태를 볼 수 있게 한다는 뜻이다. setup을 무시한 모델로 디스패칭 규칙을 평가하면, setup을 줄이는 규칙의 이점이 통째로 사라져 비교가 왜곡된다.
장비 상태와 다운타임
장비는 “가동 중” 아니면 “대기 중”이라는 두 상태만 갖지 않는다. 실무에서는 대략 다음과 같은 상태 범주로 나눠 관리한다 — 생산 처리 중 / 대기(idle) / 계획 정비(PM, preventive maintenance) / 비계획 고장(unscheduled down) / 엔지니어링 사용(생산이 아닌 실험·조건 잡기 용도). 반도체 업계에는 이런 장비 상태 분류에 대한 표준 체계가 존재하며, 장비 데이터가 보통 이 범주 체계로 집계되기 때문에 시뮬레이션의 상태 정의도 여기에 맞춰 두면 input 데이터 연결과 결과 검증이 쉬워진다.
시뮬레이션에서 다운타임을 다루는 방식은 계획 여부에 따라 갈린다.
비계획 고장: MTBF·MTTR을 분포로
비계획 고장은 고장 간격(MTBF, mean time between failures — 한 고장의 복구 시점부터 다음 고장까지, 즉 고장 없이 가동한 시간의 평균)과 수리 시간(MTTR, mean time to repair — 고장 발생부터 복구까지 시간의 평균)의 두 확률량으로 모델링한다. 평균만이 아니라 분포를 데이터에 적합해야 하며, 이것이 10편의 분포 적합 절차가 그대로 쓰이는 자리다 — 히스토그램을 그리고, 분포 가족을 고르고(수리 시간은 오른쪽으로 치우친 lognormal·Weibull류가 후보가 되곤 한다), MLE로 모수를 추정하고, 적합도를 검정한다.
놓치기 쉬운 디테일이 하나 있다. 고장 간격의 시계 기준이다.
- 가동 시간 기준(busy time): 장비가 실제로 처리한 시간이 누적되어야 고장 시계가 흐른다 — 마모성 고장에 가까운 그림.
- 달력 시간 기준(calendar time): 처리 여부와 무관하게 실제 시간이 흐르면 고장이 온다.
같은 MTBF 값이라도 어느 기준이냐에 따라 모델의 거동이 다르다. 이용률이 낮은 장비는 가동 시간 기준에서는 고장이 드물게 발생하지만, 달력 시간 기준에서는 놀고 있어도 꼬박꼬박 고장 난다. 데이터를 적합할 때부터 “이 고장 간격 데이터가 어느 시계로 잰 것인지”를 확인해야 한다.
PM: 결정적이지만 스케줄링과 상호작용
계획 정비(PM)는 이름 그대로 계획된 것이라 확률 모델이 필요 없어 보인다 — 웨이퍼 처리량 기준(“N장 처리마다”) 또는 시간 기준(“k시간마다”)의 주기 스케줄로 넣으면 된다. 그러나 결정적이라고 해서 시시한 것은 아니다. PM은 디스패칭·스케줄링과 상호작용한다. PM 시각이 다가오는 장비에 긴 작업을 새로 넣을 것인가? 넣으면 작업이 PM에 걸리거나 PM이 밀리고, 안 넣으면 PM 직전 구간에 장비가 빈 채로 기다린다. PM을 모델에 넣는 순간 디스패칭 규칙도 “PM까지 남은 시간”을 보게 만들지 말지를 결정해야 하고, 이 선택이 규칙 비교 결과를 바꿀 수 있다.
평균 가용률이 아니라 변동성이 문제다
다운타임의 효과를 흔히 가용률(availability) 하나로 요약한다.
이 식이 말하는 것: 전체 시간 중 장비가 (고장 나 있지 않고) 쓸 수 있는 상태인 비율이다. 그런데 이 비율이 같아도 fab 성능은 같지 않다. 예를 들어 “MTBF 9시간·MTTR 1시간”과 “MTBF 90시간·MTTR 10시간”은 둘 다 지만, 전자는 짧고 잦은 고장, 후자는 길고 드문 고장이다. 후자 쪽이 lot 입장에서 훨씬 나쁘다 — 10시간짜리 정지 한 번은 그 앞에 긴 대기열을 쌓아 올리고, 그 여파(쌓인 lot이 빠져나가는 데 걸리는 시간)가 오래 지속된다. 짧은 고장 여러 번은 그때그때 소화된다.
이것은 07편의 큐잉 직관과 정확히 이어진다 — 대기 시간은 평균이 아니라 변동성에 의해 증폭된다. 다운타임은 lot이 보는 유효 처리 시간의 변동성을 키우는 경로로 fab의 cycle time을 해치며, 길고 드문 고장일수록 그 변동성 기여가 크다. 그래서 다운타임을 “용량을 배 깎기”(처리 시간을 배 늘리기)로 뭉개는 근사는 평균 용량은 맞추지만 변동성 경로를 통째로 놓친다 — cycle time이 질문이라면 고장을 개별 사건으로 발생시키는 모델이 필요한 이유다.
얼마나 자세히: fidelity 사다리
지금까지의 요소를 쌓아 보면, 장비 하나의 모델은 대략 네 단계의 fidelity 사다리를 이룬다.
| 수준 | 모델 내용 | 어울리는 질문 |
|---|---|---|
| (a) | 처리 시간 분포 하나 | 거친 capacity·병목 분석 |
| (b) | (a) + setup, qualification/dedication | 제품 믹스·용량 계획, 유연성 분석 |
| (c) | (b) + 다운타임 상태 모델 (MTBF/MTTR·PM) | cycle time 예측, 디스패칭 규칙 평가 |
| (d) | 챔버·로봇 수준 상세 (cluster tool 내부) | 장비 자체의 설계·최적화 |
어느 칸에 설지는 장비가 정하는 게 아니라 질문이 정한다 — capacity 분석인가, 디스패칭 평가인가, 장비 설계인가. 그리고 20편의 원칙이 그대로 적용된다: 질문에 답하는 데 필요 이상의 fidelity는 정확성이 아니라 성능 버그다. fab 전체 모델의 장비 수백 대를 전부 (d) 수준으로 여는 것은 이벤트 수를 폭발시키면서 결론은 바꾸지 않는, 비용만 내는 디테일의 전형이다. 반대로 디스패칭 규칙을 평가하겠다면서 (a) 수준에 머무는 것은 규칙이 상호작용할 대상(setup·qualification·다운타임)을 지워 버린 모델로 비교하는 셈이라, 낮은 fidelity가 곧 안전한 것도 아니다.
정리
- fab 장비는 툴그룹 단위의 병렬 기계지만, qualification·dedication 때문에 호환성 행렬 로 표현되는 부분적 유연성만 갖는다. 이를 무시하면 용량을 과대평가한다.
- 처리 방식은 lot 단위 / batch / cluster tool 세 부류. batch는 처리 시간보다 배치 형성 정책(“기다림 vs 효율”)이 쟁점이고, cluster tool은 fab 수준에서 유효 처리 시간으로 근사하는 것이 fidelity 선택의 정석이다.
- Setup은 sequence-dependent일 수 있어() 처리 순서가 setup 총량을 바꾸고, 그래서 디스패칭과 얽힌다.
- 다운타임은 비계획 고장(MTBF·MTTR 분포 — 10편의 분포 적합, 가동 시간 vs 달력 시간 기준 주의)과 PM(주기 스케줄, 디스패칭과 상호작용)으로 나눠 모델링한다. 성능에 대한 효과는 평균 가용률보다 변동성 경로가 크다 — 같은 라도 길고 드문 고장이 더 해롭다.
- 장비 모델의 fidelity는 (a) 분포 하나 → (b) setup·qualification → (c) 다운타임 → (d) 챔버 수준의 사다리이고, 질문이 수준을 결정한다.
다음 글에서는 모델의 나머지 반쪽 — lot의 재진입 흐름과 반송(AMHS) 등 흐름·물류의 모델링으로 넘어간다.