KR20220160671A - 다중 챔버 반도체 장비를 위한 예측 웨이퍼 스케줄링 - Google Patents

다중 챔버 반도체 장비를 위한 예측 웨이퍼 스케줄링 Download PDF

Info

Publication number
KR20220160671A
KR20220160671A KR1020227037903A KR20227037903A KR20220160671A KR 20220160671 A KR20220160671 A KR 20220160671A KR 1020227037903 A KR1020227037903 A KR 1020227037903A KR 20227037903 A KR20227037903 A KR 20227037903A KR 20220160671 A KR20220160671 A KR 20220160671A
Authority
KR
South Korea
Prior art keywords
chamber
data
manufacturing
wafer
manufacturing tool
Prior art date
Application number
KR1020227037903A
Other languages
English (en)
Inventor
아드리안 리
Original Assignee
어플라이드 머티어리얼스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어플라이드 머티어리얼스, 인코포레이티드 filed Critical 어플라이드 머티어리얼스, 인코포레이티드
Publication of KR20220160671A publication Critical patent/KR20220160671A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/67Apparatus specially adapted for handling semiconductor or electric solid state devices during manufacture or treatment thereof; Apparatus specially adapted for handling wafers during manufacture or treatment of semiconductor or electric solid state devices or components ; Apparatus not specifically provided for elsewhere
    • H01L21/67005Apparatus not specifically provided for elsewhere
    • H01L21/67242Apparatus for monitoring, sorting or marking
    • H01L21/67276Production flow monitoring, e.g. for increasing throughput
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32252Scheduling production, machining, job shop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45031Manufacturing semiconductor wafers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Primary Health Care (AREA)
  • General Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • General Factory Administration (AREA)
  • Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)

Abstract

제조 도구에 대한 스케줄(schedule)을 식별하기 위해 시뮬레이션 기반 최적화를 수행하기 위한 기술이 본 명세서에 개시된다. 예시적인 방법은, 프로세싱 디바이스에 의해, 제조 도구의 리소스(resource)들을 결정하는 단계 ― 리소스들은 제1 챔버 및 제2 챔버를 포함함 ―; 제1 제조 작업 및 제2 제조 작업을 나타내는 작업 데이터에 액세스하는 단계; 제1 챔버를 사용하여 제1 제조 작업을 수행하는 지속기간 및 제2 챔버를 사용하여 제2 제조 작업을 수행하는 지속기간을 결정하는 단계; 제1 제조 작업을 수행하는 지속기간 및 제2 제조 작업을 수행하는 지속기간에 기반하여 기계 학습 모델을 업데이트(update)하는 단계; 시뮬레이션(simulation) 결과들의 세트를 생성하기 위해 기계 학습 모델 및 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하는 단계; 프로세싱 디바이스에 의해, 시뮬레이션 결과들의 세트의 시뮬레이션 결과를 데이터 저장소에 저장하는 단계를 포함할 수 있다.

Description

