KR101391419B1 - Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달 - Google Patents

Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달 Download PDF

Info

Publication number
KR101391419B1
KR101391419B1 KR1020127028932A KR20127028932A KR101391419B1 KR 101391419 B1 KR101391419 B1 KR 101391419B1 KR 1020127028932 A KR1020127028932 A KR 1020127028932A KR 20127028932 A KR20127028932 A KR 20127028932A KR 101391419 B1 KR101391419 B1 KR 101391419B1
Authority
KR
South Korea
Prior art keywords
port
scheduling
appointment
transfer
scheduled
Prior art date
Application number
KR1020127028932A
Other languages
English (en)
Other versions
KR20120139842A (ko
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 KR20120139842A publication Critical patent/KR20120139842A/ko
Application granted granted Critical
Publication of KR101391419B1 publication Critical patent/KR101391419B1/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
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • 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
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • 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
    • 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
    • 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/32267Dynamic throughput maximization
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • General Factory Administration (AREA)
  • Automobile Manufacture Line, Endless Track Vehicle, Trailer (AREA)
  • Container, Conveyance, Adherence, Positioning, Of Wafer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

이송에 대한 약속을 개시하기 전에 물질 이송을 위한 이송 수단을 스테이징할 수 있도록, 자동화된 공정 흐름에서의 스케쥴링에 이용하기 위한 방법 및 장치가 개시된다. 상기 방법은 공정 흐름에서 물질 이송을 스케쥴링하는 단계와; 그리고 상기 물질 이송의 소정의 시간 주기 이전에 그 물질 이송을 위한 이송 수단의 스테이징을 요구하는 단계를 포함한다. 상기 장치는, 다양한 양상들에 있어서, 자동화된 공정 흐름에서 상기 방법을 수행하도록 프로그램된 컴퓨터 및 컴퓨팅 시스템 뿐 아니라, 실행될 때 이러한 방법을 수행하는 명령들로 엔코드된 컴퓨터 판독가능한 프로그램 저장 매체를 포함한다.

Description

AMHS 픽업의 스케쥴링 및 스케쥴 이전의 전달{SCHEDULING AMHS PICKUP AND DELIVERY AHEAD OF SCHEDULE}
본 발명은 자동화된 제조 환경에 관한 것으로서, 특히 자동화된 제조 환경에서의 스케쥴링에 관한 것이다.
성장하는 기술적인 요구 및 정교한 전자 디바이스들의 전세계적인 수용은 큰 규모의 복잡한 집적 회로들에 대한 전례없는 수요를 생성하였다. 반도체 산업에서의 경쟁은 제품들이 가능한 가장 효율적인 방식으로 설계되고, 제조되고, 판매될 것을 요구한다. 이에 의해, 전자 공학 산업에서의 급속한 진보에 보조를 맞출 수 있도록 제조 기술에서 있어서도 진보가 요구된다. 이러한 요구들을 충족시킴에 따라, 물질들 및 공정 장비에 있어서 많은 기술적인 진보를 가져왔으며, 집적 회로 설계의 수를 상당히 증가시켰다. 또한, 이러한 개선들은 설계 및 제조 뿐 아니라 제조 공정의 스케쥴링, 제어 및 자동화를 촉진시킬 수 있도록 계산 자원들 및 기타의 고도의 정교한 장비의 효과적인 이용을 요구한다.
먼저, 제조와 관련하여, 집적 회로들 또는 마이크로칩들은, 전형적으로 수 마이크로미터 사이즈의 수많은 구조들 또는 피쳐(feature)들을 포함하는 현대의 반도체 디바이스들로부터 제조된다. 이러한 피쳐들은 반도체 기판의 국부화된 영역들 내에 놓여지고, 전도성, 비전도성, 또는 반도체(즉, 정의된 영역들에서 도펀트들에 의해 전도성이 된다)이다. 제조 공정은 일반적으로 일련의 제조 툴들을 통해 다수의 웨이퍼들을 처리할 것을 필요로 한다. 각 제조 툴은 하기에서 보다 상세히 설명되는 4개의 기본적인 동작들중에서 1개 이상을 수행한다. 4개의 기본적인 동작들은 전체 공정에 따라 수행되어, 궁극적으로 완성된 반도체 디바이스들을 제조한다.
집적 회로들은 반도체 기판 물질의 웨이퍼들로부터 제조된다. 제조 동안 물질들의 층들이 부가되고, 제거되고, 그리고/또는 처리되어, 디바이스를 구성하는 집적된 전기 회로들을 생성한다. 제조는 본질적으로 다음의 4개의 기본적인 동작들:
ㆍ 반도체가 제조되는 웨이퍼에 다양한 물질들의 얇은 층들을 쌓아 부가하고;
ㆍ 부가된 층들의 선택된 부분들을 패터닝하여 제거하고;
ㆍ 부가된 층들의 개구부들을 통해 웨이퍼의 선택된 부분들에 특정량의 도펀트들을 도핑하여 배치하고;
ㆍ 처리되는 웨이퍼에서 원하는 결과들을 얻기 위해, 상기 물질들을 열 처리하여, 가열 및 냉각하는 것을 포함한다.
비록 단지 4개의 기본적인 동작들 만이 있지만, 특정의 제조 공정에 따라, 이들은 수백개의 다른 방법들로 결합될 수 있다. 예를 들어, Peter Van Zant, Microchip Fabrication, A Practical Guide to Semiconductor Processing (3rd Ed. 1997 McGraw-Hill Companies, Inc.)(ISBN 0-07-067250-4)를 참조하라.
반도체 칩들과 같은 제조품들에 대한 설비(facility)의 효율적인 관리는 제조 공정의 다양한 면을 모니터할 것을 요구한다. 예를 들어, 전형적으로, 가지고 있는 미가공 물질(raw material)들의 양과, 미완성품(work in process)의 상태와, 그리고 공정의 모든 단계에서의 머신들 및 툴들의 상태 및 이용가능성을 추적하는 것이 바람직하다. 가장 중요한 결정들중 하나는 임의의 소정의 시간에 각 머신 상에서 어느 로트가 실행되어야하는 지를 선택하는 것이다. 부가적으로, 제조 공정에 이용되는 대부분의 머신들은 정기적인 예비 정비(preventative maintenance, "PM") 및 장비 검증(equipment qualification, "Qual") 절차들의 스케쥴링 뿐 아니라, 이러한 절차들의 성능이 제조 공정 자체를 방지하지 않도록 하기 위해, 정기적으로 수행되어야 하는 기타의 진단 및 재조정 절차들의 스케쥴링을 요구한다.
이러한 문제에 대한 하나의 시도는 자동화된 "제조 실행 시스템(MES)"을 구현하는 것이다. 상업적으로 입수할 수 있는 MES 시스템들의 예로는, Applied Materials, Inc.로부터 입수할 수 있는 WORKSTREAMTM 및 International Business Machines, Inc.로부터 입수할 수 있는 SIVIEWTM가 있다. 자동화된 MES에 의해, 사용자는 제조 환경에서 머신들 및 툴들, 또는 "엔티티들"의 상태를 관찰하고 제한된 정도까지 조정할 수 있게 된다. 또한, MES는 로트들 또는 미완성품의 발송(dispatching) 및 추적을 가능하게 함으로써, 자원들이 가장 효율적인 방식으로 관리될 수 있게 한다.
특히, MES 프롬프트(prompt)에 응답하여, 사용자는 미완성품 및 엔티티 상태에 관한 요구되는 정보를 입력한다. 예를 들어, 사용자가 특정의 엔티티에 대해 PM을 수행할 때, 오퍼레이터는 PM의 성능("이벤트")을 MES 스크린 내에 기록(log)함으로써, 그 엔티티의 상태에 대해 MES 데이터베이스에 저장된 정보를 갱신한다. 대안적으로, 엔티티가 수리 또는 정비를 위해 다운(down)되어야 하는 경우, 오퍼레이터는 이 정보를 MES 데이터베이스에 기록함으로써, 이후 백업(back up) 기록될 때 까지 그 엔티티의 이용을 금지시킨다.
비록 MES 시스템들이 로트들 및 머신들을 추적하는 데에 충분하기는 하지만, 이러한 시스템들은 몇 개의 결함들을 겪는 바, 가장 명백한 결함은 이들의 수동적인 특성, 사전 스케쥴링(advance scheduling)의 결여, 및 고도의 자동화된 설비 동작들을 지원할 수 없다는 것이다. 현재의 MES 시스템들은 주로 설비 상태를 모니터하고 정확한 시간에 활동들을 개시하는 제조 직원에게 의존한다. 예를 들어, 웨이퍼 제조 기술자(wafer fabrication technician, "WFT")가 적절한 MES 커맨드를 발행(issue)할 때 까지, 로트는 공정을 시작하지 않는다. 그리고, 공정 이전에, WFT는, 머신이 이용가능하게 될 때 그 머신에서 로트가 이용가능하게 된다는 충분한 사전 계획을 갖는 상태로, 자동화된 물질 취급 시스템(automated material handling system, "AMHS")으로부터 로트를 검색하기 위한 MES 커맨드를 발행해야 한다. WFT가 로트를 충분히 빠르게 검색하지 못하거나, 이용가능한 가장 빠른 시간에 공정을 개시하는 것을 게을리한 경우, 머신은 아이들 상태가 되고, 제조에 악영향을 미치게 된다.
설비 관리에 대한 다른 수법은, 전형적으로 MES와 관련하여, 상기에서 간단히 설명한 AMHS를 이용한다. AMHS는 물질들을 공정 흐름 내의 하나의 포인트로부터 다른 포인트로 이송한다. 예를 들어, 반도체 제조 설비("팹")에서, 일단 웨이퍼들의 로트가 특정의 공정 툴에서의 공정을 완료하면, 일반적으로 가능한한 쉽게 공정 툴의 포트로부터 로트를 제거하는 것이 바람직하다. WFT는 로트가 수행되었고 대기하고 있음을 통지 받자 마자, AMHS에 커맨드를 발행하여, 로트를 그의 다음 목적지로 운반하기 위해 빈 이송 수단(vehicle)을 보낸다. WFT가 커맨드를 발행하고, 이송 수단이 도달될 수 있도록 하기 위해, 통지가 전송되고 수신되는 데에는 몇 분의 시간이 경과될 것이다. 이것이 많아 보이지는 않지만, 이러한 지연은 전체로서는 상당히 빠르게 더해질 수 있다. 예를 들어, 750개의 공정 동작들의 공정 흐름에 있어서, 동작당 3분의 지연은 37.5 시간의 누적 지연을 야기한다.
본 발명은 상기 설명한 문제들중 하나 또는 모두를 해결하거나, 또는 적어도 줄이는 것에 관한 것이다.
다양한 양상들 및 실시예들에 있어서, 본 발명은 이송에 대한 약속(appointment)을 개시하기 전에 물질 이송을 위한 이송 수단을 스테이징(staging)(즉, 이송 수단이 이송 대기 상태에 있도록 함)할 수 있도록, 자동화된 공정 흐름에서의 스케쥴링에 이용하기 위한 방법 및 장치에 관한 것이다. 상기 방법은 공정 흐름에서 물질 이송을 스케쥴링하는 단계와; 그리고 상기 물질 이송의 소정의 시간 주기(time period) 이전에 그 물질 이송을 위한 이송 수단의 스테이징을 요구하는 단계를 포함한다. 상기 장치는, 다양한 양상들에 있어서, 자동화된 공정 흐름에서 상기 방법을 수행하도록 프로그램된 컴퓨터 및 컴퓨팅 시스템 뿐 아니라, 실행될 때 이러한 방법을 수행하는 명령들로 엔코드된 컴퓨터 판독가능한 프로그램 저장 매체를 포함한다.
본 발명은 첨부 도면들과 함께 설명되는 하기의 설명을 참조함으로써 이해될 수 있는 바, 도면들에서 같은 참조 부호들은 같은 요소들을 나타낸다.
도 1은 본 발명에 따라 구성되어 동작하는 공정 흐름의 하나의 특정 실시예의 한 부분을 개념적으로 도시한다.
도 2는 본 발명에 따라 실행되는 방법의 일 특정 실시예를 나타낸다.
도 3은 도 1의 컴퓨팅 디바이스들의 하드웨어 아키텍쳐 및 소프트웨어 아키텍쳐 각각의 선택된 부분들을 부분적인 블록도의 형태로 개념적으로 도시한다.
도 4는 예약된 약속(book appointment)들의 카렌다를 개념적으로 도시한다.
도 5는 예약된 약속이 이전의 예약된 약속의 예기치못한 긴 지속 기간(즉, 처리 기간)(duration)을 수용하기 위해 변경되는 상황을 개념적으로 나타낸다.
도 6은 도 1의 장치, 즉 반도체 제조 설비로부터의 공정 흐름의 일부분에서의 일 특정 실시를 개념적으로 도시한다.
본 발명은 많은 변형 및 대안적인 형태를 가질 수 있지만, 도면에는 특정한 실시예가 도시되어 있으며, 본원에서는 이에 대해 상세히 설명한다. 하지만, 이러한 특정 실시예는 본 발명을 개시된 특정의 형태로 한정하지 않으며, 본 발명은 첨부된 청구항에 의해 규정되는 본 발명의 정신 및 범위 내의 모든 변형, 등가 및 대안을 포함한다.
이하, 본 발명의 예시적인 실시예에 대해 설명한다. 명확성을 위해, 본원에서는 실제 구현의 모든 특징을 설명하지는 않는다. 물론, 주목할 사항으로서, 이러한 모든 실제 실시예의 개발시, 예를 들어 시스템 관련 제약 및 사업 관련 제약을 따르는 것과 같이, 개발자의 의도한 목표를 달성하기 위해서는, 구현 마다 특정한 다양한 결정이 이루어져야 하는바, 이는 구현 마다 달라질 것이다. 또한, 주목할 사항으로서, 이러한 개발 노력은 복잡하고 시간 소모적이지만, 그럼에도 불구하고 본원의 개시의 이득을 갖는 당업자에게는 일상적인 작업이다.
도 1은 본 발명에 따라 구성되어 동작하는 공정 흐름(100)의 일 특정 실시예의 일부를 개념적으로 나타낸다. 공정 흐름(100)은 반도체 디바이스들을 제조한다. 하지만, 본 발명은 다른 타입의 제조 공정들에도 적용될 수 있다. 따라서, 상기 설명한 공정 흐름(100)에 있어서, 웨이퍼들(135)의 로트들(130)은 보다 일반적으로는 공정 흐름(100) 내의 "물질"로서 불릴 수 있다. 공정 툴들(115) 및 그 위에서 수행되는 임의의 공정 동작은 모든 실시예들에서 반드시 반도체 디바이스들의 제조에 관련될 필요는 없다. 하지만, 명확성을 위해, 그리고 본 발명의 이해를 촉진시키기 위해, 예시된 실시예들의 환경에서는 본 발명을 개시함에 있어서 반도체 제조와 관련된 용어가 유지될 것이다.
공정 흐름(100)의 도시된 부분은 2개의 스테이션들(105)을 포함하는 바, 각 스테이션(105)은 공정 툴(115)과 통신하는 컴퓨팅 장치(110)를 포함한다. 스테이션(105)은 통신 링크(120)를 통해 서로와 통신한다. 도시된 실시예에서, 컴퓨팅 장치(110) 및 통신 링크(120)는 보다 큰 컴퓨팅 시스템, 예를 들어 네트워크(125)의 일부를 포함한다. 도 1에는, 결국 집적 회로 디바이스들이 되는 웨이퍼들(135)의 로트들(130)을 처리하는 공정 툴들(115)이 나타나있다. 이러한 공정 툴(115)은 웨이퍼들(135)의 어떠한 부분을 제조하는 데에 이용되는, 즉 웨이퍼들(135)에 층을 쌓고, 패터닝하고, 도핑하거나, 열처리하는 데에 이용되는 제조 툴이 될 수 있다. 그렇지 않으면, 공정 툴(115)은 공정 흐름(100)의 다양한 부분들의 성능을 평가하는 데에 이용되는 측정 툴(metrology tool)이 될 수 있다.
공정 흐름(100)은 또한 MES(137), 자동화된 물질 취급 시스템("AMHS")(138), 공정 자원(예를 들어, WIP 스토커(WIP stocker))(150) 및 집적된 다른 설비 제어의 부분들을 포함한다. 예시의 목적으로, 2개의 공정 자원들(155a, 155b)을 나타내었다. MES(137)와 AMHS(138) 양자는 모두 소프트웨어 컴포넌트들(141, 142)을 각각 포함한다. AMHS(138)는 로트들(130)을 "취급(handle)"하고, 하나의 스테이션(105)으로부터 다른 스테이션으로의, 그리고 공정 흐름(100) 내의 다른 위치들로의 로트들(130)의 이송을 촉진시킨다. MES(137) 및 공정 자원들(150, 155a, 155b)은 통상의 방식으로 동작하고 이용된다. 공정 자원(150)은 WIP 스토커이며, 공정 툴들(115) 상에서의 공정 동작들 간에 로트들(130)을 저장하는 데에 이용된다. 주목할 사항으로서, 대안적인 실시예들에서, 공정 자원(150)은, 예를 들어 미완성품(work-in-progress, WIP) 스토커, WIP 랙(WIP rack), 또는 언더트랙 스토리지(undertrack storage)가 될 수 있다.
공정 흐름(100)에서의 한 지점으로부터 다른 지점으로의 물질, 예를 들어 로트(130)의 이송은 종종 "이동(move)"이라고도 불린다. 도시된 실시예들은 제 1 지점(즉, 소스)으로부터 제 2 지점(즉, 목적지)으로 "이동"하는 환경으로 설정된다. 예를 들어, 로트(130)는 소스의 포트(140), 즉 포트(140)의 공정 툴(115)로부터, 목적지, 예를 들어 공정 자원(150)으로 "이동"될 수 있다. 이러한 환경에서, 로트(130)는 전형적으로 로트(130)에 대한 다음 공정 동작이 수행될 공정 툴(115)에 가장 가까운 공정 자원(150)으로 이동된다. 일반적으로, 4가지 타입의 이동, 즉 제 1 공정 툴(115)로부터 제 1 공정 자원(150)으로, 제 1 공정 자원(150)으로부터 제 2 공정 툴(115)로, 제 1 공정 자원(155a)으로부터 제 2 공정 자원(155b)으로, 제 2 공정 자원(155b)으로부터 제 2 공정 툴(115)로, 그리고 제 1 공정 툴(115)로부터 제 2 공정 툴(115)로의 이동을 볼 수 있다.
보다 정확하게는, 반도체 팹에는, 전형적으로 2가지 타입의 물질 이송, 즉 베이간(intrabay) 물질 이송 및 베이내(intrabay) 물질 이송이 있다. 베이간 물질 이송은 로트들(130)을 제조 설비의 베이들(미도시) 간에 이송한다. 베이내 물질 이송은 로트들(130)을 동일한 베이 내의 서로 다른 위치들로 이송한다. 따라서, 하나의 공정 툴(115)로부터 다른 베이 내의 다른 공정 툴(115)로의 로트(130)의 전형적인 물질 이송은 적어도 3개의 물질 이송, 즉 제 1 공정 툴(115)의 포트로부터 그 툴의 베이 내의 스토커(미도시)로의 베이내 물질 이송; 그 스토커로부터 제 2 공정 툴(115)과 동일한 베이 내의 다른 스토커(역시 미도시)로의 베이간 물질 이송; 및 그 스토커로부터 제 2 공정 툴(115)의 포트로의 최종적인 베이내 물질 이송을 필요로 한다. 주목할 사항으로서, 이러한 실시예들에서, 2개의 공정 툴들(115) 간의 물질 이송은 실제로 적어도 2개의 구성 물질 이송들: 즉, 공정 툴(115)로부터, 예를 들어 스토커(150) 또는 어떠한 다른 공정 자원으로부터의 물질 이송, 및 WIP 자원으로부터 다음 공정 툴(115)로의 물질 이송을 구성한다.
하지만, 본 발명은 공정 자원(150)과 공정 툴(115) 간의 물질 이송들로 제한되지 않는다. 어떠한 실시예들은 "단일화된 AMHS"로서 알려진 것을 이용할 수 있다. 단일화된 AMHS는 어떠한 중간의 WIP 자원에서 멈추지 않으면서 공정 툴들(115) 간의 직접적인 물질 이송들을 가능하게 한다. 따라서, 일부 실시예들에서는, 서로 다른 공정 툴들(115) 상에서의 공정 동작들 간에 단지 하나의 물질 이송 만이 있을 수 있다. 결과적으로, 대안적인 실시예들에서는, 공정 흐름(100)의 공정 툴들(115) 간에 공정 자원(150)이 없을 수 있다. 일반적으로, 공정 흐름(100)과 같은 공정 흐름에서는 다음과 같은 타입들의 물질 이송들:
ㆍ 제 1 공정 툴(115)로부터 제 2 공정 툴(115)로의 물질 이송;
ㆍ 제 1 공정 툴(115)로부터 공정 자원(150)으로의, 그리고 공정 자원(150)으로부터 제 2 공정 툴(115)로의 물질 이송; 및
ㆍ 제 1 공정 툴(115)로부터 제 1 공정 자원(155a)로의, 제 1 공정 자원(155a)으로부터 제 2 공정 자원(155b)으로의, 그리고 제 2 공정 자원(155b)으로부터 제 2 공정 툴(115)로의 물질 이송이 발견될 수 있다.
주목할 사항으로서, 마지막 방식은 2개 이상의 공정 자원들을 포함하는 방식들로 확장될 수 있다. 하지만, 도시된 실시예에서, 물질 이송들은 구성 요소의 이동에 의해 스케쥴된다. 따라서, 도시된 실시예에서, 물질 이송은:
ㆍ 제 1 공정 툴(115)로부터 공정 자원(150)으로의;
ㆍ 제 1 공정 자원(155a)으로부터 제 2 공정 자원(155b)으로의;
ㆍ 공정 자원(150)으로부터 제 2 공정 툴(115)로의;
ㆍ 제 2 공정 자원(155b)로부터 제 2 공정 툴(115)로의; 그리고
ㆍ 제 1 공정 툴(115)로부터 제 2 공정 툴(115)로의 물질 이송이 될 수 있다.
하지만, 이러한 리스트는 예시적인 것으로서, 배타적이거나 포괄적인 것이 아니다.
도 2는 본 발명에 따른 방법(200)을 도시한다. 일반적으로, 방법(200)은 (203에서) 공정 흐름(예를 들어, 도 1의 공정 흐름(100))에서의 물질 이송(예를 들어, 도 1에서, 로트들(130)의 이동)을 스케쥴링함으로써 시작된다. 도시된 실시예에서는, 하기에서 보다 상세히 설명되는 바와 같이, 이것은 보다 특정하게는, 미래의 동일 지점에서의 물질 이송에 대한 약속 이전에 스케줄링하는 것을 포함한다. 이후, 방법(200)은 (206에서) 물질 이송의 소정의 시간 주기 이전에 그 물질 이송을 위한 이송 수단(160)(이동 시작 위치에서의 이동을 위해 소스 위치에서 빈 이송 수단을 갖는다)의 스테이징을 요구한다. 이송 수단(160)의 타입 및 특성은 실시마다 특정하며, AMHS(138)의 구현 및 이송되어야 하는 물질과 같은 많은 요인들에 의존한다.
예를 들어, 도시된 실시예에서, 물질은 포우프(front-opening unified pod, "foup") 캐리어(미도시)에 배열되는 웨이퍼들(135)의 로트(130)로서, 여기서 웨이퍼들과 로트는 모두 도 1에 도시되어 있다. 따라서, 이송 수단(160)은 무한 궤도(tracked)의 오버헤드 이송 수단(overhead vehicle)이다. 하지만, 어떠한 실시예들에서, 물질은, 예를 들어 레티클이 될 수 있다. 이러한 실시예에서, 이송 수단(160)은 종래에 알려진 것과 같은 레티클 취급 시스템의 일부가 될 수 있다. 대안적인 다른 실시예들에서, 물질은 다른 방법들로 구현될 수 있으며, 이송 수단(160)의 구현은 그에 따라 달라진다.
본 발명을 보다 잘 이해할 수 있도록 하기 위해, 도시된 실시예의 선택된 기술적인 세부 사항들에 대해 설명한다. 도 1로 돌아가서, 상기 설명한 바와 같이, 컴퓨팅 장치(110)는 통신 링크(120)를 통한 접속에 의해 보다 큰 컴퓨팅 시스템(125)의 일부가 될 수 있다. 이러한 구현에 있어서의 예시적인 컴퓨팅 시스템들은 국부 영역 네트워크("LAN"), 광역 네트워크("WAN"), 시스템 영역 네트워크("SAN"), 인트라넷, 또는 심지어 인터넷을 포함한다. 컴퓨팅 시스템(125)은 네트워크된 클라이언트/서버 아키텍쳐를 이용하며, 그에 따라 서버(145)를 포함하지만, 대안적인 실시예들은 피어 투 피어 아키텍쳐(peer-to-peer architecture)를 이용할 수 있다. 따라서, 어떠한 대안적인 실시예들에서, 컴퓨팅 장치(110)는 서로 직접 통신할 수 있다.
통신 링크(120)는, 예를 들어 무선, 동축 케이블, 광섬유, 또는 꼬임쌍 와이어 링크가 될 수 있다. 실시예들에서 컴퓨팅 시스템(125)을 이용하는 경우, 이 컴퓨팅 시스템(125) 및 통신 링크들(120)은 실시마다 특정하며, 종래에 알려진 임의의 적절한 방법으로 실시될 수 있다. 컴퓨팅 시스템(125)은 종래에 알려진 임의의 적절한 통신 프로토콜, 예를 들어 전송 제어 프로토콜/인터넷 프로토콜("TCP/IP")을 이용할 수 있다.
도 3은 본 발명에 따라 프로그램되어 동작하는 컴퓨팅 장치(110)의 하드웨어 아키텍쳐 및 소프트웨어 아키텍쳐의 선택된 부분을 각각 도시한다. 도 1에 나타낸 컴퓨팅 시스템(125)은 개별적인 소프트웨어 컴포넌트들의 위치에서의 큰 유연성을 허용하는 분산 컴퓨팅 시스템이다. 예시의 용이를 위해, 도 3은 단일 컴퓨팅 장치(110)(이는 전형적으로 소정의 구현에서는 개별적인 컴퓨팅 장치(110) 상에 상주한다) 상에 상주하는 공정 흐름(100)의 다수의 소프트웨어 컴포넌트들을 나타낸다. 역으로, 하드웨어 아키텍쳐와 소프트웨어 아키텍쳐의 일부 양상들(예를 들어, 개별적인 카드들, 기본 입/출력 시스템("BIOS"), 입/출력 드라이버들 등)은 나타내지 않았다. 이러한 양상들은 명확성을 위해 그리고 본 발명을 불명료하게 하지 않기 위해 생략되었다. 하지만, 본 개시의 이득을 갖는 당업자에 의해 인식되는 바와 같이, 컴퓨팅 장치(110)의 소프트웨어 아키텍쳐 및 하드웨어 아키텍쳐는 이러한 많은 루틴한 특징들을 포함할 것이다.
도시된 실시예에서, 컴퓨팅 장치(110)는 UNIX 기반의 운영 체제(300)를 이용하는 워크스테이션이지만, 본 발명은 이에 한정되지 않는다. 컴퓨팅 장치(110)는 노크북 컴퓨터, 데스크탑 컴퓨터, 미니 컴퓨터, 메인프레임 컴퓨터 또는 슈퍼컴퓨터 등의 실질적으로 임의 타입의 전자 컴퓨팅 디바이스에서 구현될 수 있다. 어떠한 대안적인 실시예들에서, 컴퓨팅 장치(110)는 심지어 공정 툴(115) 내에 내장되는 제어기 또는 프로세서가 될 수 있다. 본 발명은 또한 UNIX 기반의 운영 체제로 한정되지 않는다. 대안적인 운영 체제(예를 들어, 윈도우즈TM 기반 또는 디스크 운영 체제("DOS") 기반)가 또한 이용될 수 있다. 본 발명은 컴퓨팅 장치(110)의 특정의 구현에 의해 제한되지 않는다.
컴퓨팅 장치(110)는 또한 버스 시스템(315)을 통해 저장 장치(storage)(310)와 통신하는 프로세서(305)를 포함한다. 저장 장치(310)는 적어도 하드 디스크(미도시) 및 랜던 액세스 메모리("RAM")(역시 미도시)를 포함한다. 어떠한 실시예들에서, 컴퓨팅 장치(110)는 또한 광 디스크(330), 플로피 전자기 디스크(335)와 같은 제거가능한 저장 장치, 또는 자기 테이프(미도시) 또는 지프 디스크(미도시)와 같은 어떠한 다른 형태를 가질 수 있다. 컴퓨팅 장치(110)는 모니터(340), 키보드(345) 및 마우스(350)를 포함하며, 이들의 관련 사용자 인터페이스 소프트웨어(355)는 사용자 인터페이스(360)를 포함한다. 도시된 실시예에서, 사용자 인터페이스(360)는 그래픽 유저 인터페이스("GUI")이기는 하지만, 이것은 본 발명의 실행에 필수적인 것은 아니다.
도시된 실시예에서, 각 컴퓨팅 장치(110)는 저장 장치(310) 내에 상주하는 소프트웨어 에이전트(365)를 포함한다. 도 3에 나타낸 특정의 컴퓨팅 장치(110)는 또한 저장 장치(310) 내에 상주하는 "이동 약속 스케쥴러(MAS)"(375), "포트 관리자(port manager)"(377)를 포함하는 바, 이들의 기능은 하기에서 보다 충분히 설명된다. 주목할 사항으로서, 소프트웨어 에이전트(365), MAS(375) 및 포트 관리자(377)는 공정 흐름(100) 내에서 컴퓨팅 장치(110) 이외의 장소들에 상주할 수 있다. 소프트웨어 에이전트(365), MAS(375) 및 포트 관리자(377)의 위치는 본 발명의 실행에 중요하지 않다. 또한, 주목할 사항으로서, 위치가 중요하지 않기 때문에, 어떠한 컴퓨팅 장치(110)는 그 위에 상주하는 다수의 소프트웨어 에이전트들(365), MAS(375) 및 포트 관리자(377)를 가질 수 있으며, 다른 컴퓨팅 장치(110)는 어떠한 것도 갖지 않을 수 있다. 각각 자동화된 MES(137) 및 AMHS(138)(도 1에서 처음 나타냄)에 대한 제어 시스템의 소프트웨어 컴포넌트(들)(141, 142) 역시 적어도 1개의 컴퓨팅 장치(110) 상에 상주한다. 소프트웨어 에이전트(들)(365), MAS(375) 및 포트 관리자(377)와 마찬가지로, 소프트웨어 컴포넌트들(141, 142)은 공정 흐름(100) 내의 어디에든 상주할 수 있다.
도 1 및 도 3을 참조하면, 소프트웨어 에이전트들(365)은 각각 어떠한 "제조 도메인 엔티티", 예를 들어 로트(130), 공정 툴(115) 또는 공정 자원(150)을 나타낸다. 소프트웨어 에이전트들(365)은 제조 공정을 통해 웨이퍼들(135)의 로트들(130)의 액티비티들을 스케쥴링하고 그 진행을 제어한다. 이러한 목적들은 촉진시킴에 있어서, 소프트웨어 에이전트들(365)은 MES(137) 및 AMHS(138)의 소프트웨어 컴포넌트들(141, 142), 및 공정 툴들(115)과 인터페이스한다. 이러한 인터페이스 및 통합(integration)이 일어나는 방식은 MES(137), AMHS(138) 및 다른 설비 제어 시스템들의 구조 및 구성에 따라 구현 마다 특정하다.
총체적으로, 소프트웨어 에이전트들(365)은 특히 능력을 구비한 특정의 공정 툴(115) 상에서의 각 로트(130)에 대한 1개 이상의 공정 동작들(이송 및 요구되는 서비스 포함)을 사전에 스케쥴링한다. 이것은, 접근하는 로트들(130)을 대기하는 것과 대조적으로, 불완전한 배치(batch)를 실행시키는 것과 같이 최적 결정을 행하고, 사양을 만족시키기 위해 기회적인 예비 정비("PM") 기간들 또는 검증 테스트("Quals")를 스케쥴링하는 것을 포함한다. 소프트웨어 에이전트들(365)은 액티비티들을 스케쥴하고; 스케쥴된 액티비티들(로트 이송 및 처리 등)의 실행을 개시하고; 설비 상태, 약속 상태, 및 스케쥴된 액티비티들에 관련된 설비 내의 알람 상태를 모니터하고; 스케쥴된 액티비티들 또는 스케쥴되지 않은 액티비티들로부터 발생하는 상태 변경들에 대응한다.
소프트웨어 에이전트들(365)은 공정 툴들(115) 상에서의 처리를 위해, 그리고 그 공정에 정시에 도달하는 데에 필요한 물질 이송을 위해 로트들(130)을 스케쥴한다. 따라서, 스케쥴되는 적어도 2개의 타입의 약속들, 처리 약속 및 이동 약속이 있지만, 대부분의 실시예들은 다른 타입의 약속들을 이용할 수 있다. 본 특정 실시예에서, 소프트웨어 에이전트들(365)에 의한 물질 이송의 스케쥴링은 (도 2의 203에서의) "공정 흐름에서의 물질 이송의 스케쥴링"을 구성한다.
소프트웨어 에이전트들(365)은 1개 이상의 공정 동작들을 사전에 스케쥴링한다. 즉, 이들은 다음 물질 이송 또는 공정 동작을 스케쥴하기 전에, 현재의 공정 동작 또는 물질 이송이 끝나기를 기다리지 않는다. 전형적으로, 소프트웨어 에이전트들(365)은 어떠한 수의 공정 동작들을 사전에 스케쥴하고, 물질 이송들은 스케쥴된 공정 동작들의 요구를 충족시키도록 스케쥴된다. 하지만, 사전에 스케쥴되는 공정 동작들의 정확한 수는, 처리되는 로트들(130)의 우선순위, 진보된 공정 제어 고려 사항들 및 배치(batch)들의 예비 형성(pre-forming)과 같은 요인들에 의존하여 달라질 수 있다.
"약속"은 어떠한 액티비티가 발생할 것으로 스케쥴링되는 특정의 시간 주기로서, 약속 시작 시간("TS") 및 약속 종료 시간("TE")에 의해 정의된다. 전형적으로 약속은 "커미트먼트 윈도우(CW)" 내에서 정의된다. 커미트먼트 윈도우는 공정 툴(115)이 공정을 위한 가장 빠른 시작 시간(Earliest Start Time, "EST") 및 가장 늦은 전달 시간(Latest Delivery Time, "LDT")에 의해 정의되는 "약속"을 충족시키기 위해 커미트(commit)하는 시간 윈도우이다. 주목할 사항으로서, 이하 더 설명되는 바와 같이, 반드시 모든 종류의 약속들이 커미트먼트 윈도우를 갖는 것은 아니다. 그럼에도 불구하고, 각 약속에 대해, 카렌다(670)는 적용가능한 경우 약속 [TS, TE] 및 그 커미트먼트 윈도우(CW)[EST, LDT]를 모두 저장할 것이며, 그리고 도시된 실시예에서, 이러한 저장된 정보는 비드(bid)를 형성(formulate)하는 데에 이용된다.
도 4는 다수의 공정 툴들(115) 상에서의 로트(130)에 대한 공정 약속들에 관한 정보를 저장하는 카렌다(400)를 개념적으로 도시한다. 도 4에서, 로트(130)는 공정 툴들(T1-T4)에 대한 예약된 공정 약속들(APP1-APP4)을 각각 갖는다. 따라서, 로트(130)에 대한 카렌다 정보는 다음과 같다:
Figure 112012090289016-pat00001
주목할 사항으로서, 복수의 커미트먼트 윈도우는 겹치지만, 약속은 어느 것과도 중복되지 않는다.
상기 설명한 바와 같이, 모든 종류의 약속이 "커미트먼트 윈도우"를 포함하는 것은 아니다. 예를 들어, 도시된 실시예에서, 공정 약속으로의/으로부터의 물질 이송에 대한 이동 약속들은 커미트먼트 윈도우들을 포함하지 않고, 단지 지속 기간 만을 포함한다. 하지만, 주목할 사항으로서, 대안적인 실시예들은 이동 약속이 실행될 수 있는 커미트먼트 윈도우들을 이용할 수 있다. 카렌다(400)는 또한 약속들(APT1-APT4)로의/로부터의 물질 이송을 위한 이동 약속들(M1-M6)을 포함한다. 이동 약속은 지속 기간, 이송 시작 시간, 이송 전달 시간, 또는 양쪽 모두에 의해 정의된다. 전형적으로, 이동 약속(예를 들어, 이동 약속(M1))에 대한 이송 수단의 스테이징이 이루어지는 소정 시간은 약속 종료 시간에 대해 정의된다. 반대로, 공정 툴(115)의 포트(140)로부터 로트(130)를 제거하기 위한 이동 약속(예를 들어, 이동 약속(M2))은 약속 시작 시간에 대해 정의된다.
하기에서 더 논의되는 바와 같이, 공정 바로 이전의 이동 약속은 공정 약속의 스케쥴된 시작 시간과 동일한 스케쥴된 이송 종료 시간을 갖는다. 예외는, 공정 약속 이전에 공정 툴(115)을 로드(load)하기 위해 캐리어 인 동작(carrier-in operation)을 요구하는 버퍼 툴에 있다. 이러한 환경에서, 이동 약속은 캐리어 인 약속에 대해 스케쥴된 시작 시간과 동일한 스케쥴된 이송 종료 시간을 갖는다. 따라서, 이동 약속들(M1-M4)은 각각의 후속 공정 약속들(APT1-APT4)(또는, 어떠한 환경에서는, 캐리어 인 약속(들))이 시작하도록 스케쥴되는 시간에 끝나도록 스케쥴된다.
유사하게, 공정 약속 바로 다음의 이동 약속은 그 공정 약속의 스케쥴된 종료 시간에 대해 스케쥴된 이송 시작 시간을 가질 것이다. 여기에서 또한, 예외는 공정 약속 이후 공정 툴(115)을 언로드(unload)하기 위해 캐리어 아웃 동작(carrier-out operation)을 요구하는 버퍼 툴에 있다. 이러한 환경에서, 이동 약속은 캐리어 아웃 약속에 대해 스케쥴된 종료 시간과 동일한 스케쥴된 이송 시작 시간을 가질 것이다. 따라서, 이동 약속들(M2-M5)은, 공정 약속들(APT1-APT4)(또는, 어떠한 환경에서는, 캐리어 아웃 약속(들))이 끝나도록 스케쥴되는 것과 동시에, 시작하도록 스케쥴된다. 하지만, 일부 실시예들은, 물질들이 공정을 위해 소정의 공정 툴(115)에 전달되어야 하는 시간을 정의하는, 공정 약속 이전의 설정가능한 도달 시간을 포함할 수 있다.
약속들을 스케쥴하기 위한 많은 기술들이 당업계에 알려져있으며, 임의의 이러한 기술이 이용될 수 있다. 하지만, 일 특정 실시예에서, 약속들은 유동 마켓 모델 시도(floating market model approach)에 있어서 계약망 협상 프로토콜(contract net negotiation protocol)을 이용하여 스케쥴된다. 계약망 협상 프로토콜의 유동 마켓 모델에 있어서, 소프트웨어 에이전트들(365)에 의해 개시되는 행동들의 스케쥴링은 계약망 협상 프로토콜에서의 공정과 관련된 예산(budget), 비용 및 비율에 대해 순환(revolve)한다. 자원들을 할당하기 위해 계약망 협상 프로토콜의 실시를 촉진하기 위하여, 예산, 비용 및 비율의 결합을 이용하여 유동 마켓 모델 시도를 구현한다.
예산, 비용 및 비율의 결합은, 예를 들어 기일을 충족시키고, 머신들을 효과적으로 이용하는 것 등과 같은 "바람직한" 행동을 촉진시키도록 구성된다. 구체적으로, 소프트웨어 에이전트(365)가 공정 서비스를 얻기 위해 이용하는 "예산"이 로트들(130)에 할당된다. 유사하게, 공정 툴(115)은 자신이 나타내는 공정 서비스, 예를 들어 공정 시간에 대해 소비자들에게 과금(charge)한다. 로트(130)가 기꺼히 지불하는 예산량은 그것이 스케쥴 상에서 얼마나 많이 머물를 필요가 있느냐에 의존하고, 공정 툴(115)에 의해 과금되는 양은 그것이 그 스케쥴을 얼마나 많이 채울 필요가 있는냐에 의존한다. 로트(130)는 우선도 또는 늦음(lateness)과 같은 선택된 요인들에 의존하여 다소 적극적(aggressive)으로 서비스를 획득한다. 공정 툴들(115)은 자신들의 카렌다에 있어서의 혼잡 레벨(congestion level)과 같은 다수의 요인들에 따라 다소 적극적으로 서비스를 제공한다. 일제히 작동하여, 공정 서비스들의 소비자들 및 제공자들에 대한 소프트웨어 에이전트들(365)은 협력하여, 시기 적절하고 효율적인 방식으로 로트들(130)을 공정 흐름(100)을 통해 전진시킨다.
도 6은 공정 약속들을 충족시키기 위해 이동을 스케쥴링하는 것을 또한 포함하는 공정 흐름(100)에서의 공정 약속들의 스케쥴링 및 협상을 도시한다. 도시된 실시예에서, 공정 흐름(100)은 적어도 2개의 타입의 소프트웨어 에이전트들(365):
ㆍ 스케쥴링 목적을 위해 로트(130)를 대신하는 로트 스케쥴링 에이전트("LSA")(605); 및
ㆍ 스케쥴링 목적을 위해 공정 툴(115)을 대신하는 머신 스케쥴링 에이전트("MSA")(610)를 포함한다.
비록 나타내지는 않았지만, 도시된 실시예는 다른 타입의 에이전트들도 포함한다.
예를 들어, 도시된 실시예는 어떠한 공정 자원들(예를 들어, 레티클들, 더미 웨이퍼들, 캐리어들, WFT들, 정비 기술자들)을 대신하는 자원 스케쥴링 에이전트("RSA", 미도시)들을 포함한다. 도시된 실시예는 또한 각각의 공정 툴들(115) 상에서의 스케쥴링 목적을 위해 툴 PM 및 Qual을 대신하는 PM 스케쥴링 에이전트("PMSA", 미도시)들을 포함하는 바, 어느 것도 나타내지 않았다. PMSA들은 정비, 및 필요한 경우, 공정 툴(115)을 양호한 작동 순서로 유지하기 위해 정기적으로 수행되는 검증 절차들을 스케쥴한다. 로트(130), 공정 툴(115), 자원들, PM들 및 Qual들은 모두 대응하는 "공정" 에이전트들(로트 공정 에이전트("LPA")를 제외하고 미도시)을 갖는 바, 이들에게 스케쥴링 에이전트들은 스케쥴된 액티비티들의 실행을 개시할 시간이 되었을 때 제어를 전달한다.
공정 흐름(100) 내에서 어떠한 엔티티를 대신하여 스케쥴하는 각 소프트웨어 에이전트(365)는 도시된 실시예에서 약속들의 카렌다(예를 들어, 도 4의 카렌다)를 유지한다. 예를 들어, LSA(605)는 카렌다(685)를 유지하고, MSA(610)는 카렌다(670)를 유지한다. 유사하게, PM들 및 Qual들 역시 PM 카렌다 및 Qual 카렌다(미도시) 상에 공정 흐름(100)의 공정 툴들(115)에 대한 PM들 및 Qual들을 스케쥴링하기 위한 스케쥴링 에이전트들(미도시)을 갖는다. 임의의 소정의 카렌다 상에 스케쥴되는 약속들의 타입은 주로 카렌다를 유지하고 있는 소프트웨어 에이전트(365)가 대리하는 엔티티의 특성에 의존한다. 따라서, LSA(605)는 카렌다(685)를 유지하고, 그 내에 각각의 로트(130)에 대한 도 4의 공정 약속들(APP1-APP4)과 같은 공정 약속들 뿐 아니라, 또한 도 4의 이동 약속들(M1-M6)과 같은 이동 약속들을 저장한다. 하지만, PM들, Qual들 및 공정 툴들(115)에 대한 카렌다들 상에 나타나는 PM들 및 Qual들(미도시)에 대한 약속들은 LSA(605)에 의해 유지되는 카렌다(685) 상에는 나타나지 않는다.
보다 특정하게는, LSA(605)는 공정 흐름(100) 내의 특정된 로트(130)를 대신하여 현재 및 미래의 작업들을 스케쥴링하는 것을 담당한다. 이러한 작업들은 미가공 실리콘으로부터의 로트(130)를 특정의 반도체 제품으로 변환시키는 데에 요구되는 제조 공정 및 물질 취급을 포함한다. LSA(605)는 카렌다(685)를 이용하여, 스케쥴된 작업들을 추적한다. 카렌다(685)는 LSA(605)에 의해 스케쥴되는 액티브한 그리고 미래의 작업들을 나타내는 약속들(예를 들어, 약속(675))의 정렬된 집합을 포함하며, 상기 LSA(605)는 작업에 의해 요구되는 공정 서비스를 제공한다. LSA(605)의 카렌다(685)는, 로트 공정, 캐리어 인, 캐리어 아웃, 이동, 피더(feeder), 및 최대 이동 약속들을 포함하여, 다양한 타입의 약속들을 포함할 수 있다. LSA(605)에 의해 스케쥴되는 약속들의 타입들 및 그에 대한 간단한 설명이 표 1에 요약된다. 이러한 다양한 약속들의 타입은 서로 다른 속성들을 포함하지만, 스케쥴된 시작 시간, 스케쥴된 종료 시간, 작업이 얼마나 오랫동안 행해지는 지에 대해 추정되는 지속 기간, 및 약속 상태를 포함하여, 어떠한 공통의 속성들도 있다.
LSA에 의해 예약되는 약속들
약속 타입 약속 설명
이동 로트가 공정 툴로 이송된다.
로트 로트가 공정 툴 상에서 처리된다.
캐리어 인 로트가 공정 툴 내로 로드된다.
캐리어 아웃 로트가 공정 툴로부터 언로드된다.
피더 아직 스케쥴되지 않은 공정 동작과 현재 공정 동작 간의 동작들에 대한 스케쥴링 제약(scheduling constraint)을 나타내는 약속
최대 이동 피더 약속이 나타내는 공정 동작을 수행하기 위한 툴이 알려지지 않은 경우, 피더 약속과 공정 약속 간의 알려지지 않은 지속 기간의 이동들에 대한 스케쥴링 제약을 나타내는 약속
MSA(610)는 또한 공정 서비스, 즉 공정 시간을 제공하기 위해 공정 툴(115)의 커미트먼트를 나타내는 약속들(예를 들어, 약속(676))을 유지한다. 카렌다(670) 상에서 MSA(610)에 의해 스케쥴되는 약속들의 타입들은 표 2에서 설명된다. 주목할 사항으로서, 어떠한 이동 약속도 없다. 물질 이송에 대한 이동 약속이 LSA(605)의 스케쥴링을 명백히 제약하는 반면, MSA(610)에 의한 스케쥴링은 단지 내재적으로, 즉 간접적으로 제약한다. 하지만, 주목할 사항으로서, 카렌다(670) 상의 MSA(610)에 의해 스케쥴되는 로트 공정 약속(676)은 카렌다(685) 상의 LSA(605)에 의해 스케쥴되는 공정 약속(675)에 대응한다.
MSA에 의해 예약되는 약속들
약속 타입 약속 설명
로트 공정 로트가 공정 툴들 상에서 처리된다.
셋업 공정 툴이 현재 처리되고 있는 것과 다른 타입의 공정을 위해 준비 또는 "셋업"된다.
PM PM이 공정 툴 상에서 수행된다.
Qual 독립형(stand-alone) Qual이 각 공정 툴 상에서 수행된다.
머신 배치 다수의 로트들이 배치로 조립되어 동시에 처리된다.
스케쥴되지 않는
고장 시간(downtime)
머신이 예기치않게 다운되고, 예상되는 지속 기간에 설정되는 기간.
예를 들어 도 1의 포트(145) 또는 공정 자원들(150, 155)로부터 머신 포트(예를 들어, 도 1의 포트(145))로의 이동 약속의 LSA(605)에 의한 스케쥴링은, 그 이동 약속을 뒤따르는 공정 약속들 수행하도록 스케쥴되는 MSA(610)에 의해 실질적으로 영향을 받는다. MSA(610)는 자신의 카렌다 상에 대응하는 공정 약속(676)을 갖는다. MSA(610)는 하기에서 보다 완전하게 설명되는 방식으로 포트 예약을 스케쥴한다. MSA(610)는 LSA(605)에 대해 포트를 스케쥴할 때에는, 공정 약속의 2개의 속성들을 갱신한다. 포트 할당 속성 및 포트 이용가능 시간 속성은 포트가 스케쥴될 때에 갱신된다. 포트의 스케쥴링은 공정 약속이 스케쥴될 때 최초로 수행되지만, 이후 MSA(610)에 의해 수정될 수 있다. 이동 약속은 포트가 이용가능할 때 로트(130)를 그 포트에 전달하도록 스케쥴된다. 따라서, MSA(610)는 공정 툴(115)에 대한 포트들의 관리를 통해 이동 약속들의 스케쥴링에 영향을 준다.
MSA(610)에 의한 포트들의 스케쥴링은 그 MSA(610)가 대리하는 머신의 머신 타입에 의해 영향을 받는다. 머신 타입에 의한 설정가능한 특성은, 로트(130)가 그 공정 약속 이전에 포트에 도달할 수 있는 가장 빠른 시간을 특정한다. 로트들을 매우 빠르게 처리하는 머신 타입에 있어서, 이 값은 이러한 타입의 머신이 계속하여 공급될 수 있도록 보다 큰 값으로 설정될 수 있다. 로트들을 보다 느리게 처리하는 머신 타입에 있어서, 이 값은 스케쥴링 유연성을 강화하고 머신 포트들을 불필요하게 이용하지 않도록 하기 위해 보다 작은 값으로 설정될 수 있다. 실제로, 포트 이용가능 시간은 공정 약속에 대해 "시간에 맞춰(just-in-time)" 공정 약속 이전의 상당량의 시간까지 어디에서든 설정가능하다. 이러한 속성들 및 이러한 속성들에 대한 후속의 수정에 반응하여, LSA(605)는 이동 약속 시작 시간 및 목적지 위치를 스케쥴/재스케쥴한다.
도시된 실시예에서, LSA(605)는 서로 다른 타입의 약속들을 스케쥴하고 조정하기 위해 "헬퍼(helper)" 스케쥴링 클래스 객체(scheduling class object)를 생성하여 이용한다. 이러한 헬퍼 클래스 객체의 하나의 예는 도 3에 처음 나타낸 MAS(375)이다. 보다 특정하게는, MAS(375)는 이동 약속들 및 최대 이동 약속들을 스케쥴하고 조정하는 데에 이용된다. 이동 약속은 로트(130)-또는, 이 로트(130)를 담고 있는 이송 수단(160)-를 특정의 "소스" 위치로부터 특정의 "목적지" 위치로 이동시키거나 이송하는 작업을 나타낸다. 특정의 머신 포트들, WIP 스토커들, WIP 래크, 웨이퍼 분류기(sorter)들 및 언더 트랙 스토리지(under-track storage, "UTS", 종종 "제로 풋프린트 스토리지(zero-footprint storage)"라 불린다)는 소스들 또는 목적지들이 될 수 있는 위치들의 예이다.
MAS(375)의 구현은 데이터 AMHS(138)의 구현 및 데이터 스토어(690)에서의 그 표현에 의존한다. 예를 들어, AMHS(138)는 베이간 또는 베이내가 될 수 있는 바, 이것은 상기 설명한 바와 같이 서로 다른 타입의 시스템들에 의해 MAS(375)에 대해 서로 다른 세트의 물질 이송들을 제시할 수 있다. MAS(375)가 AMHS(138) 및 공정 흐름(100)의 구현에 대해 구현마다 특정하게 되는 방식은 본 개시의 이득을 갖는 당업자에게 명백할 것이다. 예를 들어, 물질 이송들은 스토커간(stocker to stocker)이 될 수 있는 "베이간" 또는 스토터간 이외의 어느 것이라도 될 수 있는 "베이내"로서 분류될 수 있다. 이에 따라, 베이간 물질 이송 및 베이내 물질 이송은 서로 다르게 구현될 수 있다. 하지만, AMHS(138)의 모든 실행들이 반드시 자신들의 자동화 레벨에 의존하여 베이간 물질 이송 및 베이내 물질 이송을 모두 포함하는 것은 아니다. 따라서, MAS(375)의 실행은 또한 AMHS(138)의 실행에도 의존한다.
소프트웨어 에이전트들(365)의 관점으로부터, 도시된 실시예에서 이동 약속들은 비교적 결이 곱지만(fine-grained), 대안적인 구현들은 결이 거칠 수 있다(coarse-grained). 예를 들어, 로트가 포인트(A)로부터 포인트(C)로 이송되어야할 필요가 있는 경우, (포인트(A)로부터 포인트(C)로의 하나의 약속이 아닌) 포인트(A)로부터 포인트(B)로의 하나의 약속 및 포인트(B)로부터 포인트(C)로의 다른 약속이 있다. 이동 약속은 소스 위치 및 목적지 위치의 값들에 따라 베이간 물질 이송 또는 베이내 물질 이송을 나타낼 수 있다. 만일 양쪽의 위치들이 WIP 스토커들인 경우, 물질 이송은 베이간 물질 이송으로 고려되고, 그렇지 않으면, 베이내 물질 이송으로 고려된다.
도시된 실시예에서, LSA(605)는 적어도 3가지 타입의 환경에서 MAS(375)를 이용한다. 제 1 타입의 환경은 "일반적인 스케쥴링(general scheduling)"으로서, 여기에서 이동 약속들 및 공정 약속들에 대한 스케쥴링은 정상 상태 조건하에서 일어난다. 제 2 타입의 환경은 "초기 스케쥴링(initial scheduling)"으로서, 여기서 스케쥴링은 공정 흐름(100)의 초기화 동안 일어난다. 제 3 타입의 환경은 "반응적 스케쥴링(reactive scheduling)"으로서, 여기서 스케쥴링은 공정 흐름(100)에 있어서의 어떠한 이벤트에 반응하여 일어난다.
보다 특정하게는, LSA(605)는 로트 공정 약속을 스케쥴할 때, MAS(375)를 이용하여 로트(130)가 그 현재 위치(또는, 현재 위치가 이송중(in transit)일 경우에는, 목적지-알려진 경우)로부터 로트 공정 약속이 스케쥴된 공정 툴(115)로 이송하도록 이동 약속들을 스케쥴한다. 본원에서 이것은 "일반적인 스케쥴링"이라 불린다. 본질적으로, 설비 상태는 알려져있고, 스케쥴링은 그 지식의 기초로 진행된다.
LSA(605) 및 다양한 헬퍼 스케쥴링 클래스들은 또한 로트에 영향을 주는 설비 상태 변경, 서비스 제공자 에이전트들에 의해 개시되는 약속 변경 및 (약속이 자신의 스케쥴된 종료 시간을 경과했음을 나타내는 알람 이벤트와 같은) 알람 이벤트들에 응답한다. MAS(375)는 이러한 조건들에 응답하여 이동 약속들을 조정하는 데에 이용된다. 이것은 본원에서 "반응적" 스케쥴링이라 불린다.
공정 흐름(100)의 모두 또는 일부가 어떠한 이유로 다운되는 경우, 이것은 백업될 때에 초기화된다. 이러한 초기화의 일부는, 예를 들어 다양한 로트들(130)이 어디에 있는지, 어떤 공정 툴들(115)이 현재 동작하고 있는 지와 같은 설비 상태를 결정하는 것을 포함한다. 로트들(130)중 1개 이상은 이송될 필요가 있으며, 적절한 이동 약속들이 스케쥴될 필요가 있다. 이것은 본원에서 "초기 스케쥴링"이라 불린다.
도시된 실시예에서, LSA(605)는 MSA(610)에 비드 요청(605)을 발행함으로써 일반적인 스케쥴링 세션에 있어서 협상을 시작한다. 검증된 각 공정 툴(115)에 대한 MSA(610)는 로트(130)를 처리하기 위해 1개 이상의 비드들(660)을 LSA(605)에 보낸다. LSA(605)는 비드들(660)중 하나를 받는다. 이후, LSA(605)는 MSA(610)에 대한 메세지(665)에 의해, 선택된 비드(660)를 확인한다. MSA(610)는 선택된 비드(660)를 자신의 카렌다(670)에 의해 유효하게 한다. 즉, 선택된 비드(660)가 여전히 실시될 수 있게 한다. MSA(610)는 선택된 비드(660)에 대한 슬롯이 여전히 클리어(clear)하다는 것을 확인하고, 약속(675)을 스케쥴한 다음, 비드 확인된 메세지(680)를 LSA(605)에 전송한다. 이후, LSA(605)는 자기 자신의 카렌다(685) 상에 약속(675)을 스케쥴한다. 스케쥴된 공정 약속 시간에 대한 시작 시간에 도달할 때, 스케쥴링 에이전트들(605, 610)은 각각의 공정 에이전트들, LPA(695)에 제어를 전달한다. 하나의 약속이 완료될 때, LSA(605) 및 MSA(610)는 행할 시간이 되는 경우 자신들의 다음 약속을 시작한다. 행할 시간이 아닌 경우, LSA(605), MSA(610)는 알람을 설정하고, 알람이 울리기를 기다림으로써, 다음 약속을 시작할 시간을 나타낸다.
따라서, 공정 약속들(예를 들어, 공정 약속들(675, 676))이 각 스케쥴링 에이전트(예를 들어, 스케쥴링 에이전트들(605, 610))에 의해 유지되는 카렌다들(예를 들어, 카렌다들(685, 670)) 상에 예약된다. 공정 약속(675)이 예약될 때 마다, LSA(605)는 로트들(130)을 새롭게 예약된 공정 약속(675)과 관련된 공정 툴(115)의 위치로 이동시키기 위해 이동 약속들을 스케쥴링한다. 예를 들어, 도 1 및 도 6을 모두 참조하여, 제 1 공정 툴(115) 상에서 처리하는 로트들(130)은 포트(140)를 통해 빠져나가고, 스케쥴된 공정 약속(675)을 위해 제 2 공정 툴(115)의 포트(145)에 배치될 필요가 있다고 가정하자. 각 LSA(605)는 이러한 목적을 요하는 각각의 MAS(375)를 갖는다. MAS(375)는 소스 위치와 목적지 위치 간에, 예를 들어 포트(140)로부터 포트(145)로 제 1, 2 공정 툴들(115) 간에 통과시키기 위해 로트들(130)에 대한 약속들을 스케쥴한다.
본 개시의 이득을 갖는 당업자에 의해 인식될 수 있는 바와 같이, 공정 흐름(100)은 다수의 취급 컴포넌트(handling component)들을 포함하는 바, 스토커들, 웨이퍼 분류기들, 언더 트랙 스토리지 및 WIP 랙 등의, 단지 그 일부 만을 나타내었다. 예를 들어, 도 1은 3개의 공정 자원들(150, 155a, 155b)을 도시한다. MAS(375)는 로트(130)가 확인된 공정 약속(675), 또는 필요한 경우, 이 공정 약속(675)과 관련된 이전의 캐리어 인 약속을 충족시키는 데에 필요한 적절한 물질 이송들을 결정한다.
이를 행하기 위해, MAS(375)는 도 1에 나타낸 컴퓨팅 시스템(125)의 일부인 데이터 스토어(690)로부터 로트(130)의 현재 위치(공정 약속이 다음 약속인 경우) 또는 계획된 위치(공정 약속이 이전의 1개 이상의 공정 동작인 경우)를 얻는다. 데이터 스토어(690)는 종래에 알려져있는 임의의 적절한 구조가 될 수 있으며, 실제로 복수개의 데이터 구조들(미도시)을 포함할 수 있다. 데이터 스토어(690)는 설비의 자동화된 제어에 이용될 수 있는 다양한 정보를 저장하는 데에 이용되며, 이러한 정보는 다음을 포함한다:
ㆍ 장비의 다양한 부분들 간의 관련, 예를 들어 공정 툴에 대한 가장 가까이 있는 스토커의 관련;
ㆍ 팹에서의 특정 이벤트들의 지속 기간, 예를 들어 스케쥴될 공정 동작들의 지속 기간 또는 한 위치로부터 다른 위치로의 물질 이송의 지속 기간;
ㆍ 특정한 제조 도메인 엔티티들의 위치, 예를 들어 로트들 또는 이동 자원들의 위치들; 및
ㆍ 설비 상태.
따라서, 데이터 스토어(690)는 AMHS(138)의 정의 및 상태와, 설비 상태를 전체로서 나타내는 데이터를 포함한다.
데이터 스토어(690)는 결과적으로 로트(130)를 담고 있는 캐리어(미도시)의 현재 위치와 같은 정보를 포함한다. 데이터 스토어(690)는 또한 AMHS(138)를 통한 다양한 공정 스테이션들(105)의 관계를 나타내는 데이터를 포함하며, 이에 따라 공정 흐름(100) 내의 한 포인트로부터 다른 포인트에 이르기 위해 필요한 물질 이송들이 결정될 수 있다. 약속의 소스 위치, 목적지 위치 및 시작 시간에 기초하여, MAS(375)는 적절한 물질 이송들을 결정하고, LSA(605)의 카렌다(685) 상에 이동 약속들을 스케쥴한다.
도시된 실시예에서, MAS(375)는 이동 약속(들)을 "시간에 맞춰" 스케쥴한다. 전형적으로, LSA(605)는 현재의 공정 약속이 거의 완료될 때 MAS(375)를 호출한다. LSA(605)는 상기 설명한 바와 같이 "다음" 공정 약속(675)를 사전에 스케쥴하고, MAS(375)는 이러한 다음 공정 약속(675)(또는, 필요한 경우, 다음 공정 약속(675)과 관련된 캐리어 인 약속)을 행하는 데에 필요한 물질 이송들을 스케쥴한다.
현재 공정 약속이 완료되어, 공정된 로트(130)를 포트(140)로부터 얻은 후, MAS(375)는 즉시, 또는 적어도 적절히 실행가능하게 되자 마자 시작할 수 있도록 물질 이송을 스케쥴한다. 다른 로트들(130)이 공정 툴(115)의 포트(140)를 지연없이 이용할 수 있기 위해서는, 공정이 완료되자 마자 공정 툴(115)의 포트(140)로부터 로트(130)를 이송하는 것이 바람직하다. 주목할 사항으로서, 언로딩(unloading)을 필요로 하는 버퍼 공정 툴들(115)의 경우, MAS(375)는 공정 약속과 대조적으로, 캐리어 아웃 약속이 완료된 이후 시작하도록 물질 이송을 스케쥴한다.
하지만, 어떠한 상황들에서는, 목적지 위치로의 물질 이송들의 나머지가 지연되어, 후속 이벤트들에 의해 무효로 될 수 있는 가짜 이송(spurious transport)들을 피할 수 있다. 예를 들어, 이동 약속과 관련된 공정 약속은 취소될 수 있는 바, 이 경우 가능한 가장 빠른 시간에 물질 이송을 시작하는 것은 바람직하지 않다. 또한, 예를 들어 보다 높은 우선 순위의 로트가 포트를 급히 요구하는 경우, 포트 할당에 있어서의 유연성을 유지하기 위해서는 지연이 바람직할 수 있다. 또한, 포트는 비지(busy) 상태가 될 수 있으며, 이에 따라 그 포트가 클리어되기를 기다리기 위한 지연이 바람직할 수 있다.
주목할 사항으로서, 상기에서 언급한 바와 같이, 어떠한 타입의 공정 툴들(115)은 "로딩" 및 "언로딩"을 요구한다. 이러한 공정들은 "캐리어 인" 및 "캐리어 아웃"이라고도 불린다. 즉, 로트들(130)은 이들이 도달할 때 그리고 공정 이전에 공정 툴(115) 상에 로드될 필요가 있다. 전형적으로, 이들은 또한 공정이 완료된 이후 언로드될 필요가 있다. 따라서, 이러한 환경에서 MAS(375)는, 공정 이전에, 로트들(130)이 로드되어야 할 공정 툴(115)에 "시간에 맞춰" 도달하도록, 물질 이송들을 스케쥴한다. 캐리어 인 약속 및 캐리어 아웃 약속은 MSA(610)로부터 LSA(605)로의 비드 확인 메세지(665) 내에 공정 약속과 함께 리턴된다. MSA(610)가 이러한 약속들을 리턴시키기 전에, 이 MSA(610)는 툴 로딩 자원을 대신하는 RSA(미도시)와 협상을 할 필요가 있다. 이러한 협상은 LSA(605)와 MSA(610) 간에서 상기의 도 6에서 설명한 방식과 유사하게 수행된다.
따라서, LSA(605)와 MSA(610) 간의 협상에 있어서, MSA(610)는 공정 약속(675) 뿐 아니라, 요구될 수 있는 임의의 관련된 캐리어 인/캐리어 아웃 약속들을 포함한다. LSA(605) 및 RSA는 실제로 자신들의 각각의 카렌다들 상에, 툴 로딩 자원(미도시) 및 로트(130)에 대한 캐리어 인/캐리어 아웃 약속들(미도시)을 각각 스케쥴한다. 따라서, 공정 툴(115)이 로딩을 요구하는 경우, MAS(375)는 공정 보다는 로딩을 위해 로트(130)가 적시에 도달할 수 있도록 이동 약속들을 스케쥴한다.
본 특정 실시예에서의 이동 약속들은 비교적 미세하게 단계적으로 나누어져 있고, 즉 그 입도(granularity)는 비교적 미세하다. 예를 들어, 구현에 따라, 도 1의 제 1 공정 툴(115)로부터 제 2 공정 툴(115)로의 물질 이송은 포트(140)로부터 제 1 공정 툴(115)에 가장 가까운 소스 스토커(155a)로의 물질 이송, 소스 스토커(155a)로부터 목적지 스토커(155b)로의 물질 이송, 및 목적지 스토커(155b)로부터 제 2 공정 툴(115)의 포트(145)로의 물질 이송을 포함한다. 주목할 사항으로서, 전형적으로 데이터 스토어(690)의 정보로부터 결정되는 바와 같이, 소스 스토커(155a) 및 목적지 스토커(155b)는 각각 소스 위치 및 목적지 위치에 대해 이용가능한 가장 가까운 스토커이다. 하지만, 도시된 실시예에서, 이동 약속들은 소스 위치(예를 들어, 포트(140))로부터 목적지 위치(예를 들어, 포트(145))로, 또는 그 목적지 위치에 가장 가까운 공정 자원(예를 들어, 언더 트랙 스토리지)로 스케쥴된다. 이동 약속들이 목적지 위치 또는 그 목적지에 가장 가까운 공정 자원으로 바로 가느냐의 여부는, 시간(예를 들어, 현재 시간, 다음 공정 약속 시작 시간), 이송 지속 기간 및 포트 이용가능성 등의 다수의 실행 특정의 요인들에 달려있다.
이러한 환경에서, 포트(140)는 "소스 위치"로 고려될 수 있고, 포트(145)는 "목적지 위치"로 고려될 수 있는 바, 예약된 공정 약속을 충족시키기 위해서는 이들로/이들로부터 로트들(130)이 이송될 필요가 있다. 소스 위치 및 목적지 위치는 공정 흐름(100) 또는 AMHS(138)의 임의의 컴포넌트가 될 수 있다. 따라서, 공정 툴 포트들(140, 145) 대신, 예를 들어 스토커들, 웨이퍼 분류기들, 언더 트랙 스토리지 및 WIP 랙들과 같은 도시되지 않는 임의 수의 취급 컴포넌트들이 있다. 이러한 레벨의 입도는 MAS(375)의 임의의 소정 구현이 데이터 스토어(690)에서의 AMHS(138)의 기술(description)에 의존하게 한다.
일단 (도 2의 203에서) 물질 이송이 스케쥴되면, LSA(605)는 (도 2의 206에서) 물질 이송의 소정 시간 이전에 그 물질 이송을 위한 이송 수단(예를 들어, 도 1의 이송 수단(160))의 스테이징을 요청한다. 도 5에 나타낸 카렌다(500)의 약속(APP1)이 도 1에 나타낸 제 1 공정 툴(115) 상에서 현재 활발하게 처리되고 있다고 가정하자. 이 약속(APP1)은 스케쥴된 종료 시간을 갖는 바, 이것은 제시된 공정 동작이 언제 끝날지에 대한 어느 정도의 보장을 제공한다. 도 1에 나타낸 바와 같이 포트(140)로부터 처리된 로트(130)를 출력하여 약속(APP1)이 종료되는 약속의 시간과 동시에, 후속의 이동 약속(M2)이 시작하도록 스케쥴된다.
약속(APP1)이 예약될 때, LSA(605)는 그 공정 약속(APP1)의 종료의 소정의 시간 주기 이전에 알람(697)을 설정한다. 주목할 사항으로서, 공정 약속(APP1)의 끝은 이동 약속(M2)의 시작과 동일하다. 도시된 실시예에서, 소정의 시간 주기는 전형적인 시간 측정(time measure), 즉 분 및 초로 정의된다. 소정 시간은 데이터 스토어(690)에 상주하는 공장 메트릭(metric)으로부터 계산 또는 검색된다. 어떠한 실시예들에서, 데이터 스토어(690)에 상주하는 하나의 메트릭은 공정 흐름(100) 내의 다수의 소정의 포인트들 각각에 이송 수단(160)을 스테이징하는 데에 걸리는 추정 시간이다.
주목할 사항으로서, 스토리지(690) 내에 상주하는 메트릭은 소정 시간의 실제 측정이 아닐 수 있다. 예를 들어, 메트릭이 공정 흐름(100) 내의 특정의 목적지 공정 툴(115)에 이송 수단(160)을 스테이징하는 데에 걸리는 시간의 측정이라고 가정하다. 소정의 실시예가 스케쥴된 물질 이송을 위해 시간에 맞춰 도달하도록 이송 수단(160)을 스테이징하는 경우, 소정 시간은 검색된 메트릭으로 설정된다. 하지만, 일부 실시예들은 물질 이송의 개시 이전의 시간에 도달하도록 이송 수단(160)을 스테이징하기를 원할 수 있다. 일 실시예는 이송 수단(160)이 물질 이송의 개시를 위해 35초를 기다리기를 원할 수 있다. 이렇게 되면, 소정 시간은 검색되는 메트릭 +35초로 설정된다.
주목할 사항으로서, 어떠한 실시예들은 소정의 시간 주기를 종래와 다른 기준으로 정의할 수 있다. 예를 들어, 도시된 실시예는 약속들에 대해 다양한 "상태들"을 할당한다. 약속(APP1) 등의 공정 약속은 "액티브(active)" 상태로부터 "거의 완료(near complete)" 상태로의 천이를 포함한다. 예를 들어, 15분 공정 동작은 그것이 시작할 때에 "액티브"로 천이되고, 동작이 13 분을 마크할 때에 "거의 완료"로 천이된다. 천이 포인트(transition point)는 공정 동작의 함수가 될 것이다. 하지만, 제시의 목적으로, 소정의 시간 주기는 공정 동작이 "액티브"로부터 "거의 완료"로 천이되는 때로서 정의된다.
일단 알람(697)이 발하게 되면(fire), 즉 울리게 되면, LSA(605)로 하여금 이동 약속(M2)을 개시하게 한다. LSA(605)는 AMHS(138)에 메세지(699)를 전송하여, AMHS(148)에게 이동 약속(M2)이 시작하게 될 시간을 통지한다. 이동을 요청하는 메세지(699)는 이동 약속에 대한 시작 시간 뿐 아니라, 이동되어야 하는 물질의 신원(identification), 이송을 위한 소스 위치 및 이송을 위한 목적지 위치를 포함한다. 메세지(699)를 수신하면, AMHS(138)는 이송 수단(160)을 스테이징한다. 따라서, 상기 설명한 바와 같이 소정의 시간 주기에 전송된 메세지(699)는 또한 이송 수단(160)을 스테이징하기 위한 요청으로서 기능한다. 대안적으로 설명하여, AMHS(138)는 메세지(699)로부터 스테이징 요청을 추론(infer)하고, 메세지(699)는 이송 수단(160)을 스테이징하기 위한 암시적 요청(implied request)을 구성한다.
따라서, 본 실시예에서, LSA(605)는 메세지(699)를 통해 AMHS(138)에게 물질 이송을 개시할 것을 통지함으로써, (도 2의 206에서) 이송 수단의 스테이징을 요청한다. 이에 따라, 본 특정 실시예는 (도 2의 206에서) 이송 수단의 스테이징을 물질 이송의 일부로 고려한다. 하지만, 주목할 사항으로서, 본 발명은 오직 이것으로만 한정되지 않는다. 대안적인 실시예들에서, LSA(605)는, 예를 들어 (도 2의 206에서) 이송 수단의 스테이징을 위해 명시적인 요청(express request)(미도시)을 전송하기 위한 목적으로만 알람을 설정할 수 있다. 이는 또한 AMHS(138)에 의해, 물질 이송을 개시하기 위한 통지로서 해석될 수 있다. 또는, 대안적으로는, LSA(605)는 AMHS(138)에게 (도 2의 206에서) 스테이징을 요청할 것을 통지하는 메세지(699) 및 물질 이송을 개시하기 위한 개별적인 요청(미도시)을 전송할 수 있다. 주목할 사항으로서, 후자의 2개의 방식중 어느 하나에 있어서, (도 2의 206에서) 이송 수단을 스테이징하기 위한 시간은 알람(697)이 울리는 시간과 일치한다. 즉, LSA(605)는 물질 이송이 일어나도록 스케쥴되기 전의 소정의 시간 주기에 알람(697)을 발하도록 설정할 수 있다.
상기 설명한 바와 같이, 도시된 실시예는 물질 이송을 위해 "시간에 맞춰" 도달하도록 (도 2의 206에서) 이송 수단을 스테이징하며, 그에 따라 이송 수단은 로트(130)가 실제 이송 준비가 될 때를 기다린다. 대안적인 실시예들은 이송 수단이 실제 이송을 위해 도달하고 로트(130)를 기다릴 수 있도록 타이밍에 있어서 추가의 마진(extra margin)을 제공할 수 있다. 이러한 마진은 스테이징 동안 발생하는 예기치않은 지연을 오프셋시키는 것이 바람직하다. 또한, 로트(130)가 다음 공정 동작에 대해 최대의 대기(queue) 타임을 갖는 경우에는, 최대의 대기 타임 위반을 막기 위해 추가의 마진이 바람직하다. 이후, 통상의 방식으로 물질 이송이 실행될 수 있다.
도시된 실시예에서, 약속을 스케쥴링하는 것은 예약된 약속들을 관리하는 것을 포함한다. 이전에 언급한 바와 같이, LSA(605)는 또한 "반응적 스케쥴링"을 위해 MAS(375)를 호출한다. 예약된 약속들은 새로운 약속들의 스케쥴링을 수용하고 예기치 않은 발생에 대해 조정되도록 변형되고, MAS(375)는 그에 따라 이러한 이벤트들에 반응한다. 예약된 공정 약속들은 시프트되고, 충돌(bump)하고, 취소되고, 다시 스케쥴될 수 있다. 이러한 것들이 일어나게 하는 어떠한 이벤트들은 예측되지 않는다. 예를 들어, 웨이퍼 기반의 머신은 다운되도록 스케쥴되지 않는 상태로 다운될 수 있다. 이러한 공정 툴(115)은 다수의 웨이퍼들(135)을 처리하는 중에 다운되어, 이러한 웨이퍼들 모두를 공정 툴(115) 상에 남긴 상태로, 웨이퍼들중 일부는 처리되고, 일부는 처리되지 않을 수 있다. 로트(130)에 대한 MAS(375)는 각 LSA(605)들에 의한 호출시 적절한 물질 이송들을 스케쥴할 수 있어야 한다.
다른 예로서, 예약된 공정 약속들은 시프트될 수 있는 바, 이에 의해 예약된 이동 약속들이 시프트될 수 있게 된다. 상기 언급한 바와 같이, 각 공정 약속은 "커미트먼트 윈도우"를 포함한다. 커미트먼트 윈도우는 이 MSA(610)에게, MSA(610)가 다양한 약속들 또는 설비 상태에 있어서의 변경에 반응하여 스케쥴을 "최적화"할 수 있게 하는 유연성을 제공한다. 공정 약속들은 "스트링 상의 유리알(beads on a string)"처럼 이동하는 것으로 보여진다. 기존의 공정 약속들은, 보다 효율적인 스케쥴을 생성하기 위해 필요할 때, 자신들의 각각의 커미트먼트 윈도우들 내에서 시간적으로 뒤로 또는 앞으로 이동할 수 있게 된다. 도시된 실시예에서는, 논리를 단순화하기 위해, 약속들은 어느 방향으로든 다음 약속을 지나 시프되도록 허용되지 않는다.
예를 들어, 공정 약속은, 이전의 공정 약속이 일찍 완료된 경우, 자신의 커미트먼트 윈도우 내에서 보다 이른 시간으로 시프트될 수 있다. 유사하게, 이전의 공정 약속이 너무 오래 실행되는 경우에는, 시간적으로 보다 뒤로 시프트될 수 있다. 어느 상황이든, 영향을 받는 로트들(130)에 대한 LSA(605)들은, MSA(610)들에 의해, 예약된 공정 약속이 변경되었음을 통지받는다. 예약된 공정 약속에 대한 시작 시간과 종료 시간 간의 차이는 스케쥴된 물질 이송들의 적절성을 변경할 수 있다. 예를 들어, 예약된 공정 약속이 보다 이른 시작 시간으로 이동하는 경우, 로트(130)는 현재 스케쥴된 물질 이송들에 의해 제공되는 것보다 이르게 도달할 수 있다. 역으로, 보다 늦은 시작 시간은 로트(130)가 보다 늦게 이송해야 함을 의미한다. 어느 상황이든, 로트(130)에 대해 정확한 도달 시간을 달성하기 위해서는 서로 다른 물질 이송들이 적절하다. 이러한 상황들에서, 이동 약속들은 관련된 공정 약속에 있어서의 시프트에 응답하여 시프트될 수 있다. 주목할 사항으로서, 자신의 목적지 위치에 도달할 수 있도록, 다수의 이동 약속들이 로트(130)에 대해 스케쥴될 수 있다. 결과적으로, 어떠한 상황들에서는 시프트될 복수의 이동 약속들이 존재할 수 있다.
약속 상태 변경을 수신하면, LSA(605)는 특히, MAS(375)를 호출하고, 변경된 공정 약속에 대한 새로운 정보를 전달한다. 변경되는 공정 약속이 다음 공정 약속인 경우, MAS(375)는 데이터 스토어(690)로부터 로트(130)에 대한 현재 위치를 검색한다. 변경되는 공정 약속이 미래의 1개 이상의 공정 동작인 경우, MAS(375)는 이전의 이동 약속(들) 이전의 로트(130)의 계획된 위치를 검색한다. 이러한 검색은, 예를 들어 임의의 액티브한 이동 약속에 대한 도달 시간 및 목적지의 검색을 포함한다. MAS(375)는 LSA(605)에 대한 카렌다(385)를 관찰하여, 어떤 이동 약속들이 예약되고, 예약된 약속들중 어느 것이 액티브한 지를 결정한다. 이후, MAS(375)는 임의의 이동 약속들이 액티브한지에 따라, 그리고 임의의 이동 약속이 액티브한 경우에는, 이동이 시작되었는 지에 따라 동작한다.
변경이 이루어질 필요가 있다고 가정하여, 예약된 이동 약속이 액티브하지 않은 경우, MAS(375)는 그것을 시프트시키거나 취소하고, 다른 약속을 스케쥴할 수 있다. 예약된 이동 약속이 액티브하지만, 물질 이송 자체가 아직 시작되지 않은 경우, 예약된 이동 약속은 취소될 수 있고, 보다 적절한 새로운 이동 약속이 스케쥴된다. 예약된 이동 약속이 액티브하고, 물질 이송 자체가 실제로 이미 시작된 경우, LSA(605)는 몇 개의 시도들중 하나를 취할 수 있다. LSA(605)는 액티브한 이동 약속에 있어서의 물질 이송이 끝나기를 기다린 다음, 새로운 공정 약속 시작 시간에 새로운 목적지에 대해 새로운 이동 약속들을 예약한다. 그렇지 않으면, LSA(605)는 AMHS(138)에게 새로운 목적지 및 새로운 도달 시간을 통지함으로써 현재의 이동 약속들을 변경할 수 있다. 그렇지 않으면, LSA(605)는 AMHS(138)에게 현재의 이동 약속을 도중에 중지할 것을 통지한 다음, 새로운 목적지에 대한 새로운 약속들을 새로운 공정 약속 시작 시간에 의해 예약할 수 있다. 어느 정도는, 이러한 종류의 옵션들 간의 선택은 AMHS(138)의 특정 구현의 성능에 의존한다.
또한, 약속들은 자신들의 지속 기간, 또는 자신 바로 이전 약속의 지속 기간이 예측되는 것 보다 길 때에 변경되는 것이 일반적이다. LSA(605) 및 MSA(610)에 의해 만들어진 약속들이 액티브할 때, LSA(605) 및 MSA(610)는 "알람"(미도시)을 설정하는 바, 이 알람은 이들에게 약속이 언제 완료되도록 스케쥴되는 지를 통지한다. 작업이 완료되면, 스케쥴링 에이전트들(605, 610)에게 통지되고, 이러한 알람은 턴오프된다. 알람이 오프가 되면, 스케쥴링 에이전트들(605, 610)은 약속이 적시에 완료되지 않았으며, 스케쥴이 조정될 필요가 있다는 것을 알게 된다. 도 5는 이러한 하나의 상황을 도시한다. 보다 특정하게는, 도 5에서, 이동 약속(M1)은 예측했던 것 보다 긴 지속 기간을 가지며, 이에 따라 이러한 보다 긴 지속 기간을 수용하기 위해 이동 약속(M2) 및 약속(APP1)이 시간적으로 뒤로 시프트되었다. 어느 경우이든, 공정이 기대했던 지속 기간 보다 길다는 것은, LSA(605)가 이동 약속(M1)을 확장하기 위해 MAS(375)를 호출한다는 것을 의미한다. 필요한 경우, MAS(375)는 다른 이동 약속들을 시프트하고, 취소하고, 다시 스케쥴한다.
바로 위에서 언급한 바와 같이, 예약된 약속들은 완전히 취소될 수 있다. LSA(605)는 MSA(610)로부터 상태 변경 메세지를 수신할 수 있는 바, 이 메세지는, 예를 들어 공정 툴(115)이 예약된 약속을 스케쥴된 커미트먼트 윈도우 내에서 더 이상 충족시킬 수 없는 경우, 공정 약속이 이미 취소되었음을 나타낸다. LSA(605)가 상태 변경 메세지를 수신하면, 취소된 약속을 자신의 카렌다(685)로부터 제거하고, 재스케쥴링을 시작한다. MAS(375)는 관련된 이동 약속들도 제거하고, 취소된 공정 약속을 재스케쥴링함에 있어서 자신의 역할을 시작한다.
주목할 사항으로서, 예약된 약속들이 스프트되고, 취소되고, 재스케쥴링될 때, 변경들은 공정 흐름, 특히 카렌다들에 영향을 미칠 수 있다. 변경들은 단일의 소프트웨어 에이전트(365)에 의해 만들어지지만, 변경된 약속은 약속의 타입에 따라 다수의 카렌다들 상에 예약될 수 있다. 예를 들어, 도시된 실시예에서, 공정 약속(675)은 LSA(605)에 의해 유지되는 카렌다(685) 및 MSA(610)에 의해 유지되는 카렌다(670) 상에 모두 예약된다. 하지만, 이동 약속들은 LSA(605)에 의해 유지되는 카렌다(685) 상에만 나타난다. 다수의 카렌다들 상에 예약되는 약속들에 대해, 변경들은 결과적으로 다른 소프트웨어 에이전트들에게 전달되며, 이러한 소프트웨어 에이전트들은 자신들의 카렌다들을 각각 갱신할 수 있게 된다. 이것은 공정 흐름 내의 다른 타입의 이벤트들에 대해서도 마찬가지이다.
이 때문에, 소프트웨어 에이전트들은 "통지기들(notifiers)" 및 "청취기들(listeners)"로서 알려져있는 부가적인 소프트웨어 컴포넌트들(미도시)을 이용한다. 소프트웨어 에이전트들은 자신들의 스케쥴링에 영향을 줄 수 있는 공정 흐름 내의 이벤트들을 추적하기 위해 청취기들을 이용한다. 이러한 청취기들은 설비 내의 화제(topic)들 또는 이벤트들에 "가입(subscribe)"한다. 통지기들은 설비 내에서 변경들이 발생할 때에 이벤트들을 "발행"한다. 또한, 청취기들은 각각의 가입 소프트웨어 에이전트(365)에게, 대상으로 되는 이벤트가 통지기에 의해 언제 발행되는 지를 통지한다. 선택된 이벤트들의 아이덴티티는 구현 마다 특정하지만, 약속 변경들은 대부분의 실시예들에서 이용되는 하나의 명백한 예이다. 다른 소프트웨어 에이전트들(365)에 의해 변경이 만들어질 때, 다양한 소프트웨어 에이전트들은 자신들의 카렌다들을 갱신하여 유지할 수 있게 된다. 데이터 스토어(690) 역시 다수의 청취기들을 이용하여, 그 상태를 변경하는 설비 내의 이벤트들에 대해 정보를 통지받을 수 있게 된다. 이에 따라, 통지기들 및 청취기들 역시 데이터 스토어(690)를 갱신하며, 이에 따라 설비 및 설비 제어 시스템의 상태는, MAS(375)가 데이터 스토어(690)를 액세스하여, 이송될 필요가 있는 로트(130)에 대한 위치 및 적절한 물질 이송들을 결정할 때에 정확히 반영된다.
"반응적 스케쥴링"에 있어서 통지기들 및 청취기들의 유용성에 부가하여, 이러한 통지기들 및 청취기들을 통해 설비 상태를 유지 및 갱신할 수 있는 데이터 스토어(690)의 능력은 "초기 스케쥴링"에 특히 유용하다. 공정 흐름(100)이 다운된 이후 복귀될 때, 소프트웨어 에이전트들(365)은 자신들을 적응시키고, (적용가능한 경우) 자신들의 제조 도메인 엔티티가 어디에 있는 지와, 자신들의 제조 도메인 엔티티의 상태와, 그리고 자신들이 무엇을 스케쥴할 필요가 있는 지를 결정할 필요가 있다. 이러한 모든 정보는 데이터 스토어(690) 내에 유지되며, 바로 위에서 설명한 통지기들 및 청취기들의 네트워크에 의해 최신으로 유지된다. 예를 들어, LSA(605)는 데이터 스토어(690)를 액세스하여, 공정 흐름 내의 어디에 자신의 로트(130)가 있는 지를 결정한다. 초기 스케쥴링 동안, LSA(605)는 어떠한 액티비티가 진행중이었는 지의 여부를 발견하고, 그 액티비티를 완료하는 데에 필요한 약속들을 스케쥴한다. 로트(130)가 이송될 필요가 있는 경우, LSA(605)는 MAS(375)를 호출하여, 일반적인 스케쥴링에 대해 상기 설명한 바와 같이 원하는 물질 이송들을 스케쥴한다. 로트(130)가 초기화 동안 이송중이었을 경우, MAS(375)는 진행중인 이동을 완료하기 위해 이동을 스케쥴할 수 있다.
상기 설명은 소프트웨어 에이전트들(365)의 스케쥴링 성능에 관련된 것이다. 스케쥴링에 부가하여, 소프트웨어 에이전트들(365)은 또한 스케쥴된 액티비티들의 실행을 개시한다. 예를 들어, 스케쥴된 작업이 실행되고 있을 때, 스케쥴링 에이전트, 예를 들어 LSA(605) 그리고/또는 MSA(610)는 설비 상태 변경 이벤트들에 가입하여, 이들을 모니터한다. 또한, 대응하는 약속을 갖는 에이전트가 실제로 약속 상태 변경의 개시를 담당한다는 사실로 인하여, 스케쥴링 에이전트는 약속 상태 변경 이벤트들을 모니터한다. 이러한 모니터링은, 스케쥴링에 또한 이용될 수 있는 상기 설명한 통지기들 및 청취기들의 웹(web)을 통해 수행된다. 이하, 약속들이 어떻게 활성화되고, 진행이 어떻게 모니터되고, 약속 상태들이 어떻게 천이되고, 스케쥴된 작업에 대해 공정이 어떻게 개시되는 지를 설명하는 하나의 예를 제시한다.
예를 들어, 공정 약속이 실행되고 있는 경우, LSA(605)는 MSA(610)에 의해 개시되는 약속 상태 변경들을 수신함으로써 약속 상태들을 천이시킨다. MSA(610)는 약속 상태들을 천이시키기 위해 설비 상태 변경 이벤트들(즉, 공정이 시작되었거나 완료되었음을 나타내는 이벤트들)을 모니터한다. 스케쥴링 에이전트가 스케쥴된 작업이 완료되었음을 검출하면, 그 스케쥴링 에이전트는 에이전트의 카렌다의 관련된 약속의 상태를 갱신하고, 다른 기능들을 수행한다. 본 예에서, LSA(605)는 공정 약속이 완료되었음을 나타내는 약속 상태 변경 이벤트를 수신하고, 자신의 대응하는 공정 약속의 상태를 "완료(completed)" 상태로 갱신한다.
다음으로, 스케쥴링 에이전트는 자신의 카렌다 내에 스케쥴된 다음 약속을 식별한다. 예를 들어, LSA(605)는 공정 약속 바로 다음에 스케쥴되는 이동 약속을 가져야 한다. 본 예에서의 이동 약속은 로트(130) 상에서 공정을 수행하는 공정 툴(115)의 툴 포트(140)의 소스 위치를 갖고, 다음 공정 약속을 위한 공정 툴(115)의 포트(145)에 가장 가까운 공정 자원(150)의 목적지 위치를 갖는다고 가정하자. 주목할 사항으로서, 제 2 공정 툴(115)에 대한 공정 자원(150)의 관련(association)이 데이터 스토어(690)에 저장됨으로써, LSA(605) 및 다른 것들에 의해 쉽게 확인될 수 있다.
스케쥴링 에이전트는 다음 약속의 시작 시간을 얻는다. 다음 약속의 시작 시간에 도달하면, 스케쥴링 에이전트는 그 약속을 개시하는 것을 포함하여 (하기 설명되는) 다수의 기능들을 수행한다. 예에서는, 다음 이동 약속에 대한 시간에 이미 도달된다. 그에 따라, MAS(375)는 이동 약속의 상태를 "액티브"로 변경하고, 그것의 각 로트 공정 에이전트("LPA")(695)에게 이동 약속과 관련된 작업의 처리를 개시할 것을 통지한다. LSA(605)를 대신하여, MAS(375)는 또한 본 발명에 따라 상기 설명한 바와 같이, (도 2의 단계(206)에서) 이동 약속의 시작 시간 이전에, 그 이동 약속에 대한 이송 수단의 스테이징을 요청한다. 본 예에서, LPA(695)는 적절한 커맨드로 AMHS(138)에게 적절한 이송을 개시할 것을 요청한다.
LSA(605)는 다음으로 이동 약속의 스케쥴된 종료 시간에 알람("종료 시간 알람")이 울리도록 구성한다. 이러한 알람은 시스템의 알람 클럭(미도시)에 부가되어, 언제 물질 이송이 완료되어야 하는 지를 나타낸다. LSA(605)는 상기 설명한 바와 같이 가입자를 이용하여 설비 상태 변경 이벤트들을 모니터한다. 이동 약속들을 모니터하는 경우, 로트 위치에 있어서의 변경은 스케쥴된 물질 이송 작업의 진행을 나타낸다. 처음에, LSA(605)는 로트의 위치가 툴 포트(140)로부터 이송중인(즉, 천이 상태의) 위치로 변경되었음을 나타내는 설비 변경 이벤트를 수신해야 한다. 이러한 변경은 AMHS(138)(또는 WFT(165))에 의해 개시되어, 로트(130)를 담고 있는 캐리어(미도시)를 툴 포트(140)로부터 제거한다. 이때, LSA(605)는 MAS(375)에게 이동 약속을 액티브 상태로부터 "공정" 상태로 천이시키도록 요청함으로써, 물질 이송이 진행중임을 나타낸다. 이러한 상태 변경과 관련된 작업들이 행동들의 개시를 요구하는 경우에는, 대응하는 LPA(695)에게 통지된다.
이후, LSA(605)는 로트의 위치가 이송중인 위치로부터 그 로트(130)를 처리한 공정 툴(115)에 가장 가까운 공정 자원(150)의 위치로 변경되었음을 나타내는 설비 변경 이벤트를 수신해야 한다. 이러한 변경 이벤트는, WIP 스토커의 입력 포트(미도시)에 캐리어가 도달했음을 AMHS(138)가 검출했을 때, 이 AMHS(138)로부터 개시된다. 이 시점에서, 로트(135)가 자신의 목적지 위치에 도달하면, MAS(375)는 이동 약속을 "공정" 상태로부터 "완료" 상태로 천이시킨다. 또한, 이러한 이벤트의 결과로서 공정이 수행되어야 하고, 물질 이송이 스케쥴된 것 보다 빨리 완료될 때 (이전에 설정된) 종료 시간 알람이 제거되는 경우, LPA(695)에게 통지된다.
이동 약속의 완료에 의해, LSA(605)는 자신의 카렌다(685) 상의 다음 약속을 찾고자 시도한다. 다음 약속은 이동 약속이라고 가정하자. 이 약속에 대한 소스 위치는 공정 자원(150) 위치이고, 목적지 위치는 이후의 공정 약속을 수행하게 될 공정 툴(115)에 가장 가까운 WIP 스토커(155)이다. 본 예에서, 이러한 이동 약속의 시작 시간은 미래에 있다. 결과로서, LSA(605)는 이동 약속을 개시하기 위한 시간에 알람("시작 시간 알람")이 울리도록 구성한다. 주목할 사항으로서, 알람은 실제로 스케쥴된 이동 약속 시작 시간 이전의 시간에 대해 설정된다. 이러한 알람은 시스템의 알람 클럭에 부가된다.
알람이 울리게 되면, 이 알람은 LSA(605)를 다시 호출한다. LSA(605)는 특히 MAS(375)에게 이동 약속의 상태를 "액티브"로 변경할 것을 요청한다. 또한, LSA(605)는 자신의 각각의 LPA(695)에게 약속의 처리를 개시할 것을 통지한다. LPA(695)는 AMHS(138)에게 적절한 커맨드를 보냄으로써, 본 발명에 따라, 도 2의 방법(200)의 이용을 포함하여, 웨이퍼(135)가 취급되는 캐리어의 이동을 개시한다. LSA(605)는 또한 종료 시간 알람도 구성한다. 이후, LSA(605)는 로트의 위치가 소스 공정 자원(150)으로부터 이송중인 위치로 변경되었음을 나타내는 설비 변경 이벤트를 수신한다. 이러한 이벤트는 로트에 대한 캐리어가 공정 자원(150)을 떠나는 것을 AMHS(138)가 검출하는 것으로부터 비롯된다.
LSA(605)는 MAS(375)에게 이동 약속을 "액티브" 상태로부터 "공정 상태"로 변경하도록 요청하고, 이 단계에서 공정이 요구되는 경우에는 LPA(695)에게 요청한다. 종료 시간 알람은 LSA(605)가 이후의 로트 위치 변경 이벤트를 수신하기 전에 울리는 것으로 가정하자. 이것은 이동 약속이 도 5에 나타낸 것과 유사한 상황에서 스케쥴된 지속 기간을 초과하여 진행되고 있음을 나타낸다. MAS(375)는 약속에 대한 새로운 종료 시간을 계산하고, 요구되는 경우 이후의 약속들을 시간적으로 뒤로 시프트시키고, 이동 약속들의 종료 시간을 수정하고, 확장된 이동 약속을 반영하기 위해 새로운 종료 시간 알람을 설정한다.
이후, LSA(605)는 로트의 위치가 이송중인 위치로부터 목적지 WIP 스토커(155)로 변경되었음을 나타내는 설비 변경 이벤트를 수신한다. 이 이벤트는 캐리어가 목적지 WIP 스토커(155)의 입력 포트(미도시)에 도달하는 것을 AMHS(138)가 검출하는 것으로부터 비롯된다. MAS(375)는 이동 약속을 "완료" 상태로 천이시키고, 가능한 공정을 위해 LPA(694)를 개시한다. 이러한 주기는 설비 상태 변경들, 알람의 울림 및 이후의 스케쥴된 약속들에 대한 약속 상태 변경들에 반응하여 반복된다.
이전에 논의되지 않은 본 발명의 일 양상은 포트 관리이다. 도 1을 참조하여, 상기에서 언급했던 바와 같이, 로트들(130)은 포트들, 예를 들어 포트들(140, 145)을 통해 공정 툴들(115)에 들어오고 빠져나간다. 도 6에 나타낸 MSA(610)는 자신의 포트들의 관리를 돕기 위해, 도 3 및 도 6 모두에 나타낸 "포트 관리자"("PtM")(377)라 불리는 헬퍼-클래스 객체를 호출한다. PtM(377)은 특히 각각의 공정 툴(115)에 대한 포트들의 이용 및 이용가능성을 추적한다. PtM(377)은 또한 상기 설명한 바와 같이 스케쥴링 과정 동안 이러한 정보를 MSA(610)에게 제공한다. 이러한 방식으로, MSA(610)는 일반적으로 LSA(605)가 반응하는 포트 이용가능 시간 및 목적지들로서의 포트들을 설정한다. 따라서, 이동 약속들(예를 들어, 도 4에 나타낸 이동 약속들(M1-M6))은 로트들(130)을 도 1에 나타낸 개별적인 포트들(140, 145) 위로 이동하도록 그리고 이러한 포트들로부터 이동하도록 스케쥴할 수 있다.
MSA(610)가 LSA(605)의 스케쥴링에 영향을 주는 것은 이러한 포트 관리를 통해서이다. 특히, PtM(377)은 특정의 포트가 이용가능하게 되는 때를 결정한다. MSA(610)는 PtM(377)로부터 이러한 정보를 얻은 다음, 도 6과 관련하여 설명된 비딩 프로세스(bidding process) 동안 LSA(605)에 제시되는 비드들(660) 내에 넣는다. 따라서, 각 비드(660)는 PtM(377)에 의해 결정되는 포트 할당 및 포트 이용가능 시간에서의 정보를 포함한다. LSA(605)가 비드(660)를 받을 때, 이는 또한 로트(130)를 할당된 포트에 (이 포트가 이용가능한 시간에, 또는 그 시간에 가까운 가능한 시간에) 이르게 하는 데에 필요한 이동 약속들을 MAS(375)를 통해 스케쥴한다. 결과적으로, MAS(375)가 로트(130)를 대신하여 스케쥴하지 않음에도 불구하고, PtM(377)의 동작을 통해 로트(130)를 대신하여 스케쥴링에 큰 영향을 준다.
스케쥴된 이동 약속들은 도 3 및 도 6에 모두 나타낸 물질 제어 시스템("MCS")(380)으로서 알려져있는 AMHS(138)의 일부에 의해 개시되어 실행된다. 이전의 구현들에 있어서, MCS(380)는 어떠한 다른 이동들이 스케쥴되었거나 진행중이라는 것에 대한 고려없이, 포트에 대해 한번에 하나의 이동을 실행한다. 따라서, 어떠한 경우들에서는, 어떠한 포트에 대한 이동이 실행되고 있을 때, 그 포트는 점유되거나, 그렇지 않으면 이용가능하지 않기 때문에, 문제가 발생한다.
예를 들어, MCS(380)가 어떠한 포트에 대한 하나의 로트(130)의 이동을 실행함에 있어서, 이러한 이동이 그 포트로부터 다른 포트로 로트(130)의 이동을 실행하기 전에 수행될 때에는, 그 포트가 여전히 점유되고 있기 때문에, 종종 문제가 발생한다. MCS(380)는 2개의 이동이 실행되는 순서를 고려하지 않는다. MCS(380)는 하나의 이동 명령이 다른 이동 명령과 인터페이스되는지에 관계없이, 어느 것이든 다음 이동 명령 만을 실행한다. 이것이 일어나는 경우, MCS(380)는, 예를 들어 포트가 이용가능한지의 여부를 확인하기 위해 한번 상태 체크(loop around)를 하거나, 또는 로트(130)를 UTS로 이송할 것을 지시받는다. 어느 쪽이든, 관련된 공정 약속이 지연되거나 취소됨으로써, 스케쥴된 다른 약속들에 영향을 주고, 로트들(130)을 처리하는 데에 필요한 스케쥴링 액티비티의 레벨을 증가시킬 수 있다.
이러한 경우들의 발생은 특정의 포트와 관련된 스케줄된 이동들 간에 어떠한 최소의 지연을 부과함으로써 줄일 수 있다. 이러한 지연은 상기 설명한 이동 약속들의 스케쥴링 동안 부과될 수 있는데, 그 이유는 공정 약속들 및 이동 약속들에 대한 비드들이 포트 속성 및 포트 이용가능 시간 속성을 포함하기 때문이다. 지연은, 포트로부터의 이동에 의해 그 포트가 그 포트 상으로의 이동에 대해 이용가능해지게 하는 충분한 지속 기간을 가져야 한다. 이러한 지연이 임의의 소정의 경우에 대해서는 비교적 작을 수 있지만, 공정 흐름에 있어서 누적되는 지연은 꽤 클 수 있다.
도시된 실시예들은 이러한 상황들을 다루기 위해 1개 또는 복수의 메커니즘들을 이용할 수 있다. 첫 번째로, MCS(380)는 소정의 포트에 대한 이동들의 "순서"를 추적함으로써, 그 포트로부터의 이동이 그 포트 상으로의 이동 이전에 수행될 수 있게 한다. 두 번째로, 어떠한 포트가 다른 것에 비해 가득 차고(full), 이용가능한 포트가 있는 경우, 동적 재할당(dynamic reallocation)을 행할 수 있다. 이러한 동적 재할당은 포트 관리자(377)에 의해 이루어지고, AMHS(138)에 신호로 알려질 수 있다. 그렇지 않으면, 할당된 포트가 가득 차 있다는 것을 알았을 때, AMHS(138)는 이용가능한 포트를 식별하기 위해 MSA(610)를 통해 포트 관리자(377)를 호출한 다음, 포트 관리자(377)에게 재할당을 신호한다. AMHS(138)는, 설비 상태를 포함하고 있는 데이터 스토어(690)(도 6에 도시함)를 액세스함으로써, 포트가 이용가능한 지의 여부를 결정할 수 있다. 그렇지 않으면, AMHS(138) 및 포트 관리자(377)는 어떠한 다른 방법으로 상호 작용하여, 이용가능한 포트에 대한 포트 할당을 동적으로 재할당한다. 이용가능한 포트가 없음으로 인해 동적 재할당이 실패하면, MCS(380)는, 예를 들어 포트가 이용가능하게 되는 지의 여부를 확인하기 위해 한번 상태 체크를 하거나, 로트(130)를 UTS로 이송하도록 지시받는다.
도시된 실시예에서, 본 발명은 객체 지향 프로그래밍(object oriented programming, "OOP") 기술을 이용하여 구현되지만, 본 발명은 객체 지향이 아닌 기술들을 이용해서도 구현될 수 있다. 소프트웨어 에이전트들(365)은 객체들로서 구현되고, 지능적이고 상태를 인식하며, 이들이 자발적으로 행동을 개시하여 달성하는 특정의 목적들을 갖는다. 이러한 행동은 스크립트(script) 기반이거나 룰(rule) 기반이 될 수 있다. 이러한 행동은, 할당된 로트 기일을 달성하는 것, 소정 레벨의 품질을 달성하는 것, 머신 이용을 최대화하는 것 및 기회적인 예비 정비를 스케쥴링하는 것 등의 선택된 목적들을 달성하도록 설계된다. MAS(375)는 또한 객체로서 구현되지만, "헬퍼" 클래스라 불리는 다른 클래스가 될 수 있다. 이 헬퍼 클래스는, 소프트웨어 에이전트들(365)인 다양한 객체들이 다양한 책임들을 위임하거나, 또는 공정 흐름(100)에 어떠한 유용한 서비스를 제공하는 객체들의 클래스이다. 상기 언급한 통지기들 및 청취기들 역시 헬퍼 클래스 객체들이다.
도시된 실시예는 OOP 환경에서 구현되기 때문에, MAS(375)는 다양한 "방법들"에 대한 호출을 통해 스케쥴링 기능을 구현한다. MAS(375)는, 그것이 일반적인 스케쥴링, 반응적 스케쥴링 또는 초기 스케쥴링에 대해 호출되고 있느냐에 따라, 서로 다른 방법들을 호출한다. 하지만, 본 발명은 이러한 구현으로만 제한되지 않는다. 대안적인 실시예들에서, MAS(375)에 귀착되는 기능은 헬퍼 객체에 위임되는 대신에, LSA(605) 내에 통합될 수 있다. 실제로, 이러한 기능은 OOP에 대한 대안의 기술들을 이용하여 구현될 수 있다. 본 발명은 이러한 양상의 구현으로 제한되지 않는다.
따라서, 상기 논의로부터 명백한 바와 같이, 본원의 상세한 설명의 일부분은 컴퓨팅 시스템 또는 컴퓨팅 장치의 메모리 내의 데이터 비트들에 대한 동작들의 심볼 표현을 필요로 하는 소프트웨어 구현 프로세스의 측면에서 제시되었다. 이러한 설명 및 표현들은 당업자들이 자신들의 작업 내용을 다른 당업자에게 가장 효율적으로 전달하기 위해 이용하는 수단이다. 프로세스 및 동작은 물리량들의 물리적인 처리를 필요로 한다. 대개, 반드시 그런 것은 아니지만, 이러한 물리량들은 저장, 전달, 결합, 비교되고, 다르게 처리될 수 있는 전기, 자기 또는 광학 신호들의 형태를 가질 수 있다. 주로 공통 이용을 위해, 이러한 신호들을 비트들, 값들, 요소들, 심볼들, 기호들, 용어들, 숫자들 등으로서 설명하는 것이 종종 편리하다는 것이 입증되었다.
하지만, 이들 및 유사한 용어들 모두는 적절한 물리량들과 관련되며 이러한 물리량들에 적용된 단지 편리한 라벨들일 뿐 이라는 것을 염두해야한다. 특별하게 지정하지 않는한, 그렇지 않으면 명백한 것으로서, 본 개시 전체를 통해, 이러한 설명들은 어떠한 전자 디바이스의 저장 장치 내에 물리(전기, 자기 또는 광학)량들로서 표현된 데이터를 처리하고, 저장 장치, 또는 전송 또는 디스플레이 디바이스들 내의 물리량들로서 유사하게 표현되는 다른 데이터로 변환하는 전자 디바이스의 실행 및 프로세스들을 나타낸다. 이러한 설명을 나타내는 용어들의 예로는, 한정하는 것은 아니지만, "프로세싱", "컴퓨팅", "계산(calculating)", "결정", "디스플레잉" 등이 있다.
하지만, 본 개시의 이득을 갖는 당업자에게 명백한 바와 같이, 상기 설명한 시스템의 모든 소프트웨어 컴포넌트들이 반드시 서로 직접 통신하는 것은 아니다. 예를 들어, 소프트웨어 에어전트들(365), 설비 제어 시스템들(예를 들어, AMHS(138)) 및 공정 툴들(115)은 서로 직접 통신할 수 없다. 이것은 이러한 타입의 시스템들에서 드문 일이 아니다. 이에 따라, 본 발명의 다양한 실시예들은 전형적으로 이러한 통신들을 촉진시키기 위해 통상의 실행에 따라 해석기들, 어댑터들, 및 인터페이스들을 이용한다. 예를 들어, 도시된 실시예에서, AMHS와의 통신은 AMHS 어댑터를 통해 수행되고, 공정 툴들(115)과의 통신은 "장비 인터페이스들"을 통해 수행된다. 이들은 소프트웨어로 구현되며, 하나의 소프트웨어 컴포넌트들의 언어로부터 다른 언어로의 "번역기"로서 작동한다.
주목할 사항으로서, 본 발명의 소프트웨어 구현 양상들은 전형적으로 어떠한 형태의 프로그램 저장 매체 상에 엔코드되거나, 어떠한 타입의 전송 매체 상에서 구현된다. 프로그램 저장 매체는 자기적(예를 들어, 플로피 디스크 또는 하드 디스크)이거나, 광학적(예를 들어, 컴팩 디스크 판독 전용 메모리 또는 "CD ROM")이 될 수 있고, 판독 전용이거나 임의 액세스될 수 있다. 유사하게, 전송 매체는 종래에 알려져있는 꼬임쌍 와이어, 동축 케이블, 광섬유, 또는 어떠한 다른 적절한 전송 매체가 될 수 있다. 본 발명은 이러한 양상의 임의의 소정의 구현에 의해 제한되지 않는다.
본 개시의 이득을 갖는 당업자에게 명백한 바와 같이, 다양한 양상들 및 실시예들에 있어서의 본 발명은 종래 기술에 비해 많은 장점들을 제공한다. 예를 들어, 어떠한 실시예들에 있어서, 목적지가 현재 점유되고 있다고 하더라도, 원하는 시작 시간에 이동을 개시할 수 있는데, 이는 그 이동이 완료되는 시간에 포트가 이용가능하게 될 것이기 때문이다. 종래의 시스템들은, 이동을 개시하거나 또는 심지어 이송 수단을 스테이징하기 전에, 목적지가 클리어될 때 까지 기다린다. OOP 구현 실시예들에서, 이동 이전에 스테이징 요청이 전송되는 소정의 시간은, 예를 들어 머신 타입 등에 의해 외부적으로 구성될 수 있다. 공정 약속에 대한 포트 이용가능성 역시 외부적으로 구성될 수 있다. 예를 들어, 로트들(130)을 매우 신속하게 처리하는 공정 툴(115)에 대한 포트 이용가능성은 외부적으로 구성될 수 있으며, 이에 따라 포트 이용가능성과 공정 약속의 시작 사이에는 단지 짧은 시간 만이 있게 된다. 역으로, 로트들(130)을 느리게 처리하는 공정 툴(115)은 포트 이용가능성과 공정 약속의 시작 시간 사이에 비교적 긴 기간을 갖는다. 본 발명의 일부 실시예들은 또한 포트 할당에 있어서 보다 큰 유연성을 제공한다. 일반적으로, 이러한 타입의 장점들 및 이득들은 본 발명이 실시되는 경우 전체적인 공정 지연들을 감소시킨다.
본 발명은 실시에 있어서 뿐 아니라, 응용에 있어서도 많은 변화를 가능하게 한다. 예를 들어, 물질은 로트들 이외의 다른 것(예를 들어, 레티클과 같은 공정 자원)이 될 수 있다. 웨이퍼 제조 공정은 보통 복수의 공정 툴들에 의해 동시에 공유되는 레티클들을 이용하는 공정 툴들을 포함한다. 레티클 관리 시스템은 이러한 레티클들의 이용, 위치 및 관리를 제어하고, 이를 행함에 있어서 본 발명을 이용한다. 하지만, AMHS는, 본 발명을 이용하여 이송할 수 있는 더미 웨이퍼들, 캐리어들 등과 같은 많은 타입의 공정 자원들을 관리한다. 실제로, 상기 언급한 바와 같이, 본 발명은 심지어 반도체 웨이퍼들 이외의 것을 제조하는 공정 흐름들에서도 이용될 수 있다.
이것으로 상세한 설명을 끝낸다. 상기 개시된 특정한 실시예들은 단지 예시적인 것으로서, 본 발명은 본원의 개시의 이득을 갖는 당업자들에게 명백한 다르지만 등가의 방법들로 변형 및 실행될 수 있다. 또한, 주목할 사항으로서, 다른 실시예들에서는, 논의되지 않은 추가의 변형들이 이용될 수 있다. 또한, 하기의 청구항들에 정의되는 것 외에는, 본원에 개시된 구성 또는 설계의 세부 사항들에 대한 어떠한 한정도 의도되지 않는다. 따라서, 상기 개시된 특정 실시예들은 변경 또는 수정될 수 있으며, 이러한 모든 변경들은 본 발명의 범위 및 정신 내에 있는 것으로 간주된다. 따라서, 본원이 보호를 받고자 하는 바는 하기의 청구항들에서 설명된다.

Claims (11)

  1. 이송 물질(transported material)을 수납하기 위한 포트들(145)을 갖는 복수의 공정 툴(115)이 구비된 자동화된 공정 흐름(100)에서 컴퓨터 장치에 의해 물질 이송을 스케쥴링하는 방법으로서,
    상기 컴퓨터 장치가:
    상기 공정 흐름(100)에서 상기 포트들(145) 중 제 1 포트로의 물질 이송(M1-M6)을 스케쥴링하는 단계와;
    상기 스케쥴링된 물질 이송(M1-M6)을 실행하는 단계와; 그리고
    상기 스케쥴링된 물질 이송(M1-M6)을 실행하는 동안, 포트 할당(assignment)을 상기 포트들(145) 중 상기 제 1 포트로부터 상기 포트들(145) 중 제 2 포트로 동적으로 재할당(reallocating)하는 단계를 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  2. 제 1 항에 있어서,
    상기 물질 이송(M1-M6)을 스케쥴링하는 단계는 상기 스케쥴링된 물질 이송(M1-M6)에 대한 약속을 변경하는 단계를 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  3. 제 1 항에 있어서,
    상기 스케쥴링된 물질 이송(M1-M6)을 실행하는 단계는, 상기 스케쥴링된 물질 이송(M1-M6)의 소정의 시간 주기 이전에 상기 스케쥴링된 물질 이송(M1-M6)을 위한 이송 수단(160)이 이송 대기 상태(staging)에 있도록 요구하는 단계를 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  4. 제 1 항에 있어서,
    상기 스케쥴링된 물질 이송(M1-M6)을 실행하는 단계는, 제 2 물질(130)을 상기 포트들(145) 중 상기 제 2 포트 상에 이송하기 이전에, 제 1 물질(130)이 상기 포트들(145) 중 상기 제 2 포트로부터 이송될 수 있도록 상기 물질 이송(M1-M6)의 순서를 추적하는 단계를 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  5. 제 1 항에 있어서,
    제안된 물질 이송(M1-M6)을 위한 포트 할당 및 포트 이용가능 시간을 결정하는 단계와; 그리고
    상기 스케쥴링에 이용하기 위해 상기 포트 할당 및 상기 포트 이용가능 시간을 제공하는 단계를 더 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  6. 제 1 항에 있어서,
    제 2 물질(130)이 포트(145) 상에 이송되기 이전에, 제 1 물질(130)이 상기 포트(145)로부터 이송될 수 있도록 물질 이송(M1-M6)의 순서를 추적하는 단계를 더 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  7. 이송 물질(transported material)을 수납하기 위한 포트들(145)을 갖는 복수의 공정 툴(115)이 구비된 자동화된 공정 흐름(100)에서 컴퓨터 장치에 의해 물질 이송을 스케쥴링하는 방법으로서,
    상기 컴퓨터 장치가:
    상기 포트들(145) 중 제 1 포트를 지정하는 포트 할당과 제안된 물질 이송(M1-M6)을 위한 포트 이용가능 시간을 결정하는 단계와;
    물질 이송(M1-M6)을 스케쥴링하는 데에 이용하기 위해 상기 포트 할당 및 상기 포트 이용가능 시간을 제공하는 단계와; 그리고
    상기 포트 이용가능 시간에 상기 할당된 포트(145)로의 전달을 위해 상기 공정 흐름(100)에서 상기 물질 이송(M1-M6)을 스케쥴링하는 단계를 포함하며, 상기 물질 이송(M1-M6)을 스케쥴링하는 단계는 장래 시점(future point in time)에서의 상기 물질 이송 (M1-M6)에 대한 약속을 스케쥴링하는 단계를 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 물질 이송(M1-M6)을 스케쥴링하는 단계는 상기 공정 흐름(100)의 상태들에 응답하여 상기 물질 이송(M1-M6)에 대한 약속을 변경하는 단계를 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  10. 제 7 항에 있어서,
    제 2 물질(130)이 상기 포트들(145) 중 상기 제 2 포트 상에 이송되기 이전에 제 1 물질(130)이 상기 포트들(145) 중 상기 제 1 포트로부터 이송될 수 있도록 물질 이송(M1-M6)의 순서를 추적하는 단계를 더 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
  11. 제 7 항에 있어서,
    천이 중인 물질 이송(M1-M6)을 위한 포트 할당을 동적으로 재할당하는 단계를 더 포함하는 것을 특징으로 하는 자동화된 공정 흐름(100)에서 물질 이송을 스케쥴링하는 방법.
KR1020127028932A 2004-11-19 2005-10-12 Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달 KR101391419B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/992,962 2004-11-19
US10/992,962 US20080275582A1 (en) 2004-11-19 2004-11-19 Scheduling AMHS pickup and delivery ahead of schedule
PCT/US2005/037099 WO2006055143A2 (en) 2004-11-19 2005-10-12 Scheduling amhs pickup and delivery ahead of schedule

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020077011442A Division KR101383824B1 (ko) 2004-11-19 2005-10-12 Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달

Publications (2)

Publication Number Publication Date
KR20120139842A KR20120139842A (ko) 2012-12-27
KR101391419B1 true KR101391419B1 (ko) 2014-05-02

Family

ID=35790522

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020127028932A KR101391419B1 (ko) 2004-11-19 2005-10-12 Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달
KR1020077011442A KR101383824B1 (ko) 2004-11-19 2005-10-12 Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020077011442A KR101383824B1 (ko) 2004-11-19 2005-10-12 Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달

Country Status (9)

Country Link
US (1) US20080275582A1 (ko)
JP (1) JP5100393B2 (ko)
KR (2) KR101391419B1 (ko)
CN (1) CN101057192B (ko)
DE (1) DE112005002817T5 (ko)
GB (1) GB2437855B (ko)
SG (2) SG191567A1 (ko)
TW (1) TWI361790B (ko)
WO (1) WO2006055143A2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7672748B2 (en) * 2006-04-17 2010-03-02 Chartered Semiconductor Manufacturing, Ltd. Automated manufacturing systems and methods
US8160736B2 (en) * 2007-01-31 2012-04-17 Globalfoundries Singapore Pte. Ltd. Methods and apparatus for white space reduction in a production facility
DE102007025339A1 (de) * 2007-05-31 2008-12-04 Advanced Micro Devices, Inc., Sunnyvale Verfahren und System zum Entfernen leerer Trägerbehälter von Prozessanlagen durch Steuern einer Zuordnung zwischen Steuerungsaufgaben und Trägerbehälter
US20090093903A1 (en) * 2007-10-04 2009-04-09 International Business Machines Corporation Methods, systems, and computer program products for automating process and equipment qualifications in a manufacturing environment
US8335581B2 (en) * 2009-06-12 2012-12-18 Globalfoundries Inc. Flexible job preparation and control
US20110137696A1 (en) 2009-12-04 2011-06-09 3Pd Performing follow-up actions based on survey results
US8412368B2 (en) * 2010-10-07 2013-04-02 Globalfoundries Inc. Method and apparatus for routing dispatching and routing reticles
CN103376781A (zh) * 2012-04-20 2013-10-30 华清科盛(北京)信息技术有限公司 基于无线智能网络的生产资源拉动系统
CN104217978B (zh) * 2013-06-05 2017-05-17 中芯国际集成电路制造(上海)有限公司 半导体批次产品的处理系统和方法
US9748088B2 (en) 2013-12-09 2017-08-29 Globalfoundries Inc. Method, storage medium and system for controlling the processing of lots of workpieces
DE102014205669B4 (de) * 2014-03-26 2017-08-31 Koenig & Bauer Ag Verfahren und Anlage zur Herstellung von stückigen Verpackungs- und/oder Druckerzeugnissen in mehreren Bearbeitungsschritten
US10520932B2 (en) * 2014-07-03 2019-12-31 Taiwan Semiconductor Manufacturing Co., Ltd Transport system and method
US20160048799A1 (en) 2014-08-15 2016-02-18 Xpo Last Mile, Inc. Cascading call notification system and method
CA3034238C (en) 2016-12-08 2023-10-17 Halliburton Energy Services, Inc. Automating material delivery and replenishment
CN106383484A (zh) * 2016-12-15 2017-02-08 合肥工业大学 基于轮毂电机和磁编码器的穿梭车控制系统及其方法
CN108829055B (zh) * 2018-06-05 2019-04-05 中冶赛迪技术研究中心有限公司 一种钢厂原料排产方法
CN109917770B (zh) * 2019-04-18 2021-08-03 成都飞机工业(集团)有限责任公司 一种大型结构件自动化生产线智能管控系统
US20220253045A1 (en) * 2021-02-08 2022-08-11 Farobot Inc. Meta-data driven management systems and methods for flexible manufacturing
CN114518724B (zh) * 2022-01-28 2023-04-28 弥费科技(上海)股份有限公司 一种适用于amhs系统的通讯装置及通讯方式
CN114613710B (zh) * 2022-05-11 2022-07-26 弥费实业(上海)有限公司 基于完工时间的提前派车方法、系统及计算机设备
CN115794506B (zh) * 2022-10-26 2023-10-13 北京北方华创微电子装备有限公司 一种晶片调度方法和一种电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002175107A (ja) * 2000-12-05 2002-06-21 Sharp Corp 工程制御方法および装置とそのためのプログラム記録媒体

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US231888A (en) * 1880-09-07 Signaling apparatus for telephone-lines
US231561A (en) * 1880-08-24 Latch
US151098A (en) * 1874-05-19 Improvement in dovetailing-machines
US160956A (en) * 1875-03-16 Improvement in relief apparatus for air-compressors
US957756A (en) * 1910-05-10 Philip A Emanuel Process of treating ores.
US231849A (en) * 1880-08-31 Nolds
US160990A (en) * 1875-03-23 Improvement in screw-blank feeders
US116554A (en) * 1871-07-04 Improvement in wheat-cleaners
US231648A (en) * 1880-08-31 Erley
US231930A (en) * 1880-09-07 Nobman g
US190194A (en) * 1877-05-01 Improvement in lifting-tongs
US135145A (en) * 1873-01-21 Improvement in paper-bag machines
US232145A (en) * 1880-09-14 Hand-stamp
US655624A (en) * 1900-06-04 1900-08-07 Charles H Hartman Bearing for car-trucks.
US956941A (en) * 1909-03-16 1910-05-03 Thomas E Chapman Paper bag or sack.
US991808A (en) * 1910-03-16 1911-05-09 August Tiesse Pasteurizing apparatus.
JPH0757002B2 (ja) * 1982-10-05 1995-06-14 キヤノン株式会社 画像処理装置
JP2513180B2 (ja) * 1986-01-13 1996-07-03 ソニー株式会社 ビデオテックス表示装置
US4796194A (en) * 1986-08-20 1989-01-03 Atherton Robert W Real world modeling and control process
DE3722169C2 (de) * 1987-07-04 1997-06-05 Thomson Brandt Gmbh Verfahren und Vorrichtung zur Durchführung des Verfahrens zur Anpassung eines Mehrbetriebsarten-Monitors an einen Personal Computer
JPS6471652A (en) * 1987-09-09 1989-03-16 Fanuc Ltd Automatic work scheduling method based on expert system
US4912624A (en) * 1988-03-30 1990-03-27 Syracuse University Multi-parameter optimization circuit
US5014208A (en) * 1989-01-23 1991-05-07 Siemens Corporate Research, Inc. Workcell controller employing entity-server model for physical objects and logical abstractions
US5093794A (en) * 1989-08-22 1992-03-03 United Technologies Corporation Job scheduling system
US5040123A (en) * 1989-09-08 1991-08-13 General Motors Corporation Expert system scheduler
US5233533A (en) * 1989-12-19 1993-08-03 Symmetrix, Inc. Scheduling method and apparatus
US5291394A (en) * 1990-06-01 1994-03-01 Motorola, Inc. Manufacturing control and capacity planning system
AU9030391A (en) * 1990-10-16 1992-05-20 Consilium, Inc. Object-oriented architecture for factory floor management
US5402350A (en) * 1991-06-28 1995-03-28 Texas Instruments Incorporated Scheduling for multi-task manufacturing equipment
JPH05250377A (ja) * 1992-03-04 1993-09-28 Fujitsu Ltd スケジューリング方式
US5487144A (en) * 1992-12-01 1996-01-23 Yokogawa Electric Corporation Scheduling system
US5446671A (en) * 1993-10-22 1995-08-29 Micron Semiconductor, Inc. Look-ahead method for maintaining optimum queued quantities of in-process parts at a manufacturing bottleneck
US5467268A (en) * 1994-02-25 1995-11-14 Minnesota Mining And Manufacturing Company Method for resource assignment and scheduling
US5444632A (en) * 1994-04-28 1995-08-22 Texas Instruments Incorporated Apparatus and method for controlling and scheduling processing machines
US5787000A (en) * 1994-05-27 1998-07-28 Lilly Software Associates, Inc. Method and apparatus for scheduling work orders in a manufacturing process
US5548518A (en) * 1994-05-31 1996-08-20 International Business Machines Corporation Allocation method for generating a production schedule
US5548535A (en) * 1994-11-08 1996-08-20 Advanced Micro Devices, Inc. Monitor utility for use in manufacturing environment
US5596502A (en) * 1994-11-14 1997-01-21 Sunoptech, Ltd. Computer system including means for decision support scheduling
JP3334400B2 (ja) * 1995-02-02 2002-10-15 トヨタ自動車株式会社 仕掛計画立案装置
US5546326A (en) * 1995-04-04 1996-08-13 Taiwan Semiconductor Manufacturing Company Ltd Dynamic dispatching rule that uses long term due date and short term queue time to improve delivery performance
JPH0918968A (ja) * 1995-06-27 1997-01-17 Toshiba Corp 軌道台車の配車制御装置
US5933354A (en) * 1995-10-13 1999-08-03 Matsushita Electric Industrial Co., Ltd. System for controlling physical distribution pallets
US5890134A (en) * 1996-02-16 1999-03-30 Mcdonnell Douglas Corporation Scheduling optimizer
US5765137A (en) * 1996-03-04 1998-06-09 Massachusetts Institute Of Technology Computer system and computer-implemented process for correlating product requirements to manufacturing cost
US6571215B1 (en) * 1997-01-21 2003-05-27 Microsoft Corporation System and method for generating a schedule based on resource assignments
US6192354B1 (en) * 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
US5920692A (en) * 1997-03-24 1999-07-06 International Business Machines Corp. Method and system for a remote notification service for a multi-user server architecture
EP0996887B1 (en) * 1997-07-25 2002-10-09 BRITISH TELECOMMUNICATIONS public limited company Scheduler for a software system
US6216108B1 (en) * 1997-08-11 2001-04-10 Levander Mark R. Service business management system
US6415196B1 (en) * 1997-08-28 2002-07-02 Manugistics, Inc. Manufacturing scheduling process with improved modeling, scheduling and editing capabilities for solving finite capacity planning problems
JPH1185278A (ja) * 1997-09-09 1999-03-30 Murata Mach Ltd 無人搬送車システム
US6571147B1 (en) * 1997-09-22 2003-05-27 Dainippon Screen Mfg. Co., Ltd. System for and method of managing jobs
US6889178B1 (en) * 1997-10-01 2005-05-03 Sony Corporation Integrated wafer fabrication production characterization and scheduling system
JPH11235648A (ja) * 1998-02-17 1999-08-31 Toshiba Corp 製造計画管理装置、製造計画管理方法、及び、製造計画管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3163286B2 (ja) * 1998-05-15 2001-05-08 サントリー株式会社 配車システム
US6263255B1 (en) * 1998-05-18 2001-07-17 Advanced Micro Devices, Inc. Advanced process control for semiconductor manufacturing
US6615091B1 (en) * 1998-06-26 2003-09-02 Eveready Battery Company, Inc. Control system and method therefor
US6400999B1 (en) * 1998-07-06 2002-06-04 Yokogawa Electric Corporation Production system and manufacturing equipment selecting method on production system
JP2002521756A (ja) * 1998-07-22 2002-07-16 アイ2・テクノロジーズ・インコーポレイテッド 資産集約製造業者のためのコンピュータ実装される価値管理ツール
US6397197B1 (en) * 1998-08-26 2002-05-28 E-Lynxx Corporation Apparatus and method for obtaining lowest bid from information product vendors
US6091998A (en) * 1998-09-30 2000-07-18 Rockwell Technologies, Llc Self organizing industrial control system using bidding process
JP3327235B2 (ja) * 1998-12-22 2002-09-24 トヨタ自動車株式会社 受注品納期管理システム
US6374144B1 (en) * 1998-12-22 2002-04-16 Varian Semiconductor Equipment Associates, Inc. Method and apparatus for controlling a system using hierarchical state machines
US6356797B1 (en) * 1999-01-04 2002-03-12 Taiwan Semiconductor Manufacturing Co., Ltd. Method for automatic scheduling of production plan
US6202062B1 (en) * 1999-02-26 2001-03-13 Ac Properties B.V. System, method and article of manufacture for creating a filtered information summary based on multiple profiles of each single user
US6389454B1 (en) * 1999-05-13 2002-05-14 Medical Specialty Software Multi-facility appointment scheduling system
US6434443B1 (en) * 1999-05-17 2002-08-13 Taiwan Semiconductor Manufacturing Company Method for performing dynamic re-scheduling of fabrication plant
US6556949B1 (en) * 1999-05-18 2003-04-29 Applied Materials, Inc. Semiconductor processing techniques
US6408220B1 (en) * 1999-06-01 2002-06-18 Applied Materials, Inc. Semiconductor processing techniques
US6397115B1 (en) * 1999-10-08 2002-05-28 Smithkline Beecham Hazardous material classification system
US7130807B1 (en) * 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
US6976020B2 (en) * 2000-01-27 2005-12-13 Poppet International, Inc. Software composition using graph types, graph, and agents
US6711450B1 (en) * 2000-02-02 2004-03-23 Advanced Micro Devices, Inc. Integration of business rule parameters in priority setting of wafer processing
US6584369B2 (en) * 2000-02-02 2003-06-24 Texas Instruments Incorporated Method and system for dispatching semiconductor lots to manufacturing equipment for fabrication
US6714830B2 (en) * 2000-02-28 2004-03-30 Canon Kabushiki Kaisha Push-type scheduling for semiconductor fabrication
US6856848B2 (en) * 2000-04-24 2005-02-15 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling progress of product processing
US6636848B1 (en) * 2000-05-31 2003-10-21 International Business Machines Corporation Information search using knowledge agents
US6418350B1 (en) * 2000-06-09 2002-07-09 Brooks Automation Inc. Periodic scheduler for dual-arm robots in cluster tools with process-module residency constraints
US6591262B1 (en) * 2000-08-01 2003-07-08 International Business Machines Corporation Collaborative workload management incorporating work unit attributes in resource allocation
US6618692B2 (en) * 2000-09-20 2003-09-09 Hitachi, Ltd. Remote diagnostic system and method for semiconductor manufacturing equipment
JP2002179213A (ja) * 2000-12-13 2002-06-26 Murata Mach Ltd 搬送システム
US7457680B2 (en) * 2000-12-27 2008-11-25 Tokyo Electron Limited Conveyance method for transporting objects
JP4213871B2 (ja) * 2001-02-01 2009-01-21 株式会社日立製作所 半導体装置の製造方法
US20020116210A1 (en) * 2001-02-20 2002-08-22 Honeywell International Inc. Computerized method for online quoting and pricing of tasks
US20020120533A1 (en) * 2001-02-23 2002-08-29 Hubert Wiesenmaier Method and system for management of ordering, production, and delivery of made-to-specification goods
US7194323B2 (en) * 2001-03-22 2007-03-20 International Business Machines Corporation Method and system for object oriented approach and data model for configure-to-order manufacturing system
US8065219B2 (en) * 2001-06-13 2011-11-22 Sungard Energy Systems Inc. System architecture and method for energy industry trading and transaction management
US20030004912A1 (en) * 2001-06-29 2003-01-02 Lalit Pant Architecture for intelligent agents and distributed platform therefor
KR100411110B1 (ko) * 2001-10-29 2003-12-18 현대자동차주식회사 자동화 창고 구조 대응 운용 프로그램 설계방법
US20030149631A1 (en) * 2001-12-27 2003-08-07 Manugistics, Inc. System and method for order planning with attribute based planning
US6898472B2 (en) * 2001-12-27 2005-05-24 Manugistics, Inc. System and method for order group planning with attribute based planning
US7035877B2 (en) * 2001-12-28 2006-04-25 Kimberly-Clark Worldwide, Inc. Quality management and intelligent manufacturing with labels and smart tags in event-based product manufacturing
US6731999B1 (en) * 2002-01-02 2004-05-04 Taiwan Semiconductor Manufacturing Company Wafer start order release algorithm in a foundry fab
US7010386B2 (en) * 2002-03-22 2006-03-07 Mcdonnell Ryan P Tool wear monitoring system
US20040030531A1 (en) * 2002-03-28 2004-02-12 Honeywell International Inc. System and method for automated monitoring, recognizing, supporting, and responding to the behavior of an actor
US6907305B2 (en) * 2002-04-30 2005-06-14 Advanced Micro Devices, Inc. Agent reactive scheduling in an automated manufacturing environment
US7512454B1 (en) * 2002-05-31 2009-03-31 Advanced Micro Devices, Inc. Display unit with processor and communication controller
US20030225474A1 (en) * 2002-05-31 2003-12-04 Gustavo Mata Specialization of active software agents in an automated manufacturing environment
US6748282B2 (en) * 2002-08-22 2004-06-08 Taiwan Semiconductor Manufacturing Co., Ltd Flexible dispatching system and method for coordinating between a manual automated dispatching mode
US6782302B1 (en) * 2002-08-30 2004-08-24 Advanced Micro Devices, Inc. Method and apparatus for scheduling workpieces with compatible processing requirements
US7069097B1 (en) * 2002-08-30 2006-06-27 Advanced Micro Devices, Inc. Method and apparatus for reducing scheduling conflicts for a resource
US6862555B2 (en) * 2002-11-27 2005-03-01 Taiwan Semiconductor Manufacturing Co., Ltd Enhanced preventative maintenance system and method of use
US7027885B1 (en) * 2002-12-30 2006-04-11 Advanced Micro Devices, Inc. Determining batch start versus delay
JP2004240474A (ja) * 2003-02-03 2004-08-26 Murata Mach Ltd 搬送車システム
JP4143828B2 (ja) * 2003-03-14 2008-09-03 村田機械株式会社 搬送台車システム
US7565662B2 (en) * 2004-09-24 2009-07-21 International Business Machines Corporation Program agent initiated processing of enqueued event actions
US7337032B1 (en) * 2004-10-04 2008-02-26 Advanced Micro Devices, Inc. Scheduling ahead for various processes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002175107A (ja) * 2000-12-05 2002-06-21 Sharp Corp 工程制御方法および装置とそのためのプログラム記録媒体

Also Published As

Publication number Publication date
GB0711586D0 (en) 2007-07-25
GB2437855B (en) 2009-08-12
SG191567A1 (en) 2013-07-31
CN101057192B (zh) 2014-08-13
JP2008521129A (ja) 2008-06-19
DE112005002817T5 (de) 2007-09-13
KR20120139842A (ko) 2012-12-27
KR101383824B1 (ko) 2014-04-10
US20080275582A1 (en) 2008-11-06
TW200619122A (en) 2006-06-16
WO2006055143A2 (en) 2006-05-26
JP5100393B2 (ja) 2012-12-19
TWI361790B (en) 2012-04-11
KR20070084399A (ko) 2007-08-24
GB2437855A (en) 2007-11-07
WO2006055143A3 (en) 2006-07-13
WO2006055143A8 (en) 2008-12-24
SG157403A1 (en) 2009-12-29
CN101057192A (zh) 2007-10-17

Similar Documents

Publication Publication Date Title
KR101391419B1 (ko) Amhs 픽업의 스케쥴링 및 스케쥴 이전의 전달
CN100351723C (zh) 用于自动化制造环境的代理人反应式调度
KR100946397B1 (ko) 자동화된 제조 환경에서 능동 소프트웨어 에이전트의 전문화
US7337032B1 (en) Scheduling ahead for various processes
KR101216189B1 (ko) 제조 공정 흐름의 스케줄링 카렌다 및 약속
Johri Practical issues in scheduling and dispatching in semiconductor wafer fabrication
US7463939B1 (en) Scheduling tools with queue time constraints
US7460920B1 (en) Determining scheduling priority using fabrication simulation
US7623936B1 (en) Determining scheduling priority using queue time optimization
US20090157216A1 (en) Automated scheduling of test wafer builds in a semiconductor manufacturing process flow
US20050203655A1 (en) Scheduling system and method for avoiding low equipment utilization
JP2001102427A (ja) プロセス処理方法およびその装置並びに半導体製造ラインおよび半導体製造ラインにおける被処理基板の搬送方法
US20090093903A1 (en) Methods, systems, and computer program products for automating process and equipment qualifications in a manufacturing environment
Luhn et al. Automation concept for complex production processes

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 6