Allocating resources or scheduling for an administrative function

Agent reactive scheduling in an automated manufacturing environment

6968248

Abstract

A method and apparatus for scheduling in an automated manufacturing environment, comprising are disclosed. The method includes detecting an occurrence of a predetermined event in a process flow; notifying a software scheduling agent of the occurrence; and reactively scheduling an action from the software scheduling agent responsive to the detection of the predetermined event. The apparatus is automated manufacturing environment including a process flow and a computing system. The computing system further includes a plurality of software scheduling agents residing thereon, the software scheduling agents being capable of reactively scheduling appointments for activities in the process flow responsive to a plurality of predetermined events.


Claims

1. A method for scheduling in an automated manufacturing environment, comprising:

automatically detecting an occurrence of a predetermined event in an integrated, automated process flow;

automatically notifying a software scheduling agent of the occurrence; and

reactively scheduling an action from the software scheduling agent responsive to the detection of the predetermined event.

2. The method of claim 1, wherein automatically detecting the occurrence of the predetermined event includes detecting an unplanned event or an unexpected event.

3. The method of claim 1, wherein automatically detecting the occurrence of the predetermined event includes detecting an occurrence of an appointment state change.

4. The method of claim 3, wherein automatically detecting the appointment state change includes detecting at least one of an appointment cancellation, an appointment expansion, an appointment shrinking, an appointment abort, an appointment changing status, an appointment shift, an appointment override, an transport time update, a load time update, an unload time update, a lot joining a batch, a lot leaving a batch, canceling a lot from a batch, and a commitment window update.

5. The method of claim 1, wherein automatically detecting the predetermined event includes detecting at least one of an appointment cancellation, an appointment expansion, an appointment shrinking, an appointment abort, an appointment becoming active, an appointment nearing completion, an appointment completing, an appointment shift, an appointment override, and a commitment window update, detection of a downtime occurrence; a machine becoming available; a PM/Qual being detected; a chamber going down; a chamber becoming available, a change in machine capabilities; a change in machine types; an addition of a process; an addition of a process operation; a lot arriving at a machine; a lot process changed, a lot placed on hold, a lot released from hold, a lot priority changed, a lot due date changed, a lot wafer count changed, a lot process operation changed, a lot departing a machine, an alarm firing for an appointment start time and an alarm firing for an appointment end time.

6. The method of claim 1, wherein automatically notifying the software scheduling agent of the occurrence includes:

sending an indication of the occurrence to a publisher;

publishing the occurrence from the publisher to a subscribing listener; and

calling the software scheduling agent from the subscribing listener.

7. The method of claim 1, wherein reactively scheduling the action includes at least one of aborting a scheduled appointment in progress; canceling a scheduled appointment duration of a scheduled appointment; shrinking the duration of a scheduled appointment; shifting a scheduled appointment; adding new processing capabilities; deleting old processing capabilities; setting an alarm; canceling an alarm; and changing the status of an appointment.

8. The method of claim 1, further comprising proactively scheduling an appointment with which the predetermined event is associated.

9. The method of claim 8, wherein proactively scheduling the appointment includes proactively scheduling the appointment from the software scheduling agent.

10. The method of claim 1, wherein detecting the occurrence of the predetermined event includes detecting an occurrence of a factory state change.

11. The method of claim 10, wherein automatically detecting the factory state change includes detecting at least one of detection of a downtime occurrence; a machine becoming available; a PM/Qual being detected; a chamber going down; a chamber becoming available, a change in machine capabilities; a change in machine types; an addition of a process; an addition of a process operation; a lot arriving at a machine; a lot process changed, a lot placed on hold, a lot released from hold, a lot priority changed, a lot due date changed, a lot wafer count changed, a lot process operation changed, and a lot departing a machine.

12. The method of claim 1, wherein detecting the occurrence of the predetermined event includes detecting an occurrence of an alarm event.

13. The method of claim 12, wherein automatically detecting the alarm event includes detecting at least one of an alarm firing for an appointment start time and an alarm firing for an appointment end time.

14. An automated manufacturing environment, comprising:

an integrated, automated process flow; and

a computing system, including a plurality of software scheduling agents residing thereon, the software scheduling agents being capable of reactively scheduling appointments for activities in the process flow responsive to an automatic detection and notification of a plurality of predetermined events.

15. The automated manufacturing environment of claim 14, further comprising a plurality of publishers and subscribers capable of detecting an occurrence of one of the predetermined events in the process flow and notifying one of the software scheduling agent of the occurrence.

16. The automated manufacturing environment of claim 15, wherein the automatic detection of the predetermined event includes detecting an unplanned event or an unexpected event.

17. The automated manufacturing environment of claim 15, wherein the automatic detection of the predetermined event includes detecting an occurrence of an appointment state change.

18. The automated manufacturing environment of claim 15, wherein the automatic notification of the software scheduling agent of the occurrence includes:

sending an indication of the occurrence to a publisher;

publishing the occurrence from the publisher to a subscribing listener; and

calling the software scheduling agent from the subscribing listener.

19. The automated manufacturing environment of claim 15, wherein reactively scheduling the action includes at least one of aborting a scheduled appointment in progress; canceling a scheduled appointment before it begins; scheduling a new appointment; starting a scheduled appointment; expanding the duration of a scheduled appointment; shrinking the duration of a scheduled appointment; shifting a scheduled appointment; adding new processing capabilities; deleting old processing capabilities; setting an alarm; canceling an alarm; and changing the status of an appointment.

20. The automated manufacturing environment of claim 15, further comprising proactively scheduling an appointment with which the predetermined event is associated.

21. The automated manufacturing environment of claim 15, wherein the automatic detection of the predetermined event includes detecting an occurrence of a factory state change.

22. The automated manufacturing environment of claim 15, wherein the automatic detection of the predetermined event includes detecting an alarm event.


Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention pertains to automated manufacturing environments, and, more particularly, to scheduling in an automated manufacturing environment.

2. Description of the Related Art

Growing technological requirements and the worldwide acceptance of sophisticated electronic devices have created an unprecedented demand for large-scale, complex, integrated circuits. Competition in the semiconductor industry requires that products be designed, manufactured, and marketed in the most efficient manner possible. This requires improvements in fabrication technology to keep pace with the rapid improvements in the electronics industry. Meeting these demands spawns many technological advances in materials and processing equipment and significantly increases the number of integrated circuit designs. These improvements also require effective utilization of computing resources and other highly sophisticated equipment to aid, not only design and fabrication, but also the scheduling, control, and automation of the manufacturing process.