다중 챔버 반도체 장비를 위한 예측 웨이퍼 스케줄링
[001] 본 개시내용은 예측 모델링(modeling)에 관한 것으로서, 보다 상세하게는, 제조 리소스(resource)들을 스케줄링(scheduling)하기 위한 시뮬레이션(simulation) 기반 최적화 기술에 관한 것이다.
[002] 제조는 인간 노동, 기계들, 또는 이들의 조합을 포함할 수 있는 단계들을 사용하여 제품들을 생성하는 것을 포함한다. 제조 단계들은, 단계들이 수행되는 시기, 장소 또는 방법을 결정하고 제조되는 제품들에 영향을 미치는 설정들과 관련될 수 있다. 프로세스 엔지니어(engineer)들은 일반적으로 제조 단계들을 수행하기 위해 사용되는 제조 리소스들을 스케줄링(schedule)하고, 스케줄은 이들의 업계 경험 및 과거 실험들을 기초로 할 수 있다.
[003] 다음은 본 개시내용의 일부 양상들에 대한 기본적인 이해를 제공하기 위해 본 개시내용의 간략화된 요약이다. 이 요약은 본 개시내용에 대한 광범위한 개요가 아니다. 이것은 본 개시내용의 핵심적인 또는 중요한 요소들을 식별하거나, 본 개시내용의 특정 구현들의 임의의 범위 또는 청구항들의 임의의 범위를 설명하도록 의도되지 않는다. 그것의 유일한 목적은 나중에 제시되는 보다 상세한 설명에 대한 서문으로서 간략한 형태로 본 개시내용의 일부 개념들을 제시하는 것이다.
[004] 본 개시내용의 양상에서, 방법은, 프로세싱 디바이스에 의해, 제조 도구(manufacturing tool)의 리소스들을 결정하는 단계 ― 리소스들은 제1 챔버 및 제2 챔버를 포함함 ―; 제1 제조 작업(manufacturing task) 및 제2 제조 작업을 나타내는 작업 데이터(task data)에 액세스(access)하는 단계; 제1 챔버를 사용하여 제1 제조 작업을 수행하는 지속기간(duration) 및 제2 챔버를 사용하여 제2 제조 작업을 수행하는 지속기간을 결정하는 단계; 제1 제조 작업을 수행하는 지속기간 및 제2 제조 작업을 수행하는 지속기간에 기반하여 기계 학습 모델(machine learning model)을 업데이트(update)하는 단계; 프로세싱 디바이스에 의해, 시뮬레이션 결과들의 세트를 생성하기 위해 기계 학습 모델 및 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하는 단계; 프로세싱 디바이스에 의해, 시뮬레이션 결과들의 세트의 시뮬레이션 결과를 데이터 저장소에 저장하는 단계를 포함한다.
[005] 본 개시내용의 다른 양상에서, 시스템은 메모리 및 메모리에 결합된 프로세싱 디바이스를 포함한다. 프로세싱 디바이스는 제조 도구의 리소스들을 결정하고 ― 리소스들은 제1 챔버 및 제2 챔버를 포함함 ―; 제1 제조 작업 및 제2 제조 작업을 나타내는 작업 데이터에 액세스하고; 제1 챔버를 사용하여 제1 제조 작업을 수행하는 지속기간 및 제2 챔버를 사용하여 제2 제조 작업을 수행하는 지속기간을 결정하고; 제1 제조 작업을 수행하는 지속기간 및 제2 제조 작업을 수행하는 지속기간에 기반하여 기계 학습 모델을 업데이트하고; 시뮬레이션 결과들의 세트를 생성하기 위해 기계 학습 모델 및 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하고; 시뮬레이션 결과들의 세트의 시뮬레이션 결과를 데이터 저장소에 저장한다.
[006] 본 개시내용의 양상에서, 명령들을 저장하는 비-일시적인 기계-판독가능 저장 매체가 제공되고, 명령들은, 실행될 때, 프로세싱 디바이스로 하여금 동작들을 수행하게 하고, 동작들은: 웨이퍼들의 세트의 프로세싱을 포캐스트(forecast)하기 위해 기계 학습 모델에 액세스하는 동작; 웨이퍼들의 세트에 대한 시작 시간들의 세트를 사용하여 제1 컴퓨터 시뮬레이션을 수행하는 동작; 세트의 적어도 하나의 웨이퍼가, 미리 정의된 임계값을 초과하는 지속기간 동안 유휴 상태(idle)라는 것을 검출하는 동작; 적어도 하나의 웨이퍼에 대한 서로 다른 시작 시간을 포함하도록 시작 시간들의 세트를 수정하는 동작; 및 수정된 시작 시간들의 세트를 사용하여 제2 컴퓨터 시뮬레이션을 수행하는 동작을 포함한다.
[007] 본 개시내용은 첨부 도면들의 도면들에서 제한이 아니라 예로서 예시된다.
[008] 도 1은 특정 실시예들에 따른 예시적인 시스템 아키텍처(architecture)를 예시하는 블록도이다.
[009] 도 2는 특정 실시예들에 따른 예시적인 컴퓨팅 디바이스이다.
[0010] 도 3은 특정 실시예들에 따른 제조 프로세스의 시뮬레이션 기반 최적화를 수행하기 위한 예시적인 방법을 예시하는 흐름도이다.
[0011] 도 4는 특정 실시예들에 따른 컴퓨터 시스템을 예시하는 블록도이다.
[0012] 제조 프로세스들은 계속해서 복잡성이 증가하고, 종종 제조된 제품을 생성하기 위해 수행되는 많은 작업들을 포함한다. 작업들은 단일의 도구 또는 하나 이상의 도구들에 의해 수행될 수 있다. 각각의 작업에는 작업을 완료하기 위해 하나 이상의 도구 리소스들이 필요할 수 있으며, 제품들의 세트가 동일한 리소스를 사용하도록 시도하고 있을 때 리소스 충돌이 발생할 수 있다. 충돌을 해결하기 위해, 도구는 제품들 중 하나 이상이 리소스를 차지하도록 스케줄링할 수 있고, 나머지 제품들이 리소스를 사용할 수 있게 될 때까지 대기열에서 기다리게 할 수 있다. 제품들을 대기열에 넣으면 도구의 처리량이 감소될 수 있으며, 일부 상황들에서 제품들의 품질이 저하될 수 있다. 예를 들어, 제조된 제품들은 많은 작업들의 결과일 수 있으며, 작업들 사이에 제품이 유휴 상태인 시간들의 변동들로 인해 완제품에 변동들이 발생할 수 있다. 이는 작업들 간의 변동들이 제품의 속성들을 변경할 수 있기 때문에 발생할 수 있다. 열, 습기, 질감, 또는 다른 속성의 변경들은 현재 또는 후속 작업들에 부정적인 영향을 미칠 수 있고, 완제품의 품질을 저하시킬 수 있다.
[0013] 본 개시내용의 양상들은 제조 프로세스를 위한 리소스 스케줄링을 최적화하기 위해 기계 학습 및 컴퓨터 시뮬레이션들을 사용하는 기술을 제공함으로써 위의 그리고 다른 결함들을 해결한다. 일 예에서, 이 기술은 일련의 제품들에 대해 순차적으로 또는 병렬로 다수의 작업들을 수행할 수 있는 제조 도구 내에 임베드(embed)될 수 있다. 제품들은 반도체 웨이퍼들일 수 있고, 제조 도구는 반도체 웨이퍼들 중 하나에 대해 각각 작업을 수행할 수 있는 다수의 챔버들을 가질 수 있다. 일 예에서, 이 기술은 하나 이상의 제품들(예를 들어, 웨이퍼들)을 각각 유지할 수 있는 챔버들의 세트의 레이아웃(layout) 및 능력들을 포함할 수 있는, 제조 도구의 리소스들을 결정하는 컴퓨팅 디바이스를 포함할 수 있다. 이 기술은 제조 도구가 하나 이상의 제품들에 대해 수행할 수 있는 제조 작업들의 시퀀스를 나타내는 작업 데이터에 액세스할 수 있다. 각각의 작업은 작업을 수행하기 위한 레시피(recipe)와 관련될 수 있으며, 제조 도구의 특정 챔버를 사용할 수 있다.
[0014] 이 기술은 제조 도구가 상이한 리소스들을 사용하여 상이한 제조 작업들을 수행하는 데 얼마나 오랜 시간이 걸리는 지를 추적할 수 있다. 예를 들어, 서로 다른 리소스들은 서로 다른 제품 용량들, 로드(load) 시간들, 수정 시간들, 세정 시간들, 또는 이들의 조합을 가질 수 있다. 이 기술은 추적된 시간들을 기초로 제조 도구의 시간적 양상들을 모델링하기 위해 기계 학습 모델을 트레이닝(train)시킬 수 있다. 그 다음, 이 기술은 시뮬레이션 결과들의 세트를 생성하기 위해 기계 학습 모델 및 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행할 수 있다. 시뮬레이션 결과들 각각은 리소스들이 제품들의 세트에 대한 작업을 수행하는 순서를 나타내는 제조 도구에 대한 스케줄일 수 있다. 그 다음, 이 기술은 시뮬레이션 결과들을 기초로 최적화 값들을 계산하고, 최적화 값들을 기초로 시뮬레이션 결과들 중 하나를 선택할 수 있다. 최적화 값들은 하나 이상의 작업들의 세트에 고유할 수 있으며, 제품 유휴 시간(예를 들어, 작업들 간의 웨이퍼 유휴 시간), 리소스 활용도(예를 들어, 챔버 유휴 시간), 도구 처리량, 다른 성능 메트릭(metric), 또는 이들의 조합에 기초할 수 있다.
[0015] 여기에 설명된 시스템들 및 방법들은 제조 프로세스에서 사용되는 하나 이상의 제조 도구들을 향상시키는 기술을 포함한다. 특히, 본 개시내용의 양상들은 제조 프로세스 중 제품 유휴 시간의 변동들을 감소시킴으로써 제조된 제품들의 품질을 향상시킬 수 있다. 이것은 제조된 제품들의 일관성을 증가시킬 수 있다. 이 기술은 또한 제조 도구 또는 제조 도구의 특정 리소스들의 활용도 및/또는 처리량을 증가시킬 수 있다.
[0016] 위의 언급된 기술의 다양한 양상들은 여기서 제한이 아니라, 예들로서 이하에서 상세하게 설명된다. 아래에 제공된 예들은 제조 도구와 통신 가능하게 결합된 컴퓨팅 디바이스에 대해 논의한다. 다른 예들에서, 컴퓨팅 디바이스는 제조 도구에 통신가능하게 결합되지 않을 수도 있고, 데이터 저장소로부터의 제조 도구와 관련된 데이터에 액세스할 수도 있고, 제조 도구를 구성하기 위해 사용자 또는 디바이스에 의해 후속적으로 사용될 수 있는 데이터를 생성할 수도 있다.
[0017] 도 1은 특정 실시예들에 따른 예시적인 시스템 아키텍처(100)를 예시하는 블록도이다. 시스템 아키텍처(100)는 하나 이상의 제품들(101)을 제공하거나 또는 생산할 수 있는 제조 프로세스를 최적화하기 위해 사용될 수 있다. 제품(101)은 사용 또는 판매를 위한 것일 수 있으며, 유형 또는 무형의 물체, 상품, 서비스(service), 다른 제품, 또는 이들의 조합일 수 있다. 유형 제품은 사람이 만질 수 있으며, 물리적 제품들, 상품들, 요소들, 또는 다른 물체(예를 들어, 에칭된 웨이퍼, 반도체 디바이스, 마이크로칩(microchip) 또는 다른 전자 디바이스)를 포함할 수 있다. 무형 제품들은 사람이 만지지 않고 직접 또는 간접적으로 인지될 수 있으며, 회로 설계들, 디바이스 레이아웃들, 제조 레시피들, 도구 구성, 컴퓨터 프로그램들, 서비스들, 다른 무형 요소들, 또는 이들의 조합을 포함할 수 있다. 도 1에 도시된 예에서, 시스템 아키텍처(100)는 제조 도구(110) 및 하나 이상의 컴퓨팅 디바이스(120A-Z)를 포함할 수 있다.
[0018] 제조 도구(110)는 제품(101)을 생산하는 제조 프로세스에 기여하는 임의의 도구일 수 있다. 도구는 기계, 컴퓨팅 디바이스, 컴퓨터 프로그램, 다른 디바이스, 또는 이들의 조합일 수 있다. 제조 도구(110)는 컴퓨터 소프트웨어(software)(예를 들어, 프로그램 코드(code)) 및 컴퓨터 하드웨어(hardware)(예를 들어, 집적 회로들)를 포함할 수 있고, 반도체 디바이스 제작을 위해 사용될 수 있다. 반도체 디바이스 제작은 반도체 디바이스들 및 집적 회로(IC)들의 제조를 포함할 수 있다. 제조 도구(110)는 포토리소그래피(photolithographic) 및 화학적 프로세싱 단계들(예를 들어, 표면 패시베이션(passivation), 열 산화, 평면 확산, 및 접합 격리)을 포함할 수 있는 다단계 시퀀스를 수행할 수 있으며, 이 동안 반도체 재료(예를 들어, 실리콘 웨이퍼)로 제조된 제품 상에 전자 회로들이 점진적으로 생성된다. 제조 도구(110)는 하나 이상의 리소스들(115A-Z)을 사용하여 제품(101)을 프로세싱할 수 있다.
[0019] 리소스들(115A-Z)은 제조 도구(110)의 상이한 부분들일 수 있고, 각각 제조 도구(110)의 파티션(partition), 영역, 섹션(section), 구역, 부품, 또는 다른 부분과 동일하거나 또는 유사할 수 있다. 일 예에서, 리소스(115A-Z) 각각은 제품(101)에 대한 하나 이상의 작업들을 수행하기 위한 챔버일 수 있다. 챔버는 하나 이상의 제품들을 유지할 수 있으며, 인클로저(enclosure), 구획, 컨테이너(container), 개구, 용기, 리셉터클(receptacle), 저장 유닛(unit), 하우징, 또는 이들의 조합과 동일하거나 또는 유사할 수 있다. 리소스들(115A-Z)은 제품을 프로세싱하기 위해 사용될 수 있는 하나 이상의 다른 유형들의 리소스들을 포함할 수 있다. 제품을 프로세싱하는 것은 제품과 관련된 액션(action)을 수행하는 것을 포함할 수 있으며, 제품을 로딩하고, 제품을 이송하고, 제품을 수정하는 하나 이상의 동작들, 다른 동작, 또는 이들의 조합을 포함할 수 있다.
[0020] 도 1에 도시된 예에서, 리소스들(115A-C)은 제품들을 제조 도구(110) 내로 또는 제조 도구(110) 내에서 이동시키도록 구성될 수 있다. 리소스(115A)는, 하나 이상의 제품들(101)을 제조 도구(110) 외부에 있는 수송 디바이스로부터 제조 도구(110) 내로 로딩하기 위한 로봇 컴포넌트(component) 및 포트(port)를 포함하는 외부 이송 리소스일 수 있다. 수송 디바이스는 하나 이상의 제품들의 세트를 제조 도구로, 제조 도구로부터, 또는 제조 도구들 간에 수송할 수 있다. 수송 디바이스는 하나 이상의 제품들의 세트를 안전하게 저장하기 위한 인클로저를 갖는 포드(pod)일 수 있으며, FOUP(Front Opening Unified Pod)와 동일하거나 또는 유사할 수 있다. 리소스들(115B-C)은 제품들을 저장하고 제조 도구(110) 내에서 제품들을 이송할 수 있는 내부 이송 리소스들일 수 있다. 이송 리소스들은 제품을 리소스 내로, 리소스 외부로, 리소스들 간에, 또는 이들의 조합으로 이송할 수 있다. 내부 및 외부 이송 리소스들은, 웨이퍼들을 상이한 챔버들 내로 그리고 외부로 이동할 수 있고 로봇 챔버들로 지칭될 수 있는, 전기-기계적 액추에이터(actuator)들(예를 들어, 로봇들)을 갖는 챔버들일 수 있다. 리소스들(115R-Z)은 작업들(122A-Z)의 관점에서 제품(101)을 수정할 수 있는 제조 도구(110)의 부분들일 수 있다. 각각의 리소스는 특정 작업(예를 들어, 작업(122A)) 또는 다수의 작업들의 세트(예를 들어, 작업들(122B-C))를 수행하도록 구성될 수 있다.
[0021] 작업들(122A-Z)은 제품(101)을 생산하기 위해 제조 도구(110)에 의해 수행되는 제조 단계들에 대응할 수 있다. 일 예에서, 작업들(122A-Z)은 반도체 제작 작업들일 수 있고, 웨이퍼 세정(예를 들어, 습식 세정), 포토리소그래피, 이온 주입(ion implantation), 에칭(예를 들어, 습식 에칭, 건식 에칭, 원자층 에칭), 플라즈마 애싱(ashing), 열처리(예를 들어, 어닐링(annealing), 열 산화), 기상 증착(예를 들어, 화학 기상 증착(CVD), 원자층 증착(ALD), 물리 기상 증착(PVD), 분자빔 에피택시(molecular-beam epitaxy)(MBE), 연마(예를 들어, 화학-기계 연마), 측정(예를 들어, 웨이퍼 또는 다이(die) 측정), 테스팅(testing)(예를 들어, 웨이퍼 또는 IC 테스팅), 백 그라인딩(back grinding), 다이싱(dicing), 본딩(bonding), 캡슐화(encapsulation), 다른 작업, 또는 이들의 조합을 포함할 수 있다. 작업들(122A-Z)은 작업 데이터(122)와 관련될 수 있다.
[0022] 작업 데이터(122)는 작업들, 및 작업들이 제품(101)을 생성하기 위해 수행될 수 있는 시퀀스를 식별할 수 있다. 작업 데이터(122)는 시퀀스 데이터, 시퀀스 프로그램, 레시피, 또는 다른 용어로 지칭될 수 있다. 작업 데이터(122)는 제품을 설계하는 엔티티(entity)에 의해 제품을 제조하는 엔티티에 제공될 수 있으며, 엔티티들은 동일한 또는 다른 비즈니스(business) 엔티티들의 일부일 수 있다. 제품을 설계하는 엔티티는 시작 작업, 하나 이상의 중간 작업들, 종료 작업을 나타낼 수 있다. 작업들 중 하나 이상은 특정 제품 또는 세트의 상이한 제품들(예를 들어, 포드 내의 상이한 웨이퍼들)에 대해 직렬 또는 병렬로 수행될 수 있다.
[0023] 작업 데이터(122)는 작업들(122A-Z) 중 하나 이상에 대한 입력 데이터, 출력 데이터, 또는 이들의 조합을 포함할 수 있다. 작업에 대한 입력 데이터는 제조 단계에 대한 하나 이상의 입력들을 정의하는 임의의 데이터를 포함할 수 있다. 예를 들어, 입력 데이터는 입력 제품들, 구성들, 설정들, 또는 다른 데이터의 하나 이상의 속성들을 나타낼 수 있다. 입력 데이터는 파라미터 데이터, 설정들 데이터, 구성 데이터, 다른 데이터 또는 이들의 조합과 동일하거나 또는 유사할 수 있다. 입력 데이터는 제조 프로세스가 수행되는 방법을 나타내는 하나 이상의 값들(예를 들어, 파라미터 값들, 설정 값들, 구성 값들)을 포함할 수 있다. 일 예에서, 입력 데이터는 시간(예를 들어, 증착 시간, 에칭 시간, 산화 시간, 주입 시간, 세정 시간), 에너지(예를 들어, 온도, 전류, 전압, 전자기 주파수), 입력 속도(예를 들어, 가스 유량, 웨이퍼 스핀(spin) 속도), 거리(예를 들어, 기판과 도구 사이의 공간, 피처 폭, 높이, 깊이), 압력(예를 들어, 파스칼(Pascal), 바(bar)), 입력 물질(예를 들어, 전구체, 반응물, 희석제), 다른 속성 또는 특성, 또는 이들의 조합에 대응하는 하나 이상의 값들을 포함할 수 있다.
[0024] 출력 데이터는 제조 단계의 예상 출력들을 설명하는 임의의 데이터일 수 있다. 출력 데이터는 제품(101), 부산물, 다른 출력, 또는 이들의 조합의 하나 이상의 속성들을 설명할 수 있다. 출력 데이터는 단계가 수행되기 전에, 수행되는 동안, 또는 수행된 후에 제품의 실제 속성을 나타내는 값들을 포함할 수 있다. 속성들은 제품(101)의 하나 이상의 측정치들에 대응할 수 있다. 측정들은 치수들(예를 들어, 길이, 폭, 높이, 깊이, 두께, 반지름, 직경, 면적, 부피, 크기), 재료 특성(예를 들어, 반사율, 방사율, 흡수율, 전도도, 밀도, 질감), 균일성(예를 들어, 막 두께 균일성), 로케이션(location)(예를 들어, 상대 또는 절대 포지션(position)), 다른 속성, 또는 이들의 조합에 관한 것일 수 있다. 일 예에서, 출력 데이터는 N-포인트 계측의 형태로 제품(101)의 속성들을 나타낼 수 있으며, 여기서 N은 제품에 대한 기준 측정들의 개수(예를 들어, 49 포인트 계측)를 나타낸다. N-포인트 계측은 반도체 제품의 하나 이상의 전자 컴포넌트들에 대한 임계 치수들(예를 들어, 트랜지스터(transistor) 또는 비아(via)의 치수들)을 제공할 수 있다.
[0025] 컴퓨팅 디바이스들(120-Z)은 제조 도구(110)와 관련된 하나 이상의 컴퓨팅 디바이스들을 포함할 수 있다. 컴퓨팅 디바이스들(120A-Z)은 임베디드(embedded) 시스템, 서버, 워크스테이션(workstation), 개인용 컴퓨터, 랩톱(laptop) 컴퓨터, 태블릿(tablet) 컴퓨터, 휴대폰, 손바닥 크기의 컴퓨팅 디바이스, 개인 휴대 정보 단말기(PDA) 등을 포함할 수 있다. 컴퓨팅 디바이스들(120A-Z)은 x86 하드웨어(예를 들어, Intel® 또는 AMD®), PowerPC®, SPARC®, 또는 다른 하드웨어로 구현된 컴퓨팅 디바이스들을 포함할 수 있다.
[0026] 컴퓨팅 디바이스들(120A-Z) 중 하나 이상은 제조 제어 디바이스들, 센서 디바이스들, 사용자 디바이스들, 다른 디바이스들, 또는 이들의 조합으로서 기능할 수 있다. 제조 제어 디바이스(예를 들어, 제어기)는 제조 도구(110)의 일부를 제어할 수 있고, 입력 데이터, 출력 데이터, 또는 이들의 조합에 액세스하거나, 이들을 생성하거나, 또는 전송할 수 있다. 센서 디바이스(예를 들어, 센서)는 제조 도구(110)의 양상 또는 제품(101)의 양상을 인지할 수 있고, 제조 도구(110) 또는 제품(101)의 속성을 측정할 수 있는 측정 컴포넌트를 포함할 수 있다. 일 예에서, 센서 디바이스는 이미지 캡처링 모듈(image capturing module) 또는 음향 캡처링 모듈을 포함할 수 있다. 사용자 디바이스들은 클라이언트(client) 디바이스와 동일하거나 또는 유사할 수 있으며, 사용자(예를 들어, 프로세스 엔지니어)에게 사용자 인터페이스를 제공할 수 있다. 사용자 인터페이스는 정보를 사용자에게 제시(예를 들어, 디스플레이 및/또는 발표)할 수 있고, 사용자 입력을 수집하기 위한 하나 이상의 제어 요소들을 포함할 수 있다. 컴퓨팅 디바이스들(120A-Z) 중 하나 이상은 기계 학습 모델(126)을 사용하여 컴퓨터 시뮬레이션들(124)을 실행할 수 있다.
[0027] 기계 학습 모델(126)은 제조 도구(110)가 작업들을 수행하기 위해 소비하는 시간 지속기간들을 수학적으로 모델링할 수 있다. 일 예에서, 기계 학습 모델(126)은 제조 도구(110)를 모델링하는 단일 기계 학습 모델일 수 있다. 다른 예에서, 기계 학습 모델(126)은 기계 학습 모델들의 세트를 포함할 수 있고, 세트의 각각의 모델은 하나 이상의 리소스들을 모델링할 수 있다. 어느 하나의 예에서, 각각의 기계 학습 모델은 수학적 모델, 통계적 모델, 신경망, 다른 수학적 표현, 또는 이들의 조합과 동일하거나 또는 유사할 수 있다. 기계 학습 모델(126)은 모델 입력(예를 들어, 작업들 및/또는 리소스들)과 모델 출력(예를 들어, 시간 지속기간들) 간의 관계들을 표현하는 수학적 데이터를 포함할 수 있다. 수학적 데이터는 하나 이상의 행렬들, 인덱스(index)들, 값 쌍들, 벡터들, 함수들, 방정식들, 표현식들, 연산자들, 피연산자들, 계수들, 변수들, 가중치들, 편향들, 링크(link)들, 다른 데이터, 또는 이들의 조합을 포함할 수 있다.
[0028] 일 예에서, 기계 학습 모델(126)은 수학적 관계들을 표현하는 하나 이상의 행렬들을 포함하는 데이터 구조일 수 있다. 각각의 행렬은 하나 이상의 차원들을 포함할 수 있으며, 특정 제조 작업 및/또는 리소스를 하나 이상의 시간 지속기간들과 상관시킬 수 있다. 행렬은 단일 차원(예를 들어, 리스트(list)), 2 차원들(예를 들어, 테이블(table)), 또는 3 개 이상의 차원들(예를 들어, 3D 테이블)을 포함할 수 있다. 행렬의 각각의 요소는 시간 지속기간에 해당할 수 있으며, 행렬에서 요소의 로케이션은 해당 작업 및/또는 리소스를 나타낼 수 있다. 예를 들어, 제1 축(예를 들어, 행들)은 리소스들에 해당할 수 있고, 제2 축(예를 들어, 열들)은 작업들에 해당할 수 있으며, 각각의 축에 있는 포인트의 교차점은 요소(예를 들어, 시간 지속기간)를 식별할 수 있다. 요소는 제조 도구가 리소스를 사용하여 작업을 수행하는 데 걸린 시간 지속기간을 기초로 하는 하나 이상의 값들을 포함할 수 있다. 하나 이상의 값들은 이력 값들, 최대 값들, 최소 값들, 평균 값들, 집계 값들, 다른 수치 또는 통계 값들, 또는 이들의 조합에 기초할 수 있다.
[0029] 다른 예에서, 기계 학습 모델(126)은 수학적 관계들을 표현하는 하나 이상의 수학적 함수들을 포함하는 데이터 구조일 수 있다. 수학적 함수는 리소스에 대응하는 변수 및 작업에 대응하는 변수를 포함할 수 있고, 수학적 함수의 출력은 시간 지속기간에 대응할 수 있다. 어느 하나의 예에서, 기계 학습 모델(126)은, 트레이닝 데이터(training data)를 분석하고 트레이닝 데이터로부터 파생된 추론들 및 관계 패턴들을 표현하는 모델을 생성하는 기계 학습 프로세스의 아티팩트(artifact)일 수 있다.
[0030] 트레이닝 데이터는 제조 도구(110)의 이력 또는 실험 실행들에 기초한 시계열 데이터를 포함할 수 있다. 일 예에서, 기계 학습 모델(126)은, 작업 데이터(122)를 분석하고 하나 이상의 시간 지속기간들을 유도하기 위한 하나 이상의 회귀 모델들을 포함할 수 있다. 다른 예에서, 기계 학습 모델(126)은 딥 러닝(deep learning) 기술을 사용하여 트레이닝되는 하나 이상의 신경망들을 포함할 수 있고, 다수의 층들을 포함할 수 있다. 신경망은 인공 신경망(ANN), 네트워크, 모델, 또는 다른 용어로 지칭될 수 있다. 신경망은 RNN(Recurrent Neural Network), FFNN(Feed Forward Neural Networks), MLP(Multi-Layer Perceptron Neural Network), 완전 연결 신경망, RBF(Radial Basis Function Neural Network), 모듈식 신경망, 코호넨(Kohonen) 자가 조직화 신경망, 모듈식 신경망, CNN(Convolutional Neural Network), 다른 네트워크, 또는 이들의 조합과 동일하거나 또는 유사할 수 있다. 어느 하나의 예에서, 기계 학습 모델(126)은 컴퓨터 시뮬레이션들(124)을 수행하기 위해 사용될 수 있다.
[0031] 컴퓨터 시뮬레이션들(124)은 최적화된 스케줄을 식별하기 위해 컴퓨터 시뮬레이션들의 세트를 실행하는 컴퓨터 시뮬레이션 엔진(engine)을 표현할 수 있다. 컴퓨터 시뮬레이션들(124) 각각은 하나 이상의 제조 도구들의 이전에 관찰된 값들에 기반하여 제조 도구(110)에 대한 미래 값들을 예측하기 위해 기계 학습 모델(126)을 사용하는 것을 포함할 수 있다. 미래 값들의 예측은 시계열 포캐스팅이라고 지칭될 수 있고, 시계열 분석을 포함할 수 있다. 일 예에서, 각각의 컴퓨터 시뮬레이션은 제조 스케줄을 식별하기 위해 제조 도구(110)를 시뮬레이션하는 것을 포함할 수 있다.
[0032] 제조 스케줄은 제품들의 세트에 대한 시작 시간들의 세트에 기초할 수 있고, 컴퓨터 시뮬레이션은 각각의 제품에 대한 작업들을 반복하여 제조 스케줄을 채울 수 있다. 제1 작업 반복은 제1 제품이 개개의 리소스들 각각에 의해 프로세싱될 시기를 결정할 수 있다. 제2 작업 반복은 제2 제품이 개개의 리소스들 각각에 의해 프로세싱될 시기를 결정할 수 있다. 제2 반복은 리소스 충돌들을 고려할 수 있으며, 리소스가 제1 제품을 프로세싱하는 것을 완료할 때까지 제2 제품이 프로세싱되는 것을 지연시킬 수 있다. 제조 도구(110)는 동일한 작업을 수행할 수 있는 다수의 리소스들을 포함할 수 있고, 제2 반복은 제2 제품이 다른 리소스들 중 하나에 의해 스케줄에 따라 프로세싱되는 것을 나타낼 수 있다. 모든 제품들이 프로세싱을 위해 스케줄링될 때까지 각각의 제품에 대해 반복들이 발생할 수 있다. 이전 컴퓨터 시뮬레이션들에서는 제품들이 동시에 시작될 수 있으며, 이로 인해 제조 도구 내에서 제품들의 대기 시간들(예를 들어, 작업들 사이의 웨이퍼 유휴 시간)이 다를 수 있다. 후속 컴퓨터 시뮬레이션은 후속 제품들이 제조 도구에 의해 로딩되기를 기다리게 하는 서로 다른 시작 시간들을 사용할 수 있지만, 그러나 일단 제조 도구가 제품들을 프로세싱하기 시작하면 대기 시간이 거의 또는 전혀 없다. 후속 컴퓨터 시뮬레이션들은 리소스 충돌들 및 제품 유휴 시간들을 감소시키는 제조 스케줄을 식별할 수 있다. 컴퓨터 시뮬레이션들(124)은 시뮬레이션 결과 데이터(128)의 형태로 제조 스케줄들을 출력할 수 있다.
[0033] 시뮬레이션 결과 데이터(128)는, 각각 컴퓨터 시뮬레이션의 출력일 수 있고 하나 이상의 제조 스케줄들을 표현할 수 있는 하나 이상의 시뮬레이션 결과들(128A-C)을 포함할 수 있다. 제조 스케줄은 리소스(예를 들어, 리소스 스케줄), 제품(예를 들어, 제품 스케줄), 작업(예를 들어, 작업 스케줄), 다른 요소, 또는 이들의 조합별로 조직된 하나 이상의 타임 라인(timeline)들의 세트로 표현될 수 있다. 일 예에서, 시뮬레이션 결과는 리소스별로 조직될 수 있고, 각각의 타임 라인은 개개의 리소스(예를 들어, 개개의 챔버)에 대응할 수 있고, 리소스가 제품들 각각을 프로세싱할 때(예를 들어, 특정 챔버에 의해 모든 웨이퍼들이 수정됨)를 나타내는 시간 블록들을 포함할 수 있다. 다른 예에서, 시뮬레이션 결과는 제품별로 조직될 수 있고, 각각의 타임 라인은 개개의 제품(예를 들어, 개개의 웨이퍼들)에 대응할 수 있고, 제품이 언제 그리고 어디서 프로세싱되었는지(예를 들어, 모든 챔버들이 특정 웨이퍼를 프로세싱함)를 나타내는 시간 블록들을 포함할 수 있다. 어느 하나의 예에서, 제조 스케줄들은 도 2와 관련하여 아래에서 더 상세히 논의되는 바와 같이, 일련의 시간 값들로 표현될 수 있고, 최적화된 결과들(129)을 식별하기 위해 최적화들(127)을 통해 분석될 수 있다.
[0034] 도 2는 본 개시내용의 하나 이상의 양상들에 따른, 제조 도구에 대한 시뮬레이션 기반 최적화들을 수행하기 위한 기술을 포함하는 예시적인 컴퓨팅 디바이스(120)를 예시하는 블록도를 묘사한다. 컴퓨팅 디바이스(120)는 도 1의 컴퓨팅 디바이스들(120A-Z) 중 하나 이상과 동일하거나 또는 유사할 수 있다. 본 명세서에 논의된 컴포넌트들 및 모듈들은 단일 컴퓨팅 디바이스 또는 다수의 상이한 컴퓨팅 디바이스들에서 수행될 수 있다. 하나의 구현에서, 컴포넌트들 중 하나 이상은 상이한 컴퓨팅 디바이스들에 상주할 수 있다(예를 들어, 제1 컴퓨팅 디바이스에 모델 트레이닝이 상주하고, 다른 컴퓨팅 디바이스에 컴퓨터 시뮬레이션들이 상주함). 일반성을 잃지 않고 더 많은 또는 더 적은 컴포넌트들 또는 모듈들이 포함될 수 있다. 예를 들어, 컴포넌트들 중 2 개 이상이 단일의 컴포넌트로 조합되거나, 또는 컴포넌트의 피처들이 2 개 이상의 컴포넌트들로 분할될 수 있다. 도 2에 도시된 예에서, 컴퓨팅 디바이스(120)는 도구 분석 컴포넌트(210), 모델 생성 컴포넌트(220), 및 컴퓨터 시뮬레이션 컴포넌트(230)를 포함할 수 있다.
[0035] 도구 분석 컴포넌트(210)는 컴퓨팅 디바이스(120)가 제조 도구를 분석하여 제조 도구의 리소스들 및 능력들을 결정하는 것을 가능하게 할 수 있다. 분석은 제조 도구가 고객에게 배송되기 전에 발생할 수 있거나, 또는 제조 도구가 고객에게 배송된 후에 발생할 수 있으며, 어느 하나의 예에서든, 제조 도구의 초기화 전에, 동안, 또는 후에 발생할 수 있다. 초기화는 하드웨어 초기화(예를 들어, 시스템 시작, BIOS), 소프트웨어 초기화(예를 들어, 운영 체제(OS) 부팅(boot), 프로그램 시작), 다른 초기화, 또는 이들의 조합과 동일하거나 또는 유사할 수 있다. 일 예에서, 도구 분석 컴포넌트(210)는 리소스 결정 모듈(212), 작업 데이터 모듈(214), 및 시간 추적 모듈(216)을 포함할 수 있다.
[0036] 리소스 결정 모듈(212)은 하나 이상의 데이터 저장 오브젝트(object)들에 액세스함으로써, 하나 이상의 리소스들과 통신함으로써, 또는 이들의 조합에 의해 제조 도구의 리소스들 및 리소스 능력들을 결정할 수 있다. 위에서 논의된 바와 같이, 리소스들은 제조된 제품을 프로세싱하기 위해(예를 들어, 웨이퍼를 이동하거나 또는 수정하기 위해) 사용될 수 있는 도구의 하나 이상의 영역들, 섹션들, 또는 챔버들을 포함할 수 있다. 데이터 저장 오브젝트들은 하나 이상의 제조 도구들의 리소스들 중 하나 이상을 나타내는 데이터를 저장할 수 있으며, 데이터는 리소스 데이터 또는 도구 데이터로 지칭될 수 있다. 데이터 저장 오브젝트들은 하나 이상의 파일 오브젝트들(예를 들어, 파일들, 디렉토리(directory)들), 데이터베이스 오브젝트들(예를 들어, 레코드(record)들, 튜플(tuple)들, 값 쌍들), BLOBs(Binary Large Objects), 다른 데이터 구조들, 또는 이들의 조합을 포함할 수 있다. 리소스 결정 모듈(212)은 또한 또는 대안적으로 리소스들 중 하나 이상과 통신함으로써 리소스들을 결정할 수 있다. 통신은 리소스들 각각을 스캐닝(scanning)하거나 또는 쿼리(query)하는 것과 동일하거나 또는 유사할 수 있으며, 제조 도구의 리소스들을 나타내는 데이터와 함께 요청들을 전송하고 응답들을 수신하는 것을 포함할 수 있다. 리소스 결정 모듈(212)은 리소스 데이터(242)에 의해 예시되는 바와 같이 데이터를 데이터 저장소(240)에 저장할 수 있다.
[0037] 리소스 데이터(242)는 식별 데이터, 레이아웃 데이터, 능력 데이터, 다른 데이터, 또는 이들의 조합을 포함할 수 있다. 식별 데이터는 컴퓨팅 디바이스(120)가 리소스를 고유하게 식별하는 것을 가능하게 할 수 있고, 리소스들의 하나 이상의 식별자들(예를 들어, 리소스 식별자들, UUID(Universally Unique Identifiers), GUID(Globally Unique Identifiers))을 포함할 수 있다. 레이아웃 데이터는 도구에 대한 또는 다른 리소스에 대한 리소스의 로케이션을 나타낼 수 있다. 레이아웃 데이터는 리소스 결정 모듈(212)이 제조 도구의 레이아웃을 결정하는 것을 가능하게 할 수 있다. 레이아웃은 하나 이상의 다른 리소스들에 대한 또는 도구에 대한 리소스의 로케이션(예를 들어, 상대 로케이션)을 나타낼 수 있다. 리소스의 로케이션은 리소스들 간에 제품을 이동하는 데 걸리는 시간을 결정하기 위해 사용될 수 있다. 능력 데이터는 리소스의 유형(예를 들어, 수정 챔버, 이동 챔버) 및 리소스가 수행할 수 있는 하나 이상의 작업들을 포함할 수 있는 리소스의 능력들을 나타낼 수 있다.
[0038] 작업 데이터 모듈(214)은 제품을 제조하기 위한 작업들을 식별하는 작업 데이터에 액세스할 수 있다. 작업 데이터는 제조 도구들이 제품에 대해 수행하는 단계들 및 단계들의 순서를 식별할 수 있다. 작업 데이터 모듈(214)은 컴퓨팅 디바이스(120)가 사용자 입력, 데이터 저장 오브젝트, 또는 이들의 조합을 통해 작업 데이터를 수신하는 것을 가능하게 할 수 있다. 일 예에서, 작업 데이터는 네트워크를 통해 액세스될 수 있는 중앙 집중식 데이터 저장소(예를 들어, 레시피 리포지토리(repository), 시퀀스 리포지토리)에 저장된 시퀀스 프로그램일 수 있다. 작업 데이터 모듈(214)은 작업 데이터를 수신(예를 들어, 다운로드)하고, 이를 데이터 저장소(240)에 작업 데이터(122)로서 저장할 수 있다. 일 예에서, 작업 데이터(122)는 웨이퍼를 프로세싱하기 위한 레시피들의 시퀀스를 포함할 수 있고, 각각의 레시피는 제조 도구의 개개의 챔버에 대응할 수 있다.
[0039] 시간 추적 모듈(216)은 컴퓨팅 디바이스(120)가 제조 도구가 상이한 작업들을 수행하는 데 걸리는 시간을 결정하는 것을 가능하게 할 수 있다. 작업들은 임의의 프로세싱 작업일 수 있으며, 리소스를 수정하고(예를 들어, 리소스를 사전 세정하거나 또는 사후 세정하고), 제품을 수정하고(예를 들어, 포토리소그래피, 에칭), 제품을 이동하거나(예를 들어, 도구에 로딩하거나 또는 리소스 내로 또는 외부로 이송하거나), 또는 이들의 조합을 수행하는 작업들을 포함할 수 있다. 일 예에서, 시간 추적 모듈(216)은 하나 이상의 제품들을 프로세싱하는 동안 제조 도구를 모니터링하기 위해 사용될 수 있다. 다른 예에서, 제조 도구는 하나 이상의 제품들을 프로세싱하는 동안 시간 지속기간들을 기록(예를 들어, 로그(log))할 수 있고, 시간 추적 모듈(216)은 기록된 시간들에 액세스할 수 있다. 어느 하나의 예에서, 시간 추적 모듈(216)은 데이터 저장소(240)에 시간 데이터(244)로서 저장되기 전에, 동안, 또는 저장된 후에 시간 지속기간들을 수정하거나, 집계하거나, 필터링하거나, 또는 보완될 수 있다.
[0040] 시간 데이터(244)는 제조 도구가 작업들을 수행하기 위해 소비하는 시간 지속기간들을 나타낼 수 있다. 시간 데이터(244)는 하나 이상의 시간들(예를 들어, 시작 시간, 종료 시간, 및/또는 지속기간), 리소스들(예를 들어, 로딩 챔버(A), 수정 챔버(Z)), 제품들(예를 들어, 웨이퍼 식별자, 포드 식별자), 작업들(예를 들어, 시퀀스 식별자, 레시피 식별자), 도구들(예를 들어, 제조 도구(110)), 다른 데이터, 또는 이들의 조합을 나타내는 엔트리(entry)(예를 들어, 로그 엔트리)를 포함할 수 있다. 일 예에서, 시간 데이터(244)는 복수의 웨이퍼들이 특정 제조 도구에 의해 프로세싱되는 동안 생성될 수 있고, 복수의 웨이퍼 로드 시간들, 제1 챔버의 프로세싱 시간들, 제2 챔버의 프로세싱 시간들, 및 챔버들 사이의 이송 시간들을 나타낼 수 있다.
[0041] 모델 생성 컴포넌트(220)는 시간 데이터(244)를 사용하여 기계 학습 모델(126)을 트레이닝하여 제조 도구를 모델링할 수 있다. 일 예에서, 모델 생성 컴포넌트(220)는 데이터 액세스 모듈(222) 및 트레이닝 모듈(224)을 포함할 수 있다.
[0042] 데이터 액세스 모듈(222)은, 제조 도구와 관련되고 기계 학습 모델을 트레이닝하기 위해 사용될 수 있는 데이터에 액세스할 수 있다. 데이터는 트레이닝 데이터로 지칭될 수 있고, 시간 데이터(244), 리소스 데이터(242), 작업 데이터(122), 다른 데이터, 또는 이들의 조합과 같은 데이터 저장소(240) 내의 임의의 데이터를 포함하거나 또는 이들로부터 파생될 수 있다. 데이터 액세스 모듈(222)은 제조 도구로부터 직접적으로 또는 간접적으로 트레이닝 데이터에 액세스할 수 있다. 제조 도구로부터 직접 트레이닝 데이터에 액세스하는 것은 제조 도구의 데이터 저장소 또는 통신 채널로부터 트레이닝 데이터에 액세스하는 것을 포함할 수 있다. 제조 도구로부터 간접적으로 트레이닝 데이터에 액세스하는 것은 제조 도구와 별도의 데이터 저장소로부터의(예를 들어, 로그 서버로부터의) 트레이닝 데이터에 액세스하는 것을 포함할 수 있다. 데이터 액세스 모듈(222)은 액세스된 데이터를 트레이닝 데이터로 사용하기 전에 액세스된 데이터에 대해 하나 이상의 프로세싱 동작들을 수행할 수 있다. 프로세싱은 전-프로세싱 또는 후-프로세싱으로 지칭될 수 있으며, 상관, 정규화, 추가, 제거, 집계, 필터링, 멸균, 익명화를 위한 하나 이상의 동작들, 또는 다른 동작을 포함할 수 있다.
[0043] 트레이닝 데이터는 이력 데이터, 시뮬레이션 데이터, 증강 데이터, 다른 데이터, 또는 이들의 조합을 포함하거나 또는 이들에 기초할 수 있다. 이력 데이터는 제조 프로세스의 하나 이상의 물리적 실행들로부터 파생될 수 있으며, 물리적 실행들은 상업적 용도, 테스트 용도, 실험적 용도, 연구 및 개발 용도, 다른 용도, 또는 이들의 조합을 위한 것일 수 있다. 증강 데이터는, 조작되는 데이터에 존재할 수 있거나 또는 존재하지 않을 수도 있는 변형을 포함하도록 조작된 이력 데이터를 기초로 할 수 있다. 변형은 하나 이상의 수학적 변환들을 사용하여 데이터를 변경할 수 있다(예를 들어, 레시피 수정들에 기반하여 지속기간들을 감소시키거나 또는 증가시킴).
[0044] 트레이닝 데이터는 라벨링(label)된 데이터, 라벨링되지 않은 데이터, 또는 이들의 조합을 포함할 수 있다. 라벨링된 데이터는 보조 데이터(예를 들어, 리소스 또는 제품 라벨)로 보완된 기본 데이터(예를 들어, 시간 지속기간)를 포함할 수 있다. 보조 데이터는 태그(tag), 주석, 링크, 라벨, 또는 다른 데이터이다. 라벨링되지 않은 데이터는 라벨들이 없는 데이터일 수 있다(예를 들어, 라벨들 누락, 라벨들 부재(free), 라벨들 없음). 라벨링되지 않은 데이터는 라벨들 없이 저장될 수 있으며, 트레이닝 모듈(224)에 의해 액세스되기 전에 라벨링되지 않은 상태로 유지되거나 또는 유지되지 않을 수 있다.
[0045] 트레이닝 모듈(224)은 컴퓨팅 디바이스(120)가 트레이닝 데이터를 분석하고 하나 이상의 기계 학습 모델(126)을 생성하는 것을 가능하게 할 수 있다. 트레이닝 모듈(224)은 새로운 기계 학습 모델들을 생성하거나 또는 기존 기계 학습 모델들을 업데이트할 수 있다. 기계 학습 모델을 트레이닝시키는 것은 독점, 표준화된, 오픈 소스(open source), 또는 이들의 조합인 하나 이상의 트레이닝 기술들을 사용하는 것을 포함할 수 있다. 일 예에서, 트레이닝 모듈(224)은 트레이닝 데이터를 분석하고, 리소스와 작업의 각각의 조합에 대한 하나 이상의 시간 지속기간들을 식별할 수 있다. 예를 들어, 트레이닝 모듈(224)은 각각의 적용 가능한 작업을 수행하기 위해 리소스가 소비하는 시간 지속기간(예를 들어, 평균 지속기간, 최대 지속기간, 가장 최근의 지속기간)을 식별할 수 있다. 다른 예에서, 트레이닝 모듈(224)은 기계 학습 모델(126)을 생성하는 트레이닝 프레임워크(framework)에 트레이닝 데이터를 제공할 수 있다. 트레이닝 프레임워크는 Tensorflow™, Keras™, PyTorch™, Open Neural network Exchange(Onnx™), Cognitive Toolkit(CNTK), Azure Machine Learning Service, Create ML, 다른 기계 학습 프레임워크, 또는 이들의 조합과 동일하거나 또는 유사할 수 있다.
[0046] 트레이닝 모듈(224)은 트레이닝의 결과들을 데이터 저장소(240)에 기계 학습 모델(126)로서 저장할 수 있다. 기계 학습 모델(126)은 하나 이상의 파일 오브젝트들(예를 들어, 파일들, 디렉토리들, 링크들), 데이터베이스 오브젝트들(예를 들어, 레코드들, 튜플들), 다른 저장 오브젝트들, 또는 이들의 조합으로서 저장될 수 있다. 데이터 저장소(240)는 메모리(예를 들어, 랜덤 액세스 메모리), 드라이브(예를 들어, 하드 드라이브, 플래시 드라이브), 데이터베이스 시스템, 또는 데이터를 저장할 수 있는 다른 유형의 컴포넌트 또는 데이터 저장 디바이스일 수 있다. 데이터 저장소(240)는 다수의 컴퓨팅 디바이스들(예를 들어, 다수의 서버 컴퓨터들)에 걸쳐 있을 수 있는 다수의 저장 컴포넌트들(예를 들어, 다수의 드라이브들 또는 다수의 데이터베이스들)을 포함할 수 있다. 기계 학습 모델(126)은 하나 이상의 다른 데이터 저장소들 또는 컴퓨팅 디바이스들로 전송되고, 컴퓨터 시뮬레이션 컴포넌트(230)에 액세스 가능하게 될 수 있다.
[0047] 컴퓨터 시뮬레이션 컴포넌트(230)는 컴퓨팅 디바이스(120)가 시뮬레이션 결과들의 세트를 생성하기 위해 기계 학습 모델(126) 및 작업 데이터(122)를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하는 것을 가능하게 할 수 있다. 각각의 시뮬레이션 결과는 제품들을 프로세싱하기 위해 사용되는 리소스들에 대한 스케줄을 포함할 수 있으며, 각각의 리소스가 하나 이상의 제품들을 프로세싱하는 시간들을 나타낼 수 있다. 스케줄은 제조 도구의 향후 실행 또는 제조 도구의 현재 실행을 위해 사용될 수 있다. 예를 들어, 현재 실행으로부터의 입력(예를 들어, 리소스(X)의 지연)을 사용하여 모델을 업데이트하고 나머지 작업들을 시뮬레이션하여 정정된 스케줄을 식별할 수 있다. 정정된 스케줄은 그 후 제조 도구가 후속 작업들의 실행을 변경하기 위해 사용될 수 있다. 스케줄에 대한 이러한 정정들은 제조 프로세스의 지연이 거의 또는 전혀 없이 실시간으로 이루어질 수 있다(예를 들어, 제조 도구를 중지하거나 또는 다시 시작할 필요가 없음). 도 2의 예에서, 컴퓨터 시뮬레이션 컴포넌트(230)는 개시 모듈(232), 실행 모듈(234), 최적화 모듈(236), 및 결과 제공 모듈(238)을 포함할 수 있다.
[0048] 개시 모듈(232)은 시뮬레이션 입력들을 사용하여 컴퓨터 시뮬레이션들 중 하나 이상을 개시할 수 있다. 시뮬레이션 입력들은 기계 학습 모델(126) 및 모델 입력을 포함할 수 있다. 모델 입력은 작업 데이터(122), 리소스 데이터(242), 제품 수량 데이터, 사용자 입력 데이터, 다른 데이터, 또는 이들의 조합에 기초할 수 있다. 모델 입력은 제품에 해당하는 작업들 및/또는 리소스들을 식별하는 하나 이상의 입력 벡터들의 형태일 수 있다. 세트의 각각의 제품은 동일한 제품 벡터 또는 상이한 제품 벡터들과 관련될 수 있다. 모델 입력은 또한 제조 도구가 제품들 중 하나 이상을 프로세싱하기 시작할 때를 나타내는 시작 시간들의 세트를 포함할 수도 있다. 기계 학습 모델(126)은 로컬 저장 디바이스, 원격 저장 디바이스, 또는 이들의 조합으로부터 액세스될 수 있다. 일 예에서, 개시 모듈(232)은 로컬 저장 로케이션(예를 들어, 데이터 저장소(240))으로부터 기계 학습 모델(126)을 수신할 수 있고, 이는 컴퓨팅 디바이스(120)가 기계 학습 모델을 생성할 때 또는 기계 학습 모델이 다른 컴퓨팅 디바이스에 의해 생성되고 컴퓨팅 디바이스(120)에 설치되거나, 패키징되거나, 다운로드되거나, 업로드되거나, 또는 전송될 때 발생할 수 있다. 다른 예에서, 개시 모듈(232)은 동일한 네트워크 또는 상이한 네트워크(예를 들어, 인터넷) 상의 서버로부터 컴퓨터 네트워크(130)를 통해 기계 학습 모델(126)에 액세스할 수 있고, 이를 통해 고객은 제3 파티(party)(예를 들어, 제조 도구 제작자 또는 배포자)로부터 기계 학습 모델(126) 또는 모델에 대한 업데이트를 수신하는 것을 가능하게 할 수 있다.
[0049] 실행 모듈(234)은 컴퓨팅 디바이스(120)가 컴퓨터 시뮬레이션들의 세트를 순차적으로, 병렬로, 또는 이들의 조합으로 실행하는 것을 가능하게 할 수 있다. 컴퓨터 시뮬레이션을 실행하는 동안, 실행 모듈(234)은 하나 이상의 리소스 충돌들을 검출할 수 있다. 리소스 충돌은 제품(예를 들어, 제2 제품)이 리소스가 다른 제품(예를 들어, 제1 제품)의 프로세싱을 완료하기를 기다릴 때 발생할 수 있다. 실행 모듈(234)은 제품들 중 하나 이상의 시작 시간들을 조정함으로써 충돌을 해결할 수 있으며, 이 조정은 제1 제품의 시작 시간을 더 빠르도록 조정하는 것(예를 들어, 신속히 처리) 또는 제2 제품의 시작 시간을 더 늦도록 조정하는 것(예를 들어, 지연), 또는 이들의 조합을 포함할 수 있다. 조정된 시간들은 시뮬레이션 결과들에 통합될 수 있다.
[0050] 각각의 시뮬레이션 결과는 리소스 또는 제품별로 조직되거나 또는 배열될 수 있는 하나 이상의 타임 라인들의 세트를 표현할 수 있다. 일 예에서, 타임 라인들은 리소스별로 조직될 수 있고, 타임 라인들의 각각은 개개의 리소스에 대응할 수 있고, 리소스가 각각의 제품을 프로세싱할 때(예를 들어, 모든 웨이퍼들이 개개의 챔버에 의해 수정됨)를 나타낼 수 있다. 다른 예에서, 타임 라인들은 제품별로 조직될 수 있고, 타임 라인들의 각각은 개개의 제품에 대응할 수 있고, 제품이 프로세싱되는 시기 및 장소(예를 들어, 모든 챔버들이 개개의 웨이퍼를 프로세싱함)를 나타낼 수 있다. 어느 하나의 예에서, 시뮬레이션 결과는 출력 벡터들의 세트로서 표현될 수 있다.
[0051] 출력 벡터는 시계열 데이터를 저장하는 데이터 구조일 수 있고, 특정 리소스(예를 들어, 챔버), 특정 제품(예를 들어, 웨이퍼), 특정 도구, 다른 항목, 또는 이들의 조합에 대한 타임 라인을 표현할 수 있다. 각각의 출력 벡터는 시간 데이터, 리소스 데이터, 작업 데이터, 또는 다른 데이터를 포함할 수 있다. 출력 벡터들의 세트는 특정 리소스들에 해당하는 하나 이상의 리소스 벡터(resource vector)들(예를 들어, 챔버 벡터들) 또는 특정 제조 제품들에 해당하는 제품 벡터들(예를 들어, 웨이퍼 벡터들)을 포함할 수 있다. 일 예에서, 출력 벡터들은 제조 도구(예를 들어, 챔버)의 특정 리소스에 각각 대응하는 리소스 벡터들의 세트일 수 있다. 리소스 벡터는 복수의 시간 값들 및 제품 식별자들을 포함하는 시계열 데이터를 포함할 수 있다. 시계열 데이터는 리소스에 의해 프로세싱되는 다수의 제품들 및 제품이 프로세싱되는 시간(예를 들어, 시작 시간, 종료 시간, 지속기간)을 나타낼 수 있다. 다른 예에서, 출력 벡터들은 제조 도구에 의해 제조된 특정 제품(예를 들어, 웨이퍼)에 각각 대응하는 제품 벡터들의 세트일 수 있다. 제품 벡터는 제품을 프로세싱하는 다수의 리소스들 및 리소스가 제품을 프로세싱하는 시간을 나타내는 복수의 시간 값들 및 리소스 식별자들을 포함하는 시계열 데이터를 포함할 수 있다.
[0052] 최적화 모듈(236)은 시뮬레이션 결과들을 분석하고, 시뮬레이션 결과들에 대한 최적화 값들을 계산할 수 있다. 최적화 값은 하나 이상의 제품들, 리소스들, 도구들, 또는 이들의 조합을 기초로 할 수 있다. 예를 들어, 최적화 값들은 제품 유휴 시간들(예를 들어, 최대 웨이퍼 유휴 시간), 리소스 활용도들(예를 들어, 챔버 활용률), 도구 처리량(예를 들어, 시간당 웨이퍼들), 다른 값, 또는 이들의 조합에 기초할 수 있다. 최적화 값은 또한 또는 대안적으로 하나 이상의 특정 작업들에 기초할 수 있다. 예를 들어, 최적화 값(예를 들어, 제품 유휴 시간)은 특정 작업 또는 작업들의 세트 이전의, 동안의 또는 이후의 시간을 기초로 할 수 있다. 이는 제품에 대해 제조 도구에 의해 수행되는 작업들 중 일부가 시간에 따라 달라질 수 있는 경우(예를 들어, 시간에 민감한 포토리소그래피 작업)에 특히 유리할 수 있다. 세트의 서로 다른 제품들에 걸친 시간 종속적 변화들은 제조된 제품들이 사전 정의된 임계치(예를 들어, 열 손실의 임계값)을 초과하는 방식으로 변화하게 할 수 있다.
[0053] 일 예에서, 최적화 모듈(236)은 제품의 유휴 시간과 같은 최적화 값을 결정하기 위해 출력 벡터들의 세트를 사용할 수 있다. 유휴 시간은 제품이 리소스 충돌이 해결되기를(예를 들어, 리소스가 사용 가능하게 되기를) 기다리는 하나 이상의 시간 지속기간들을 기초로 할 수 있으며, 작업이 수행되기 전의, 수행되는 동안의, 또는 수행된 후의 지속기간을 포함할 수 있다. 하나 이상의 지속기간들은 제품이 수송 디바이스로부터 제조 도구로 로딩되기 전의 지속기간, 저장 리소스(예를 들어, 웨이퍼 버퍼(buffer) 또는 대기열) 내에서의 지속기간, 다른 지속기간, 또는 이들의 조합을 포함할 수 있다. 위에서 논의된 바와 같이, 출력 벡터들은 다수의 시간 값들을 포함할 수 있고, 시간 값들은 웨이퍼의 유휴 시간을 결정하기 위해 비교될 수 있다. 출력 벡터들이 제품 벡터들인 경우, 단일 제품 벡터를 분석함으로써 특정 제품에 대한 유휴 시간이 결정될 수 있다. 출력 벡터들이 리소스 벡터들인 경우, 특정 제품을 프로세싱하는 모든 리소스에 대한 리소스 벡터들을 분석함으로써 특정 제품에 대한 유휴 시간이 결정될 수 있다. 어느 예에서든, 최적화 값(예를 들어, 유휴 시간)을 결정하는 것은 출력 벡터들 중 하나 이상의 시간 값들을 비교함으로써 수행될 수 있다.
[0054] 최적화 모듈(236)은 상이한 컴퓨터 시뮬레이션들의 최적화 값들을 비교할 수 있다. 시뮬레이션 결과의 최적화 값은 시뮬레이션 결과들의 세트의 하나 이상의 최적화 값들과 비교될 수 있다. 비교는 최적화 값들 간의 하나 이상의 차이들을 결정하는 수학적 비교일 수 있다. 차이들은 비교 전에 또는 비교 후에 가중치가 부여되고 및/또는 집계될 수 있다. 일 예에서, 최적화 모듈(236)은 최적화 값들의 비교에 기반하여 시뮬레이션 결과들의 세트로부터 시뮬레이션 결과를 선택할 수 있다(예를 들어, 가장 높은 값 또는 가장 낮은 값을 갖는 시뮬레이션 결과를 선택함). 다른 예에서, 최적화 모듈(236)은 비교에 기반하여 하나 이상의 추가 컴퓨터 시뮬레이션들을 실행할지 여부를 결정할 수 있다. 이것은 추가 시뮬레이션들이 더 최적의 솔루션(solution)들(예를 들어, 유휴 시간이 적은 스케줄들)을 식별하는지 여부를 결정하는 것을 포함할 수 있다. 후속 시뮬레이션 결과들이 더 최적화되거나 또는 실질적으로 더 최적화될 때(예를 들어, 최적화 값 차이가 임계값 초과인 경우), 최적화 모듈(236)은 하나 이상의 컴퓨터 시뮬레이션들을 수행하기 위해 개시 모듈(232)과 통신할 수 있다. 후속 시뮬레이션 결과들이 덜 최적화되거나 또는 명목상 최적화될 때(예를 들어, 임계값 미만인 경우), 최적화 모듈(236)은 추가 컴퓨터 시뮬레이션들을 수행하지 않을 수 있고, 시뮬레이션 결과들의 기존 세트로부터 최적화된 결과(129)를 선택할 수 있다.
[0055] 일 예에서, 컴퓨터 시뮬레이션들의 출력은 후속 컴퓨터 시뮬레이션의 입력을 결정하기 위해 사용될 수 있다. 예를 들어, 제1 컴퓨터 시뮬레이션은 중간 단계 동안 마지막으로 제조된 제품이 유휴 상태인 리소스 스케줄을 생성할 수 있다. 유휴 시간의 지속기간은 후속 컴퓨터 시뮬레이션에서 제품의 시작 시간을 조정하기 위해 사용될 수 있다. 예를 들어, 시뮬레이션 결과는 제품(x)이 작업(n) 이후 지속기간(y) 동안 유휴 상태였다는 것을 나타낼 수 있고(예를 들어, 제5 웨이퍼가 90 초 동안 지연됨), 후속 컴퓨터 시뮬레이션을 위한 입력은 n의 지속기간 동안 제품(x)의 시작 시간을 지연시킬 수 있다. 다른 예에서, 개시 모듈은 제품 시작 시간들의 다수의 상이한 세트들을 생성할 수 있고, 이들 각각을, 실행되고 상이한 시뮬레이션 결과들을 생성하는 컴퓨터 시뮬레이션들에 대한 입력으로서 사용할 수 있다.
[0056] 결과 제공 모듈(238)은 컴퓨팅 디바이스(120)가 제조 도구와 관련된 사용자 또는 디바이스에 시뮬레이션 결과들을 제공하는 것을 가능하게 할 수 있다. 시뮬레이션 결과들을 제공하는 것은 시뮬레이션 결과들을 제시하는 것, 시뮬레이션 결과들을 전송하는 것, 결과들을 저장하는 것, 또는 이들의 조합을 포함할 수 있다. 결과 제공 모듈(238)은 컴퓨터 시뮬레이션들에 대한 하나 이상의 시뮬레이션 결과들 및 세부사항들(예를 들어, 최적화 값들, 시뮬레이션들의 횟수, 값 차이들, 최적 스케줄)을 디스플레이하는 사용자 인터페이스(예를 들어, 그래픽 사용자 인터페이스(GUI))를 사용하여 시뮬레이션 결과들을 제시할 수 있다. 일 예에서, 사용자 인터페이스는 하나 이상의 타임 라인들을 사용하여 스케줄(예를 들어, 리소스 스케줄, 제품 스케줄, 작업 스케줄)로서 시뮬레이션 결과를 시각적으로 표현하는 하나 이상의 디스플레이 그래프(graph)들을 포함할 수 있다. 디스플레이 그래프들(예를 들어, 막대 차트들, 간트 차트(Gantt chart)들)은 제1 리소스(예를 들어, 제1 챔버)에 대한 수평 막대들의 세트 및 제2 리소스(예를 들어, 제2 챔버)에 대한 수평 막대들의 세트를 포함하는 리소스별로 조직된 그래프(예를 들어, 리소스 그래프)를 포함할 수 있다. 수평 막대들의 각각의 세트는 개개의 리소스에 의해 프로세싱되는 제품들에 해당하는 시간 블록들을 표현할 수 있다. 디스플레이 그래프들은 또한 또는 대안적으로 제1 제품(예를 들어, 제1 웨이퍼)에 대한 수평 막대들의 세트 및 제2 제품(예를 들어, 제2 웨이퍼)에 대한 수평 막대들의 세트를 포함하는 제품별로 조직된 그래프(예를 들어, 제품 그래프)를 포함할 수 있다. 수평 막대들의 각각의 세트는 개개의 제품을 프로세싱하는 리소스들에 해당하는 시간 블록들을 표현할 수 있다. 사용자 인터페이스는 또한 사용자(예를 들어, 프로세스 엔지니어)의 사용자 입력을 수신하도록 구성된 하나 이상의 제어 요소를 포함할 수 있다. 제어 요소들은 제조 도구에 의해 사용되는 시뮬레이션 결과들 중 하나 이상을 선택하기 위해 사용될 수 있다(예를 들어, 최적화된 스케줄의 선택).
[0057] 결과 제공 모듈(238)은 또한 시뮬레이션된 결과들 중 하나와 관련된 최적화된 데이터를 제조 도구에 제공할 수 있다. 최적화된 데이터는 최적화된 결과들(129)과 관련될 수 있고, 하나 이상의 시작 시간들, 타임 라인들, 스케줄들, 또는 다른 데이터를 포함할 수 있다. 일 예에서, 최적화된 데이터를 제조 도구에 제공하는 것은 제조 도구와의 통신 채널을 확립하고, 통신 채널을 사용하여 컴퓨팅 디바이스(120)로부터 제조 도구로 최적화된 데이터를 전송하는 것을 포함할 수 있다. 다른 예에서, 최적화된 데이터를 제조 도구에 제공하는 것은 최적화된 데이터를 데이터 저장 오브젝트에 저장하고, 제조 도구가 데이터 저장 오브젝트에 액세스할 수 있게 하는 것(예를 들어, 네트워크 저장 디바이스에 저장)을 포함할 수 있다.
[0058] 도 3은 본 개시내용의 하나 이상의 양상들에 따른, 제조 도구에 대한 스케줄을 식별하기 위해 시뮬레이션 기반 최적화를 수행하기 위한 방법(300)의 하나의 예시적인 예의 흐름도를 묘사한다. 방법(300) 및 그 개별 기능들, 루틴들, 서브루틴(subroutine)들, 또는 동작들 각각은 방법을 실행하는 컴퓨터 디바이스의 하나 이상의 프로세서들에 의해 수행될 수 있다. 특정 구현들에서, 방법(300)은 단일 컴퓨팅 디바이스에 의해 수행될 수 있다. 대안적으로, 방법들(300)은 2 개 이상의 컴퓨팅 디바이스들에 의해 수행될 수 있고, 각각의 컴퓨팅 디바이스는 방법의 하나 이상의 개별 기능들, 루틴들, 서브루틴들, 또는 동작들을 실행한다.
[0059] 설명의 단순함을 위해, 본 개시내용의 방법들은 일련의 액트(act)들로서 묘사되고 설명된다. 그러나, 본 개시내용에 따른 액트들은 다양한 순서들로 및/또는 동시에, 그리고 여기에 제시 및 설명되지 않은 다른 액트들과 함께 발생할 수 있다. 또한, 예시된 모든 액트들이 개시된 주제에 따라 방법들을 구현하는 데 필요하지 않을 수 있다. 또한, 당업자들은 방법들이 상태 다이어그램 또는 이벤트(event)들을 통해 일련의 상호 관련된 상태들로서 대안적으로 표현될 수 있다는 것을 이해하고 인식할 것이다. 추가적으로, 본 명세서에 개시된 방법들은 그러한 방법들을 컴퓨팅 디바이스들로 수송하고 이송하는 것을 용이하게 하기 위해 제조 물품에 저장될 수 있다는 것을 이해해야 한다. 본 명세서에 사용되는 바와 같은 용어 "제조 물품"은 임의의 컴퓨터-판독가능 디바이스 또는 저장 매체들로부터 액세스 가능한 컴퓨터 프로그램을 포함하도록 의도된다. 일 구현에서, 방법(300)은 도 2에 도시된 바와 같이 모델 생성 컴포넌트(220) 및 컴퓨터 시뮬레이션 컴포넌트(230)에 의해 수행될 수 있다.
[0060] 방법(300)은 서버 디바이스 또는 클라이언트 디바이스의 프로세싱 디바이스들에 의해 수행될 수 있고, 블록(302)에서 시작할 수 있다. 블록(302)에서, 프로세싱 디바이스는 제조 도구의 리소스들을 결정할 수 있다. 리소스들은 제1 챔버, 제2 챔버, 및 하나 이상의 추가 챔버들을 포함할 수 있다. 프로세싱 디바이스는, 리소스들의 레이아웃을 식별하고 리소스들 각각의 유형을 결정하기 위해 제조 도구의 데이터를 분석함으로써 리소스들을 결정할 수 있다. 일 예에서, 제1 챔버는 제품을 수정하는 수정 챔버(예를 들어, 에칭 챔버)일 수 있고, 제2 챔버는 제품을 이동시키는 이동 챔버(예를 들어, 로봇 챔버)일 수 있다.
[0061] 블록(304)에서, 프로세싱 디바이스는 제1 제조 작업 및 제2 제조 작업을 나타내는 작업 데이터에 액세스할 수 있다. 작업 데이터는 웨이퍼 제품을 프로세싱하기 위한 레시피들의 시퀀스를 포함할 수 있고, 레시피들의 시퀀스는 제1 챔버에 대한 레시피 및 제2 챔버에 대한 레시피를 포함할 수 있다. 작업들의 시퀀스는 시작 작업, 복수의 중간 작업들, 및 종료 작업을 포함할 수 있다. 리소스들 중 하나 이상은 동일한 작업을 수행할 수 있고, 각각의 리소스는 하나 이상의 작업들을 수행할 수 있다.
[0062] 블록(306)에서, 프로세싱 디바이스는 제1 챔버를 사용하여 제1 제조 작업을 수행하는 제1 지속기간 및 제2 챔버를 사용하여 제2 제조 작업을 수행하는 제2 지속기간을 결정할 수 있다. 프로세싱 디바이스는 복수의 웨이퍼들을 프로세싱하기 위해 동일한 작업 데이터 또는 상이한 작업 데이터를 사용하면서 제조 도구에 의해 이전에 생성된 시간 데이터를 분석함으로써 지속기간들을 결정할 수 있다. 시간 데이터는 과거 제조 실행(예를 들어, 완료된 과거 실행) 또는 현재 실행(예를 들어, 완료되지 않은 진행 중인 실행) 중에 생성되었을 수 있다. 일 예에서, 시간 데이터는 동일한 제조 도구에 대한 복수의 시간들을 포함할 수 있고, 복수의 시간들은 하나 이상의 웨이퍼들 로드 시간들, 제1 챔버의 웨이퍼 프로세싱 시간들, 제2 챔버의 웨이퍼 프로세싱 시간들, 제1 챔버와 제2 챔버 사이의 웨이퍼 이송 시간들, 다른 시간들, 또는 이들의 조합을 포함할 수 있다.
[0063] 블록(308)에서, 프로세싱 디바이스는 제1 제조 작업을 수행하는 지속기간 및 제2 제조 작업을 수행하는 지속기간에 기반하여 기계 학습 모델을 업데이트할 수 있다. 업데이트는 제조 도구와 관련된, 데이터 저장소로부터의 제조 도구에 대한 시간 데이터에 액세스하고, 시간 데이터를 사용하여 제조 도구를 일시적으로 모델링하기 위해 기계 학습 모델을 트레이닝시키는 것을 포함할 수 있다. 그 다음, 트레이닝된 기계 학습 모델은 컴퓨터 네트워크를 통해 제조 도구에 연결된 디바이스 상에 또는 제조 도구에 저장될 수 있다.
[0064] 블록(310)에서, 프로세싱 디바이스는 시뮬레이션 결과들의 세트를 생성하기 위해 기계 학습 모델 및 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행할 수 있다. 컴퓨터 시뮬레이션들의 세트를 수행하는 것은 웨이퍼들의 세트의 프로세싱을 포캐스트하기 위해 기계 학습 모델에 액세스하는 것을 포함할 수 있다. 프로세싱 디바이스는 웨이퍼들의 세트에 대한 시작 시간들의 세트를 사용하여 제1 컴퓨터 시뮬레이션을 수행할 수 있고, 세트의 적어도 하나의 웨이퍼가, 미리 정의된 임계값을 초과하는 지속기간(예를 들어, n 초 초과) 동안 유휴 상태인 것을 검출할 수 있다. 프로세싱 디바이스는 적어도 하나의 웨이퍼에 대한 서로 다른 시작 시간을 포함하도록 시작 시간들의 세트를 수정할 수 있고, 수정된 시작 시간들의 세트를 사용하여 제2 컴퓨터 시뮬레이션을 수행할 수 있다.
[0065] 프로세싱 디바이스는 또한 시뮬레이션 결과들에 대한 최적화 값을 계산할 수도 있다. 최적화 값은 웨이퍼 유휴 시간, 챔버 활용도, 도구 처리량, 또는 이들의 조합 중 하나 이상에 기초할 수 있다. 프로세싱 디바이스는 최적화 값을 시뮬레이션 결과들의 세트의 하나 이상의 최적화 값들과 비교할 수 있고, 비교에 기반하여 시뮬레이션 결과들의 세트로부터 시뮬레이션 결과를 선택할 수 있다. 일 예에서, 최적화 값은 중간 작업들의 세트의 관점에서 계산될 수 있다(예를 들어, 작업들(C 및 F) 동안의 웨이퍼 유휴 시간).
[0066] 블록(312)에서, 프로세싱 디바이스는 시뮬레이션 결과들의 세트의 시뮬레이션 결과를 데이터 저장소에 저장할 수 있다. 시뮬레이션 결과는 제품들의 세트를 프로세싱하기 위해 사용되는 제조 도구의 각각의 챔버에 대한 리소스 벡터를 포함하는 리소스 벡터들의 세트일 수 있다. 각각의 리소스 벡터는 복수의 시간 값들을 포함할 수 있고, 복수의 제품들을 프로세싱하는 특정 챔버에 대한 타임 라인을 표현할 수 있다. 일 예에서, 프로세싱 디바이스는 제조 도구에 대한 저장된 시뮬레이션 결과를 표현하는 간트 차트에 대한 디스플레이를 제공할 수 있다. 간트 차트는, 세트의 하나 이상의 웨이퍼들에 대한 시간 블록들을 표현하는, 제1 챔버에 대한 수평 막대들의 세트, 및 세트의 하나 이상의 웨이퍼들에 대한 시간 블록들을 표현하는, 제2 챔버에 대한 수평 막대들의 세트를 포함할 수 있다. 여기서 블록(312)을 참조하여 위에서 설명된 동작들을 완료하는 것에 응답하여, 방법은 종료될 수 있다.
[0067] 도 4는 특정 실시예들에 따른 컴퓨터 시스템(400)을 예시하는 블록도이다. 일부 실시예들에서, 컴퓨터 시스템(400)은 (예를 들어, LAN(Local Area Network), 인트라넷(intranet), 엑스트라넷(extranet), 또는 인터넷(Internet)과 같은 네트워크를 통해) 다른 컴퓨터 시스템들에 연결될 수 있다. 컴퓨터 시스템(400)은 클라이언트-서버 환경에서 서버 또는 클라이언트 컴퓨터의 용량으로, 또는 피어-투-피어(peer-to-peer) 또는 분산형 네트워크 환경에서 피어 컴퓨터로서 작동할 수 있다. 컴퓨터 시스템(400)은 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인 휴대 정보 단말기(PDA), 휴대 전화, 웹 기기, 서버, 네트워크 라우터(router), 스위치(switch) 또는 브리지(bridge), 또는 해당 디바이스에 의해 취해지는 액션(action)들을 지정하는 명령들의 세트를 (순차적 또는 다른 방식으로) 실행할 수 있는 임의의 디바이스에 의해 제공될 수 있다. 또한, "컴퓨터"라는 용어는 여기에 설명된 방법들 중 임의의 하나 이상을 수행하기 위해 명령들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 컴퓨터들의 임의의 집합을 포함해야 한다.
[0068] 추가 양상에서, 컴퓨터 시스템(400)은 프로세싱 디바이스(402), 휘발성 메모리(404)(예를 들어, 랜덤 액세스 메모리(RAM)), 비휘발성 메모리(406)(예를 들어, ROM(read-only memory) 또는 EEPROM(electrically-erasable programmable ROM)), 및 데이터 저장 디바이스(416)를 포함할 수 있고, 이들은 버스(408)를 통해 서로 통신할 수 있다.
[0069] 프로세싱 디바이스(402)는 범용 프로세서(예를 들어, CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 다른 유형들의 명령 세트들을 구현하는 마이크로프로세서, 또는 명령 세트들의 유형들의 조합을 구현하는 마이크로프로세서와 같음) 또는 전용 프로세서(예를 들어, ASIC(application specific integrated circuit), FPGA(field programmable gate array), 디지털 신호 프로세서(DSP), 또는 네트워크 프로세서와 같음)와 같은 하나 이상의 프로세서들에 의해 제공될 수 있다.
[0070] 컴퓨터 시스템(400)은 네트워크 인터페이스 디바이스(422)를 더 포함할 수 있다. 컴퓨터 시스템(400)은 또한 비디오 디스플레이 유닛(410)(예를 들어, LCD), 영숫자 입력 디바이스(412)(예를 들어, 키보드), 커서 제어 디바이스(414)(예를 들어, 마우스), 및 신호 생성 디바이스(420)를 포함할 수 있다.
[0071] 일부 구현들에서, 데이터 저장 디바이스(416)는, 여기에 설명된 방법들을 구현하고, 도 2의 도구 분석 컴포넌트(210), 모델 생성 컴포넌트(220), 또는 컴퓨터 시뮬레이션 컴포넌트(230)를 인코딩하는 명령들을 포함하는, 여기에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 인코딩하는 명령들(426)을 저장할 수 있는 비-일시적인 컴퓨터-판독가능 저장 매체(424)를 포함할 수 있다.
[0072] 명령들(426)은 또한 컴퓨터 시스템(400)에 의한 실행 동안 휘발성 메모리(404) 내에 및/또는 프로세싱 디바이스(402) 내에 완전히 또는 부분적으로 상주할 수 있고, 따라서, 휘발성 메모리(404) 및 프로세싱 디바이스(402)는 또한 기계-판독가능 저장 매체들을 구성할 수 있다.
[0073] 컴퓨터-판독가능 저장 매체(424)는 예시적인 예들에서 단일 매체인 것으로 도시되지만, "컴퓨터-판독가능 저장 매체"라는 용어는 하나 이상의 실행 가능한 명령들 세트들을 저장하는 단일 매체 또는 다중 매체들(예를 들어, 중앙 집중식 또는 분산형 데이터베이스, 및/또는 관련 캐시들 및 서버들)을 포함해야 한다. "컴퓨터-판독가능 저장 매체"라는 용어는 또한 컴퓨터가 본 명세서에 설명된 방법들 중 임의의 하나 이상을 수행하게 하는 컴퓨터에 의한 실행을 위한 명령들의 세트를 저장하거나 또는 인코딩할 수 있는 임의의 유형의 매체를 포함해야 한다. "컴퓨터-판독가능한 저장 매체"라는 용어는 솔리드-스테이트(solid-state) 메모리들, 광학 매체들, 및 자기 매체들을 포함해야 한다(그러나 이에 제한되지 않음).
[0074] 여기에 설명된 방법들, 컴포넌트들, 및 피처들은 개별 하드웨어 컴포넌트들에 의해 구현될 수 있거나, 또는 ASIC들, FPGA들, DSP들 또는 유사한 디바이스들과 같은 다른 하드웨어 컴포넌트들의 기능에 통합될 수 있다. 또한, 방법들, 컴포넌트들, 및 피처들은 하드웨어 디바이스들 내의 펌웨어 모듈들 또는 기능 회로에 의해 구현될 수 있다. 또한, 방법들, 컴포넌트들, 및 피처들은 하드웨어 디바이스들과 컴퓨터 프로그램 컴포넌트들의 임의의 조합으로 또는 컴퓨터 프로그램들에서 구현될 수 있다.
[0075] 달리 구체적으로 언급되지 않는 한, "수신", "결정", "선택", "수행", "프로세싱", "측정", "보고", "업데이트", "분석", "트레이닝", "생성", "추가", "계산", "유발", "수행", "발생", "사용", "수정", "비교", "액세스", "시프팅(shifting)", "저장", "검출" 등은, 컴퓨터 시스템 레지스터(register)들 및 메모리들 내에서 물리적 (전자적) 수량들로 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 전송 또는 디스플레이 디바이스들 내에서 물리적 수량들로 유사하게 표현되는 다른 데이터로 조작하고 변환하는 컴퓨터 시스템들에 의해 수행되거나 또는 구현되는 액션들 및 프로세스들을 지칭한다. 또한, 본 명세서에서 사용되는 바와 같은 "제1", "제2", "제3", "제4" 등의 용어들은 상이한 요소들을 구별하기 위한 라벨들로서 의미되며, 이들의 숫자 지정에 따른 순서적 의미를 갖지 않을 수 있다.
[0076] 본 명세서에 설명된 예들은 또한 본 명세서에 설명된 방법들을 수행하기 위한 장치에 관한 것이다. 이 장치는 여기에 설명된 방법들을 수행하기 위해 특별히 구성될 수 있거나, 또는 컴퓨터 시스템에 저장된 컴퓨터 프로그램에 의해 선택적으로 프로그래밍된 범용 컴퓨터 시스템을 포함할 수 있다. 이러한 컴퓨터 프로그램은 컴퓨터-판독가능한 유형의 저장 매체에 저장될 수 있다.
[0077] 여기에 설명된 방법들 및 예시적인 예들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치와 관련이 없다. 다양한 범용 시스템들이 본 명세서에 설명된 교시들에 따라 사용될 수 있거나, 또는 본 명세서에 설명된 방법들 및/또는 이들 각각의 개별 기능들, 루틴들, 서브루틴들, 또는 동작들 각각을 수행하기 위해 보다 전문화된 장치를 구성하는 것이 편리하다는 것이 밝혀질 수 있다. 이러한 다양한 시스템들에 대한 구조의 예들은 위의 설명에 나와 있다.
[0078] 위의 설명은 제한이 아니라 예시적인 것으로 의도된다. 본 개시내용은 특정 예시적인 예들 및 구현들을 참조하여 설명되었지만, 본 개시내용은 설명된 예들 및 구현들로 제한되지 않는다는 것이 인식될 것이다. 본 개시내용의 범위는 청구항들이 권리를 가지는 등가물들의 전체 범위와 함께 다음 청구항들을 참조하여 결정되어야 한다.

Claims (20)

  1. 프로세싱 디바이스에 의해, 제조 도구(manufacturing tool)의 리소스(resource)들을 결정하는 단계 ― 상기 리소스들은 제1 챔버 및 제2 챔버를 포함함 ―;
    제1 제조 작업(manufacturing task) 및 제2 제조 작업을 나타내는 작업 데이터(task data)에 액세스(access)하는 단계;
    상기 제1 챔버를 사용하여 상기 제1 제조 작업을 수행하는 지속기간(duration) 및 상기 제2 챔버를 사용하여 상기 제2 제조 작업을 수행하는 지속기간을 결정하는 단계;
    상기 제1 제조 작업을 수행하는 지속기간 및 상기 제2 제조 작업을 수행하는 지속기간에 기반하여 기계 학습 모델(machine learning model)을 업데이트(update)하는 단계;
    상기 프로세싱 디바이스에 의해, 시뮬레이션(simulation) 결과들의 세트를 생성하기 위해 상기 기계 학습 모델 및 상기 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하는 단계;
    하나 이상의 최적화 값들에 기반하여 상기 시뮬레이션 결과들의 세트로부터 시뮬레이션 결과를 선택하는 단계; 및
    상기 프로세싱 디바이스에 의해, 상기 시뮬레이션 결과를 데이터 저장소에 저장하는 단계를 포함하는,
    방법.
  2. 제1 항에 있어서,
    상기 제조 도구에 의해 생성되는 시간 데이터를 분석하는 단계를 더 포함하고, 상기 시간 데이터는, 상기 작업 데이터를 고려하여 상기 제조 도구에 의해 복수의 웨이퍼들이 프로세싱되는 동안 생성되는,
    방법.
  3. 제2 항에 있어서,
    상기 시간 데이터는 상기 제조 도구에 대한 복수의 시간들을 포함하고, 상기 복수의 시간들은 복수의 웨이퍼 로드(load) 시간들, 상기 제1 챔버의 웨이퍼 프로세싱 시간들, 상기 제2 챔버의 웨이퍼 프로세싱 시간들, 및 상기 제1 챔버와 상기 제2 챔버 사이의 웨이퍼 이송 시간들을 포함하는,
    방법.
  4. 제1 항에 있어서,
    상기 제조 도구와 관련된, 데이터 저장소로부터의 상기 제조 도구에 대한 시간 데이터에 액세스하는 단계;
    상기 시간 데이터를 사용하여 상기 제조 도구를 모델링(model)하기 위해 상기 기계 학습 모델을 트레이닝시키는 단계; 및
    상기 제조 도구에 상기 기계 학습 모델을 저장하는 단계를 더 포함하는,
    방법.
  5. 제1 항에 있어서,
    상기 컴퓨터 시뮬레이션들의 세트를 수행하는 단계는:
    웨이퍼들의 세트의 프로세싱을 포캐스트(forecast)하기 위해 상기 기계 학습 모델에 액세스하는 단계;
    상기 웨이퍼들의 세트에 대한 시작 시간들의 세트를 사용하여 제1 컴퓨터 시뮬레이션을 수행하는 단계;
    상기 세트의 적어도 하나의 웨이퍼가, 미리 정의된 임계값을 초과하는 지속기간 동안 유휴 상태(idle)라는 것을 검출하는 단계;
    상기 적어도 하나의 웨이퍼에 대한 서로 다른 시작 시간을 포함하도록 상기 시작 시간들의 세트를 수정하는 단계; 및
    상기 수정된 시작 시간들의 세트를 사용하여 제2 컴퓨터 시뮬레이션을 수행하는 단계를 포함하는,
    방법.
  6. 제1 항에 있어서,
    상기 시뮬레이션 결과는 상기 제조 도구의 각각의 챔버에 대한 리소스 벡터(resource vector)를 포함하는 리소스 벡터들의 세트를 포함하고, 상기 리소스 벡터는 복수의 시간 값들을 포함하고, 복수의 제품들을 프로세싱하는 챔버에 대한 타임 라인(time line)을 표현하는,
    방법.
  7. 제1 항에 있어서,
    상기 하나 이상의 최적화 값들을 계산하는 단계 ― 상기 하나 이상의 최적화 값들은, 웨이퍼 유휴 시간, 챔버 활용도, 또는 도구 처리량 중 하나 이상에 기초하는 상기 시뮬레이션 결과에 대한 최적화 값을 포함함 ―;
    상기 시뮬레이션 결과에 대한 상기 최적화 값을 상기 시뮬레이션 결과들의 세트 중 다른 시뮬레이션 결과의 적어도 하나의 최적화 값과 비교하는 단계; 및
    상기 비교에 기반하여 상기 시뮬레이션 결과들의 세트로부터 상기 시뮬레이션 결과를 선택하는 단계를 더 포함하는,
    방법.
  8. 제7 항에 있어서,
    상기 작업 데이터는, 시작 작업, 복수의 중간 작업들, 및 종료 작업을 포함하는 작업들의 시퀀스(sequence)를 나타내고, 상기 최적화 값은 상기 중간 작업들의 특정 세트 동안의 상기 웨이퍼 유휴 시간에 해당하는,
    방법.
  9. 제1 항에 있어서,
    상기 제조 도구에 대한 상기 시뮬레이션 결과를 표현하는 간트 차트(Gantt chart)에 대한 디스플레이(display)를 제공하는 단계를 더 포함하고, 상기 간트 차트는, 세트의 하나 이상의 웨이퍼들에 대한 시간 블록(block)들을 표현하는, 상기 제1 챔버에 대한 수평 막대들의 세트, 및 상기 세트의 하나 이상의 웨이퍼들에 대한 시간 블록들을 표현하는, 상기 제2 챔버에 대한 수평 막대들의 세트를 포함하는,
    방법.
  10. 제1 항에 있어서,
    상기 제조 도구의 리소스들을 결정하는 단계는:
    상기 리소스들의 레이아웃(layout)을 식별하기 위해 상기 제조 도구를 분석하는 단계; 및
    상기 리소스들 각각의 유형을 결정하는 단계 ― 상기 제1 챔버는 제품을 수정하는 수정 챔버를 포함하고, 상기 제2 챔버는 상기 제품을 이동시키는 이동 챔버를 포함함 ― 를 포함하는,
    방법.
  11. 제1 항에 있어서,
    상기 작업 데이터는 웨이퍼를 프로세싱하기 위한 레시피(recipe)들의 시퀀스를 포함하고, 상기 레시피들의 시퀀스는 상기 제1 챔버에 대한 레시피 및 상기 제2 챔버에 대한 레시피를 포함하는,
    방법.
  12. 시스템으로서,
    메모리; 및
    상기 메모리에 통신 가능하게 결합된 프로세싱 디바이스를 포함하고,
    상기 프로세싱 디바이스는:
    제조 도구의 리소스들을 결정하고 ― 상기 리소스들은 제1 챔버 및 제2 챔버를 포함함 ―;
    제1 제조 작업 및 제2 제조 작업을 나타내는 작업 데이터에 액세스하고;
    상기 제1 챔버를 사용하여 상기 제1 제조 작업을 수행하는 지속기간 및 상기 제2 챔버를 사용하여 상기 제2 제조 작업을 수행하는 지속기간을 결정하고;
    상기 제1 제조 작업을 수행하는 지속기간 및 상기 제2 제조 작업을 수행하는 지속기간에 기반하여 기계 학습 모델을 업데이트하고;
    시뮬레이션 결과들의 세트를 생성하기 위해 상기 기계 학습 모델 및 상기 작업 데이터를 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하고;
    하나 이상의 최적화 값들에 기반하여 상기 시뮬레이션 결과들의 세트로부터 시뮬레이션 결과를 선택하고; 그리고
    상기 시뮬레이션 결과를 데이터 저장소에 저장하기 위한 것인,
    시스템.
  13. 제12 항에 있어서,
    시간 데이터는 상기 제조 도구에 대한 복수의 시간들을 포함하고, 상기 복수의 시간들은 복수의 웨이퍼 로드 시간들, 상기 제1 챔버의 웨이퍼 프로세싱 시간들, 상기 제2 챔버의 웨이퍼 프로세싱 시간들, 및 상기 제1 챔버와 상기 제2 챔버 사이의 웨이퍼 이송 시간들을 포함하는,
    시스템.
  14. 제12 항에 있어서,
    상기 시뮬레이션 결과는 상기 제조 도구의 각각의 챔버에 대한 리소스 벡터를 포함하는 리소스 벡터들의 세트를 포함하고, 상기 리소스 벡터는 복수의 시간 값들을 포함하고, 복수의 제품들을 프로세싱하는 챔버에 대한 타임 라인을 표현하는,
    시스템.
  15. 제12 항에 있어서,
    상기 작업 데이터는, 시작 작업, 복수의 중간 작업들, 및 종료 작업을 포함하는 작업들의 시퀀스를 나타내는,
    시스템.
  16. 명령들을 저장하는 비-일시적인 기계-판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 프로세싱 디바이스로 하여금 동작들을 수행하게 하고,
    상기 동작들은:
    제1 챔버 및 제2 챔버를 포함하는 제조 도구와 관련된, 데이터 저장소로부터의 시간 데이터에 액세스하는 동작 ― 상기 시간 데이터는 상기 제1 챔버를 사용하여 제조 작업을 수행하는 지속기간 및 상기 제2 챔버를 사용하여 제조 작업을 수행하는 지속기간을 포함함 ―;
    상기 제조 도구에 의해, 상기 시간 데이터를 사용하여 상기 제조 도구를 모델링하기 위해 기계 학습 모델을 트레이닝시키는 동작;
    상기 제조 도구에 의해, 시뮬레이션 결과들의 세트를 생성하기 위해 상기 기계 학습 모델을 사용하는 컴퓨터 시뮬레이션들의 세트를 수행하는 동작;
    하나 이상의 최적화 값들에 기반하여 상기 시뮬레이션 결과들의 세트로부터 시뮬레이션 결과를 선택하는 동작; 및
    상기 프로세싱 디바이스에 의해, 상기 시뮬레이션 결과를 데이터 저장소에 저장하는 동작 ― 상기 시뮬레이션 결과는 상기 제조 도구에 대한 스케줄(schedule)을 포함함 ― 을 포함하는,
    비-일시적인 기계-판독가능 저장 매체.
  17. 제16 항에 있어서,
    상기 시간 데이터는 상기 제조 도구에 대한 복수의 시간들을 포함하고, 상기 복수의 시간들은 복수의 웨이퍼 로드 시간들, 상기 제1 챔버의 웨이퍼 프로세싱 시간들, 상기 제2 챔버의 웨이퍼 프로세싱 시간들, 및 상기 제1 챔버와 상기 제2 챔버 사이의 웨이퍼 이송 시간들을 포함하는,
    비-일시적인 기계-판독가능 저장 매체.
  18. 제16 항에 있어서,
    상기 동작들은:
    웨이퍼들의 세트의 프로세싱을 포캐스트하기 위해 상기 기계 학습 모델에 액세스하는 동작;
    상기 웨이퍼들의 세트에 대한 시작 시간들의 세트를 사용하여 제1 컴퓨터 시뮬레이션을 수행하는 동작;
    상기 세트의 적어도 하나의 웨이퍼가, 미리 정의된 임계값을 초과하는 지속기간 동안 유휴 상태라는 것을 검출하는 동작;
    상기 적어도 하나의 웨이퍼에 대한 서로 다른 시작 시간을 포함하도록 상기 시작 시간들의 세트를 수정하는 동작; 및
    상기 수정된 시작 시간들의 세트를 사용하여 제2 컴퓨터 시뮬레이션을 수행하는 동작을 더 포함하는,
    비-일시적인 기계-판독가능 저장 매체.
  19. 제16 항에 있어서,
    상기 시뮬레이션 결과는 상기 제조 도구의 각각의 챔버에 대한 리소스 벡터를 포함하는 리소스 벡터들의 세트를 포함하고, 상기 리소스 벡터는 복수의 시간 값들을 포함하고, 복수의 제품들을 프로세싱하는 챔버에 대한 타임 라인을 표현하는,
    비-일시적인 기계-판독가능 저장 매체.
  20. 제16 항에 있어서,
    상기 동작들은 상기 제조 도구에 대한 상기 시뮬레이션 결과를 표현하는 간트 차트에 대한 디스플레이를 제공하는 동작을 더 포함하고, 상기 간트 차트는, 세트의 하나 이상의 웨이퍼들에 대한 시간 블록들을 표현하는, 상기 제1 챔버에 대한 수평 막대들의 세트, 및 상기 세트의 하나 이상의 웨이퍼들에 대한 시간 블록들을 표현하는, 상기 제2 챔버에 대한 수평 막대들의 세트를 포함하는,
    비-일시적인 기계-판독가능 저장 매체.
KR1020227037903A 2020-05-22 2021-05-21 다중 챔버 반도체 장비를 위한 예측 웨이퍼 스케줄링 KR20220160671A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/881,370 2020-05-22
US16/881,370 US11901204B2 (en) 2020-05-22 2020-05-22 Predictive wafer scheduling for multi-chamber semiconductor equipment
PCT/US2021/033747 WO2021237147A1 (en) 2020-05-22 2021-05-21 Predictive wafer scheduling for multi-chamber semiconductor equipment

Publications (1)

Publication Number Publication Date
KR20220160671A true KR20220160671A (ko) 2022-12-06

Family

ID=78608356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227037903A KR20220160671A (ko) 2020-05-22 2021-05-21 다중 챔버 반도체 장비를 위한 예측 웨이퍼 스케줄링

Country Status (6)

Country Link
US (2) US11901204B2 (ko)
JP (1) JP2023527110A (ko)
KR (1) KR20220160671A (ko)
CN (1) CN115485639A (ko)
TW (1) TW202213006A (ko)
WO (1) WO2021237147A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102502886B1 (ko) * 2022-11-02 2023-02-24 주식회사 한울엔지니어링 반도체용 연마입자 스마트 생산 시스템 및 그 방법
KR102487325B1 (ko) * 2022-11-04 2023-01-11 비드오리진 주식회사 반도체용 연마 입자 생산을 위한 스케쥴링 시스템

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990039062A (ko) 1997-11-10 1999-06-05 김영환 자원 예측 시뮬레이터 및 시뮬레이션 방법
US6493599B2 (en) * 1998-03-19 2002-12-10 Dell Usa, L.P. Automated system and method for generating data to drive a manufacturing process
US20050137734A1 (en) * 2003-12-23 2005-06-23 Asml Netherlands B.V. Method of operating a lithographic apparatus or lithographic processsing cell, lithographic apparatus and lithographic processing cell
US7904192B2 (en) * 2004-01-14 2011-03-08 Agency For Science, Technology And Research Finite capacity scheduling using job prioritization and machine selection
US8082045B1 (en) 2007-06-29 2011-12-20 Intermolecular, Inc. Substrate processing recipe manager
TWI391839B (zh) 2009-01-17 2013-04-01 Univ Nat Taiwan Science Tech 半導體產業之資源分派系統及方法
KR101371006B1 (ko) 2012-06-18 2014-03-25 (주)브이엠에스 솔루션스 반도체 공정을 위한 생산 시뮬레이트 장치
ES2944938T3 (es) * 2014-08-27 2023-06-27 Nec Corp Dispositivo de simulación, método de simulación y soporte de memoria
US10726366B2 (en) * 2015-04-14 2020-07-28 International Business Machines Corporation Scheduling and simulation system
US20180173823A1 (en) * 2015-06-02 2018-06-21 Nec Corporation Simulation device, simulation method, and recording medium for storing program
JP6823547B2 (ja) * 2017-06-07 2021-02-03 株式会社日立製作所 経営管理システム
US10572307B2 (en) * 2017-07-26 2020-02-25 Bank Of America Corportion System and method of training machine learning algorithm to satisfactorily allocate resources for task execution
US20190114513A1 (en) * 2017-10-13 2019-04-18 International Business Machines Corporation Building cognitive conversational system associated with textual resource clustering
US11348017B1 (en) * 2017-11-07 2022-05-31 Synopsys, Inc. Machine learning method and framework for optimizing setups for accurate, speedy and robust TCAD simulations
EP3802256A2 (en) * 2018-06-11 2021-04-14 Traxen, Inc. Automated cruise control system to automatically decrease an overall ground vehicle energy consumption
US20190378050A1 (en) * 2018-06-12 2019-12-12 Bank Of America Corporation Machine learning system to identify and optimize features based on historical data, known patterns, or emerging patterns
US10705514B2 (en) 2018-10-09 2020-07-07 Applied Materials, Inc. Adaptive chamber matching in advanced semiconductor process control
TW202022633A (zh) * 2018-12-10 2020-06-16 財團法人資訊工業策進會 基於特徵擷取與機器學習的優化方法及其模組
JP7124696B2 (ja) * 2018-12-27 2022-08-24 オムロン株式会社 同期制御装置、同期制御システム、同期制御方法及びシミュレーション装置
WO2020205339A1 (en) * 2019-03-29 2020-10-08 Lam Research Corporation Model-based scheduling for substrate processing systems
WO2020220221A1 (zh) * 2019-04-29 2020-11-05 西门子股份公司 生产设备的加工参数设置方法、装置和计算机可读介质
US20220284344A1 (en) * 2019-08-13 2022-09-08 Asml Netherlands B.V. Method for training machine learning model for improving patterning process
CN111356988B (zh) * 2020-02-21 2021-03-12 长江存储科技有限责任公司 用于调度半导体加工的方法和系统
US11074142B1 (en) * 2021-01-15 2021-07-27 Coupang Corp. Systems and methods for automatically resolving system failure through force supplying cached API data
US20220296924A1 (en) * 2021-03-22 2022-09-22 Varian Medical Systems, Inc. Artificial intelligence modeling for radiation therapy dose distribution analysis

Also Published As

Publication number Publication date
US11901204B2 (en) 2024-02-13
WO2021237147A1 (en) 2021-11-25
JP2023527110A (ja) 2023-06-27
CN115485639A (zh) 2022-12-16
US20240055284A1 (en) 2024-02-15
TW202213006A (zh) 2022-04-01
US20210366749A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
US20240055284A1 (en) Predictive wafer scheduling for multi-chamber semiconductor equipment
US8473270B2 (en) Methods and systems for controlling a semiconductor fabrication process
US11644803B2 (en) Control system database systems and methods
US20080208372A1 (en) Scheduling with neural networks and state machines
US8639365B2 (en) Methods and systems for controlling a semiconductor fabrication process
US8639489B2 (en) Methods and systems for controlling a semiconductor fabrication process
US20080163096A1 (en) Methods and systems for controlling a semiconductor fabrication process
CN116134595A (zh) 通过使用混合学习模型提高性能的半导体处理工具
US20080134076A1 (en) Methods and systems for controlling a semiconductor fabrication process
US8355810B2 (en) Method and system for estimating context offsets for run-to-run control in a semiconductor fabrication facility
WO2008030637A2 (en) Methods and systems for controlling a semiconductor fabrication process
TW202333013A (zh) 製造系統處的時間約束管理
Rothe et al. Towards knowledge-enhanced process models for semiconductor fabrication
TW202405595A (zh) 將深度強化學習用於製造系統處的時間約束管理
KR20230027247A (ko) 시퀀서 시간 리핑 실행