Turning first to fabrication, integrated circuits, or microchips, are manufactured from modern semiconductor devices containing numerous structures or features, typically the size of a few micrometers. The fabrication process generally involves processing a number of wafers through a series of fabrication tools. Layers of materials are added to, removed from, and/or treated on a semiconducting substrate during fabrication to create the integrated circuits. The fabrication essentially comprises the following four basic operations:

    • layering, or adding thin layers of various materials to a wafer from which a semiconductor is produced;
    • patterning, or removing selected portions of added layers;
    • doping, or placing specific amounts of dopants in selected portions of the wafer through openings in the added layers; and
    • heat treating, or heating and cooling the materials to produce desired effects in the processed wafer.


  • Although there are only four basic operations, they can be combined in hundreds of different ways, depending upon the particular fabrication process. See, e.g., Peter Van Zant, Microchip Fabrication A Practical Guide to Semiconductor Processing (3d Ed. 1997 McGraw-Hill Companies, Inc.) (ISBN 0-07-067250-4). Each fabrication tool performs one or more of four basic operations. The four basic operations are performed in accordance with an overall process to finally produce the finished semiconductor devices.

    Controlling a semiconductor factory fabricating such integrated circuits, however, is a challenging task. A semiconductor factory ("fab") is a complex environment where numerous parts, typically 40,000 wafers or more, and numerous part types, typically 100 part types or more, are simultaneously being manufactured. As each wafer moves through the semiconductor factory (or, "fab"), it may undergo more than 300 processing steps, many of which use the same machines. A large factory may contain approximately 500 computer-controlled machines to perform this wafer processing. Routing, scheduling, and tracking material through the fab is a difficult and complicated task, even with the assistance of a computerized factory control system.

    Efficient management of a facility for manufacturing products such as semiconductor chips requires monitoring various aspects of the manufacturing process. For example, it is typically desirable to track the amount of raw materials on hand, the status of work-in-process and the status and availability of machines and tools at every step in the process. One of the most important decisions is selecting which lot should run on each machine at any given time. Additionally, most machines used in the manufacturing process require scheduling of routine preventative maintenance ("PM") and equipment qualification ("Qual") procedures, as well as other diagnostic and reconditioning procedures that must be performed on a regular basis. These procedures should be performed such that they do not impede the manufacturing process itself.

    One approach to this issue implements an automated "Manufacturing Execution System" ("MES"). An automated MES enables a user to view and manipulate, to a limited extent, the status of machines and tools, or "entities," in a manufacturing environment. In addition, an MES permits dispatching and tracking of lots or work-in-process through the manufacturing process to enable resources to be managed in the most efficient manner. Specifically, in response to MES prompts, a user inputs requested information regarding work-in-process and entity status. For example, when a user performs a PM on a particular entity, the operator logs the performance of the PM (an "event") into an MES screen to update the information stored in the MES database with respect to the status of that entity. Alternatively, if an entity is to be put down for repair or maintenance, the operator will log this information into the MES database, which then prevents use of the entity until it is subsequently logged back up.

    Although MES systems are sufficient for tracking lots and machines, such systems suffer several deficiencies, the most obvious of which are their passive nature, lack of advance scheduling and inability to support highly automated factory operations. Current MES systems largely depend on manufacturing personnel for monitoring factory state and initiating activities at the correct time. For example, a lot does not begin processing until a wafer fab technician ("WFT") issues the appropriate MES command. And, prior to processing, a WFT must issue an MES command to retrieve the lot from the automated material handling system ("AMHS") with sufficient advance planning that the lot is available at the machine when the machine becomes available. If the WFT does not retrieve the lot soon enough, or neglects to initiate processing at the earliest available time, the machine becomes idle and production is adversely impacted.

    These types of deficiencies in the typical automated MES emphasize the importance of the WFT in the efficient operation of the manufacturing process. WFTs perform many vital functions. For instance, WFTs initiate dispatching, transport, and processing as their attention and time permits. They make scheduling decisions such as whether to run an incomplete batch, as opposed to waiting for additional approaching lots, or performing PM or qualification procedures instead of processing lots. WFTs perform non-value added MES transactions and utilize conventional factory control systems that are passive. In this context, the term "passive" means activities in the control system must be initiated by the WFT, as opposed to being self-starting or self-initiating.

    However, the presence of WFTs also inevitably introduces some inefficiencies. There typically is a large difference between the performance of the best WFT and the performance of the worst WFT. A WFT typically simultaneously monitors the processing of multiple tools and lots, making it difficult to focus on an individual lot or tool. Furthermore, the size and complexity of the modern fabrication process flows makes it exceedingly difficult for a WFT to foresee and prevent downstream bottlenecks or shortages arising from upstream activities. Shift changes, rest breaks, and days off for the WFT also create inefficiencies or machine idle time that adversely impact the manufacturing process flow. Just as the importance of the WFT is magnified by the deficiencies of the automated MES, so are the inefficiencies of the WFT magnified by his importance.

    Thus, factory control systems utilized in today's wafer tabs are passive and do not enable a high degree of automation. These systems are very dependent on WFTs and other factory staff to monitor the state of the factory, to continuously react to change, to make rapid logistical decisions, and to initiate and coordinate factory control activity in a timely manner. These WFTs are agents, providing the active element that is lacking in factory control systems. As a result, factory effectiveness in the highly competitive semiconductor industry is quite dependent on the availability, productivity, skill level, and consistency of these human agents. WFTs must monitor and operate a number of tools located in various bays in a fab. They are forced to multiplex across tools, bays, material handling systems and a variety of factory control systems. As a fab's production ramps and more complex processes are introduced, it becomes more difficult to meet the increased complexity and volume without increasing staff or system capabilities. WFTs visibility of upstream and downstream operations, tool state, work-in-process and resource availability is limited.

    However, key logistical decisions are frequently based on this limited and dated information, which is only partially provided by factory control systems. WFTs spend a significant amount of time interacting with systems, monitoring factory events and state changes, and performing other non-value added functions, such as MES logging. Shift changes disrupt the operation of the fab as the technicians are temporarily unable to provide required monitoring and coordination. Despite the best efforts of the technicians, utilization of tools suffer, adversely impacting other key factory metrics including cycle time, inventory levels, factory output and mix. With the need for intrabay material handling to transport 12-inch wafers in new 300 mm wafer fabs, significant additional complexity is introduced. Conventional factory control systems are not capable of providing this level of detailed scheduling and execution control.

    The present invention is directed to resolving, or at least reducing, one or all of the problems mentioned above.

    SUMMARY OF THE INVENTION

    The invention, in its various aspects and embodiments, is a method and apparatus for scheduling in an automated manufacturing environment. In one embodiment, a method comprises detecting an occurrence of a predetermined event in a process flow; notifying a software scheduling agent of the occurrence; and reactively scheduling an action from the software scheduling agent responsive to the detection of the predetermined event. Alternative embodiments include a computing system programmed to perform this method and a computer-readable program storage medium encoded with instructions to implement this method. In still another embodiment, the invention includes automated manufacturing environment, comprising a process flow and a computing system. The computing system further includes a plurality of software scheduling agents residing thereon, the software scheduling agents being capable of reactively scheduling appointments for activities in the process flow responsive to a plurality of predetermined events.

    BRIEF DESCRIPTION OF THE DRAWINGS

    The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements, and in which:

    FIG. 1 conceptually depicts a portion of one particular embodiment of a process flow constructed and operated in accordance with the present invention;

    FIG. 2 conceptually depicts, in a partial block diagram, selected portions of the hardware and software architectures, respectively, of the computing devices in FIG. 1;

    FIG. 3 conceptually depicts one particular implementation of the apparatus of FIG. 1, i.e., in a portion of a process flow from a semiconductor fabrication facility, and the manner in which it schedules appointments for the consumption of resources;

    FIG. 4 conceptually depicts a calendar of booked appointments;

    FIG. 5 conceptually illustrates three related calendars of booked appointments;

    FIG. 6A and FIG. 6B conceptually illustrates the changing of booked appointments to take advantage of early start times; and

    FIG. 7A and FIG. 7B conceptually illustrate two circumstances in which booked appointments are changed to accommodate unexpectedly long durations for preceding booked appointments.

    While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

    DETAILED DESCRIPTION OF THE INVENTION

    Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort, even if complex and time-consuming, would be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.

    FIG. 1 conceptually illustrates a portion of one particular embodiment of a process flow 100 constructed and operated in accordance with the present invention. The process flow 100 fabricates semiconductor devices. However, the invention may be applied to other types of manufacturing processes. Thus, in the process flow 100 discussed above, the lots 130 of wafers 135 may be more generically referred to as "work pieces." The process tools 115 and any process operations performed thereon need not necessarily be related to the manufacture of semiconductor devices in all embodiments. However, for the sake of clarity and to further an understanding of the invention, the terminology pertaining to semiconductor fabrication is retained in disclosing the invention in the context of the illustrated embodiments.

    The illustrated portion of the process flow 100 includes two stations 105, each station 105 including a computing device 110 communicating with a process tool 115. The stations 105 communicate with one another over communications links 120. In the illustrated embodiment, the computing devices 110 and the communications links 120 comprise a portion of a larger computing system, e.g., a network 125. The process tools 115 in FIG. 1 are processing lots 130 of wafers 135 that will eventually become integrated circuit devices. The process flow 100 also includes portions of a MES and an automated materials handling system ("AMHS"), neither of which is shown for the sake of clarity, and other integrated factory controls. The AMHS "handles" the lots 130 and facilitates their transport from one station 105 to another, as well as other locations in the process flow 100.

    As mentioned above, the computing devices 110 may be part of a larger computing system 125 by a connection over the communications links 120. Exemplary computing systems in such an implementation would include local area networks ("LANs"), wide area networks ("WANs"), system area networks ("SANs"), intranets, or even the Internet. The computing system 125 employs a networked client/server architecture, but alternative embodiments may employ a peer-to-peer architecture. Thus, in some alternative embodiments, the computing devices 110 may communicate directly with one another. The communications links 120 may be wireless, coaxial cable, optical fiber, or twisted wire pair links, for example. The computing system 125, in embodiments employing one, and the communications links 120 will be implementation specific and may be implemented in any suitable manner known to the art. The computing system 125 may employ any suitable communications protocol known to the art, e.g., Transmission Control Protocol/Internet Protocol ("TCP/IP").

    FIG. 2 depicts selected portions of the hardware and software architectures of the computing devices 110. Some aspects of the hardware and software architecture (e.g., the individual cards, the basic input/output system ("BIOS"), input/output drivers, etc.) are not shown. These aspects are omitted for the sake of clarity, and so as not to obscure the present invention. As will be appreciated by those of ordinary skill in the art having the benefit of this disclosure, however, the software and hardware architectures of the computing devices 110 will include many such routine features.

    In the illustrated embodiment, the computing device 110 is a workstation, employing a UNIX-based operating system 200, but the invention is not so limited. The computing device 110 may be implemented in virtually any type of electronic computing device such as a notebook computer, a desktop computer, a mini-computer, a mainframe computer, or a supercomputer. The computing device 110 may even be, in some alternative embodiments, a processor or controller embedded in the process tool 115. The invention also is not limited to UNIX-based operating systems. Alternative operating systems (e.g., Windows™-, Linux™-, or disk operating system ("DOS")-based) may also be employed. The invention is not limited by the particular implementation of such features in the computing device 110.

    The computing device 110 also includes a processor 205 communicating with storage 210 over a bus system 215. The storage 210 typically includes at least a hard disk (not shown) and random access memory ("RAM") (also not shown). The computing device 110 may also, in some embodiments, include removable storage such as an optical disk 230, or a floppy electromagnetic disk 235, or some other form, such as a magnetic tape (not shown) or a zip disk (not shown). The computing device 110 includes a monitor 240, keyboard 245, and a mouse 250, which together, along with their associated user interface software 255 comprise a user interface 260. The user interface 260 in the illustrated embodiment is a graphical user interface ("GUI"), although this is not necessary to the practice of the invention.

    Each computing device 110 includes, in the illustrated embodiment, a software agent 265 residing in the storage 210. Note that the software agents 265 may reside in the process flow 100 in places other than the computing devices 110. The situs of the software agent 265 is not material to the practice of the invention. Note also that, since the situs of the software agents 265 is not material, some computing devices 110 may have multiple software agents 265 residing thereon while other computing devices 110 may not have any. Thus, there need not be a one-to-one correspondence between the computing devices 100 and the process tools 115. Software component(s) 270, 280 of an automated MES, such as WORKSTREAM™, and of an AMHS, respectively, also reside on at least one computing device 110. As with the software agent(s) 265, the software components 270, 280 may reside anywhere within the process flow 100.

    Referring now to FIG. 1 and FIG. 2, the software agents 265 each represent some "manufacturing domain entity," e.g., a lot 130, a process tool 115, a resource, a PM, or a Qual. A process tool 115 may be a fabrication tool used to fabricate some portion of the wafers 135, i.e., layer, pattern, dope, or heat treat the wafers 135. Or, the process tool 115 may be a metrology tool used to evaluate the performance of various parts of the process flow 100. The software agents 265, collectively, are responsible for efficiently scheduling and controlling the lots 130 of wafers 135 through the fabrication process. In furtherance of these objectives, the software agents 265 interface with the software components 270, 280 of the MES and AMHS, respectively, and are integrated with other existing factory control systems (not shown). The software agents 265, where appropriate, also interface with the process tools 115 and other equipment through a software implemented "equipment interface" ("EI") (not shown). As will be apparent to those skilled in the art having the benefit of this disclosure, the manner in which this interface and integration occurs is implementation specific, depending upon the makeup and configuration of the MES, the AMHS, and the other factory control systems.

    Of particular interest to the present invention, the software agents 265 reactively schedule, initiate, and execute activities on behalf of their respective manufacturing domain entities. In the illustrated embodiment, the software agents 265 also proactively schedule activities. Collectively, the software agents 265, among other things, schedule ahead for each lot 130 one or more operations on a specific qualified process tool 115, including transports and required resources, as discussed further below. This includes making optimizing decisions such as running an incomplete batch, as opposed to waiting for an approaching lot 130, and scheduling opportunistic preventive maintenance ("PM") procedures or qualification tests ("Quals") to meet specifications. The software agents 265 schedule and initiate activities such as lot transport and processing; perform MES transactions; monitor processing and transport; and react to unscheduled activities or deviations from scheduled activities. Furthermore, in the illustrated embodiment, the software agents 265 are configurable in a manner that allows a user to influence their behavior in order to tune the performance of the process flow 100.

    In the illustrated embodiment, the scheduling agents 265 are typed by the manufacturing domain entities they represent. There may be many different types of scheduling agents 265, depending on the implementations. The principle types of scheduling agents 265 in the illustrated embodiment, shown in FIG. 3, include:
    • a Lot Scheduling Agent ("LSA") 305 that schedules activities on behalf of lots 130 of wafers 135;
    • a Machine Scheduling Agent ("MSA") 310 that schedules activities on behalf of process tools 115;
    • a PM Scheduling Agent ("PMSA") 315 that schedules activities on behalf of PMs and Quals (not shown); and
    • a Resource Scheduling Agent ("RSA") 320 that schedules activities on behalf of resources (not shown).
      However, other types may be employed in addition to, or in lieu of, those shown. The roles and functions of each of these of scheduling agents 265 in the illustrated embodiment will be more fully discussed below.


  • Some of these activities are scheduled reactively, i.e., in response to events occurring in, e.g., the process flow 100, in accordance with the present invention. In one particular embodiment, this includes:
    • detecting an occurrence of a predetermined event in a process flow, e.g., the process flow 100;
    • notifying a subscribing software scheduling agent, e.g., the LSA 305, the MSA 310, the PMSA 315, or the RSA 320, of the occurrence; and
    • reactively scheduling an action responsive to the detection of the predetermined event.
      The predetermined event and the reactively scheduled action will be implementation specific. Several exemplary events and reactively scheduled actions are discussed further below.


  • Note that this type of reactive scheduling implies a knowledge that such events are occurring within the process flow 100. To this end, the software agents 265 respond to additional software components, not shown, known as "publishers" (or, "notifiers") and "subscribers." Agents create listeners which subscribe to one or more notifiers. Notifiers "publish" events to their subscribing listeners when changes occur within the factory. Listeners, in turn, call their subscribing software agent 265. For example, when a MSA is created, the agent will create a machine listener that subscribes to specific machine events. The MSA is interested in receiving any changes that occur to a particular machine. For example, if the availability of the machine changes, the publisher will publish the event to all of its listeners. The machine listener will then notify the subscribing MSA about the event. The subscribing MSA will then react appropriately.

    More particularly, when the software agents 265 are created, they create listeners and subscribe to published events by adding the listeners to the event publisher. Listeners enable the software agents 265 to react to events in the process flow 100 in an appropriate manner. Table 1, below, lists the relevant software agents 265 employed in the illustrated embodiment, the listeners they create, and a description of their function. Note that the use of publishers and subscribers via listeners and notifiers in this manner is known to the art, and any suitable technique may be employed.

    TABLE 1
    Software Agents and Associated Listeners
    Software Agent Associated Listeners Reason for Subscribing
    RSA (e.g., a Equipment Event Listens to events from the Equip-
    resource load- Listener ment Interface. Events may include
    ing agent) loading started, charging started,
    loading completed, charging
    completed, etc.
    Machine Listener Listens to MES events that occur
    on the machine. For example, it
    listens when a machine is not
    available and reacts appropriately.
    Process Operation Listens to changes within a process
    Listener operation since it might change the
    processing capability of a machine.
    Process Listener Listens to changes within a process
    since it might change the process-
    ing capability of a machine.
    Alarm Listener Listens to alarms that have been set
    at start or end times for scheduled
    activities.
    Schedule Advertise- Listens to "advertised" time slots
    ment Listener for scheduled appointments that
    have not started.
    Appointment State Listens to any corresponding
    Change Listener appointments on scheduling
    calendars of other agents that
    might affect its calendar.
    LSA Alarm Listener Listens to alarms that have been
    set at start or end times for
    scheduled activities.
    Lot Listener Listens to MES events that occur
    on the lot, such as product change,
    priority change, wafer count, and
    so on.
    AMHS Listener Listens to changes in the location
    of the lot of represented by the
    LSA.
    Appointment State Listens to any corresponding
    Change Listener appointments on scheduling
    calendars of other agents that
    might affect its calendar.
    MSA Alarm Listener Listens to alarms that have been set
    at start or end times for scheduled
    activities.
    Process Operation Listens to changes within a process
    Listener operation since it might change the
    processing capability of a machine.
    Machine Listener Listens to MES events occurring
    on the machine. For example, it
    listens when a machine is not
    available.
    Appointment State Listens to any corresponding
    Change Listener appointments on scheduling
    calendars of other agents that
    might affect its calendar.
    Chamber Listener Listens to MES events that occur at
    chamber level, such as downtime,
    PM, or Quals.
    Process Listener Listens to changes within a process
    since it might change the process-
    ing capability of a machine.
    Equipment Event Listens to events from the Equip-
    Listener ment Interface. Events may include
    carrier arriving at the machine port,
    processing started, processing near
    complete, carrier departed, etc.
    PM Scheduling Chamber Listener Listens to MES events that occur at
    Agent chamber level, such as downtime,
    ("PMSA") PM, or Quals.
    Machine Listener Listens to MES events that occur
    on the machine. For example, it
    listens when a machine is not
    available.
    Qual Collection Listens to any new Quals or
    Listener deleted Quals.
    PM Collection Listens for any new PMs or deleted
    Listener PMs.
    Appointment State Tracks changes to any appoint-
    Change Listener ments that might affect his
    calendar.


    As is evident from Table 1, the software agents 265 listed therein listen to appointment changes that might affect their calendar. Consider, for example, FIG. 5 (discussed in more detail below) in conjunction with Table 1. FIG. 5 illustrates different appointments (SETUP1, LOT1, MOVE1, TOOL1, PM, QUAL, etc.) that are contained within the calendars for each of several agents (the MSA for TOOL1, the LSA for LOT1, a PMSA, and a RSA). FIG. 5 also illustrates corresponding appointments between those calendars. Fe: example, the MSA calendar contains a processing appointment LOT1 that corresponds with the processing appointment TOOL1 on the LSA calendar. These two appointments are actually for the same event (i.e., the processing of LOT1 on TOOL1) made by two different entities (i.e., the MSA and the LSA, respectively) for two different entities (i.e., the lot LOT1 and the processing tool TOOL1).

    Referring now to both FIG. 3 and FIG. 5, when corresponding appointments (e.g., LOT1, TOOL1) are created, the appointments themselves may contain a collection of listeners, e.g., the listeners 356, 358 in FIG. 3. Listeners are added to the appointment when other software agents 265 want to be notified that the appointment has changed. In this case, the lot processing appointment LOT1 on the MSA calendar 370 contains a listener 356 that notifies the LSA 305 through a notifier 354 when the processing appointment LOT1 changes. On the other hand, the lot appointment TOOL1 contains a listener 358 that notifies the MSA 310 through a notifier 352 when it changes. If the MSA 310 changes the processing appointment LOT1, the LSA 305 will be notified of the appointment change and it will modify the appointment TOOL1 accordingly. Thus, listeners enable the software agents 265 to synchronize the corresponding appointments. Also, the software agents 265 can schedule reactively to such predetermined events when appropriate and can then keep their calendars updated as changes are instituted by other software agents 265.

    When the software agents 265 react to appointment changes, they carefully manipulate the corresponding appointments. In some cases, it would be inappropriate for two software agents 265 to manipulate their respective corresponding appointments at the same time. Thus, a single software agent 265 is responsible for manipulating its respective corresponding appointment, which will then prompt the software agent 265 of the corresponding appointment to manipulate its respective corresponding appointment. For example, in FIG. 5, the LSA 305 contains a move appointment MOVE1 followed by the lot processing appointment TOOL1. If the end time for the move appointment MOVE1 arrives but the appointment is not finished, an alarm listener notifies the LSA 305. ("Alarms" are one type of event listened for, and are discussed further below.) The LSA 305 then expands the duration of the move appointment MOVE1 by a configurable amount of time, but also shifts the lot processing appointment TOOL1 to accommodate the expansion of the move appointment MOVE1.

    At the same time, the alarm listener for the MSA 310 will notify it that the start of the lot processing appointment TOOL1 has arrived. Since the LSA 305 can best determine when the lot LOT1 should arrive at the process tool 115, the LSA 305 shifts the start time of the lot processing appointment TOOL1 after expanding the move appointment. The MSA 310 will wait for its appointment state change listener to notify it of the shift to the lot processing appointment, will find its counterpart lot processing appointment, and shift it accordingly. In this circumstance, the MSA 310 will ignore its own start time alarm. Although not shown, the lot 130, process tool 115, resources, and PMs and Quals all have corresponding "processing" agents, also not shown, that are notified by the scheduling agents when significant events occur that may require processing.

    In furtherance of their proactive and reactive scheduling duties, the software agents 265 maintain calendars, such as the calendar conceptually illustrated in FIG. 4, of scheduled "appointments." FIG. 4 conceptually illustrates a calendar containing information concerning appointments for, e.g., a process tool 115 for a number of lots 130. An "appointment" is a time period certain in which the process tool 115 has obligated itself to perform the process operation, and is defined by an Appointment Start Time ("TS") and an Appointment End Time ("TE"). In the illustrated embodiment, the appointments are booked within "commitment windows" ("CW"), or time windows defined by an Earliest Start Time for processing ("EST") and a Latest Delivery Time ("LDTp"). The client lot 130 commits to arrive at the process tool 115 no later than the EST and the process tool 115 commits to complete the processing no later than the LDT. Note, however, that the use of commitment windows are not necessary to the practice of the invention.

    In FIG. 4, the process tool 115 has booked appointments APP1-APP4 for lots Lot1-Lot4, respectively. Thus, the calendaring information for Lot1-Lot4 is as follows:
    • Lot1: APP1[t10, t12], CW1[t8, t14]
    • Lot2: APP2[t13, t15], CW2[t9, t16]
    • Lot3: APP3[t5, t7], CW3[t2, t11]
    • Lot4: APP4[t3, t4], CW4[t1, t6]


  • Note that, in the illustrated embodiment, several of the commitment windows overlap, but none of the appointments overlap. Appointments may be shifted within their commitment window, so long as they do not overlap other appointments, or may be expanded, shrunk, canceled and rescheduled as is discussed more fully below. However, in some embodiments, parts of the appointments may overlap.

    Thus, returning to FIG. 3, appointments, e.g., the processing appointment 375, are proactively booked on calendars, e.g., the calendars 385, 370, maintained by each scheduling agent, e.g., the scheduling agents 305, 310. Note, however, that not all appointments are processing appointments. Whenever the processing appointment 375 is booked, the LSA 305 schedules move appointments for moving the lots 130 to the location of the newly booked processing appointment 375. For instance, referring to FIG. 1 again, assume the lots 130 processing on the first process tool 115 exits from a port 140 and needs to arrive at the port 145 of the second process tool 115 for the scheduled processing appointment 375. Each LSA 305 schedules the appointments for the lot 130 to transit between the source and destination locations, e.g., the port 140 of the first process tool 115 and the port 145 of the second process tool 115.

    FIG. 5 conceptually illustrates three related calendars maintained for three different types of entities—a lot 130, a process tool 115, and a preventive maintenance ("PM")—on which different types of appointments are booked. In the illustration of FIG. 5, as opposed to the illustration of FIG. 4, all appointments for a given calendar are collapsed onto a single timeline. The commitment windows for each appointment are omitted to facilitate this collapse and to keep from unduly cluttering the illustration. More particularly, FIG. 5 illustrates:
    • a calendar for a process tool TOOL1 maintained by a MSA for the process tool TOOL1, including appointments booked for setups (e.g., SETUP1, SETUP2);
    • lot processing appointments (e.g., LOT1, LOT2, LOT3); PMs (e.g., PM); and
    • Quals (e.g., QUAL);
    • a calendar for a lot LOT1 maintained by a LSA for the lot LOT1 on which are booked appointments for moves (e.g., MOVE1, MOVE2, MOVE3, MOVE4, MOVE5) and lot processing appointments (e.g., TOOL1, TOOL2); and
    • a calendar for a PM maintained by a PMSA on which are booked appointments for PMs (e.g., PM), and Quals (e.g., QUAL).
      Still other types of appointments may be booked. For instance, if the process tool TOOL1 goes down, i.e., is no longer available for processing, a "downtime appointment" may be booked on its calendar to represent the expected repair time. Note that each of these appointments in the calendar of FIG. 5 is for an event that, in the first instance, the software agents 265 proactively schedule according to the manufacturing domain entity they represent.


  • An appointment, e.g., the processing appointment 375 in FIG. 3, exists in one of several "states", or have a certain "status," at any given time. In the illustrated embodiment, the status may be:
    • tentative—the appointment has been created, but not booked (which is discussed further below);
    • unready—the tentative appointment has been booked, but is not ready for execution;
    • ready—the lot 130 involved in the appointment has arrived at the process tool 115 for which it is booked;
    • active—the start time for the appointment has arrived and all participants are ready;
    • active PM/Qual—the start time for a following Qual portion of a PM appointment has arrived;
    • processing—the scheduled activity has started, i.e., the start command has been confirmed by the process tool 115, or the PM or Qual has started;
    • processing PM/Qual—the follow-up Qual portion of a PM has started;
    • near complete—the appointment is nearing completion as defined by predetermined parameters (e.g., processing time remaining, wafer count);
    • complete—processing is completed;
    • canceled—booked appointment is removed from a calendar before it enters the processing status; and
    • aborted—appointment was stopped during processing in a processing status.
      A tentative appointment remains tentative until it is booked, whereupon it enters the unready status. The appointment is unready until the lot 130 arrives at the process tool 115. The appointment is then ready until the start time for the appointment arrives. The appointment then becomes active (i.e., the appointment commences) until the process tool 115 confirms it has started processing. Once the appointment is processing, it retains that status until it nears completion and then is complete. If the appointment is removed from the calendar before entering the processing state, it is "canceled" and removed from the system. Once in the processing status, the appointment is "aborted" if halted. A completed appointment or an aborted appointment retains this status until it is removed from the system.


  • However, in accordance with the present invention, the software agents 265 also reactively schedule events for their respective manufacturing domain entities resulting from developments in the process flow 100. Typically, reactive scheduling by the software agents 265 effects changes to appointments that were, in the first instance, proactively scheduled. However, this is not necessary to the practice of the invention. For instance, in one particular embodiment, the software agents 265 schedule activities in reaction to a machine failure which causes the machine to stop processing and requires a period of downtime in order to repair the machine. There usually would not be any proactively scheduled appointment for such an event since a machine failure usually cannot be predicted in advance.

    More particularly, the software agents 265 usually react to different events that occur within the process flow 100. These events are identified beforehand, i.e., are "predetermined," so that appropriate activities in reaction to those events can be defined. The appropriate actions will depend on a number of factors including not only the type of manufacturing domain involved, but also the type of event that is involved. The predetermined events are categorized, in the illustrated embodiment, as one of three types: appointment state change, a factory state change, or an alarm event.

    Appointment state changes usually occur when a software agent 265, e.g., the scheduling agents 305, 310 change an appointment, e.g., the processing appointment 375. A software agent 265 may change the status of the appointment, expand or shrink the appointment, cancel the appointment, shift the appointment, or perform other manipulations to the calendar or appointments on the calendar. When an appointment is changed, the appropriate agents 265 react to the change. For example, the MSA 310 may expand the scheduled duration of the appointment 375 on its calendar 370 due to the appointment 375 running late. The LSA 305 reacts to that change by expanding the corresponding appointment 375 on its calendar 385 to keep the appointments 375 synchronized across the two calendars 370, 385. Appointment state changes may include, for instance, appointment cancellations, appointment expansions, appointment shrinkage, appointment aborts, appointments changing status, appointments shifting, and commitment window updates.

    Factory state changes usually occur when the state of the factory, e.g., the process flow 100, changes. Factory state change events may originate from the MES 270 (shown in FIG. 2), the AMHS 280 (also shown in FIG. 2), or from the Equipment Interface ("EI", not shown) for the process tools 115. Factory state changes may include lot due date changes, a lot being put on hold, changing the process or process operation of a lot, a lot's location changing, a carrier arriving at a machine port, etc. For every factory state change that is a "predetermined event," the software agents 265 react accordingly. Exemplary factory state changes might include a downtime occurrence; a machine becoming available; a PM/Qual being detected; a chamber going down; a lot departing a machine; a move completed; and a wafer completed.

    Alarm events occur, in this particular embodiment, when a specific alarm has expired. Agents react when an alarm event is received—for example, when the appointment end time has arrived for a lot appointment. If the machine agent does not receive notification that the appointment has ended, the machine agent will expand the appointment based on a configurable percentage of the appointment's total duration. Once the appointment is expanded, the machine agent will set a new alarm for the new, predicted end time of the appointment. An alarm event might be, for instance, an alarm firing for an appointment start time or an alarm firing for an appointment end time.

    Note that some events are unplanned, or unexpected. For instance, there is no reliable way to actually know when a machine or chamber goes down unless it is going down for a scheduled PM or a Qual period. Some of these events are expected. For instance, the time at which a lot 130 arrives at the port 145 of the process tool 115 should be known if it arrives on time since the move was scheduled. Some embodiments may therefore choose not to schedule reactively to such an event, instead preferring to schedule proactively on the assumption the schedule will be met and scheduling reactively only if the schedule is not met. Note that other embodiments may schedule reactively to events not listed either in addition to or in lieu of those set forth herein.

    The reactive scheduling performed upon the occurrence of any particular event will depend on the nature of the event and, to some degree, upon the particular implementation. Generally speaking, the reactive scheduling typically includes changing appointments, e.g., the appointment 375 in FIG. 3, previously scheduled and booked. Booked processing appointments and PM/Qual appointments may be shifted, expanded, aborted, shrunk, canceled, and re-scheduled. Move and setup appointments are modified as needed at the time lot processing appointments are modified. In the illustrated embodiment, these appointment modifications are performed by the LSA 305 or the MSA 310.

    For example, booked processing appointments may be shifted, which may cause booked move appointments to be canceled, aborted, or rescheduled. Appointments are viewed as "beads on a string". Existing appointments are permitted to slide backward or forward in time (i.e., "right" or "left" in FIG. 4 and FIG. 5) within their respective commitment windows as desired to accommodate changes in scheduling. In the illustrated embodiment, to simplify the logic, appointments are not permitted to shift past the next appointment in either direction.

    Consider the circumstance where a lot processing appointment for a lot 130 completes earlier than expected. This provides an opportunity for the MSA 310 to reactively schedule what is known as an "early start." Because the MSA 310 in FIG. 3 is idle, the MSA 310 will attempt to shift the next appointment to an earlier start time and start it immediately. When the lot 130 completes the processing appointment early, the MSA 310 reacts by shifting subsequent scheduled appointments earlier in time to take advantage of the early start opportunity. The LSA 305 will react differently to the event of the lot processing completing early.

    This instance is shown in FIG. 6A, wherein the current time tc falls within the commitment window CW1 for the next appointment APP1. The next appointment APP1 is then shifted left, or earlier in time, so that its processing can begin immediately. If the next booked appointment cannot be shifted to start at the current time, the MSA 310 will search for any other booked appointments that may have commitment windows starting at the current time or earlier. If one of these booked appointments can be moved to start immediately without causing cancellation of any other booked appointments, the booked appointment will be moved in a "jump over" fashion and other booked appointments will be shifted as required. This scenario is shown in FIG. 6B, wherein the current time tc at which the provider is idle is outside the commitment window CW1 for the next booked appointment APP1, but falls within the commitment window CW3 of the third booked appointment APP3. Hence, the third appointment APP3 performs a "jump over" operation, jumping over appointments APP1 and APP2 and appointment APP1 is shifted right to a later start time immediately following appointment APP3.

    In either situation, the LSAs 305 for the affected lots 130 are notified by that their appointments have been changed. The difference in start times and end times may also change the appropriateness of scheduled moves. For instance, if a booked appointment is shifted left, the earlier start time means the lot 130 must arrive earlier than may be provided for by the currently scheduled moves. Conversely, a later start time means the lot 130 should move later. In either circumstance, modified moves may be appropriate to achieve the correct arrival time for the lot 130.

    Consider also the circumstance where the software agents 265 reactively schedule because the duration of a current appointment, or an appointment immediately preceding it, is longer than expected. When the LSA 305 and MSA 310 book appointments, they set an "end-time alarm" (not shown) that notifies them when the appointment is scheduled to be completed. When the task is completed, the scheduling agents 305, 310 are notified and these alarms are canceled. Thus, if the alarm fires, then the scheduling agents 305, 310 know the appointment did not complete at the scheduled time, and that the appointment needs to be expanded.

    FIG. 7A and FIG. 7B illustrate two such situations. The timelines for the appointments in each have been collapsed and the commitment windows are omitted as was the case for the calendars in FIG. 5. In FIG. 7A, the move MOVE3 had a longer duration than was expected, and so the moves MOVE4, MOVE5 and the appointment APP2 were shifted later in time to accommodate this longer duration. In FIG. 7B, the appointment APP3 took longer than was expected, and so the appointments APP4 and APP5 were shifted later in time. Note that in both FIG. 7A and FIG. 7B, the illustrated changes necessarily imply that, in ooth circumstances, the commitment windows for the changed appointments were wide enough to accommodate the changes. Otherwise, some appointments would have to be canceled.

    As can be seen from these two examples, the reactive scheduling will vary according to the circumstance. In general, in the illustrated embodiment, the following scheduling activities may occur responsive to a predetermined event:
    • aborting a scheduled appointment in progress;
    • canceling a scheduled appointment before it begins;
    • scheduling a new appointment;
    • starting a scheduled appointment;
    • expanding the duration of a scheduled appointment;
    • shrinking the duration of a scheduled appointment;
    • shifting a scheduled appointment to an earlier or later time;
    • changing a commitment window;
    • changing an appointment attribute (e.g., transport start time, remaining transport time, etc.);
    • setting an alarm;
    • canceling an alarm; and
    • changing the status of an appointment.
      The "predetermined events" provoking such reactive scheduling may include, for an appointment state change:
    • canceling an appointment;
    • expanding an appointment;
    • shrinking an appointment;
    • aborting an appointment;
    • an appointment changing status;
    • shifting an appointment;
    • an unexpected carrier arrival;
    • a transport time update;
    • a load time update;
    • an unload time update;
    • a lot joining a batch;
    • a lot leaving a batch;
    • canceling a lot from a batch; and
    • updating a commitment window.
      For a factory state change, the predetermined event might be, for example:
    • detection of downtime;
    • a machine becoming available;
    • a PM/Qual being detected;
    • a chamber going down or coming up;
    • a change in machine capabilities;
    • a change in machine types;
    • addition of a process;
    • addition of a process operation;
    • a lot process changed;
    • a lot placed on hold;
    • a lot relesed from hold;
    • a lot priority changed;
    • a lot due date changed;
    • a lot wafer count changed;
    • a lot process operation changed, and
    • a lot departing from or arriving at a machine.
      And, for an alarm event, the predetermined event might be:
    • an alarm firing for an appointment start time; and
    • an alarm firing for an appointment end time.
      Note that these lists are not exhaustive, but illustrative only. The identity of predetermined events will be implementation-specific, and so may vary among embodiments. Typically, depending on the event provoking the reactive scheduling, these activities will be employed in combination, or in the alternative, conditionally. Tables 2-5 list the predetermined events, their type, and their reactive scheduling activities for machine, lot, PM, and resource scheduling agents, respectively, for one particular implementation of the present invention.


  • Tables 2, Table 3, and Table 5 refer one or more of load/unload operations and appointments and charge/discharge operations and appointments. As will be appreciated by those skilled in the art having the benefit of this disclosure, some process tools 115 perform lot batch process operations in which multiple lots 130 are simultaneously processed in a batch. Some of these process tools 115 use load, charge, discharge and unload steps. For instance, a process tool 115 may first load all the batch participants, i.e., lots 130, from the tool I/O ports (not shown) to the tool internal stocker (also not shown). Usually this type of process tool 115 has multiple I/O ports, and the load/unload operations are also performed in batches. After all the batch participants are loaded, the process tool 115 performs a batch charge operation to move the batch participants from the internal stocker into, e.g., a furnace tube (not shown) before the processing can actually begin. After the process tool 115 completes the batch process operation, it discharges the batch participants, e.g., from the furnace tube back into the internal stocker. Finally when the lots 130 are ready to be moved to the tool I/O ports, a sequence of batch unload operations is performed.

    Table 2 also refers to appointments that are "locked." To help prevent undesirable appointment shifting, the illustrated embodiment employs an appointment locking mechanism. Generally speaking, when a lot 130 starts its final move from a source location to a process tool 115, it is undesirable to have a new appointment jumping in front of it by canceling or shifting that appointment to the right, or later in time. To prevent this from occurring, the MSA "locks" the lot processing appointment when the lot 130 starts its final move. Note that locked appointments nevertheless sometimes do need to be shifted. For instance, assume two appointments are booked on the calendar for a particular process tool 115, and the first one is processing while the lot 130 for the second one has started the final move to the process tool 115. The second appointment is locked because it is in its "final" move to the process tool 115. If the first appointment runs long and must be expanded, the second one must first be shifted to permit the first one to expand. Thus, the locked second appointment must be shifted even though this is generally undesirable. In general, however, appointments may be "locked" in certain circumstances to prevent them from being shifted or canceled.

    TABLE 2
    Reactive Scheduling Activities for MSAs
    Event Event Type Reactive Scheduling Activities
    Downtime Factory State A downtime event may indicate the machine
    Detected Change is currently not available for processing or
    (MES) that an error has occurred during processing.
    If the MSA detects that the machine is not
    currently available for processing, the MSA
    will abort and shrink any lot processing
    appointment that is processing. It will then
    book a downtime appointment after the
    aborted lot processing appointment or after
    the unload appointment. If the downtime
    event occurred due to an error during
    processing, the MSA will book a downtime
    appointment after the lot processing
    appointment that is processing or the unload
    appointment. Booked processing
    appointments overlapping the downtime
    appointment are shifted later in time, if
    possible, or are otherwise cancelled.
    Machine Factory State Any active PM, QUAL, or downtime
    Available Change appointments are completed. The next
    Detected (MES) appointment on the machine's calendar is
    then shifted and started, if possible.
    PM/Qual Factory State A PM/Qual appointment is booked after any
    Detected Change active appointments. Any booked
    (MES) appointments overlapping the PM/Qual
    appointment are shifted after the PM/Qual
    appointment. If any overlapping booked
    appointment cannot shift, it is cancelled.
    Chamber Factory State All unready appointments for the machine or
    Down Change chamber that has not started are canceled.
    Detected (MES)
    Chamber Up Factory State The duration for any appointment is
    Detected Change shrunken to the expected completion time
    (MES) based on the new throughput rate and shifted
    to the right, or later in time, if possible.
    Lot Not At a Alarm State If the lot has "reserved" a port with the
    Port At a Change machine, the MSA will wait until the LSA
    Scheduled expands the move appointment. The
    Start Time expansion of the move appointment will
    cause the LSA to shift the lot appointment to
    the right. The MSA will then react
    appropriately to the shifting of the lot
    appointment. If the lot has not reserved the
    port, the appointment is cancelled.
    Lot Arrived Factory State If the lot arrived at the right location, the
    at Machine Change (EI) MSA will make the appointment active if it
    Port is not a participant of a batch appointment. If
    the appointment is a participant of a batch
    appointment, the MSA will make the
    appointment ready. If the machine is idle and
    the appointment is active, the MSA will start
    processing the appointment. (Note: a
    participant of a batch appointment is made
    active when all of the participants have
    arrived at the machine.) If the lot arrived at
    the right machine but the wrong port, the
    MSA will check to see if a different lot
    reserved the port. If a different lot reserved
    the port, the MSA will assign that lot the
    next available port. If the appointment for
    the arriving lot is active, the MSA will start
    processing the appointment. If the lot arrived
    at the wrong machine, the MSA will check
    to see if a different lot reserved the port. If a
    different lot reserved the port, the MSA will
    assign that lot the next available port. The
    machine will then book an appointment for
    the lot just arrived. Any overlapping
    appointments will be shifted to a later time.
    If an overlapping appointment cannot shift
    later in time, it will be cancelled.
    Lot Process- Alarm State If a lot processing appointment is running
    ing Appoint- Change late, it is expanded and any overlapping
    ment Run- booked appointments are shifted to the right,
    ning Late or later in time. If any overlapping booked
    appointment cannot shift right and the
    appointment is not locked, it is cancelled. If
    the appointment is locked and cannot shift
    right, the appointment's commitment
    window will be expanded to allow the shift
    to occur.
    Lot Process- Factory State If a lot processing appointment completes
    ing Complet- Change (EI) earlier than expected, the appointment is
    ing Early shrunk and completed and, if possible, the
    next appointment is shifted earlier in time. If
    the next appointment can shift to the current
    time, it will start that appointment.
    Lot Process- Factory State The MSA calculates the remaining
    ing Near Change (EI) processing time for the lot. If it is going to
    Complete finish early, the appointment is shrunken to
    Detected the new end time and any following
    appointments are shifted left, or earlier in
    time. If it is going to finish late, the
    appointment is expanded to the new end time
    and any overlapping appointment are shifted
    to a later time or cancelled.
    Lot Appointment If processing or near complete, the
    Appointment State Change appointment is aborted or, if unready, simply
    Cancelled canceled. Upon cancellation of an
    appointment, the next appointment is shifted
    earlier in time, if possible, to reduce any
    gaps between appointments.
    Lot Depart- Factory State If the lot was still processing at the time of
    ing Machine Change (EI) its departure, the appointment is aborted and
    Port the end time shifted earlier in time. The next
    appointment is shifted earlier as much as
    possible.
    Shift Appointment The appointment is shifted right. If it cannot
    Appointment State Change be shifted right, it is canceled, unless it is
    Right locked. If it is locked, any appointment
    blocking the right shift are cancelled


    Table 3 refers to "feeder operations." In a partially automated fab, only a portion of the process operations may be scheduled and controlled by the software agents 265. Thus, only a subset of the process tools 115 in the fab are under the control of the software agents 265 and the fab is not fully under the control of this system. Those process operations controlled by the software agents 265 are called "control process operations." Immediately before each control process operation, a sequence of "feeder" operations can be derived from a configurable percentage of the process time of the controlled process operation. Feeder appointments are used in determining the earliest start time for an appointment being scheduled ahead. More particularly, feeder appointments are used when a LSA is scheduling ahead and the time has not yet arrived for scheduling the feeder operation with an actual process tool 115. Feeder appointments are used to represent processing activities for those feeder operations with the duration equal to the cycle time of the respective feeder operations.

    Table 3 also refers to "maxMove" appointments. For a feeder operation, the specific process tool 115 that will perform the final feeder operation is not known until the lot 130 begins processing at the final feeder operation. A "maximum move" appointment represents transport activities from the last feeder process tool 115 to a controlled process tool 115. In one embodiment, the duration of the maximum move appointment is derived by the worst case transport time between the last feeder process tool station 105 and the controlled process tool station 105. When the last feeder appointment is activated, the actual process tool 115 performing the last feeder operation is known, and thus the maximum move appointment will be replaced by a move appointment or a sequence of move appointments.

    Table 3 furthermore refers to a "bid request." In the illustrated embodiment, the process flow 100 employs a protocol for scheduling appointments that begins with a "bid request." The LSA 305 publishes a "request bid" message to a capable MSA 310. The MSA 310 submits one or more bids to the LSA 305. The LSA 305 selects one from among several such bids, which typically results in one or more "appointments" associated with performing the operation the LSA 305 is seeking for its lot 130 of wafers 135. Note, however, that other protocols may be employed in which there is no "bid request." Thus, the bid request is an implementation specific feature that may not be found in all embodiments.

    TABLE 3
    Reactive Scheduling Activities for LSAs
    Event Event Type Reactive Scheduling Activities
    Appointment End Alarm Event The alarm indicates that the scheduled
    Time Alarm Fired end time of the move appointment has
    For Move arrived. The LSA determines if the
    Appointment move appointment should be expanded.
    If the move originates from a machine
    port, move appointment expansion is
    always permitted to clear the port.
    Otherwise, the move appointment is
    expanded a percentage (i.e., 25%) of
    the originally scheduled duration until a
    maximum expansion percentage has
    been reached (i.e., 175%). When the
    maximum expansion percentage has
    been reached, the appointment is
    aborted. If the move appointment
    is expanded, subsequent booked
    appointments are shifted later in
    time. A new end time alarm is
    then set for the expanded move
    appointment.
    Appointment End Alarm Event The alarm indicates that the scheduled
    Time Alarm Fired end time of the feeder appointment has
    For Feeder arrived. The LSA will expand the
    Appointment appointment by a configurable
    percentage. Any subsequent feeder
    appointments (if any) will be shrunk by
    the amount that this feeder appointment
    expanded (can't shrink a feeder duration
    to be less than the process time for the
    operation). As a last resort,
    appointments after the final feeder
    appointment will be shifted to a later
    time.
    Appointment Alarm Event This alarm indicates that the scheduled
    Start Time start time of the specified move
    Arrived For appointment has occurred. The LSA
    Move will make the appointment active if it is
    Appointment not active and the AMHS move will be
    initiated. If the appointment is the
    final move before a lot appointment,
    the LSA will ask a MSA to reserve a
    port and lock the appointment. It will
    also appropriately update the total
    transport time and remaining transport
    time. The LSA will then create an
    appointment end time alarm.
    Appointment Alarm Event This alarm indicates that the scheduled
    Start Time start time of the specified feeder
    Arrived For appointment has occurred. The LSA
    Feeder will make the appointment active if it is
    Appointment: not active. The LSA will then create an
    appointment end time alarm.
    Lot Appointment Appointment The LSA cancels the lot appointment
    Completed and any non-also cancel the end time
    alarm, appropriately updates the
    transport start time, and initiates the
    next appointment.
    Make Lot Appointment The MSA initiates this change when it
    Appointment State Change receives an equipment event stating that
    Near Complete the lot processing is near complete. The
    LSA will change the status of the
    appointment to near complete. It will
    then schedule the post control move
    appointment and invokes scheduling for
    the next process operation if
    appropriate.
    Shift Lot Appointment The LSA will try to move the lot
    Appointment Left State Change appointment to the left, or earlier in
    time. If it is unable to shift left, the
    system will cancel all non-active move,
    load, and unload appointments and then
    cancels the lot appointment.
    Shift Load Appointment The LSA will try to move the load
    Appointment Left State Change appointment to the left. If it is unable to
    shift left, the system will cancel all non-
    active move appointments, cancels
    unload/load appointments, cancels the
    lot appointment.
    Shift Unload Appointment The LSA will try to move the unload
    Appointment Left State Change appointment to the left. If it is unable to
    shift left, the system will cancel all non-
    active move appointments, cancels
    unload/load appointments, and cancels
    the lot appointment.
    Shift Lot Appointment The LSA will check to see if the first
    Appointment State Change appointment is a move appointment. If
    Right it is a move appointment and it is not
    active or on a machine or machine port,
    it will shift that move appointment to
    make it arrive at the start of the lot
    appointment or load appointment (if the
    move appointment is active, it will
    expand the end to the start of the lot
    appointment or load appointment). It
    will then shift any preceding
    appointments to the right. If the system
    is unable to shift the appointments right,
    it will cancel all non-active move
    appointments, any load/unload
    appointment, and the lot appointment.
    Shift Load Appointment The LSA will check to see if the
    Appointment State Change previous appointment is a move
    Right appointment. If it is a move
    appointment and it is not active or on a
    machine or machine port, it will shift
    that move appointment to make it arrive
    at the start of the load appointment (if
    the move appointment is active, it will
    expand the end to the start of the load
    appointment). It will then shift any
    preceding appointments to the right. If
    the system is unable to shift the
    appointments right, it will cancel all
    non-active move appointments, any
    load/unload appointments, and the lot
    appointment.
    Shift Unload Appointment The LSA will shift appointments to the
    Appointment State Change right. If the system is unable to shift the
    Right appointments right, it will cancel the lot
    appointment, which will cancel all
    move, load, and unload appointments
    association with the lot appointment.
    Shrink Lot Appointment The LSA will shrink the lot
    Appointment State Change appointment to the specified time and
    shift subsequent move appointments
    earlier in time.
    Shrink Load Appointment The LSA will shrink the load
    Appointment State Change appointment to the specified time.
    Shrink Unload Appointment The LSA will shrink the unload
    Appointment State Change appointment to the specified time.
    Unscheduled Factory State If the current location of the lot is a
    Move Completed Change machine port, then the system will
    (AMHS) cancel all appointments except the lot
    appointment. The lot appointment will
    only be cancelled if the appointment
    was for a different machine. If the
    appointment was for a different
    machine, the LSA will cancel all
    appointments and wait for the MSA to
    invoke override scheduling. Otherwise,
    the system will determine how long it
    will take for the lot to get back to the
    next processing appointment
    destination. If the lot can still make its
    processing start time, then the system
    will reschedule the appropriate move
    appointments. If the lot is unable to
    make the start time, it will cancel all
    move, load, unload, and lot
    appointments and will initiate
    scheduling.
    Update Appointment The LSA will update the lot
    Commitment State Change appointment commitment window
    Window For Lot appropriately. The commitment window
    Appointment represents the lots earliest start time
    and latest delivery time for a given
    appointment. The commitment window
    is updated if an appointment is
    processing late and the new end time
    exceeds the latest delivery time of the
    appointment.
    Update Load Appointment The LSA will update the load start time
    Time For Load State Change and remaining load time appropriately
    Appointment on the load appointment.
    Wrong Move Appointment If the current location of the lot is a
    Completed State Change machine port, then the system will
    cancel all appointments except for the
    lot appointment. The lot appointment
    will only be cancelled if the
    appointment was for a different
    machine. If the appointment was for a
    different machine, the LSA will cancel
    all appointments and wait for the MSA
    to invoke override scheduling.
    Otherwise, the system will determine
    how long it will take for the lot to get
    back to the next processing appointment
    destination. If the lot can still make its
    original processing start time, then the
    system will reschedule the appropriate
    move appointments. If the lot is unable
    to make the start time, it will cancel all
    move, load, unload, and lot
    appointments and will initiate
    scheduling.
    Lot Due Date Factory State If the lot has a processing appointment
    Change Change active, cancel appointments after either
    (MES) current appointment or following unload
    appointment (if present). If the
    appointment is in "near complete"
    status and the next process operation is
    not a control operation or there is no
    next operation in the process, schedule a
    move appointment after the current lot
    processing appointment. Otherwise,
    attempt to schedule the next process
    operation. If the lot has a move
    appointment active and the move is to a
    machine port destination, cancel
    appointments after the following load
    appointment (if present) and following
    lot processing appointment. Otherwise,
    cancel all appointments after the move
    appointment and reschedule the current
    process operation. If the lot has a feeder
    appointment active, cancel all
    appointments after the feeder
    appointment and reschedule the next
    process operation. If the lot has a load
    appointment active, cancel
    appointments after the following lot
    appointment or load appointment (if
    present.) If the lot has an unload
    appointment active, cancel
    appointments after the current time. If
    the next operation is not a control
    operation or there are no more
    operations, schedule a move
    appointment after the unload
    appointment. Reschedule for the next
    process operation. If no appointments
    are active, cancel all future
    appointments and reschedule current
    process operation.
    Lot put on Hold Factory State If lot is processing, cancel appointment
    Change after post move appointment. If lot is
    (MES) moving to control machine port, cancel
    all appointments after the move and
    schedule a move to the nearest stocker
    as soon as the lot arrives at the machine
    port. If unload appointment is
    processing, cancel all appointments
    after and schedule post move. If feeder
    appointment is processing, shrinks and
    aborts the appointment and then cancels
    all appointments after feeder
    appointment. If load appointment is
    processing, it cancels all appointments
    after except for the unload appointment.
    It will then schedule a post move
    appointment. If the lot has a processing
    appointment active, and it is in a status
    of processing or near complete, it is
    allowed to complete. If the next
    appointment is an unload appointment,
    all subsequent appointments are
    cancelled and a move is scheduled after
    the unload. If the next appointment is a
    move appointment, it and subsequent
    appointments are cancelled and another
    move is scheduled. If there are no
    subsequent appointments, a move is
    scheduled after the processing
    appointment. If the lot appointment is
    active but not processing or complete, it
    is shrunk and aborted. If the next
    appointment is an unload appointment,
    subsequent appointments are cancelled
    and a move appointment is scheduled. If
    the next appointment is a move
    appointment, it is cancelled and another
    move appointment is scheduled. If there
    are no next appointments, a move
    appointment is scheduled. If the lot is in
    a feeder appointment, it is shrunk and
    aborted and all subsequent appointments
    cancelled. If the lot is in a load
    appointment and it is in a processing
    status, the subsequent lot processing
    appointment is cancelled. The following
    unload appointment is left and all
    subsequent appointments cancelled. A
    move appointment is scheduled after
    the unload appointment (both will later
    shift earlier in reaction to
    appointment changes initiated by the
    RSA). If the load appointment is not
    processing, it and subsequent
    appointments are cancelled and a move
    appointment is scheduled. If the lot is in
    an unload appointment, all subsequent
    appointments are cancelled and a move
    appointment is scheduled after the
    unload appointment. If the lot is in a
    move appointment and the move has
    started, all subsequent appointments
    are cancelled. If the move is to a
    machine port, a move is scheduled to
    subsequently transport the lot off the
    machine port. If the lot is on a move
    appointment that has not started, the
    move appointment is aborted and all
    subsequent appointments cancelled.
    Process Changed Factory State If the lot has a processing appointment
    Change active, cancel appointments after either
    (MES) current appointment or following unload
    appointment (if present). If the
    appointment is in "near complete"
    status and the next process operation is
    not a control operation or there is no
    next operation in the process, schedule a
    move appointment after the current lot
    processing appointment. If the
    appointment is near complete and the
    next operation is a control operation,
    attempt to schedule the next process
    operation. If the lot has a move
    appointment active and the move is to a
    machine port destination, cancel
    appointments after the following load
    and unload appointments (if present)
    and following lot processing
    appointment. Otherwise, cancel all
    appointments after the move
    appointment and reschedule the current
    process operation. If the lot has a feeder
    appointment active, cancel all
    appointments after the feeder
    appointment and reschedule the next
    process operation as well as any
    preceding feeder appointments. If the
    lot has a load appointment active,
    cancel appointments after the following
    unload appointment. If the lot has an
    unload appointment active, cancel
    appointments after the current time. If
    the next operation is not a control
    operation or there are no more
    operations, schedule a move
    appointment after the unload
    appointment. Reschedule for the next
    process operation. If no appointments
    are active, cancel all future
    appointments and reschedule current
    process operation.
    Process Operation Factory State The LSA will remove all non-active
    Changed Change appointments. The LSA will then check
    (MES) to see if the new process operation is a
    control or feeder process operation. If
    the process operation is a feeder, then
    the agent will schedule the next process
    operation. If the process operation is a
    control and the agent doesn't have an
    appointment for this process operation,
    it will schedule this process operation.
    If the lot has a processing appointment
    active, cancel appointments after either
    current appointment or following unload
    appointment (if present). If the
    appointment is in "near complete"
    status and the next process operation is
    not a control operation or there is no
    next operation in the process, schedule a
    move appointment after the current lot
    processing appointment. If the
    appointment is near complete and the
    next operation is a control operation,
    attempt to schedule the next process
    operation. If the lot has a move
    appointment active and the move is to a
    machine port destination, cancel
    appointments after the following load
    and unload appointments (if present)
    and following lot processing
    appointment. Otherwise, cancel all
    appointments after the move
    appointment and reschedule the current
    process operation. If the lot has a
    feeder appointment active, cancel all
    appointments after the feeder
    appointment and reschedule the next
    process operation as well as preceding
    feeder appointments. If the lot has a
    load appointment active, cancel
    appointments after the following unload
    appointment. If the lot has an unload
    appointment active, cancel
    appointments after the current time. If
    the next operation is not a control
    operation or there are no more
    operations, schedule a move
    appointment after the unload
    appointment. Reschedule for the next
    process operation. If no appointments
    are active, cancel all future
    appointments and reschedule current
    process operation.
    Wafer Count Factory State If the wafer count for a lot decreases,
    Decreased Change the MSA shrinks lot appointments on its
    (MES) calendar that have not yet started. The
    MSA will try to shrink the appointment
    by the proper amount. The MSA
    cancels any unstarted lot appoitment
    that cannot be shrunk. The LSA
    subsequently reacts to the appointment
    changes made by the MSA, depending
    on the what the changes are.
    Wafer Count Factory State If the wafer count for a lot increases,
    Increased Change the MSA expands lot appointments on
    (MES) its calendar that have not yet started.
    The MSA will try to expand the
    appointment by the proper amount. The
    MSA cancels any unstarted lot
    appoitment that cannot be expanded.
    The LSA subsequently reacts to the
    appointment changes made by the
    MSA, depending on the what the
    changes are.
    Lot Terminated Factory State The system will cancel all appointments
    Change for the lot.
    (MES)
    Lot Moved In Factory State If the lot moves in to a feeder operation
    Change that is not the first feeder operation of
    (MES) the segment, the LSA will adjust the
    appointment's end time to equal the
    current time plus the process time for
    that operation. It will then set an end
    time alarm. If the feeder operation is
    the last feeder, the LSA will replace the
    max move appointment with an
    appropriate move appointment and
    updates the remaining transport time.
    Lot Moved Out Factory State If the operation that the lot changed
    Change from is a feeder operation, the LSA will
    completely shrink the feeder
    appointment and cancel subsequent
    feeder and maxMove appointments, and
    schedule the next operation and any
    preceding feeder appointments. If the
    operation that the lot changed from is a
    control operation, no action is taken
    (next operation would have been
    scheduled at near completion). If the
    operation the lot changed from is a
    normal (not control or feeder) operation,
    the LSA will schedule the operation to
    which the lot changed.
    Experimental Factory State An ERF includes special instructions on
    Request Form Change how to process a particular lot. An ERF
    ("ERF") Status (MES) may be attached to or removed from a
    Change lot, and the LSA is notified when this
    happens. The LSA will notify each lot
    processing appointment's MSA and
    subsequently react to appointment state
    changes (if lot no longer compatible
    with any future batch appointments in
    which it may be participating).
    Override Lot Factory State A bid request and an appointment
    Appointment Change change listener are created and returned
    to the MSA. (This is in response to an
    unscheduled lot being placed on a
    machine port.)
    Machine Appointment LSA will determine if it can improve its
    Advertises a State Change processing appointment for the
    Time Slot operation at the new time slot. If so,
    then the LSA cancel the appointment
    and publishes a submit bid message in
    attempt to reschedule the appointment
    for the advertised time slot.


    TABLE 4
    Reactive Scheduling Activities for PM Scheduling Agents
    Event Event Type Reactive Scheduling Activities
    PM/Qual Appointment The PM appointment is canceled and
    Appointment State Change rescheduled.
    Cancelled
    Expand PM/ Appointment The MSA initiates this change when the PM
    Qual State Change appointment is running long. The PMSA will
    Appointment react to this change by shifting all
    appointments to the right of the PM
    processing appointment being expanded. The
    appointments that cannot be shifted are
    canceled and rescheduled. It will then
    expand the PM appointment to the specified
    time.
    Make PM/ Appointment The MSA initiates this change when the
    Qual State Change processing of the PM has been interrupted.
    Appointment The MSA will change the status of the
    Aborted appointment to aborted. The PMSA will
    reschedule the appointment.
    Make PM/ Appointment The MSA initiates this change when the
    Qual State Change MSA learns the PM has started. The MSA
    Appointment will change appointment to a processing
    Processing status.
    Make PM/ Appointment The MSA initiates this change when the PM
    Qual State Change has completed processing and may shrink the
    Appointment appointment if appropriate. The PMSA will
    Completed notify the processing agent, change the status
    to completed, and update the last occurrence
    of the PM with the current wafer count on
    the machine or current time.
    Make PM Appointment The MSA initiates this change when it is
    Appointment State Change time for the following Qual to start. The
    Active PM/ PMSA will change the status of the
    Qual appointment to "active".
    Make PM Appointment The MSA initiates this change when it
    Appointment State Change receives a Factory State Change indicating
    Processing the Qual portion of the PM appointment has
    PM/Qual started. The PMSA will change the status of
    the appointment to processing PM/Qual.
    Shift PM/ Appointment The PMSA will try to move the PM
    Qual State Change appointment to the left. If it is unable to shift
    Appointment left, the system will cancel the appointment
    Left and reschedule it.
    Shift PM/ Appointment The PMSA will try to move the PM
    Qual State Change appointment to the right. If it is unable to
    Appointment shift right, the system will cancel the
    Right appointment and reschedule it.
    Shrink PM/ Appointment The PMSA will shrink the PM appointment
    Qual State Change to the specified time.
    Appointment
    Update Appointment The PM appointment commitment window is
    Commitment State Change updated. The commitment window
    Window For represents the PMs earliest start time and
    PM/Qual latest delivery time for a given appointment.
    Appointment
    Override Appointment The PM appointment is cancelled
    PM/Qual State Change within the calendar if it exist. It will
    Appointment then create a bid request and appointment
    change listener and return it to the MSA.
    This is in response to an unscheduled PM
    being started.
    MES Factory State The PMSA will appropriately update the
    Machine Change number of occurrences of the event within
    Event any PM or Qual that depends on this event.
    Detected It will then schedule any PMs or Quals
    triggered by the event occurrence what are
    not currently scheduled on its calendar.
    Lot Factory State The PMSA will reevaluate the commitment
    Processing Change windows for all PMs or Quals that are
    Completed scheduled based on a count of material
    on Machine processed. If the commitment window is
    invalid, the PMSA will either update the
    commitment window if the PM or Qual is
    scheduled within the new window, or it will
    cancel the existing appointment and
    reschedule within the new window. It will
    also schedule any PMs or Quals based on a
    count of material processed that have
    reached their trigger point and have not
    been schedule previously.
    Alarm Fired Alarm Event The PMSA will schedule any time-based PM
    or Qual that has reached its trigger point and
    was not previously scheduled.


    TABLE 5
    Reactive Scheduling Activities for Resource Scheduling Agents
    Event Event Type Reactive Scheduling Activities
    Appointment Start Alarm Event This alarm indicates that the
    Time Alarm Fired scheduled start time of the specified
    for Load (Unload) load (unload) appointment has
    Appointment arrived. The resource appointment
    scheduler will make the appointment
    active if it is not active. It will
    also create an appointment end time
    alarm if needed. The resource
    appointment scheduler will inform
    the processing agent to start
    processing the appointment.
    Appointment Start Alarm Event This alarm indicates that the
    Time Alarm Fired scheduled start time of the specified
    for Discharge discharge appointment has arrived.
    Appointment The resource appointment scheduler
    will make the appointment active if it
    is not active. It will also create an
    appointment end time alarm if
    needed. The resource appointment
    scheduler will inform the processing
    agent to start processing the
    appointment.
    Appointment End Alarm Event This alarm indicates that the
    Time Alarm Fired scheduled end time of the specified
    for Load (Unload) load (unload) appointment has
    Appointment arrived. The resource appointment
    scheduler will expand the
    appointment with a percentage (e.g.,
    25%) of the originally scheduled
    duration until a maximum expansion
    percentage has been reached (e.g.,
    175%). Before expanding the
    appointment, the subsequent booked
    appointments may be shifted later in
    time. A new end time alarm is then
    set for the expanded load (unload)
    appointment.
    Appointment End Alarm Event This alarm indicates that the
    Time Alarm Fired scheduled end time of the specified</