US20030225474A1 - Specialization of active software agents in an automated manufacturing environment - Google Patents

Specialization of active software agents in an automated manufacturing environment Download PDF

Info

Publication number
US20030225474A1
US20030225474A1 US10/160,990 US16099002A US2003225474A1 US 20030225474 A1 US20030225474 A1 US 20030225474A1 US 16099002 A US16099002 A US 16099002A US 2003225474 A1 US2003225474 A1 US 2003225474A1
Authority
US
United States
Prior art keywords
agent
processing
lot
scheduling
instantiating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/160,990
Inventor
Gustavo Mata
Steven Nettles
Larry Barto
Yiwei Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GlobalFoundries Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US10/160,990 priority Critical patent/US20030225474A1/en
Assigned to ADVANCED MICRO DEVICES, INC. reassignment ADVANCED MICRO DEVICES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BARTO, LARRY D., LI, YIWEI, MATA, GUSTAVO, NETTLES, STEVEN C.
Priority to PCT/US2002/041659 priority patent/WO2003102771A2/en
Priority to AU2002359877A priority patent/AU2002359877A1/en
Priority to KR1020047019536A priority patent/KR100946397B1/en
Priority to GB0424487A priority patent/GB2404458B/en
Priority to CNB028290585A priority patent/CN100403324C/en
Priority to JP2004509789A priority patent/JP4722479B2/en
Priority to DE10297744T priority patent/DE10297744T5/en
Priority to TW092108319A priority patent/TWI295754B/en
Publication of US20030225474A1 publication Critical patent/US20030225474A1/en
Assigned to GLOBALFOUNDRIES INC. reassignment GLOBALFOUNDRIES INC. AFFIRMATION OF PATENT ASSIGNMENT Assignors: ADVANCED MICRO DEVICES, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32263Afo products, their components to be manufactured, lot selective
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32328Dynamic scheduling, resource allocation, multi agent negotiation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45031Manufacturing semiconductor wafers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/80Management or planning

Definitions

  • This invention pertains to automated manufacturing environments, and, more particularly, to the specialization of active software agents in an automated manufacturing environment.
  • integrated circuits are manufactured from modem semiconductor devices containing numerous structures or features, typically the size of a few micrometers.
  • the features are placed in localized areas of a semiconducting substrate, and are conductive, non-conductive, or semi-conductive (i.e., rendered conductive in defined areas with dopants).
  • the fabrication process generally involves processing a number of wafers through a series of fabrication tools. Each fabrication tool performs one or more of four basic operations discussed more fully below. The four basic operations are performed in accordance with an overall process to finally produce the finished semiconductor devices.
  • Integrated circuits are manufactured from wafers of a semiconducting substrate material. Layers of materials are added, removed, and/or treated during fabrication to create the integrated, electrical circuits that make up the device.
  • the fabrication essentially comprises the following four basic operations:
  • a semiconductor factory (“fab”) is a complex environment where numerous parts, typically 40 thousand wafers or more, and numerous part types, typically 100 part types or more, are simultaneously being manufactured. As each wafer moves through the 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 one of these factories 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 important decision is selecting which lot should run on each machine at any given time. Also, most machines in the manufacturing process need to schedule 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, such that the performance of the procedures does not impede the manufacturing process itself.
  • PM preventative maintenance
  • Qual equipment qualification
  • MES Manufacturing Execution System
  • 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.
  • a MES enables the dispatching and tracking of lots or work-in-progress through the manufacturing process to enable resources to be managed in the most efficient manner.
  • 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 maintenance technician (“MT”) logs the performance of the PM (an “event”) into a MES screen to update the information stored in the database with respect to the status of that entity. Alternatively, if an entity is to be taken down for repair or maintenance, the MT will log this information into the MES database, which then prevents use of the entity until it is subsequently logged back up to a production ready state.
  • 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 fabrication technician (“WFT”) issues the appropriate MES command. And, prior to processing, a WFT must issue a 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.
  • WFT wafer fabrication technician
  • AMHS automated material handling system
  • 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 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.
  • factory control systems utilized in today's wafer fabs are passive and do not enable a high degree of automation. These systems are very dependent on wafer fab technicians and other factory staff to monitor the state of the factory, to continuously react to constant change, to make rapid logistical decisions and to initiate and coordinate factory control activity in a timely manner. These wafer fab technicians 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. Wafer fab technicians 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 is difficult to meet the increased complexity and volume without increasing staff or system capabilities. Wafer fab tech visibility of upstream and downstream operations, tool state, work-in-process and resource availability is limited.
  • the present invention is directed to resolving, or at least reducing, one or all of the problems mentioned above.
  • the invention comprises an apparatus and method for implementing an automated processing environment employing specialized, autonomous, active software agents.
  • the software agents are specialized by the type of entity they represent and the function they perform in the process flow.
  • the apparatus includes a process flow comprising a plurality of manufacturing domain entities and a plurality of such software agents for scheduling a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities.
  • the method includes instantiating such software agents and then permitting them to operate as programmed.
  • FIG. 1 conceptually illustrates a portion of one particular embodiment of a first process flow constructed and operated in accordance with the present invention
  • FIG. 2 conceptually illustrates, in a partial block diagram, selected portions of the hardware and software architectures, respectively, of the computing devices in FIG. 1;
  • FIG. 3A conceptually illustrates in a partial block diagram the specialization of agents on a first level, i.e., as consumer agents and as provider agents in the second process flow of FIG. 1;
  • FIG. 3B illustrates a floating market model implementation of a contract net negotiation protocol for the process flow of FIG. 3A;
  • FIG. 4 conceptually illustrates in a partial block diagram the specialization of agents as to type, entity, and function in the process flow of FIG. 1;
  • FIG. 5A and FIG. 5B illustrate inheritance hierarchies for two classes of agents in the object oriented programming environment of the illustrated embodiment.
  • FIG. 6 illustrates various classes of agents in the AEMS of the process flow in FIG. 1.
  • 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.
  • the invention may be applied to other types of manufacturing processes.
  • 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.
  • the terminology pertaining to semiconductor fabrication shall be retained in disclosing the invention in the context of the illustrated embodiments.
  • the term “lot” is to be construed broadly, meaning any work piece that may be processed in a manufacturing process.
  • 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 .
  • 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 are shown in FIG. 1 processing lots 130 of wafers 135 that will eventually become integrated circuit devices.
  • FIG. 2 depicts selected portions of the hardware and software architectures, respectively, of the computing devices 110 programmed and operated in accordance with the present invention.
  • Some aspects of the hardware and software architecture e.g., the individual cards, the basic input/output system (“BIOS”), input/output drivers, etc.
  • BIOS basic input/output system
  • input/output drivers etc.
  • FIG. 2 depicts selected portions of the hardware and software architectures, respectively, of the computing devices 110 programmed and operated in accordance with the present invention.
  • the computing device 110 is a workstation, employing a UNIX-based operating system, 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 laptop 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., WindowsTM-, LinuxTM- or disk operating system (“DOS”)-based) may also be employed.
  • the invention is not limited by the particular implementation of the computing device 110 .
  • the computing device 110 also includes a processor 205 communicating with some storage 210 over a bus system 215 .
  • the storage 210 will typically include at least a hard disk and some random access memory (“RAM”).
  • the computing device 110 may also, in some embodiments, include removable storage such as the optical disk 230 , or the floppy electromagnetic disk 235 , or some other form such as a magnetic tape or a zip disk (not shown).
  • the processor 205 may be any suitable processor known to the art.
  • the processor may be a general purpose microprocessor or a digital signal processor (“DSP”).
  • DSP digital signal processor
  • the processor 205 is an AthlonTM processor commercially available from Advanced Micro Devices, Inc. (“AMD”), but the invention is not so limited.
  • the computing device 110 includes a monitor 240 , keyboard 245 , and a mouse 250 , which together, along with their associated user interface software 255 (shown in FIG. 2) comprise a user interface 260 .
  • the user interface in the illustrated embodiment is a graphical user interface (“GUI”), although this is not necessary to the practice of the invention.
  • GUI graphical user interface
  • FIG. 2 illustrates selected portions of the software architecture of the computing devices 110 .
  • Each computing device 110 includes, in the illustrated embodiment, a software agent 265 residing thereon in the storage 210 .
  • 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.
  • some computing devices 110 may have multiple software agents 265 residing thereon while other computing devices 110 may not have any.
  • Portions of an automated MES 270 such as WORKSTREAMTM, reside on at least one computing device 110 .
  • the computing devices 110 may also 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 or other type of architecture.
  • 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.
  • 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”).
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • each process tool 115 represents some resource that may be employed for this purpose.
  • 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 .
  • a 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 are capable of assessing a plurality of resources for subsequent processing of the lots 130 of wafers 135 , allocating the resources represented by the process tools 115 , and negotiating among themselves for the allocation of those resources for subsequent processing of the lot 130 of wafers 135 .
  • the software agents 265 are self-configuring on start-up, intelligent, state aware, and imbued with specific goals for which they autonomously initiate behaviors to achieve.
  • the software agents 265 are also self-adjusting as their environment changes.
  • the software agents 265 are implemented in the illustrated emobidment as objects in an object oriented programming (“OOP”) environment, but the invention may be implemented using techniques that are not object oriented.
  • OOP object oriented programming
  • Their behavior is relatively simple and is partially configurable through scripts and properties. The behavior is designed to achieve selected goals such as achieving an assigned lot due date, achieving a predefined level of quality, maximizing machine utilization, and scheduling opportunistic preventive maintenance.
  • the software agents 265 interface with the MES 270 and are integrated with the existing factory control systems (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 will be implementation specific, depending upon the identity of the MES 270 and the factory control systems.
  • the software agents 265 schedule ahead for each lot 130 one or more operations on a specific qualified process tool 115 , including transports and required resources, as discussed more fully 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 or qualifications 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. More particularly, the software agents 265 may, for instance:
  • schedule resources e.g., reticles, loaders, unloaders, etc.
  • schedule resources e.g., reticles, loaders, unloaders, etc.
  • the software agents 265 can be specialized on several different levels to further this behavior.
  • One level is by “type,” i.e., whether the software agents 265 represent a “consumer” or a service “provider” in the process flow 100 . More particularly, whether the software agents 265 represent a consumer or a provider is determined by the type of entity it represents and the context in which the representation takes place.
  • a software agent 265 may represent a lot 130 of wafers 135 (i.e., a “lot agent”), a process tool 115 (i.e., a “machine agent”), a process resource (i.e., a “resource agent”), or a PM or a Qual (i.e., a “PM agent”).
  • some software agents 265 represent manufacturing domain entities that are consumers in some contexts and providers in others, as will be discussed more fully below.
  • the software agents 265 are also specialized by function—i.e., by what function the software agent 265 performs in the process flow. Each specialized software agents 265 occupies a different role in the overall performance of the process flow 100 on which this embodiment is implemented.
  • the software agents 265 need not necessarily exist in a one-to-one correspondence with manufacturing domain entities, such as lots 130 , process tools 115 , etc. Instead, most domain entities are each represented by a group of agents. For instance, as will be discussed more fully below, a lot 130 or a process tool 115 may have both a “scheduling” agent and a “processing” agent. This facilitates the design of specialized objects that exhibit specialized behavior to support a single aspect of domain entity functionality.
  • the software agents 265 in an exemplary process flow 300 can typically be classed as “consumer agents” 305 and “provider agents” 310 .
  • Consumer agents 305 represent the interests of consumers 315 , e.g., the lots 130 or PM procedures 320 , in advancing the lots 130 through the process flow 100 in a timely and efficient manner or in performing PM or Qual procedures within the allowable window, respectively.
  • Provider agents 310 represent the interests of providers 325 , e.g., machines such as the process tool 115 , in meeting the demands of consumers for processing resources in advancing the lots 130 through the process flow 100 in a timely and efficient manner.
  • a software agent 265 representing a lot 130 of wafers 135 would be considered a “consumer” agent 305 and a software agent 265 representing a process tool 115 would be considered “provider” agent because the process tool 115 is “providing” processing services “consumed” by the lot 130 .
  • a software agent 265 may sometimes be classed as a provider agent 310 in one context and a consumer agent 305 in another context.
  • consumer agents 305 and provider agents 310 are particularly apt in the context of scheduling.
  • the scheduling of actions initiated by the software agents 265 in the illustrated embodiment revolve around budgets, costs, and ratios associated with the processing. More particularly, to further the implementation of a contract net negotiation protocol for allocating resources, a combination of budgets, costs, and ratios are used to implement a floating market model approach. The combination is structured to encourage “desirable” behavior, e.g., meeting due dates, effective utilization of machines, etc. More particularly, a “budget” is assigned to a consumer 315 that the consumer agent 305 uses to procure the process services of the providers 325 .
  • the provider 325 charges consumers 315 for the processing services it represents, e.g., processing time.
  • the amount of the budget a consumer 315 is willing to pay depends on how badly the consumer 315 needs the processing resources to stay on schedule and the amount charged by the provider 325 depends on how badly it needs to fill its schedule.
  • the budgets and costs are expressed in dollars, but this is not necessary to the practice of the invention. Any unit of measure may be used instead.
  • the method 330 may be practiced in a variety of embodiments and implementations, a particular one of which is disclosed below.
  • the consumer software agents 305 and provider software agents 310 use a “contract net negotiation protocol” approach to schedule the consumers 315 for the providers 325 .
  • the consumer agents 305 negotiate with provider agents 310 for the consumer 315 's access to the provider 325 's services. This access is referred to as an “appointment.”
  • both the consumer agent 305 and the provider agent 310 “book” the appointment on their respective calendars.
  • the method 330 begins by providing a budget for the consumer 315 for a particular process resource, e.g., process time on the process tool 215 , it next wants to consume, as set forth in box 335 .
  • the consumer 315 then issues through its consumer software agent 305 a bid request for the consumer 315 to acquire the process resource, as set forth in the box 340 .
  • the consumer software agent 305 requests bids from all eligible providers 310 on behalf of a consumer 315 .
  • a consumer software agent 305 When a consumer software agent 305 requests a bid, it gives the providers 310 pertinent information such as: the consumer's identification; the earliest time to begin transport; the processing operation to be scheduled; the latest completion time acceptable to the consumer 315 ; the location from which the consumer 315 will be transported to the provider 310 ; and, the consumer's “budget calculator.”
  • the provider 325 then, through its provider software agent 310 , submits to the consumer 315 at least one bid responsive to the bid request, as set forth in the box 345 .
  • a provider software agent 310 may not submit any bids.
  • the provider software agent maintains a calendar 327 to track appointments.
  • the provider software agent 310 searches the calendar 327 for a time slot in which the provider 305 can potentially provide the requested service. For each potential time slot, the provider 305 submits a bid consisting of the start and end times and an optional cost.
  • the consumer 315 selects a submitted bid by considering the time and optional cost.
  • the consumer 315 then awards a contract to the provider 325 for the selected bid, as set forth in the box 355 , through the consumer software agent 305 .
  • the provider 325 typically is negotiating with several consumers 315 on an ongoing basis. It is possible that the provider 325 subsequently scheduled another consumer 315 in a manner conflicting with the submitted bid such that it can no longer accept the contract.
  • the provider 325 through its provider software agent 310 , checks the calendar 327 to see whether it can still implement the bid and accept the contract.
  • the provider 325 then confirms the awarded contract, as set forth in the box 360 , and both the consumer and provider schedule the appointment 362 on their respective calendars 323 , 327 .
  • An “appointment” is a time period certain in which the provider 325 has obligated itself to perform the activity.
  • consumer software agents 305 are designed to acquire services more or less aggressively depending on selected factors, such as priority or lateness.
  • Provider software agents 310 are designed to provide such services more or less aggressively depending on a number of factors, such as the level of utilization in their calendars. Note that these decisions can be manipulated externally through configurable properties or curves that affect budgets and costs on which the decisions are based. Working like this in concert, the consumer and provider software agents 305 , 310 cooperate to satisfy the consumers 305 in a timely and efficient manner.
  • FIG. 4 depicts a portion of a semiconductor fabrication process flow 400 in which the software agents 265 of FIG. 2 embody all three levels of specialization. More particularly, the process flow 400 includes:
  • PMSA PM scheduling agent
  • a lot scheduling agent (“LSA”) 405 which is a consumer software agent representing the lot 130 for scheduling purposes;
  • a machine scheduling agent (“MSA”) 410 which is both a consumer and a provider software agent, depending on the context in which it is operating, representing the process tool 115 for scheduling purposes; and
  • a resource scheduling agent (“RSA”) 415 which is a provider software agent representing the reticle 420 for scheduling purposes.
  • the lot 130 , process tool 115 , PM or Qual procedure (not shown) and reticle 420 all have corresponding “processing” agents to whom the scheduling agents 405 , 410 , 415 , 418 pass control when it is time for executing the activity.
  • RSAs 415 can represent other types of process resources, e.g., dummy wafers, empty cassettes, WFTs, MTs, etc.
  • the process flow 400 implements the floating market model approach to the contract net negotiation protocol discussed above relative to FIG. 3A and FIG. 3B.
  • the LSA 405 tries to minimize costs while staying on schedule.
  • the MSA 410 tries to optimize tool utilization while maximizing profits.
  • the LSA 405 tries to keep the lot 130 it represents on schedule.
  • the MSA 410 tries to maximize utilization of the process tool 115 it represents.
  • the RSA 415 tries to maximize utilization of the resource it represents, i.e., the reticle 420 .
  • the RSA 415 can represent other types of resources, e.g., machine loading resource, dummy wafers, cassettes, wafer fab technicians, maintenance technicians, etc., in other implementations.
  • the PMSA 418 attempts to opportunistically schedule PMs and Quals on, inter alia, the process tool 115 .
  • the various agents 405 , 410 , 415 , and 418 do this in the context of negotiating appointments for the consumption of processing resources by adjusting the prices they offer or budgets to pay for services in accordance with the schedules they need to meet or want to keep.
  • a lot 130 typically negotiates with a number of pieces of equipment, e.g., process tools 115 .
  • the LSA 405 tries to find a time slot offered by a process tool that will allow the lot 130 to meet its due date and feed the next bottleneck machine station at the appropriate time.
  • the MSA 410 tries to acquire lots 130 for processing in a way that optimizes the utilization of the process tool 115 .
  • the goals of the MSA 410 are to maximize the overall utilization of its respective process tool 115 , respect the relative priority of the lots 130 , reduce setup or recipe changes, and optimize its batch size. This collaboration of agent interaction results in the scheduling of a lot 130 on a particular process tool 115 within a specified time window.
  • the LSA 405 begins the negotiation by publishing a “request bid” message 425 to all of the MSAs 410 representing process tools 115 capable of performing a desired manufacturing operation.
  • a MSA 410 is acting as a provider because the process tool 115 is providing processing services, i.e., processing time.
  • the MSA 410 for each capable process tool 115 upon receipt of the request bid message 425 , identifies a potential bid, recognizes that it will need a qualified reticle 420 to perform the job, and publishes its own request bid message 430 to the RSAs 415 of all capable resources, i.e., qualified reticles 420 .
  • the MSA 410 has now shifted from a provider at this point to a consumer since the process tool 115 is now consuming process services, i.e., time with the reticle 420 .
  • Each RSA 415 representing a qualified reticle 420 submits one or more bids 435 , one of which the MSA 410 selects for inclusion in its bid 460 .
  • the MSA 410 having now identified the necessary resources, returns to its role as a provider of processing services. If another potential bid is identified by the MSA 410 , it once again requests bids from the appropriate RSAs 415 .
  • Each MSA 410 representing a capable process tool 115 submits one or more bids 460 to the LSA 405 that published the request bid message 425 .
  • the LSA 405 selects one bid 460 from among all the submitted bids 460 of all the MSAs 410 .
  • the LSA 405 then awards the contract 465 to the MSA 410 submitting the selected bid 460 .
  • the MSA 410 checks its machine calendar 470 , determines that the bid is still available and, if so, awards the contract 440 to the reticle 420 that submitted the selected bid 435 .
  • the RSA 415 checks its resource calendar 445 , sees that the bid is still available, and schedules the appointment 475 a on its own resource calendar 445 .
  • the RSA 415 then confirms the contract with a “confirm bid” message 455 , and the MSA 410 schedules an appointment 475 b on its machine calendar 470 , with a reference to the RSA 415 that provided the “resource” bid 435 .
  • the MSA 410 then sends a “confirmed bid” message 480 to the LSA 405 .
  • the LSA 405 then schedules the corresponding appointment 475 c on its own lot calendar 485 .
  • the scheduling agents 405 , 410 , and 415 pass control to their respective processing agents (not shown).
  • process tool 115 processes wafers, lots 130 , or batches serially (i.e., completes processing of a first unit before beginning processing of a second) or sequentially (“cascading,” i.e., capable of beginning processing of a second unit before completing processing of a first);
  • machine agents are specialized by whether they process by wafer, by lot, by batch, etc.
  • the following machine agents are employed:
  • Calendars e.g., the calendar 327 in FIG. 3A, may also be specialized as are the machines with which they are associated. Thus, in the embodiment mentioned immediately above, the following specialized calendars are used:
  • PM agents may be specialized by whether the maintenance procedures they perform are based on time, wafers processed, lots processed, batches processed, processing time, an occurrence of an event, etc. In one particular embodiment, the following specialized PM agents are employed:
  • processing unit-based e.g., number of lots 130 processed, number of batches processed
  • PM scheduling agents e.g., number of lots 130 processed, number of batches processed
  • processing time-based (e.g., cumulative processing time) PM scheduling agents e.g., cumulative processing time) PM scheduling agents
  • event-based PM scheduling agents e.g., an end of processing event
  • processing unit-based e.g., number of lots 130 processed, number of batches processed
  • PM processing agents e.g., number of lots 130 processed, number of batches processed
  • processing time-based e.g., cumulative processing time
  • PM processing agents e.g., cumulative processing time
  • event-based PM processing agents e.g., an end of processing event.
  • Each PM Scheduling Agent contains unique behavior due to the different types of PMs. For example, a time-based PM Scheduling Agent schedules PMs based on time (e.g., 30 day PM). The time-based PM Scheduling Agent determines the time the PM is due by adding 30 days to the last occurrence of the PM. On the other side, an event-based PM Scheduling Agent behaves differently. The event-based PM Scheduling Agent is scheduling PMs based on events occurring on the tool (e.g., End Etch PM). When the Event-based PM Scheduling Agent detects an end etch event has occurred, it will schedule a PM on that specific process tool 115 .
  • time-based PM Scheduling Agent schedules PMs based on time (e.g., 30 day PM). The time-based PM Scheduling Agent determines the time the PM is due by adding 30 days to the last occurrence of the PM.
  • an event-based PM Scheduling Agent behaves differently.
  • the event-based PM Scheduling Agent is scheduling PMs based
  • LSAs can be specialized for reasons such as:
  • a LSA may have a different behavior in selecting a bid based on the lot's priority, product, or product family. For example, a higher priority lot will select a bid based on the time it can be processed, while a lower priority lot would select a bid based on cost. A lot may also behave differently based on the lot's product family. As an example, consider a flash processor lot versus a microprocessor lot. A flash processor might have the behavior of getting through the process flow as quickly as possible. In this case, the lot will select bids based on time. In the other hand, a microprocessor might have the opposite behavior and would select bids based on cost.
  • Resource agents may likewise be specialized as scheduling or processing agents and by whether they represent dedicated resources (e.g., a loading resource) or a shared resource (e.g., a WFT, reticle, dummy wafer, or empty carrier), as well as by the specific type of resource they represent. Still other specializations may be employed in alternative embodiments.
  • an OOP environment in which the illustrated embodiment is illustrated is well suited for specialization of this type.
  • an OOP environment comprises numerous software-implemented objects, each of which belongs to an object type, or object class.
  • processing agents and scheduling agents belong to two different object classes.
  • Objects within a class can be differentiated into an “inheritance hierarchy,” in which lower levels inherit characteristics of higher levels while including attributes or characteristics that distinguish them from the higher levels.
  • the MSA 502 is the baseline class for MSAs.
  • the MSA 502 contains the behavior shared by all of the MSAs. For example, the MSA 502 is responsible for creating and removing appointment start time and end time alarms.
  • the agent also constructs some common helper classes, which include, for instance, Appointment Change Notifier, Appointment Change Listener, Machine Stats, Machine Listener, Bid Request Subscriber, Early Starter, Penalty Refund Calculator, Bump Evaluator, Shift Lot Right Rescheduler, and Machine Bid Requestor. All of these concepts are discussed more fully below.
  • the MSA 502 is also responsible for requesting a tool status.
  • the LSAs also call on the MSA 502 to generate or confirm bids. All of the behaviors in the MSA 502 are inherited by the MSAs.
  • the MSAs include a Lot MSA 504 , a Lot Sequential MSA 506 , a Batch MSA 508 , a Batch Lot MSA 510 , a Batch Lot Sequential MSA 512 , a Batch Wafer MSA 514 , a Batch Wafer Sequential MSA 516 , a Wafer Machine Scheduling Agent 518 , and a Wafer Sequential MSA 520 .
  • each specialized MSA contains unique behavior and overrides some inherited behaviors. Most of the unique behavior, in the illustrated embodiment, is based on how the process tool 115 associated with the MSA processes lots 130 . Some of the behaviors include processing the tool status, processing equipment events, reacting to appointment state changes, reacting to factory state changes, determining the consumption time for a lot or batch, and creation of specialized helper classes (discussed further below). In order to illustrate the different behaviors between the scheduling agents, we will compare and contrast the behavior of a Wafer MSA 518 versus a Batch Lot MSA 510 .
  • a Wafer MSA 518 processes a wafer at a time for a given lot.
  • a Batch Lot MSA 510 processes a batch of several lots at a time.
  • both agents 510 , 518 will request a tool status.
  • the tool status received by the agents 510 , 518 is unique.
  • the Wafer MSA 518 will receive a tool status that contains information based on wafers while the Batch Lot MSA 510 will receive a tool status based on lot batches.
  • Each agent 510 , 518 will uniquely process the tool status in order to discover the state of the machine.
  • Another difference between the agents 510 , 518 is how they process equipment events.
  • the events depend on how the machine processes lots. In the case of a wafer machine, some equipment events are wafer based. With a batch lot machine, some of the equipment events are time based. For example, the near complete event is triggered when the process tool 115 is almost done processing the lot 130 or batch. On a wafer-based machine, the event is triggered when a given number of wafers are remaining. On a batch lot machine, the event is triggered when time remaining reaches a particular threshold.
  • Determining the consumption time of a new appointment is also different between the Wafer MSA 518 and the Batch Lot MSA 510 .
  • the number of wafers 135 a lot 130 contains and the process operation determine the consumption time on a wafer-based machine.
  • a Batch Lot MSA 510 uses a batch consumption time for the process and process operation.
  • the scheduling agent receives the near complete event, the agent determines if it should expand or shrink the appointment.
  • the agent 518 determines the number of remaining wafers to be processed. It will then determine the remaining consumption time based on the remaining wafer count. It will shrink or expand the appointment based on the remaining consumption time.
  • the Batch Lot MSA 510 receives the remaining consumption time within the near complete event. It will shrink or expand the appointment based on the remaining consumption time.
  • the RSA object class 552 is the baseline class for all RSAs.
  • the baseline RSA 552 contains the behavior shared by all of the RSAs.
  • the baseline RSA 552 is responsible for creating and removing appointment start time and end time alarms.
  • the baseline RSA 552 is further classified into two sub classes: dedicated RSAs 554 and shared RSAs 556 .
  • a typical example of a dedicated resource is the loading resource responsible for loading and unloading lots 130 on a batch processing tool 115 .
  • Such a dedicated resource is represented by a dedicated RSA 554 , e.g., the loading RSA 558 .
  • Typical examples for a shared resource are reticles, empty cassettes, dummy wafers, WFTs and MTs.
  • shared resources are represented by shared RSAs 556 , e.g., the reticle scheduling agent 560 , the empty cassette scheduling agent 562 , dummy wafer scheduling agent 564 , WFT scheduling agent 568 , MT scheduling agent 570 .
  • One of the specialized behaviors of a loading RSA 558 is the loading order optimization. Every time a loading RSA 558 receives an appointment change event related to update of the earliest arrival time of a lot 130 , it will determine an optimized loading order of all the lots 130 in a batch, such that the loading of all the batch participants can be completed in the shortest time.
  • Another specialized behavior of a loading RSA 558 is the scheduling of unloading appointments when a batch job has late arrival lots 130 . In a desired setting, all the loading for the second batch job will be scheduled to complete before the discharge start time of the first batch job.
  • the process operation performed on one type of batch processing tools 115 is very close to the end of the process route, and the RSA would always schedule unloading appointments for the first batch immediately after the end of the discharging, and then the late arrival's loading appointment is scheduled after the unloading of the first batch.
  • the process operation is not very close to the end of the process route, and there is no such urgency to rush the unloading appointments, so the late arrival lots 130 will be scheduled for loading following the discharging of the first batch job and unloading of the first batch will be scheduled after the completion of the charging of the second batch job.
  • a dedicated RSA 554 Because of the nature of a dedicated resource, no move appointment is required to transport the resource between appointments. However, for a shared RSA 556 , because the resource has to be shared between a group of processing tools 115 or lots 130 , a move appointment has to be scheduled between two appointments if these two appointments are scheduled for two different locations. So a shared RSA 556 will have its own specialized behavior when creating and booking a resource processing appointment: a move appointment will be created and booked if a transport of the resource is necessary. A shared RSA 556 also has its own specialized behaviors regarding bid generation and bid confirmation. It allows a higher priority processing tool 115 or lot 130 to bump appointments for less important processing tools 115 or lots 130 .
  • RSAs also exhibit other specialized behaviors.
  • WFT or MT scheduling agents 568 , 570 each has specialized behavior to consider the constraints related to the person's qualifications (skills), break time requirements and shift limitations.
  • One difference between the WFT an MT is that typically an MT is needed for the full duration of a repair or PM, while a WFT may be needed only part of the time. For instance, a WFT may be needed at a process tool 115 during loading and unloading but can perform other tasks while the tool 115 is processing.
  • An empty cassette scheduling agent 562 has specialized behavior because it is dynamically created and then ceases to exist after being used.
  • An empty cassette ceases to be a shared resource after it is used to store wafers, while a cassette carrying a production lot can become an empty cassette if the wafers are removed from the cassette.
  • Dummy wafer scheduling agents 564 have specialized behavior because these wafers require periodic refurbishing. Dummy wafers are used to fill empty slots in some batch machines that require a minimum load size for correct processing. Dummy wafers must be taken out of service after a specific amount of usage and cannot be used again until they are refurbished.
  • the AEMS 600 of the illustrated embodiment comprises a number of software components including, in part, the software objects illustrated in FIG. 6. These include the following classes:
  • a scheduling agent class 610 further including:
  • LSAs 630 that schedule processing and associated move appointments on behalf of a specified lot 130 ;
  • MSAs 650 that schedule appointments with other scheduling agents on behalf of a specified machine
  • PSAs PM scheduling agents
  • RSAs 660 that schedule the use of secondary resources (e.g., reticles, WFTs, MTs);
  • a processing agent class 620 further including:
  • LPAs lot processing agents
  • machine processing agents (“MPAs”) 690 that execute setup, lot processing or batch processing, and PM and Qual appointments;
  • PDAs PM processing agents
  • resource processing agents e.g., loads and unloads for machine loading resources, resource movement, resource usage
  • resource-specific appointments e.g., loads and unloads for machine loading resources, resource movement, resource usage
  • a lot start agent class 602 further including:
  • starvation avoid ance lot start agent (“SALSA”) 605 that releases lots just in time to prevent bottleneck starvation; and
  • SALSA ance lot start agent
  • a scheduled release lot start agent (“SRLSA”) 615 that releases lots according to a predetermined schedule.
  • the SALSA agent 605 determines when new lots 130 are released into the process flow of the fab. More particularly, the SALSA agent 605 monitors work in process (“WIP”) in the process flow and identifies one or more workstations that create bottlenecks in the process flow. The SALSA agent 605 calculates a WIP value representing the amount of work approaching each bottleneck workstation and determines whether the WIP value is projected to fall below a control limit during an evaluation period. If the WIP value is projected to fall below the control limit during the evaluation period, a selected amount of additional work is released into the manufacturing line. In some implementations, the SALSA agent 605 even determines one or more product types for the selected amount of additional work.
  • WIP work in process
  • the AEMS 600 also comprises a number of software components (not shown) in “helper classes” that are used by the software agents 265 to accomplish their functions.
  • calculators for calculating various quantities (e.g., lot budget calculator, latest completion time calculator, bid cost calculator);
  • schedulers for scheduling various events (e.g., move schedulers);
  • listeners for detecting and reporting the occurrence of selected events or changes in state (e.g., lot listeners, bid listeners)
  • an alarm clock that provides time (real or simulated) to components of the AEMS 500 components and the ability to set an alarm for a specified time or period and listener to be invoked;
  • adapters that provide interfaces to other aspects of the manufacturing facility, e.g., the MES, the El, the AMHS, such as:
  • MES adapters that interface with the MES to perform MES transactions, e.g., track-in/out lot or machine, put lot on hold, etc.;
  • EI adapters that send commands to equipment interfaces (e.g., download recipes, request tool status, etc.) and that receive event information from equipment interfaces via equipment event dispatchers;
  • AMHS adapters that send move commands to the AMHS and receive move status updates from the AMHS;
  • notification adapters that send various forms of notification (e.g., screen, pager, e-mail, etc.) to fab personnel (e.g., WFTs).
  • Table 1 lists these helper class components by agent for one particular embodiment of the invention.
  • Bumping Bid Request Responds to a bumping bid request from a MSA, it Processor generates a bumping bid feasible on the resource scheduling calendar.
  • Open Slot Bid Request Responds to an open slot bid request from a MSA, Processor it generates an open slot bid feasible on the resource scheduling calendar.
  • Join Batch Bid Request Responds to a join batch bid request from a MSA, Processor it generates a join batch bid feasible on the resource scheduling calendar.
  • Join Batch Bumping Bid Responds to a join batch bumping bid request from Request Processor a MSA, it generates a join batch bumping bid feasible on the resource scheduling calendar.
  • Shift Left Actions Generates a collection of appointment shift and Converter jump over actions for a given shift left action collection coming from the corresponding machine scheduling calendar
  • Shift Right Actions Generates a collection of appointment shift and Converter jump over actions for a given shift right action collection coming from the corresponding machine scheduling calendar
  • Bumping Feasibility Evaluates the feasibility of a bumping bid, if it is Processor feasible, it will generate a collection of actions to accomplish the bumping bid.
  • Open Slot Feasibility Evaluates the feasibility of an open slot bid, if it is Processor feasible, it will generate a collection of actions to accomplish the open slot bid.
  • Join Batch Feasibility Evaluates the feasibility of a join batch bid, if it is Processor feasible, it will generate a collection of actions to accomplish the join batch bid.
  • Join Batch Bumping Evaluates the feasibility of a join batch bumping Feasibility Processor bid, if it is feasible, it will generate a collection of actions to accomplish the join batch bumping bid.
  • Machine Listener Listens for and reacts to state changes of a machine that impact appointments.
  • Resource Scheduling Stores and manipulates appointments. Calendar
  • the software agents are implemented using object-oriented programming techniques.
  • a software “agent” is an autonomous, active object. Given its set of operations, a software agent can take independent action in response to local conditions, thereby generating adaptable system behavior.
  • the present invention presents an agent-enhanced system that defines, configures, and deploys autonomous and mobile “software agents” that mimic and improve the functioning of “real world” agents in a semiconductor manufacturing plant such as factory workers, material, equipment, resources, etc.
  • an agent or other software object can include one or more software objects.
  • the term “object” will be understood to be a software object that may, in turn, be composed of other software objects.
  • the functionality of one object may combined with other functionalities. It is to be understood that functionalities described as being associated with separate objects may be combined into the functionality associated with a single object.
  • the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium.
  • the program storage medium may be magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or “CD ROM”), and may be read only or random access.
  • the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The invention is not limited by these aspects of any given implementation.

Abstract

An apparatus and method for implementing an automated processing environment employing specialized, autonomous, active software agents are disclosed. The software agents are specialized by the type of entity they represent and the function they perform in the process flow. The apparatus includes a process flow comprising a plurality of manufacturing domain entities and a plurality of such software agents for scheduling a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities. The method includes instantiating such software agents and then permitting them to operate as programmed.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • This invention pertains to automated manufacturing environments, and, more particularly, to the specialization of active software agents in an automated manufacturing environment. [0002]
  • 2. Description of the Related Art [0003]
  • 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. [0004]
  • Turning first to fabrication, integrated circuits, or microchips, are manufactured from modem semiconductor devices containing numerous structures or features, typically the size of a few micrometers. The features are placed in localized areas of a semiconducting substrate, and are conductive, non-conductive, or semi-conductive (i.e., rendered conductive in defined areas with dopants). The fabrication process generally involves processing a number of wafers through a series of fabrication tools. Each fabrication tool performs one or more of four basic operations discussed more fully below. The four basic operations are performed in accordance with an overall process to finally produce the finished semiconductor devices. [0005]
  • Integrated circuits are manufactured from wafers of a semiconducting substrate material. Layers of materials are added, removed, and/or treated during fabrication to create the integrated, electrical circuits that make up the device. The fabrication essentially comprises the following four basic operations: [0006]
  • layering, or adding thin layers of various materials to a wafer from which a semiconductor is produced; [0007]
  • patterning, or removing selected portions of added layers; [0008]
  • doping, or placing specific amounts of dopants in selected portions of the wafer through openings in the added layers; and [0009]
  • heat treating, or heating and cooling the materials to produce desired effects in the processed wafer. [0010]
  • 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, [0011] Microchip Fabrication A Practical Guide to Semiconductor Processing (3d Ed. 1997 McGraw-Hill Companies, Inc.) (ISBN 0-07-067250-4).
  • Controlling a semiconductor factory, however, is a challenging task. A semiconductor factory (“fab”) is a complex environment where numerous parts, typically 40 thousand wafers or more, and numerous part types, typically 100 part types or more, are simultaneously being manufactured. As each wafer moves through the 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 one of these factories is a difficult and complicated task, even with the assistance of a computerized factory control system. [0012]
  • 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 important decision is selecting which lot should run on each machine at any given time. Also, most machines in the manufacturing process need to schedule 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, such that the performance of the procedures does not impede the manufacturing process itself. [0013]
  • 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, a MES enables the dispatching and tracking of lots or work-in-progress 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 maintenance technician (“MT”) logs the performance of the PM (an “event”) into a MES screen to update the information stored in the database with respect to the status of that entity. Alternatively, if an entity is to be taken down for repair or maintenance, the MT will log this information into the MES database, which then prevents use of the entity until it is subsequently logged back up to a production ready state. [0014]
  • 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 fabrication technician (“WFT”) issues the appropriate MES command. And, prior to processing, a WFT must issue a 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. [0015]
  • 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 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. [0016]
  • 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. [0017]
  • Thus, factory control systems utilized in today's wafer fabs are passive and do not enable a high degree of automation. These systems are very dependent on wafer fab technicians and other factory staff to monitor the state of the factory, to continuously react to constant change, to make rapid logistical decisions and to initiate and coordinate factory control activity in a timely manner. These wafer fab technicians 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. Wafer fab technicians 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 is difficult to meet the increased complexity and volume without increasing staff or system capabilities. Wafer fab tech visibility of upstream and downstream operations, tool state, work-in-process and resource availability is limited. [0018]
  • However, key logistical decisions are frequently based on this limited and dated information, which is only partially provided by factory control systems. Wafer fab techs 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. [0019]
  • The present invention is directed to resolving, or at least reducing, one or all of the problems mentioned above. [0020]
  • SUMMARY OF THE INVENTION
  • The invention comprises an apparatus and method for implementing an automated processing environment employing specialized, autonomous, active software agents. The software agents are specialized by the type of entity they represent and the function they perform in the process flow. The apparatus includes a process flow comprising a plurality of manufacturing domain entities and a plurality of such software agents for scheduling a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities. The method includes instantiating such software agents and then permitting them to operate as programmed.[0021]
  • 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: [0022]
  • FIG. 1 conceptually illustrates a portion of one particular embodiment of a first process flow constructed and operated in accordance with the present invention; [0023]
  • FIG. 2 conceptually illustrates, in a partial block diagram, selected portions of the hardware and software architectures, respectively, of the computing devices in FIG. 1; [0024]
  • FIG. 3A conceptually illustrates in a partial block diagram the specialization of agents on a first level, i.e., as consumer agents and as provider agents in the second process flow of FIG. 1; [0025]
  • FIG. 3B illustrates a floating market model implementation of a contract net negotiation protocol for the process flow of FIG. 3A; [0026]
  • FIG. 4 conceptually illustrates in a partial block diagram the specialization of agents as to type, entity, and function in the process flow of FIG. 1; [0027]
  • FIG. 5A and FIG. 5B illustrate inheritance hierarchies for two classes of agents in the object oriented programming environment of the illustrated embodiment; and [0028]
  • FIG. 6 illustrates various classes of agents in the AEMS of the process flow in FIG. 1.[0029]
  • 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. [0030]
  • 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. [0031]
  • FIG. 1 conceptually illustrates a portion of one particular embodiment of a [0032] 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 shall be retained in disclosing the invention in the context of the illustrated embodiments. Thus, the term “lot” is to be construed broadly, meaning any work piece that may be processed in a manufacturing process.
  • The illustrated portion of the [0033] 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 are shown in FIG. 1 processing lots 130 of wafers 135 that will eventually become integrated circuit devices.
  • FIG. 2 depicts selected portions of the hardware and software architectures, respectively, of the [0034] computing devices 110 programmed and operated in accordance with the present invention. 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 [0035] computing device 110 is a workstation, employing a UNIX-based operating system, 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 laptop 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 the computing device 110.
  • The [0036] computing device 110 also includes a processor 205 communicating with some storage 210 over a bus system 215. The storage 210 will typically include at least a hard disk and some random access memory (“RAM”). The computing device 110 may also, in some embodiments, include removable storage such as the optical disk 230, or the floppy electromagnetic disk 235, or some other form such as a magnetic tape or a zip disk (not shown). The processor 205 may be any suitable processor known to the art. For instance, the processor may be a general purpose microprocessor or a digital signal processor (“DSP”). In the illustrated embodiment, the processor 205 is an Athlon™ processor commercially available from Advanced Micro Devices, Inc. (“AMD”), but the invention is not so limited. The 64-bit UltraSPARC™ or the 32-bit microSPARC™ from Sun Microsystems, any of the Itanium™, Pentium™, or Alpham™-class processors from Intel Corporation might alternatively be employed. The computing device 110 includes a monitor 240, keyboard 245, and a mouse 250, which together, along with their associated user interface software 255 (shown in FIG. 2) comprise a user interface 260. The user interface in the illustrated embodiment is a graphical user interface (“GUI”), although this is not necessary to the practice of the invention.
  • FIG. 2 illustrates selected portions of the software architecture of the [0037] computing devices 110. Each computing device 110 includes, in the illustrated embodiment, a software agent 265 residing thereon 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. Portions of an automated MES 270, such as WORKSTREAM™, reside on at least one computing device 110.
  • Returning briefly to FIG. 1, as was mentioned above, the [0038] computing devices 110 may also 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 or other type of 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. 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”).
  • Referring now to both FIG. 1 and FIG. 2, the [0039] software agents 265, collectively, are responsible for efficiently scheduling and controlling the lots 130 of wafers 135 through the fabrication process. Each process tool 115 represents some resource that may be employed for this purpose. For instance, 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, a process tool 115 may be a metrology tool used to evaluate the performance of various parts of the process flow 100. Thus, the software agents 265 are capable of assessing a plurality of resources for subsequent processing of the lots 130 of wafers 135, allocating the resources represented by the process tools 115, and negotiating among themselves for the allocation of those resources for subsequent processing of the lot 130 of wafers 135.
  • In the illustrated embodiment, the [0040] software agents 265 are self-configuring on start-up, intelligent, state aware, and imbued with specific goals for which they autonomously initiate behaviors to achieve. The software agents 265 are also self-adjusting as their environment changes. The software agents 265 are implemented in the illustrated emobidment as objects in an object oriented programming (“OOP”) environment, but the invention may be implemented using techniques that are not object oriented. Their behavior is relatively simple and is partially configurable through scripts and properties. The behavior is designed to achieve selected goals such as achieving an assigned lot due date, achieving a predefined level of quality, maximizing machine utilization, and scheduling opportunistic preventive maintenance. In furtherance of these objectives, the software agents 265 interface with the MES 270 and are integrated with the existing factory control systems (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 will be implementation specific, depending upon the identity of the MES 270 and the factory control systems.
  • Collectively, the [0041] software agents 265 schedule ahead for each lot 130 one or more operations on a specific qualified process tool 115, including transports and required resources, as discussed more fully 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 or qualifications 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. More particularly, the software agents 265 may, for instance:
  • schedule and initiate execution of material transport required for a [0042] lot 130 to meet its next processing appointment at a specified tool 115;
  • monitor transport activity and react to deviations; [0043]
  • schedule and initiate transport to a reserved machine port by a specified appointment start time; [0044]
  • detect machine port carrier arrival via auto-identification and equipment event; [0045]
  • initiate recipe download and processing to a [0046] process tool 115 via an equipment interface;
  • perform MES transactions; [0047]
  • monitor processing activity and notify WFTs of abnormalities; [0048]
  • detect near completion of processing via an equipment event and schedule a processing appointment for a next process in the process flow with a [0049] certified process tool 115;
  • initiate transport to the nearest stocker or a [0050] nearby process tool 115;
  • detect carrier departure and release the port; [0051]
  • schedule preventive maintenance procedures and notify maintenance technicians (“MTs”) at the appropriate time; [0052]
  • schedule qualification procedures and notify WFTs at the appropriate time; and [0053]
  • schedule resources (e.g., reticles, loaders, unloaders, etc.) for processing or performing a PM or a Qual. [0054]
  • Note that, depending on the level of implementation, a given embodiment may implement any or all of these functions, or even functions not listed above. [0055]
  • As will be explained further below, the [0056] software agents 265 can be specialized on several different levels to further this behavior. One level is by “type,” i.e., whether the software agents 265 represent a “consumer” or a service “provider” in the process flow 100. More particularly, whether the software agents 265 represent a consumer or a provider is determined by the type of entity it represents and the context in which the representation takes place. For example, a software agent 265 may represent a lot 130 of wafers 135 (i.e., a “lot agent”), a process tool 115 (i.e., a “machine agent”), a process resource (i.e., a “resource agent”), or a PM or a Qual (i.e., a “PM agent”). Note that some software agents 265 represent manufacturing domain entities that are consumers in some contexts and providers in others, as will be discussed more fully below. The software agents 265 are also specialized by function—i.e., by what function the software agent 265 performs in the process flow. Each specialized software agents 265 occupies a different role in the overall performance of the process flow 100 on which this embodiment is implemented.
  • Note that the [0057] software agents 265 need not necessarily exist in a one-to-one correspondence with manufacturing domain entities, such as lots 130, process tools 115, etc. Instead, most domain entities are each represented by a group of agents. For instance, as will be discussed more fully below, a lot 130 or a process tool 115 may have both a “scheduling” agent and a “processing” agent. This facilitates the design of specialized objects that exhibit specialized behavior to support a single aspect of domain entity functionality.
  • Referring now to FIG. 3A, in a general sense, the [0058] software agents 265 in an exemplary process flow 300 can typically be classed as “consumer agents” 305 and “provider agents” 310. Consumer agents 305 represent the interests of consumers 315, e.g., the lots 130 or PM procedures 320, in advancing the lots 130 through the process flow 100 in a timely and efficient manner or in performing PM or Qual procedures within the allowable window, respectively. Provider agents 310 represent the interests of providers 325, e.g., machines such as the process tool 115, in meeting the demands of consumers for processing resources in advancing the lots 130 through the process flow 100 in a timely and efficient manner. For instance, a software agent 265 representing a lot 130 of wafers 135 would be considered a “consumer” agent 305 and a software agent 265 representing a process tool 115 would be considered “provider” agent because the process tool 115 is “providing” processing services “consumed” by the lot 130. Note that, as was previously mentioned and as will be discussed still more fully below, a software agent 265 may sometimes be classed as a provider agent 310 in one context and a consumer agent 305 in another context.
  • As noted above, the distinction between [0059] consumer agents 305 and provider agents 310 is particularly apt in the context of scheduling. The scheduling of actions initiated by the software agents 265 in the illustrated embodiment revolve around budgets, costs, and ratios associated with the processing. More particularly, to further the implementation of a contract net negotiation protocol for allocating resources, a combination of budgets, costs, and ratios are used to implement a floating market model approach. The combination is structured to encourage “desirable” behavior, e.g., meeting due dates, effective utilization of machines, etc. More particularly, a “budget” is assigned to a consumer 315 that the consumer agent 305 uses to procure the process services of the providers 325. Similarly, the provider 325 charges consumers 315 for the processing services it represents, e.g., processing time. The amount of the budget a consumer 315 is willing to pay depends on how badly the consumer 315 needs the processing resources to stay on schedule and the amount charged by the provider 325 depends on how badly it needs to fill its schedule. In the embodiments illustrated herein, the budgets and costs are expressed in dollars, but this is not necessary to the practice of the invention. Any unit of measure may be used instead.
  • Turning now to FIG. 3B, there is illustrated a [0060] method 330. The method 330 may be practiced in a variety of embodiments and implementations, a particular one of which is disclosed below. The consumer software agents 305 and provider software agents 310 use a “contract net negotiation protocol” approach to schedule the consumers 315 for the providers 325. The consumer agents 305 negotiate with provider agents 310 for the consumer 315's access to the provider 325's services. This access is referred to as an “appointment.” In this particular embodiment, both the consumer agent 305 and the provider agent 310 “book” the appointment on their respective calendars.
  • The [0061] method 330 begins by providing a budget for the consumer 315 for a particular process resource, e.g., process time on the process tool 215, it next wants to consume, as set forth in box 335. The consumer 315 then issues through its consumer software agent 305 a bid request for the consumer 315 to acquire the process resource, as set forth in the box 340. In one implementation, the consumer software agent 305 requests bids from all eligible providers 310 on behalf of a consumer 315. When a consumer software agent 305 requests a bid, it gives the providers 310 pertinent information such as: the consumer's identification; the earliest time to begin transport; the processing operation to be scheduled; the latest completion time acceptable to the consumer 315; the location from which the consumer 315 will be transported to the provider 310; and, the consumer's “budget calculator.”
  • The [0062] provider 325 then, through its provider software agent 310, submits to the consumer 315 at least one bid responsive to the bid request, as set forth in the box 345. In alternative embodiments, a provider software agent 310 may not submit any bids. As mentioned above, the provider software agent maintains a calendar 327 to track appointments. When a bid request is received, the provider software agent 310 searches the calendar 327 for a time slot in which the provider 305 can potentially provide the requested service. For each potential time slot, the provider 305 submits a bid consisting of the start and end times and an optional cost.
  • The [0063] consumer 315, through the consumer software agent 305, then selects a submitted bid by considering the time and optional cost. The consumer 315 then awards a contract to the provider 325 for the selected bid, as set forth in the box 355, through the consumer software agent 305. However, the provider 325 typically is negotiating with several consumers 315 on an ongoing basis. It is possible that the provider 325 subsequently scheduled another consumer 315 in a manner conflicting with the submitted bid such that it can no longer accept the contract. Thus, the provider 325, through its provider software agent 310, checks the calendar 327 to see whether it can still implement the bid and accept the contract. If the bid is still feasible on the calendar 327, the provider 325 then confirms the awarded contract, as set forth in the box 360, and both the consumer and provider schedule the appointment 362 on their respective calendars 323, 327. An “appointment” is a time period certain in which the provider 325 has obligated itself to perform the activity.
  • Thus, decision-making in the process flow [0064] 300 is guided by economic forces of supply and demand. More particularly, consumer software agents 305 are designed to acquire services more or less aggressively depending on selected factors, such as priority or lateness. Provider software agents 310 are designed to provide such services more or less aggressively depending on a number of factors, such as the level of utilization in their calendars. Note that these decisions can be manipulated externally through configurable properties or curves that affect budgets and costs on which the decisions are based. Working like this in concert, the consumer and provider software agents 305, 310 cooperate to satisfy the consumers 305 in a timely and efficient manner.
  • FIG. 4 depicts a portion of a semiconductor fabrication process flow [0065] 400 in which the software agents 265 of FIG. 2 embody all three levels of specialization. More particularly, the process flow 400 includes:
  • a PM scheduling agent (“PMSA”) [0066] 418, which is a consumer software agent representing the PM and Qual procedures for a process tool for scheduling purposes;
  • a lot scheduling agent (“LSA”) [0067] 405, which is a consumer software agent representing the lot 130 for scheduling purposes;
  • a machine scheduling agent (“MSA”) [0068] 410, which is both a consumer and a provider software agent, depending on the context in which it is operating, representing the process tool 115 for scheduling purposes; and
  • a resource scheduling agent (“RSA”) [0069] 415, which is a provider software agent representing the reticle 420 for scheduling purposes.
  • Although not shown, the [0070] lot 130, process tool 115, PM or Qual procedure (not shown) and reticle 420 all have corresponding “processing” agents to whom the scheduling agents 405, 410, 415, 418 pass control when it is time for executing the activity. Note that RSAs 415 can represent other types of process resources, e.g., dummy wafers, empty cassettes, WFTs, MTs, etc. The process flow 400 implements the floating market model approach to the contract net negotiation protocol discussed above relative to FIG. 3A and FIG. 3B. The LSA 405 tries to minimize costs while staying on schedule. The MSA 410 tries to optimize tool utilization while maximizing profits.
  • The [0071] LSA 405 tries to keep the lot 130 it represents on schedule. The MSA 410 tries to maximize utilization of the process tool 115 it represents. Similarly, the RSA 415 tries to maximize utilization of the resource it represents, i.e., the reticle 420. Note that the RSA 415 can represent other types of resources, e.g., machine loading resource, dummy wafers, cassettes, wafer fab technicians, maintenance technicians, etc., in other implementations. The PMSA 418 attempts to opportunistically schedule PMs and Quals on, inter alia, the process tool 115. The various agents 405, 410, 415, and 418 do this in the context of negotiating appointments for the consumption of processing resources by adjusting the prices they offer or budgets to pay for services in accordance with the schedules they need to meet or want to keep.
  • More particularly, a [0072] lot 130 typically negotiates with a number of pieces of equipment, e.g., process tools 115. The LSA 405 tries to find a time slot offered by a process tool that will allow the lot 130 to meet its due date and feed the next bottleneck machine station at the appropriate time. At the same time, the MSA 410 tries to acquire lots 130 for processing in a way that optimizes the utilization of the process tool 115. Overall, the goals of the MSA 410 are to maximize the overall utilization of its respective process tool 115, respect the relative priority of the lots 130, reduce setup or recipe changes, and optimize its batch size. This collaboration of agent interaction results in the scheduling of a lot 130 on a particular process tool 115 within a specified time window.
  • In general terms, the [0073] LSA 405 begins the negotiation by publishing a “request bid” message 425 to all of the MSAs 410 representing process tools 115 capable of performing a desired manufacturing operation. At this point, a MSA 410 is acting as a provider because the process tool 115 is providing processing services, i.e., processing time. The MSA 410 for each capable process tool 115, upon receipt of the request bid message 425, identifies a potential bid, recognizes that it will need a qualified reticle 420 to perform the job, and publishes its own request bid message 430 to the RSAs 415 of all capable resources, i.e., qualified reticles 420. The MSA 410 has now shifted from a provider at this point to a consumer since the process tool 115 is now consuming process services, i.e., time with the reticle 420. Each RSA 415 representing a qualified reticle 420 submits one or more bids 435, one of which the MSA 410 selects for inclusion in its bid 460. The MSA 410, having now identified the necessary resources, returns to its role as a provider of processing services. If another potential bid is identified by the MSA 410, it once again requests bids from the appropriate RSAs 415.
  • Each [0074] MSA 410 representing a capable process tool 115 submits one or more bids 460 to the LSA 405 that published the request bid message 425. The LSA 405 selects one bid 460 from among all the submitted bids 460 of all the MSAs 410. The LSA 405 then awards the contract 465 to the MSA 410 submitting the selected bid 460. The MSA 410 checks its machine calendar 470, determines that the bid is still available and, if so, awards the contract 440 to the reticle 420 that submitted the selected bid 435. The RSA 415 checks its resource calendar 445, sees that the bid is still available, and schedules the appointment 475 a on its own resource calendar 445. The RSA 415 then confirms the contract with a “confirm bid” message 455, and the MSA 410 schedules an appointment 475 b on its machine calendar 470, with a reference to the RSA 415 that provided the “resource” bid 435. The MSA 410 then sends a “confirmed bid” message 480 to the LSA 405. The LSA 405 then schedules the corresponding appointment 475 c on its own lot calendar 485. When the time arrives for the appointments 475 a, 475 b, 475 c to execute, the scheduling agents 405, 410, and 415 pass control to their respective processing agents (not shown).
  • Thus, although agents of the same type are usually programmed with similar behavior, differentiation occurs to create specialized agents. Comparing the behavior of the [0075] MSA 410 to the LSA 405 and the RSA 415 in the above discussion readily reveals such differentiation. However, more subtle differentiations exist, as well, in the illustrated embodiment. For example, there are many types of process tools 115, and each type of process tool 115 might possess different characteristics for which a respective software agent 265 may need specialization. Exemplary characteristics that may lend themselves to specialization in machine agents in the illustrated embodiment include:
  • whether the [0076] process tool 115 processes by wafer, by lot 130, by batches of lots 130, or by batches of wafers;
  • whether the [0077] process tool 115 processes wafers, lots 130, or batches serially (i.e., completes processing of a first unit before beginning processing of a second) or sequentially (“cascading,” i.e., capable of beginning processing of a second unit before completing processing of a first);
  • the number of ports for the [0078] process tool 115;
  • whether the ports for the [0079] process tool 115 are input, output, or input/output;
  • whether the chambers for the [0080] process tool 115 are used in series or in parallel;
  • whether the [0081] process tool 115 can chain PMs;
  • the number of chambers in the [0082] process tool 115;
  • whether the [0083] process tool 115 includes internal storage;
  • whether the [0084] process tool 115 can queue the processing of a lot 130 or batch while processing another lot 130 or batch;
  • whether the [0085] process tool 115 requires loading and/or unloading;
  • whether the [0086] process tool 115 requires resources and, if so, whether those resources are dedicated resources or shared resources.
  • Note, however, that the factors along which a machine agent, or any [0087] software agent 265, are specialized will be highly implementation specific.
  • Consider, for instance, an implementation wherein machine agents are specialized by whether they process by wafer, by lot, by batch, etc. In one particular embodiment, the following machine agents are employed: [0088]
  • a baseline processing agent; [0089]
  • a wafer-based, processing agent; [0090]
  • a wafer-based, sequential processing agent; [0091]
  • a wafer-based, batch sequential processing agent; [0092]
  • a wafer-based, batch processing agent; [0093]
  • a lot-based processing agent; [0094]
  • a lot-based, sequential processing agent; [0095]
  • a lot-based, batch processing agent; [0096]
  • a lot-based batch, sequential processing agent; [0097]
  • a baseline scheduling agent; [0098]
  • a wafer-based, scheduling agent; [0099]
  • a wafer-based, sequential scheduling agent; [0100]
  • a wafer-based, batch sequential scheduling agent; [0101]
  • a wafer-based, batch scheduling agent; [0102]
  • a lot-based scheduling agent; [0103]
  • a lot-based, sequential scheduling agent; [0104]
  • a lot-based, batch scheduling agent; and [0105]
  • a lot-based, batch sequential scheduling agent. [0106]
  • This particular embodiment implements the agents using object oriented programming techniques and the baseline agents provide the class definition and the other agents are subclasses of that class. Calendars, e.g., the [0107] calendar 327 in FIG. 3A, may also be specialized as are the machines with which they are associated. Thus, in the embodiment mentioned immediately above, the following specialized calendars are used:
  • a wafer-based, sequential calendar; [0108]
  • a wafer-based, serial calendar; [0109]
  • a wafer-based, serial batch calendar; [0110]
  • a wafer-based, batch sequential calendar [0111]
  • a lot-based, serial calendar; [0112]
  • a lot-based, sequential calendar; [0113]
  • a lot-based, serial batch calendar; and [0114]
  • a lot-based, batch sequential calendar. [0115]
  • Note, however, that this is not necessary to the practice of the invention. [0116]
  • Other agent specializations might also be employed. PM agents may be specialized by whether the maintenance procedures they perform are based on time, wafers processed, lots processed, batches processed, processing time, an occurrence of an event, etc. In one particular embodiment, the following specialized PM agents are employed: [0117]
  • wafer-based PM scheduling agents; [0118]
  • time-based PM scheduling agents; [0119]
  • processing unit-based (e.g., number of [0120] lots 130 processed, number of batches processed) PM scheduling agents;
  • processing time-based (e.g., cumulative processing time) PM scheduling agents; [0121]
  • event-based PM scheduling agents (e.g., an end of processing event); [0122]
  • wafer-based PM processing agents; [0123]
  • time-based PM processing agents; [0124]
  • processing unit-based (e.g., number of [0125] lots 130 processed, number of batches processed) PM processing agents;
  • processing time-based (e.g., cumulative processing time) PM processing agents; and [0126]
  • event-based PM processing agents (e.g., an end of processing event). [0127]
  • Each PM Scheduling Agent contains unique behavior due to the different types of PMs. For example, a time-based PM Scheduling Agent schedules PMs based on time (e.g., 30 day PM). The time-based PM Scheduling Agent determines the time the PM is due by adding 30 days to the last occurrence of the PM. On the other side, an event-based PM Scheduling Agent behaves differently. The event-based PM Scheduling Agent is scheduling PMs based on events occurring on the tool (e.g., End Etch PM). When the Event-based PM Scheduling Agent detects an end etch event has occurred, it will schedule a PM on that [0128] specific process tool 115.
  • LSAs can be specialized for reasons such as: [0129]
  • priority; [0130]
  • product; and [0131]
  • product family. [0132]
  • Thus, a LSA may have a different behavior in selecting a bid based on the lot's priority, product, or product family. For example, a higher priority lot will select a bid based on the time it can be processed, while a lower priority lot would select a bid based on cost. A lot may also behave differently based on the lot's product family. As an example, consider a flash processor lot versus a microprocessor lot. A flash processor might have the behavior of getting through the process flow as quickly as possible. In this case, the lot will select bids based on time. In the other hand, a microprocessor might have the opposite behavior and would select bids based on cost. [0133]
  • Resource agents may likewise be specialized as scheduling or processing agents and by whether they represent dedicated resources (e.g., a loading resource) or a shared resource (e.g., a WFT, reticle, dummy wafer, or empty carrier), as well as by the specific type of resource they represent. Still other specializations may be employed in alternative embodiments. [0134]
  • The OOP environment in which the illustrated embodiment is illustrated is well suited for specialization of this type. As will be appreciated by those skilled in the art, an OOP environment comprises numerous software-implemented objects, each of which belongs to an object type, or object class. In the illustrated embodiment, processing agents and scheduling agents belong to two different object classes. Objects within a class can be differentiated into an “inheritance hierarchy,” in which lower levels inherit characteristics of higher levels while including attributes or characteristics that distinguish them from the higher levels. [0135]
  • Consider the [0136] inheritance hierarchy 500, shown in FIG. 5A, for the MSA object class. The MSA 502 is the baseline class for MSAs. The MSA 502 contains the behavior shared by all of the MSAs. For example, the MSA 502 is responsible for creating and removing appointment start time and end time alarms. The agent also constructs some common helper classes, which include, for instance, Appointment Change Notifier, Appointment Change Listener, Machine Stats, Machine Listener, Bid Request Subscriber, Early Starter, Penalty Refund Calculator, Bump Evaluator, Shift Lot Right Rescheduler, and Machine Bid Requestor. All of these concepts are discussed more fully below. The MSA 502 is also responsible for requesting a tool status. The LSAs also call on the MSA 502 to generate or confirm bids. All of the behaviors in the MSA 502 are inherited by the MSAs. The MSAs include a Lot MSA 504, a Lot Sequential MSA 506, a Batch MSA 508, a Batch Lot MSA 510, a Batch Lot Sequential MSA 512, a Batch Wafer MSA 514, a Batch Wafer Sequential MSA 516, a Wafer Machine Scheduling Agent 518, and a Wafer Sequential MSA 520.
  • In addition to inheriting the baseline behavior, each specialized MSA contains unique behavior and overrides some inherited behaviors. Most of the unique behavior, in the illustrated embodiment, is based on how the [0137] process tool 115 associated with the MSA processes lots 130. Some of the behaviors include processing the tool status, processing equipment events, reacting to appointment state changes, reacting to factory state changes, determining the consumption time for a lot or batch, and creation of specialized helper classes (discussed further below). In order to illustrate the different behaviors between the scheduling agents, we will compare and contrast the behavior of a Wafer MSA 518 versus a Batch Lot MSA 510.
  • A Wafer MSA [0138] 518 (representing, e.g., a plasma strip tool) processes a wafer at a time for a given lot. On the other hand, a Batch Lot MSA 510 (representing, e.g., a furnace) processes a batch of several lots at a time. During initialization, both agents 510, 518 will request a tool status. The tool status received by the agents 510, 518 is unique. The Wafer MSA 518 will receive a tool status that contains information based on wafers while the Batch Lot MSA 510 will receive a tool status based on lot batches. Each agent 510, 518 will uniquely process the tool status in order to discover the state of the machine. Another difference between the agents 510, 518 is how they process equipment events. The events depend on how the machine processes lots. In the case of a wafer machine, some equipment events are wafer based. With a batch lot machine, some of the equipment events are time based. For example, the near complete event is triggered when the process tool 115 is almost done processing the lot 130 or batch. On a wafer-based machine, the event is triggered when a given number of wafers are remaining. On a batch lot machine, the event is triggered when time remaining reaches a particular threshold.
  • Determining the consumption time of a new appointment is also different between the [0139] Wafer MSA 518 and the Batch Lot MSA 510. The number of wafers 135 a lot 130 contains and the process operation determine the consumption time on a wafer-based machine. On the other hand, a Batch Lot MSA 510 uses a batch consumption time for the process and process operation. When the scheduling agent receives the near complete event, the agent determines if it should expand or shrink the appointment. In the case of a Wafer MSA 518, the agent 518 determines the number of remaining wafers to be processed. It will then determine the remaining consumption time based on the remaining wafer count. It will shrink or expand the appointment based on the remaining consumption time. The Batch Lot MSA 510 receives the remaining consumption time within the near complete event. It will shrink or expand the appointment based on the remaining consumption time.
  • Alternatively, consider the [0140] inheritance hierarchy 550 of FIG. 5B. The RSA object class 552, is the baseline class for all RSAs. The baseline RSA 552 contains the behavior shared by all of the RSAs. For example, the baseline RSA 552 is responsible for creating and removing appointment start time and end time alarms. The baseline RSA 552 is further classified into two sub classes: dedicated RSAs 554 and shared RSAs 556. A typical example of a dedicated resource is the loading resource responsible for loading and unloading lots 130 on a batch processing tool 115. Such a dedicated resource is represented by a dedicated RSA 554, e.g., the loading RSA 558. Typical examples for a shared resource are reticles, empty cassettes, dummy wafers, WFTs and MTs. Such shared resources are represented by shared RSAs 556, e.g., the reticle scheduling agent 560, the empty cassette scheduling agent 562, dummy wafer scheduling agent 564, WFT scheduling agent 568, MT scheduling agent 570.
  • One of the specialized behaviors of a loading [0141] RSA 558 is the loading order optimization. Every time a loading RSA 558 receives an appointment change event related to update of the earliest arrival time of a lot 130, it will determine an optimized loading order of all the lots 130 in a batch, such that the loading of all the batch participants can be completed in the shortest time. Another specialized behavior of a loading RSA 558 is the scheduling of unloading appointments when a batch job has late arrival lots 130. In a desired setting, all the loading for the second batch job will be scheduled to complete before the discharge start time of the first batch job. So when the discharging of the first batch job completed, we can start the charging of the second batch job, and the unloading of the lots 130 in the first batch will be scheduled after the charge end time of the second batch. However, if one lot 130 in the second batch can not arrive at the processing tool 115 early enough to be loaded before the discharge start time of the first batch, the loading appointment for this lot 130 has to be scheduled after the completion of the discharging of the first batch. Under this circumstance, the RSA will have different specialized behaviors depending upon the nature of the process operation processed on the processing tool 115. In one case, the process operation performed on one type of batch processing tools 115 is very close to the end of the process route, and the RSA would always schedule unloading appointments for the first batch immediately after the end of the discharging, and then the late arrival's loading appointment is scheduled after the unloading of the first batch. In some other cases, the process operation is not very close to the end of the process route, and there is no such urgency to rush the unloading appointments, so the late arrival lots 130 will be scheduled for loading following the discharging of the first batch job and unloading of the first batch will be scheduled after the completion of the charging of the second batch job.
  • For a [0142] dedicated RSA 554, because of the nature of a dedicated resource, no move appointment is required to transport the resource between appointments. However, for a shared RSA 556, because the resource has to be shared between a group of processing tools 115 or lots 130, a move appointment has to be scheduled between two appointments if these two appointments are scheduled for two different locations. So a shared RSA 556 will have its own specialized behavior when creating and booking a resource processing appointment: a move appointment will be created and booked if a transport of the resource is necessary. A shared RSA 556 also has its own specialized behaviors regarding bid generation and bid confirmation. It allows a higher priority processing tool 115 or lot 130 to bump appointments for less important processing tools 115 or lots 130.
  • Other specialized RSAs also exhibit other specialized behaviors. For the WFT or [0143] MT scheduling agents 568, 570, each has specialized behavior to consider the constraints related to the person's qualifications (skills), break time requirements and shift limitations. One difference between the WFT an MT is that typically an MT is needed for the full duration of a repair or PM, while a WFT may be needed only part of the time. For instance, a WFT may be needed at a process tool 115 during loading and unloading but can perform other tasks while the tool 115 is processing. An empty cassette scheduling agent 562 has specialized behavior because it is dynamically created and then ceases to exist after being used. An empty cassette ceases to be a shared resource after it is used to store wafers, while a cassette carrying a production lot can become an empty cassette if the wafers are removed from the cassette. Dummy wafer scheduling agents 564 have specialized behavior because these wafers require periodic refurbishing. Dummy wafers are used to fill empty slots in some batch machines that require a minimum load size for correct processing. Dummy wafers must be taken out of service after a specific amount of usage and cannot be used again until they are refurbished.
  • Thus, the [0144] AEMS 600 of the illustrated embodiment comprises a number of software components including, in part, the software objects illustrated in FIG. 6. These include the following classes:
  • a scheduling agent class [0145] 610, further including:
  • LSAs [0146] 630 that schedule processing and associated move appointments on behalf of a specified lot 130;
  • MSAs [0147] 650 that schedule appointments with other scheduling agents on behalf of a specified machine;
  • PM scheduling agents (“PSAs”) [0148] 640 that schedule specified PM and Qual appointments on behalf of a specified machine; and
  • RSAs [0149] 660 that schedule the use of secondary resources (e.g., reticles, WFTs, MTs);
  • a [0150] processing agent class 620, further including:
  • lot processing agents (“LPAs”) [0151] 670 that execute lot processing and move appointments;
  • machine processing agents (“MPAs”) [0152] 690 that execute setup, lot processing or batch processing, and PM and Qual appointments;
  • PM processing agents (“PPAs”) [0153] 680 that execute PM and Qual appointments; and
  • resource processing agents (“RPAs”) [0154] 685 that execute resource-specific appointments (e.g., loads and unloads for machine loading resources, resource movement, resource usage); and
  • a lot [0155] start agent class 602, further including:
  • starvation avoid ance lot start agent (“SALSA”) [0156] 605 that releases lots just in time to prevent bottleneck starvation; and
  • a scheduled release lot start agent (“SRLSA”) [0157] 615 that releases lots according to a predetermined schedule.
  • Alternative embodiments may employ still other classes. [0158]
  • As mentioned, the [0159] SALSA agent 605 determines when new lots 130 are released into the process flow of the fab. More particularly, the SALSA agent 605 monitors work in process (“WIP”) in the process flow and identifies one or more workstations that create bottlenecks in the process flow. The SALSA agent 605 calculates a WIP value representing the amount of work approaching each bottleneck workstation and determines whether the WIP value is projected to fall below a control limit during an evaluation period. If the WIP value is projected to fall below the control limit during the evaluation period, a selected amount of additional work is released into the manufacturing line. In some implementations, the SALSA agent 605 even determines one or more product types for the selected amount of additional work.
  • The [0160] AEMS 600 also comprises a number of software components (not shown) in “helper classes” that are used by the software agents 265 to accomplish their functions.
  • These other components can be generally grouped as follows: [0161]
  • calculators, for calculating various quantities (e.g., lot budget calculator, latest completion time calculator, bid cost calculator); [0162]
  • schedulers, for scheduling various events (e.g., move schedulers); [0163]
  • listeners, for detecting and reporting the occurrence of selected events or changes in state (e.g., lot listeners, bid listeners) [0164]
  • an alarm clock that provides time (real or simulated) to components of the [0165] AEMS 500 components and the ability to set an alarm for a specified time or period and listener to be invoked; and
  • adapters, that provide interfaces to other aspects of the manufacturing facility, e.g., the MES, the El, the AMHS, such as: [0166]
  • MES adapters that interface with the MES to perform MES transactions, e.g., track-in/out lot or machine, put lot on hold, etc.; [0167]
  • EI adapters that send commands to equipment interfaces (e.g., download recipes, request tool status, etc.) and that receive event information from equipment interfaces via equipment event dispatchers; [0168]
  • AMHS adapters that send move commands to the AMHS and receive move status updates from the AMHS; and [0169]
  • notification adapters that send various forms of notification (e.g., screen, pager, e-mail, etc.) to fab personnel (e.g., WFTs). [0170]
  • Table 1 lists these helper class components by agent for one particular embodiment of the invention. [0171]
    TABLE 1
    Helper Class Objects Called by Software Agents
    Software Helper Functionality of Helper
    Agent Class Object Class Object
    Lot AMHS Listener Listens for and reports AMHS move events
    Scheduling Bid Requestor Generates and publishes bid requests
    Agent Bid Selector Selects bids on cost and time
    Composite Ratio Calculates a composite ratio, which is a
    Calculator combination of a hunger ratio and a critical ratio
    Hunger Ratio Calculator Calculates the agent's hunger ratio, which is a
    measure of whether a particular lot needs to be
    accelerated to feed a bottleneck downstream in the
    process flow
    Critical Ratio Calculator Calculates the agent's critical ratio, which is a
    measure of whether a particular lot is on schedule
    Lot Budget Calculator Determines and maintains the agent's budget for
    processing
    LDT Calculator Calculates the agent's latest delivery time or
    completion date
    Move Appointment Schedules move appointments
    Scheduler
    Lot Scheduling Calendar Stores and manipulates appointments
    Lot Appointment Schedules processing appointments
    Scheduler
    Lot Listener Listens for and reacts to state changes that effect
    appointment durations
    Machine Machine Listener Listens for and reacts to state changes that impact
    Scheduling appointments
    Agent Chamber Scheduling Reacts to chambers events that will impact the
    Agent throughput of the machine
    Chamber Listener Listens for chamber events
    Machine Capability Responsible for maintaining the process
    capabilities of the machine
    Early Starter Finds an appointment to start when the machine is
    idle
    Lot Shift Right Responds to lot requests to shift appointment to a
    Rescheduler later start time
    Total Transport Calculator Called by the bid generator, it calculates the total
    transport time for a given lot
    Bid Generator Generates bids from a bid request; calls the open
    slot generator, bumping slot generator, and batch
    bid generator
    Bumping Bid Generator Called by the bid generator, it generates bids that
    bump other appointments on the machine
    scheduling calendar
    Open Slot Bid Generator Called by the bid generator, it generates bids in
    open slots on the machine scheduling calendar
    Bid Cost Calculator Calculates a cost for a specified bid
    Bid Confirmer Rejects a bid or books an accepted appointment on
    a calendar
    Batch Bid Generator Called by the bid generator, it generates bids for a
    lot to join a batch or start a new batch
    Machine Scheduling Stores and manipulates appointments
    Calendar
    PM Machine Listener Listens for and reacts to state changes for
    Scheduling machines that impact appointments
    Agent Chamber Listener Listens for chamber events
    PM Scheduling Calendar Stores and manipulates appointments
    PM Bid Selector Selects a PM bid
    PM Window Calculator Calculates the window in which a PM may be
    performed
    PM Budget Calculator Calculates the budget for a PM
    Bid Requestor Generates a bid request for a specified service and
    sends the request to the appropriate MSA
    Lot MES Adapter Initiates MES transactions
    Processing Notification Notifies appropriate fab personnel
    Agent AMHS Facade Initiates lot transport activities
    Machine Lot Listener Listens for events pertaining to lots that affect the
    Processing machine processing
    Agent MES Adapter Initiates MES transactions
    Notification Notifies appropriate fab personnel
    EI Adapter Sends commands to the equipment interface (“EI”)
    PM MES Adapter Initiates MES transactions
    Processing Notification Notifies appropriate fab personnel
    Agent EI Adapter Sends commands to the equipment interface (“EI”)
    Resource MES Adapter Initiates MES transactions
    Processing Notification Notifies appropriate fab personnel
    Agent EI Adapter Sends commands to the equipment interface (“EI”)
    Resource Loading Order Calculator Calculates a proper loading order and feasible
    Scheduling loading start time for all the participants of a batch
    Agent appointment.
    Bumping Bid Request Responds to a bumping bid request from a MSA, it
    Processor generates a bumping bid feasible on the resource
    scheduling calendar.
    Open Slot Bid Request Responds to an open slot bid request from a MSA,
    Processor it generates an open slot bid feasible on the
    resource scheduling calendar.
    Join Batch Bid Request Responds to a join batch bid request from a MSA,
    Processor it generates a join batch bid feasible on the
    resource scheduling calendar.
    Join Batch Bumping Bid Responds to a join batch bumping bid request from
    Request Processor a MSA, it generates a join batch bumping bid
    feasible on the resource scheduling calendar.
    Shift Left Actions Generates a collection of appointment shift and
    Converter jump over actions for a given shift left action
    collection coming from the corresponding machine
    scheduling calendar
    Shift Right Actions Generates a collection of appointment shift and
    Converter jump over actions for a given shift right action
    collection coming from the corresponding machine
    scheduling calendar
    Bumping Feasibility Evaluates the feasibility of a bumping bid, if it is
    Processor feasible, it will generate a collection of actions to
    accomplish the bumping bid.
    Open Slot Feasibility Evaluates the feasibility of an open slot bid, if it is
    Processor feasible, it will generate a collection of actions to
    accomplish the open slot bid.
    Join Batch Feasibility Evaluates the feasibility of a join batch bid, if it is
    Processor feasible, it will generate a collection of actions to
    accomplish the join batch bid.
    Join Batch Bumping Evaluates the feasibility of a join batch bumping
    Feasibility Processor bid, if it is feasible, it will generate a collection of
    actions to accomplish the join batch bumping bid.
    Machine Listener Listens for and reacts to state changes of a
    machine that impact appointments.
    Resource Scheduling Stores and manipulates appointments.
    Calendar
  • In this particular embodiment, the software agents are implemented using object-oriented programming techniques. In the terminology of object-oriented computing, a software “agent” is an autonomous, active object. Given its set of operations, a software agent can take independent action in response to local conditions, thereby generating adaptable system behavior. The present invention presents an agent-enhanced system that defines, configures, and deploys autonomous and mobile “software agents” that mimic and improve the functioning of “real world” agents in a semiconductor manufacturing plant such as factory workers, material, equipment, resources, etc. One skilled in the art will recognize that an agent or other software object can include one or more software objects. As used herein, the term “object” will be understood to be a software object that may, in turn, be composed of other software objects. Conversely, one skilled in the art will also recognize that the functionality of one object may combined with other functionalities. It is to be understood that functionalities described as being associated with separate objects may be combined into the functionality associated with a single object. [0172]
  • Some portions of the detailed descriptions herein are consequently presented in terms of a software implemented process involving symbolic representations of operations on data bits within a memory in a computing system or a computing device. These descriptions and representations are the means used by those in the art to most effectively convey the substance of their work to others skilled in the art. The process and operation require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. [0173]
  • It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantifies. Unless specifically stated or otherwise as may be apparent, throughout the present disclosure, these descriptions refer to the action and processes of an electronic device, that manipulates and transforms data represented as physical (electronic, magnetic, or optical) quantities within some electronic device's storage into other data similarly represented as physical quantities within the storage, or in transmission or display devices. Exemplary of the terms denoting such a description are, without limitation, the terms “processing,” “computing,” “calculating,” “determining,” “displaying,” and the like. [0174]
  • Note also that the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium. The program storage medium may be magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or “CD ROM”), and may be read only or random access. Similarly, the transmission medium may be twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The invention is not limited by these aspects of any given implementation. [0175]
  • This concludes the detailed description. The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below. [0176]

Claims (67)

What is claimed:
1. A process flow in an automated manufacturing environment, comprising:
a plurality of manufacturing domain entities; and
a plurality of autonomous, active software agents associated with the manufacturing domain entities, the software agents being specialized by type of entity represented and function to schedule a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities.
2. The process flow of claim 1, wherein the manufacturing domain entities include at least one of:
a process tool;
a preventive maintenance/qualification procedure for the process tool;
a process resource employed by the process tool; and
a lot for processing on the process tool.
3. The process flow of claim 1, wherein the software agents include at least one of a scheduling agent and a processing agent.
4. The process flow of claim 3, wherein the scheduling agent comprises one of a machine scheduling agent, a lot scheduling agent, a PM scheduling agent, and a resource scheduling agent.
5. The process flow of claim 4, wherein the resource scheduling agent comprises one of a dedicated resource scheduling agent and a shared resource scheduling agent.
6. The process flow of claim 3, wherein the processing agent comprises one of a machine processing agent, a lot processing agent, a PM processing agent, and a resource processing agent.
7. The process flow of claim 6, wherein the resource processing agent comprises one of a dedicated resource processing agent and a shared resource processing agent.
8. The process flow of claim 1, wherein the software agents include at least one of a machine agent, a lot agent, a PM agent, and a resource agent
9. The process flow of claim 8, wherein the machine agent comprises one of a machine scheduling agent and a machine processing agent.
10. The process flow of claim 8, wherein the lot agent comprises one of a lot scheduling agent and a lot processing agent.
11. The process flow of claim 8, wherein the PM agent comprises one of a PM scheduling agent and a PM processing agent.
12. The process flow of claim 8, wherein the resource agent comprises one of a resource scheduling agent and a resource processing agent.
13. The process flow of claim 1, wherein the software agents are further specialized by the characteristics of the particular entity they represent.
14. The process flow of claim 13, wherein the software agents include at least one of a specialized machine agent, a specialized lot agent, a specialized resource agent, and a specialized PM agent.
15. The process flow of claim 14, wherein the specialized machine agent for a process tool is specialized according to at least one of:
whether the process tool processes by wafer, by lot, by batches of lots, or by batches of wafers;
whether the process tool processes wafers, lots or batches serially or sequentially;
the number of ports for the process tool;
whether the ports for the process tool are input, output, or input/output;
whether the chambers for the process tool are used in series or in parallel;
whether the process tool can chain PMs;
the number of chambers in the process tool;
whether the process tool includes internal storage;
whether the process tool can queue the processing of a lot or a batch while processing another lot or batch;
whether the process tool requires loading and/or unloading; and
whether the process tool requires resources and, if so, whether those resources are dedicated resources or shared resources.
16. The process flow of claim 14, wherein the specialized lot agent is specialized by at least one of a priority, product or product family of the lot it represents.
17. The process flow of claim 14, wherein the specialized resource agent is specialized by the type of resource.
18. The process flow of claim 17, where the type of the resource is selected from the group consisting of a shared resource and a dedicated resource.
19. The process flow of claim 14, wherein the specialized preventive maintenance agent is specialized according to at least one of a wafer-based PM, a time-based PM, a processing unit-based PM, a processing time-based PM, and an event-based PM.
20. The process flow of claim 1, wherein the software agents includes lot start agent.
21. The process flow of claim 20, wherein the lot start agent comprises one of a starvation avoidance lot start agent or a scheduled release lot start agent.
22. A process flow in an automated manufacturing environment, comprising:
a plurality of manufacturing domain entities; and
means for representing the manufacturing domain entities function to schedule a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities, the representing means being specialized by type of entity represented.
23. The process flow of claim 22, wherein the manufacturing domain entities include at least one of:
a process tool;
a preventive maintenance/qualification procedure for the process tool;
a process resource employed by the process tool; and
a lot for processing on the process tool.
24. The process flow of claim 22, wherein the representing means include at least one of a means for scheduling on behalf the manufacturing entities and a means for representing processing on behalf the manufacturing entities.
25. The process flow of claim 22, wherein the representing means include at least one of means for representing a process tool, means for representing a lot, means for representing a PM, and means for representing a resource.
26. The process flow of claim 22, wherein the representing means are further specialized by the characteristics of the particular entity they represent.
27. An automated manufacturing environment, comprising:
a plurality of manufacturing domain entities, including:
a plurality of process tools;
a plurality of preventive maintenance/qualification procedures for the process tools;
a plurality of process resources employed by the process tools; and
a plurality of lots for processing on the process tools; and
a computing system, including:
a plurality of machine agents for scheduling and executing activities on the process tools;
a plurality lot agents for scheduling the lots for processing on the process tools and executing actions to facilitate the processing of the lots on the process tools;
a plurality of resource agents for scheduling the utilization of the process resources by the process tools and executing actions to facilitate the use of the process resources by the process tools; and
a plurality of preventive maintenance agents for scheduling and executing the preventive maintenance/qualification procedures on the process tools.
28. The automated manufacturing environment of claim 27, wherein the machine agents include at least one of a machine scheduling agent for scheduling activities on the process tools and a machine processing agent for executing scheduled activities on the process tools.
29. The process flow of claim 27, wherein at least one of the machine agents is specialized according to at least one of:
whether the process tool processes by wafer, by lot, by batches of lots, or by batches of wafers;
whether the process tool processes wafers, lots or batches serially or sequentially;
the number of ports for the process tool;
whether the ports for the process tool are input, output, or input/output;
whether the chambers for the process tool are used in series or in parallel;
whether the process tool can chain PMs;
the number of chambers in the process tool;
whether the process tool includes internal storage;
whether the process tool can queue the processing of a lot or a batch while processing another lot or batch;
whether the process tool requires loading and/or unloading; and
is whether the process tool requires resources and, if so, whether those resources are dedicated resources or shared resources.
30. The automated manufacturing environment of claim 27, wherein the lot agents include at least one of a lot scheduling agent and a lot processing agent.
31. The automated manufacturing environment of claim 27, wherein at least one of the lot scheduling agent and the lot processing agent is specialized by at least one of the priority, product or product family of the lot it represents.
32. The automated manufacturing environment of claim 27, wherein the resource agents include at least one of a resource scheduling agent and a resource processing agent.
33. The automated manufacturing environment of claim 27, wherein the preventive maintenance agents include at least one of a PM scheduling agent and a PM processing agent.
34. The automated manufacturing environment of claim 27, further comprising a plurality of lot start agents.
35. An automated manufacturing environment, comprising:
a plurality of manufacturing domain entities, including:
a plurality of process tools;
a plurality of preventive maintenance/qualification procedures for the process tools;
a plurality of process resources employed by the process tools; and
a plurality of lots for processing on the process tools; and
a computing system, including:
a plurality of scheduling agents for scheduling activities for the preventive maintenance/qualification procedures, process resources, and lots on the process tools; and
a plurality of processing agents for executing the scheduled activities.
36. The automated manufacturing environment of claim 35, wherein at least one of the scheduling agents and processing agents is specialized according to the nature of the entity it represents.
37. The automated manufacturing environment of claim 35, wherein the scheduling agents include at least one of:
a machine scheduling agent for scheduling activities on the process tools;
a lot scheduling agent for scheduling the lots for processing on the process tools;
a preventive maintenance scheduling agent for scheduling the preventive maintenance/qualification procedures on the process tools; and
a resource scheduling agent for scheduling the utilization of the process resources by the process tools.
38. The automated manufacturing environment of claim 35, wherein the processing agents include at least one of:
a machine processing agent for executing scheduled activities on the process tools;
a lot processing agent for executing actions to facilitate the processing of the lots on the process tools;
a resource processing agent for executing actions to facilitate the use of the process resources by the process tools; and
a plurality of preventive maintenance processing agents for executing scheduled preventive maintenance/qualification procedures on the process tools.
39. The automated manufacturing environment of claim 35, wherein the software agents includes lot start agent.
40. A method for automated processing, comprising:
instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities, the software agents being specialized by type of entity represented and function to schedule a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities;
scheduling appointments for the first subset to consume the process resources; and
executing the scheduled appointments.
41. The method for automated processing of claim 40, wherein instantiating the plurality of autonomous, active software agents associated with the plurality of manufacturing domain entities includes instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities including at least one of:
a process tool;
a preventive maintenance/qualification procedure for the process tool;
a process resource employed by the process tool; and
a lot for processing on the process tool.
42. The method for automated processing of claim 40, wherein instantiating the plurality of autonomous, active software agents includes instantiating at least one of a scheduling agent and a processing agent.
43. The method for automated processing of claim 40, wherein instantiating the plurality of autonomous, active software agents includes instantiating at least one of a machine agent, a lot agent, a PM agent, and a resource agent.
44. The method for automated processing of claim 40, wherein instantiating the plurality of autonomous, active software agents includes instantiating a plurality of software agents further specialized by the characteristics of the particular entity they represent.
45. The method for automated processing of claim 40, further comprising instantiating a lot start agent.
46. An automated manufacturing environment, comprising:
means for instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities, the software agents being specialized by type of entity represented and function to schedule a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities;
means for scheduling appointments for the first subset to consume the process resources; and
means for executing the scheduled appointments.
47. The automated manufacturing environment of claim 46, wherein the means for instantiating the plurality of autonomous, active software agents associated with the plurality of manufacturing domain entities includes means for instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities including at least one of:
a process tool;
a preventive maintenance/qualification procedure for the process tool;
a process resource employed by the process tool; and
a lot for processing on the process tool.
48. The automated manufacturing environment of claim 46, wherein the means for instantiating the plurality of autonomous, active software agents includes means for instantiating at least one of a scheduling agent and a processing agent.
49. The automated manufacturing environment of claim 46, wherein the means for instantiating the plurality of autonomous, active software agents includes means for instantiating at least one of a machine agent, a lot agent, a PM agent, and a resource agent
50. The automated manufacturing environment of claim 46, wherein the means for instantiating the plurality of autonomous, active software agents includes means for instantiating a plurality of software agents further specialized by the characteristics of the particular entity they represent.
51. The automated manufacturing environment of claim 46, further comprising means for instantiating a lot start agent.
52. A computer-readable, program storage medium encoded with instruction that, when executed by a computer, perform a method for automated processing, the method comprising:
instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities, the software agents being specialized by type of entity represented and function to schedule a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities;
scheduling appointments for the first subset to consume the process resources; and
executing the scheduled appointments.
53. The program storage medium of claim 52, wherein instantiating the plurality of autonomous, active software agents associated with the plurality of manufacturing domain entities in the encoded method includes instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities including at least one of:
a process tool;
a preventive maintenance/qualification procedure for the process tool;
a process resource employed by the process tool; and
a lot for processing on the process tool.
54. The program storage medium of claim 52, wherein instantiating the plurality of autonomous, active software agents in the encoded method includes instantiating at least one of a scheduling agent and a processing agent.
55. The program storage medium of claim 52, wherein instantiating the plurality of autonomous, active software agents in the encoded method includes instantiating at least one of a machine agent, a lot agent, a PM agent, and a resource agent
56. The program storage medium of claim 52, wherein instantiating the plurality of autonomous, active software agents in the encoded method includes instantiating a plurality of software agents further specialized by the characteristics of the particular entity they represent.
57. The program storage medium of claim 52, wherein the encoded method further comprises instantiating a lot start agent.
58. A computing system programmed to perform a method for automated processing, the method comprising:
instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities, the software agents being specialized by type of entity represented and function to schedule a first subset of the manufacturing domain entities for consuming the process resources provided by a second subset of the manufacturing domain entities;
scheduling appointments for the first subset to consume the process resources; and
executing the scheduled appointments.
59. The computing system of claim 58, wherein instantiating the plurality of autonomous, active software agents associated with the plurality of manufacturing domain entities in the programmed method includes instantiating a plurality of autonomous, active software agents associated with a plurality of manufacturing domain entities including at least one of:
a process tool;
a preventive maintenance/qualification procedure for the process tool;
a process resource employed by the process tool; and
a lot for processing on the process tool.
60. The computing system of claim 58, wherein instantiating the plurality of autonomous, active software agents in the programmed method includes instantiating at least one of a scheduling agent and a processing agent.
61. The computing system of claim 58, wherein instantiating the plurality of autonomous, active software agents in the programmed method includes instantiating at least one of a machine agent, a lot agent, a PM agent, and a resource agent
62. The computing system of claim 58, wherein instantiating the plurality of autonomous, active software agents in the programmed method includes instantiating a plurality of software agents further specialized by the characteristics of the particular entity they represent.
63. The computing system of claim 58, wherein the programmed method further comprises instantiating a lot start agent.
64. A method for automated processing, comprising:
instantiating a plurality of autonomous, active software agents, including:
a plurality of machine agents for scheduling and processing operations on a plurality of process tools;
a plurality of lot agents for scheduling and processing a plurality of lots on the process tools;
a plurality of resource agents for scheduling and processing the utilization of a plurality of process resources by the process tools;
a plurality of preventive maintenance agents for scheduling and processing a plurality of preventive maintenance/qualification procedures on the process tools;
scheduling appointments for the lots for processing on the process tools and for the process tools to utilize the process resources; and
executing the scheduled appointments.
65. The method for automated processing of claim 64, wherein instantiating the software agents includes instantiating a plurality of software agents further specialized by the characteristics of the particular entity they represent.
66. The method for automated processing of claim 64, wherein scheduling appointments includes implementing a contract net negotiation protocol.
67. The method for automated processing of claim 64, further comprising instantiating a starvation avoidance lot start agent.
US10/160,990 2002-05-31 2002-05-31 Specialization of active software agents in an automated manufacturing environment Abandoned US20030225474A1 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US10/160,990 US20030225474A1 (en) 2002-05-31 2002-05-31 Specialization of active software agents in an automated manufacturing environment
DE10297744T DE10297744T5 (en) 2002-05-31 2002-12-20 Specialization of active software in an automated manufacturing environment
GB0424487A GB2404458B (en) 2002-05-31 2002-12-20 Specialization of active software agents in an automated manufacturing environment
AU2002359877A AU2002359877A1 (en) 2002-05-31 2002-12-20 Specialization of active software agents in an automated manufacturing environment
KR1020047019536A KR100946397B1 (en) 2002-05-31 2002-12-20 Specialization of active software agents in an automated manufacturing environment
PCT/US2002/041659 WO2003102771A2 (en) 2002-05-31 2002-12-20 Specialization of active software agents in an automated manufacturing environment
CNB028290585A CN100403324C (en) 2002-05-31 2002-12-20 Specialization of active software agents in an automated manufacturing environment
JP2004509789A JP4722479B2 (en) 2002-05-31 2002-12-20 Specialization of active software agents in automated manufacturing environments
TW092108319A TWI295754B (en) 2002-05-31 2003-04-11 Automated manufacturing system, method for automated processing, computer-readable program storage medium encoded with instruction, and computing system programmed to perform a method for automated processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/160,990 US20030225474A1 (en) 2002-05-31 2002-05-31 Specialization of active software agents in an automated manufacturing environment

Publications (1)

Publication Number Publication Date
US20030225474A1 true US20030225474A1 (en) 2003-12-04

Family

ID=29583320

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/160,990 Abandoned US20030225474A1 (en) 2002-05-31 2002-05-31 Specialization of active software agents in an automated manufacturing environment

Country Status (9)

Country Link
US (1) US20030225474A1 (en)
JP (1) JP4722479B2 (en)
KR (1) KR100946397B1 (en)
CN (1) CN100403324C (en)
AU (1) AU2002359877A1 (en)
DE (1) DE10297744T5 (en)
GB (1) GB2404458B (en)
TW (1) TWI295754B (en)
WO (1) WO2003102771A2 (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233290A1 (en) * 2002-06-14 2003-12-18 Yang Lou Ping Buyer, multi-supplier, multi-stage supply chain management system with lot tracking
US20030233289A1 (en) * 2002-06-14 2003-12-18 Yang Lou Ping Multi-stage supply chain management system with dynamic order placement
US20040093251A1 (en) * 2002-08-13 2004-05-13 James Heskin Scheduling system and method
US20040181371A1 (en) * 2003-03-12 2004-09-16 Taiwan Semiconductor Manufacturing Co., Ltd. Online material consumption monitoring system and method for monitoring material within a wafer fabrication facility
US20040260419A1 (en) * 2003-06-19 2004-12-23 Yen-Hung Chen Method for generating a suggestive dispatch lot list that considers upstream/downstream stage requirements
US20050027481A1 (en) * 2003-07-18 2005-02-03 Samsung Electronics Co., Ltd. System for making semiconductor devices and processing control thereof
US20050090924A1 (en) * 2003-10-28 2005-04-28 Taiwan Semiconductor Manufacturing Co. Floating process flow control system to handle operation events in a full automation plant
US20050144088A1 (en) * 2002-07-30 2005-06-30 Croke Charles E. User-friendly rule-based system and method for automatically generating photomask orders
US20050222699A1 (en) * 2004-03-31 2005-10-06 Canon Kabushiki Kaisha Exposure apparatus and device manufacturing method
US20050234577A1 (en) * 2004-04-16 2005-10-20 Loughran Stephen A Scheduling system
US20060077365A1 (en) * 2004-10-07 2006-04-13 Canon Kabushiki Kaisha Exposure method and apparatus
WO2006055143A2 (en) * 2004-11-19 2006-05-26 Advanced Micro Devices, Inc. Scheduling amhs pickup and delivery ahead of schedule
US20060149404A1 (en) * 2005-01-05 2006-07-06 International Business Machines Corporation A method for autonomic control of a manufacturing system
US20060271223A1 (en) * 2005-05-27 2006-11-30 International Business Machines Corporation Method and system for integrating equipment integration software, equipment events, mes and rules databases
US7206653B1 (en) * 2005-11-29 2007-04-17 Taiwan Semiconductor Manufacturing Co., Ltd. Wafer-based planning methods and systems for batch-based processing tools
US20070143124A1 (en) * 2005-12-15 2007-06-21 International Business Machines Corporation Extensible object data enabled manufacturing
US20080004739A1 (en) * 2006-06-30 2008-01-03 Aishwarya Varadhan Combining automated and manual information in a centralized system for semiconductor process control
US20080183324A1 (en) * 2007-01-31 2008-07-31 Chartered Semiconductor Manufacturing, Ltd. Methods and apparatus for white space reduction in a production facility
US7463939B1 (en) * 2004-11-18 2008-12-09 Advanced Micro Devices, Inc. Scheduling tools with queue time constraints
US20090271323A1 (en) * 2005-10-13 2009-10-29 Stratasys, Inc. Transactional Method for Building Three-Dimensional Objects
US20170083587A1 (en) * 2015-09-18 2017-03-23 Samsung Electronics Co., Ltd. Data collecting/processing system and product manufacturing/analyzing system including the same
US20170310608A1 (en) * 2016-04-21 2017-10-26 Google Inc. System for allocating sensor network resources
US10295979B2 (en) * 2015-09-15 2019-05-21 Applied Materials, Inc. Scheduling in manufacturing environments
US11383377B2 (en) * 2018-10-09 2022-07-12 Jpmorgan Chase Bank, N.A. System and method for bot automation lifecycle management

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680970B2 (en) * 2004-10-22 2010-03-16 Fisher-Rosemount Systems, Inc. Method and system for batch process arbitration in a process control system
KR101055645B1 (en) 2009-06-30 2011-08-09 국민대학교산학협력단 Robotic Collaboration Method and System
JP2012511221A (en) * 2010-02-25 2012-05-17 アドバンスト コンピュータ サービス カンパニー、リミテッド Resource configuration automation system and method for moving production equipment
TWI512415B (en) * 2014-09-04 2015-12-11 Formosa Plastics Corp Process control system

Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796194A (en) * 1986-08-20 1989-01-03 Atherton Robert W Real world modeling and control process
US4800376A (en) * 1986-01-13 1989-01-24 Sony Corporation Multiple display system
US4912624A (en) * 1988-03-30 1990-03-27 Syracuse University Multi-parameter optimization circuit
US4994980A (en) * 1987-09-09 1991-02-19 Fanuc Ltd. Automatic machining scheduling method based on an expert system
US5014208A (en) * 1989-01-23 1991-05-07 Siemens Corporate Research, Inc. Workcell controller employing entity-server model for physical objects and logical abstractions
US5031118A (en) * 1987-07-04 1991-07-09 Deutsche Thomson-Brandt Gmbh Apparatus and method for adapting multiple operating mode monitor
US5040123A (en) * 1989-09-08 1991-08-13 General Motors Corporation Expert system scheduler
US5093794A (en) * 1989-08-22 1992-03-03 United Technologies Corporation Job scheduling system
US5109434A (en) * 1982-10-05 1992-04-28 Canon Kabushiki Kaisha Image processing apparatus
US5233533A (en) * 1989-12-19 1993-08-03 Symmetrix, Inc. Scheduling method and apparatus
US5249120A (en) * 1991-01-14 1993-09-28 The Charles Stark Draper Laboratory, Inc. Automated manufacturing costing system and method
US5291394A (en) * 1990-06-01 1994-03-01 Motorola, Inc. Manufacturing control and capacity planning system
US5402350A (en) * 1991-06-28 1995-03-28 Texas Instruments Incorporated Scheduling for multi-task manufacturing equipment
US5444632A (en) * 1994-04-28 1995-08-22 Texas Instruments Incorporated Apparatus and method for controlling and scheduling processing machines
US5446671A (en) * 1993-10-22 1995-08-29 Micron Semiconductor, Inc. Look-ahead method for maintaining optimum queued quantities of in-process parts at a manufacturing bottleneck
US5487144A (en) * 1992-12-01 1996-01-23 Yokogawa Electric Corporation Scheduling system
US5546326A (en) * 1995-04-04 1996-08-13 Taiwan Semiconductor Manufacturing Company Ltd Dynamic dispatching rule that uses long term due date and short term queue time to improve delivery performance
US5548518A (en) * 1994-05-31 1996-08-20 International Business Machines Corporation Allocation method for generating a production schedule
US5548535A (en) * 1994-11-08 1996-08-20 Advanced Micro Devices, Inc. Monitor utility for use in manufacturing environment
US5548756A (en) * 1990-10-16 1996-08-20 Consilium, Inc. Object-oriented architecture for factory floor management
US5596502A (en) * 1994-11-14 1997-01-21 Sunoptech, Ltd. Computer system including means for decision support scheduling
US5666493A (en) * 1993-08-24 1997-09-09 Lykes Bros., Inc. System for managing customer orders and method of implementation
US5765137A (en) * 1996-03-04 1998-06-09 Massachusetts Institute Of Technology Computer system and computer-implemented process for correlating product requirements to manufacturing cost
US5890134A (en) * 1996-02-16 1999-03-30 Mcdonnell Douglas Corporation Scheduling optimizer
US5913200A (en) * 1995-02-02 1999-06-15 Toyota Jidosha Kabushiki Kaisha System for and method of working out production start plans
US5920692A (en) * 1997-03-24 1999-07-06 International Business Machines Corp. Method and system for a remote notification service for a multi-user server architecture
US5933354A (en) * 1995-10-13 1999-08-03 Matsushita Electric Industrial Co., Ltd. System for controlling physical distribution pallets
US5943652A (en) * 1994-02-25 1999-08-24 3M Innovative Properties Company Resource assignment and scheduling system
US5953229A (en) * 1996-09-24 1999-09-14 Environmental Research Institute Of Michigan Density-based emergent scheduling system
US5960417A (en) * 1996-03-19 1999-09-28 Vanguard International Semiconductor Corporation IC manufacturing costing control system and process
US5963447A (en) * 1997-08-22 1999-10-05 Hynomics Corporation Multiple-agent hybrid control architecture for intelligent real-time control of distributed nonlinear processes
US5963911A (en) * 1994-03-25 1999-10-05 British Telecommunications Public Limited Company Resource allocation
US5970476A (en) * 1996-09-19 1999-10-19 Manufacturing Management Systems, Inc. Method and apparatus for industrial data acquisition and product costing
US6038539A (en) * 1992-03-04 2000-03-14 Fujitsu Limited Job scheduling system for designating procedure start times
US6088626A (en) * 1994-05-27 2000-07-11 Lilly Software Associates, Inc. Method and apparatus for scheduling work orders in a manufacturing process
US6091998A (en) * 1998-09-30 2000-07-18 Rockwell Technologies, Llc Self organizing industrial control system using bidding process
US6128542A (en) * 1993-03-29 2000-10-03 Cmsi Acquisition Corporation Method and apparatus for generating a sequence of steps for use by a factory
US6128588A (en) * 1997-10-01 2000-10-03 Sony Corporation Integrated wafer fab time standard (machine tact) database
US6192354B1 (en) * 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
US6202062B1 (en) * 1999-02-26 2001-03-13 Ac Properties B.V. System, method and article of manufacture for creating a filtered information summary based on multiple profiles of each single user
US6216108B1 (en) * 1997-08-11 2001-04-10 Levander Mark R. Service business management system
US6263255B1 (en) * 1998-05-18 2001-07-17 Advanced Micro Devices, Inc. Advanced process control for semiconductor manufacturing
US6263358B1 (en) * 1997-07-25 2001-07-17 British Telecommunications Public Limited Company Scheduler for a software system having means for allocating tasks
US6266655B1 (en) * 1998-07-22 2001-07-24 I2 Technologies, Inc. Computer-implemented value management tool for an asset intensive manufacturer
US6356797B1 (en) * 1999-01-04 2002-03-12 Taiwan Semiconductor Manufacturing Co., Ltd. Method for automatic scheduling of production plan
US20020035447A1 (en) * 2000-09-20 2002-03-21 Kazue Takahashi Remote diagnosing system for semiconductor manufacturing equipment and a remote diagnosing method
US6374144B1 (en) * 1998-12-22 2002-04-16 Varian Semiconductor Equipment Associates, Inc. Method and apparatus for controlling a system using hierarchical state machines
US6389454B1 (en) * 1999-05-13 2002-05-14 Medical Specialty Software Multi-facility appointment scheduling system
US6397115B1 (en) * 1999-10-08 2002-05-28 Smithkline Beecham Hazardous material classification system
US6400999B1 (en) * 1998-07-06 2002-06-04 Yokogawa Electric Corporation Production system and manufacturing equipment selecting method on production system
US6408220B1 (en) * 1999-06-01 2002-06-18 Applied Materials, Inc. Semiconductor processing techniques
US6415196B1 (en) * 1997-08-28 2002-07-02 Manugistics, Inc. Manufacturing scheduling process with improved modeling, scheduling and editing capabilities for solving finite capacity planning problems
US6418350B1 (en) * 2000-06-09 2002-07-09 Brooks Automation Inc. Periodic scheduler for dual-arm robots in cluster tools with process-module residency constraints
US6434443B1 (en) * 1999-05-17 2002-08-13 Taiwan Semiconductor Manufacturing Company Method for performing dynamic re-scheduling of fabrication plant
US6438436B1 (en) * 1998-02-17 2002-08-20 Kabushiki Kaisha Toshiba Production scheduling management system, and method of managing production scheduling
US20020116210A1 (en) * 2001-02-20 2002-08-22 Honeywell International Inc. Computerized method for online quoting and pricing of tasks
US20020120533A1 (en) * 2001-02-23 2002-08-29 Hubert Wiesenmaier Method and system for management of ordering, production, and delivery of made-to-specification goods
US6470227B1 (en) * 1997-12-02 2002-10-22 Murali D. Rangachari Method and apparatus for automating a microelectric manufacturing process
US20030004912A1 (en) * 2001-06-29 2003-01-02 Lalit Pant Architecture for intelligent agents and distributed platform therefor
US20030069908A1 (en) * 2000-01-27 2003-04-10 Anthony Jon S Software composition using graph types,graph, and agents
US6556949B1 (en) * 1999-05-18 2003-04-29 Applied Materials, Inc. Semiconductor processing techniques
US6571215B1 (en) * 1997-01-21 2003-05-27 Microsoft Corporation System and method for generating a schedule based on resource assignments
US6571147B1 (en) * 1997-09-22 2003-05-27 Dainippon Screen Mfg. Co., Ltd. System for and method of managing jobs
US6584369B2 (en) * 2000-02-02 2003-06-24 Texas Instruments Incorporated Method and system for dispatching semiconductor lots to manufacturing equipment for fabrication
US6591262B1 (en) * 2000-08-01 2003-07-08 International Business Machines Corporation Collaborative workload management incorporating work unit attributes in resource allocation
US20030149631A1 (en) * 2001-12-27 2003-08-07 Manugistics, Inc. System and method for order planning with attribute based planning
US20030158795A1 (en) * 2001-12-28 2003-08-21 Kimberly-Clark Worldwide, Inc. Quality management and intelligent manufacturing with labels and smart tags in event-based product manufacturing
US20030158615A1 (en) * 1998-06-26 2003-08-21 Patrick Weber Control system and method therefor
US20030158618A1 (en) * 2000-02-28 2003-08-21 Raymond Browning Push-type scheduling for semiconductor fabrication
US20040030688A1 (en) * 2000-05-31 2004-02-12 International Business Machines Corporation Information search using knowledge agents
US20040030531A1 (en) * 2002-03-28 2004-02-12 Honeywell International Inc. System and method for automated monitoring, recognizing, supporting, and responding to the behavior of an actor
US20040039469A1 (en) * 2002-08-22 2004-02-26 Taiwan Semiconductor Manufacturing Co., Ltd. Flexible dispatching system and method for coordinating between a manual automated dispatching mode
US6711449B1 (en) * 1998-12-22 2004-03-23 Toyota Jidosha Kabushiki Kaisha Ordered product delivery date management system for management product or part production slot exchange
US6711450B1 (en) * 2000-02-02 2004-03-23 Advanced Micro Devices, Inc. Integration of business rule parameters in priority setting of wafer processing
US20040078277A1 (en) * 1998-08-26 2004-04-22 Gindlesperger William A. Apparatus and method for obtaining lowest bid from information product vendors
US6731999B1 (en) * 2002-01-02 2004-05-04 Taiwan Semiconductor Manufacturing Company Wafer start order release algorithm in a foundry fab
US6782302B1 (en) * 2002-08-30 2004-08-24 Advanced Micro Devices, Inc. Method and apparatus for scheduling workpieces with compatible processing requirements
US6801819B1 (en) * 2002-08-30 2004-10-05 Advanced Micro Devices, Inc. Method and apparatus for evaluating bids for scheduling a resource
US6801820B1 (en) * 1994-05-27 2004-10-05 Lilly Software Associates, Inc. Method and apparatus for scheduling work orders in a manufacturing process
US6842658B2 (en) * 2001-02-01 2005-01-11 Hitachi, Ltd. Method of manufacturing a semiconductor device and manufacturing system
US6856848B2 (en) * 2000-04-24 2005-02-15 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling progress of product processing
US6862555B2 (en) * 2002-11-27 2005-03-01 Taiwan Semiconductor Manufacturing Co., Ltd Enhanced preventative maintenance system and method of use
US6889178B1 (en) * 1997-10-01 2005-05-03 Sony Corporation Integrated wafer fabrication production characterization and scheduling system
US6898472B2 (en) * 2001-12-27 2005-05-24 Manugistics, Inc. System and method for order group planning with attribute based planning
US6904329B1 (en) * 2002-08-30 2005-06-07 Advanced Micro Devices, Inc. Method and apparatus for generating a multi-dimensional cost function
US6907305B2 (en) * 2002-04-30 2005-06-14 Advanced Micro Devices, Inc. Agent reactive scheduling in an automated manufacturing environment
US20050193269A1 (en) * 2000-03-27 2005-09-01 Accenture Llp System, method, and article of manufacture for synchronization in an automated scripting framework
US20060036448A1 (en) * 2001-06-13 2006-02-16 Caminus Corporation System architecture and method for energy industry trading and transaction management
US7010386B2 (en) * 2002-03-22 2006-03-07 Mcdonnell Ryan P Tool wear monitoring system
US7027885B1 (en) * 2002-12-30 2006-04-11 Advanced Micro Devices, Inc. Determining batch start versus delay
US20060090165A1 (en) * 2004-09-24 2006-04-27 International Business Machines Corporation Program agent initiated processing of enqueued event actions
US7069097B1 (en) * 2002-08-30 2006-06-27 Advanced Micro Devices, Inc. Method and apparatus for reducing scheduling conflicts for a resource
US20060178918A1 (en) * 1999-11-22 2006-08-10 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
US7127310B1 (en) * 2002-08-30 2006-10-24 Advanced Micro Devices, Inc. Method and apparatus for determining cost functions using parameterized components
US7194323B2 (en) * 2001-03-22 2007-03-20 International Business Machines Corporation Method and system for object oriented approach and data model for configure-to-order manufacturing system
US20070150085A1 (en) * 2000-12-27 2007-06-28 Shuji Akiyama Conveyance method for transporting objects
US7286999B2 (en) * 2002-05-09 2007-10-23 International Business Machines Corporation Integrated project management and development environment for determining the time expended on project tasks
US7337032B1 (en) * 2004-10-04 2008-02-26 Advanced Micro Devices, Inc. Scheduling ahead for various processes
US7512454B1 (en) * 2002-05-31 2009-03-31 Advanced Micro Devices, Inc. Display unit with processor and communication controller

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328465A (en) * 1998-05-13 1999-11-30 Dainippon Screen Mfg Co Ltd System for processing digital information and for managing job information and method therefor and medium for recording program

Patent Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109434A (en) * 1982-10-05 1992-04-28 Canon Kabushiki Kaisha Image processing apparatus
US4800376A (en) * 1986-01-13 1989-01-24 Sony Corporation Multiple display system
US4796194A (en) * 1986-08-20 1989-01-03 Atherton Robert W Real world modeling and control process
US5031118A (en) * 1987-07-04 1991-07-09 Deutsche Thomson-Brandt Gmbh Apparatus and method for adapting multiple operating mode monitor
US4994980A (en) * 1987-09-09 1991-02-19 Fanuc Ltd. Automatic machining scheduling method based on an expert system
US4912624A (en) * 1988-03-30 1990-03-27 Syracuse University Multi-parameter optimization circuit
US5014208A (en) * 1989-01-23 1991-05-07 Siemens Corporate Research, Inc. Workcell controller employing entity-server model for physical objects and logical abstractions
US5093794A (en) * 1989-08-22 1992-03-03 United Technologies Corporation Job scheduling system
US5040123A (en) * 1989-09-08 1991-08-13 General Motors Corporation Expert system scheduler
US5233533A (en) * 1989-12-19 1993-08-03 Symmetrix, Inc. Scheduling method and apparatus
US5291394A (en) * 1990-06-01 1994-03-01 Motorola, Inc. Manufacturing control and capacity planning system
US5548756A (en) * 1990-10-16 1996-08-20 Consilium, Inc. Object-oriented architecture for factory floor management
US5249120A (en) * 1991-01-14 1993-09-28 The Charles Stark Draper Laboratory, Inc. Automated manufacturing costing system and method
US5402350A (en) * 1991-06-28 1995-03-28 Texas Instruments Incorporated Scheduling for multi-task manufacturing equipment
US6038539A (en) * 1992-03-04 2000-03-14 Fujitsu Limited Job scheduling system for designating procedure start times
US5487144A (en) * 1992-12-01 1996-01-23 Yokogawa Electric Corporation Scheduling system
US6128542A (en) * 1993-03-29 2000-10-03 Cmsi Acquisition Corporation Method and apparatus for generating a sequence of steps for use by a factory
US5666493A (en) * 1993-08-24 1997-09-09 Lykes Bros., Inc. System for managing customer orders and method of implementation
US5446671A (en) * 1993-10-22 1995-08-29 Micron Semiconductor, Inc. Look-ahead method for maintaining optimum queued quantities of in-process parts at a manufacturing bottleneck
US5943652A (en) * 1994-02-25 1999-08-24 3M Innovative Properties Company Resource assignment and scheduling system
US5963911A (en) * 1994-03-25 1999-10-05 British Telecommunications Public Limited Company Resource allocation
US5444632A (en) * 1994-04-28 1995-08-22 Texas Instruments Incorporated Apparatus and method for controlling and scheduling processing machines
US6801820B1 (en) * 1994-05-27 2004-10-05 Lilly Software Associates, Inc. Method and apparatus for scheduling work orders in a manufacturing process
US6088626A (en) * 1994-05-27 2000-07-11 Lilly Software Associates, Inc. Method and apparatus for scheduling work orders in a manufacturing process
US5548518A (en) * 1994-05-31 1996-08-20 International Business Machines Corporation Allocation method for generating a production schedule
US5548535A (en) * 1994-11-08 1996-08-20 Advanced Micro Devices, Inc. Monitor utility for use in manufacturing environment
US5596502A (en) * 1994-11-14 1997-01-21 Sunoptech, Ltd. Computer system including means for decision support scheduling
US5913200A (en) * 1995-02-02 1999-06-15 Toyota Jidosha Kabushiki Kaisha System for and method of working out production start plans
US5546326A (en) * 1995-04-04 1996-08-13 Taiwan Semiconductor Manufacturing Company Ltd Dynamic dispatching rule that uses long term due date and short term queue time to improve delivery performance
US5933354A (en) * 1995-10-13 1999-08-03 Matsushita Electric Industrial Co., Ltd. System for controlling physical distribution pallets
US5890134A (en) * 1996-02-16 1999-03-30 Mcdonnell Douglas Corporation Scheduling optimizer
US5765137A (en) * 1996-03-04 1998-06-09 Massachusetts Institute Of Technology Computer system and computer-implemented process for correlating product requirements to manufacturing cost
US5960417A (en) * 1996-03-19 1999-09-28 Vanguard International Semiconductor Corporation IC manufacturing costing control system and process
US5970476A (en) * 1996-09-19 1999-10-19 Manufacturing Management Systems, Inc. Method and apparatus for industrial data acquisition and product costing
US5953229A (en) * 1996-09-24 1999-09-14 Environmental Research Institute Of Michigan Density-based emergent scheduling system
US6571215B1 (en) * 1997-01-21 2003-05-27 Microsoft Corporation System and method for generating a schedule based on resource assignments
US6192354B1 (en) * 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
US5920692A (en) * 1997-03-24 1999-07-06 International Business Machines Corp. Method and system for a remote notification service for a multi-user server architecture
US6263358B1 (en) * 1997-07-25 2001-07-17 British Telecommunications Public Limited Company Scheduler for a software system having means for allocating tasks
US6216108B1 (en) * 1997-08-11 2001-04-10 Levander Mark R. Service business management system
US5963447A (en) * 1997-08-22 1999-10-05 Hynomics Corporation Multiple-agent hybrid control architecture for intelligent real-time control of distributed nonlinear processes
US6415196B1 (en) * 1997-08-28 2002-07-02 Manugistics, Inc. Manufacturing scheduling process with improved modeling, scheduling and editing capabilities for solving finite capacity planning problems
US6571147B1 (en) * 1997-09-22 2003-05-27 Dainippon Screen Mfg. Co., Ltd. System for and method of managing jobs
US6889178B1 (en) * 1997-10-01 2005-05-03 Sony Corporation Integrated wafer fabrication production characterization and scheduling system
US6128588A (en) * 1997-10-01 2000-10-03 Sony Corporation Integrated wafer fab time standard (machine tact) database
US6470227B1 (en) * 1997-12-02 2002-10-22 Murali D. Rangachari Method and apparatus for automating a microelectric manufacturing process
US6438436B1 (en) * 1998-02-17 2002-08-20 Kabushiki Kaisha Toshiba Production scheduling management system, and method of managing production scheduling
US6263255B1 (en) * 1998-05-18 2001-07-17 Advanced Micro Devices, Inc. Advanced process control for semiconductor manufacturing
US20030158615A1 (en) * 1998-06-26 2003-08-21 Patrick Weber Control system and method therefor
US6400999B1 (en) * 1998-07-06 2002-06-04 Yokogawa Electric Corporation Production system and manufacturing equipment selecting method on production system
US6266655B1 (en) * 1998-07-22 2001-07-24 I2 Technologies, Inc. Computer-implemented value management tool for an asset intensive manufacturer
US20040078277A1 (en) * 1998-08-26 2004-04-22 Gindlesperger William A. Apparatus and method for obtaining lowest bid from information product vendors
US6091998A (en) * 1998-09-30 2000-07-18 Rockwell Technologies, Llc Self organizing industrial control system using bidding process
US6711449B1 (en) * 1998-12-22 2004-03-23 Toyota Jidosha Kabushiki Kaisha Ordered product delivery date management system for management product or part production slot exchange
US6374144B1 (en) * 1998-12-22 2002-04-16 Varian Semiconductor Equipment Associates, Inc. Method and apparatus for controlling a system using hierarchical state machines
US6356797B1 (en) * 1999-01-04 2002-03-12 Taiwan Semiconductor Manufacturing Co., Ltd. Method for automatic scheduling of production plan
US6202062B1 (en) * 1999-02-26 2001-03-13 Ac Properties B.V. System, method and article of manufacture for creating a filtered information summary based on multiple profiles of each single user
US6389454B1 (en) * 1999-05-13 2002-05-14 Medical Specialty Software Multi-facility appointment scheduling system
US6434443B1 (en) * 1999-05-17 2002-08-13 Taiwan Semiconductor Manufacturing Company Method for performing dynamic re-scheduling of fabrication plant
US6556949B1 (en) * 1999-05-18 2003-04-29 Applied Materials, Inc. Semiconductor processing techniques
US6408220B1 (en) * 1999-06-01 2002-06-18 Applied Materials, Inc. Semiconductor processing techniques
US6397115B1 (en) * 1999-10-08 2002-05-28 Smithkline Beecham Hazardous material classification system
US20060178918A1 (en) * 1999-11-22 2006-08-10 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
US20030069908A1 (en) * 2000-01-27 2003-04-10 Anthony Jon S Software composition using graph types,graph, and agents
US6584369B2 (en) * 2000-02-02 2003-06-24 Texas Instruments Incorporated Method and system for dispatching semiconductor lots to manufacturing equipment for fabrication
US6711450B1 (en) * 2000-02-02 2004-03-23 Advanced Micro Devices, Inc. Integration of business rule parameters in priority setting of wafer processing
US20030158618A1 (en) * 2000-02-28 2003-08-21 Raymond Browning Push-type scheduling for semiconductor fabrication
US20050193269A1 (en) * 2000-03-27 2005-09-01 Accenture Llp System, method, and article of manufacture for synchronization in an automated scripting framework
US6856848B2 (en) * 2000-04-24 2005-02-15 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling progress of product processing
US20040030688A1 (en) * 2000-05-31 2004-02-12 International Business Machines Corporation Information search using knowledge agents
US6418350B1 (en) * 2000-06-09 2002-07-09 Brooks Automation Inc. Periodic scheduler for dual-arm robots in cluster tools with process-module residency constraints
US6591262B1 (en) * 2000-08-01 2003-07-08 International Business Machines Corporation Collaborative workload management incorporating work unit attributes in resource allocation
US20020035447A1 (en) * 2000-09-20 2002-03-21 Kazue Takahashi Remote diagnosing system for semiconductor manufacturing equipment and a remote diagnosing method
US20070150085A1 (en) * 2000-12-27 2007-06-28 Shuji Akiyama Conveyance method for transporting objects
US6842658B2 (en) * 2001-02-01 2005-01-11 Hitachi, Ltd. Method of manufacturing a semiconductor device and manufacturing system
US20020116210A1 (en) * 2001-02-20 2002-08-22 Honeywell International Inc. Computerized method for online quoting and pricing of tasks
US20020120533A1 (en) * 2001-02-23 2002-08-29 Hubert Wiesenmaier Method and system for management of ordering, production, and delivery of made-to-specification goods
US7194323B2 (en) * 2001-03-22 2007-03-20 International Business Machines Corporation Method and system for object oriented approach and data model for configure-to-order manufacturing system
US20060036448A1 (en) * 2001-06-13 2006-02-16 Caminus Corporation System architecture and method for energy industry trading and transaction management
US20030004912A1 (en) * 2001-06-29 2003-01-02 Lalit Pant Architecture for intelligent agents and distributed platform therefor
US20030149631A1 (en) * 2001-12-27 2003-08-07 Manugistics, Inc. System and method for order planning with attribute based planning
US6898472B2 (en) * 2001-12-27 2005-05-24 Manugistics, Inc. System and method for order group planning with attribute based planning
US20030158795A1 (en) * 2001-12-28 2003-08-21 Kimberly-Clark Worldwide, Inc. Quality management and intelligent manufacturing with labels and smart tags in event-based product manufacturing
US6731999B1 (en) * 2002-01-02 2004-05-04 Taiwan Semiconductor Manufacturing Company Wafer start order release algorithm in a foundry fab
US7010386B2 (en) * 2002-03-22 2006-03-07 Mcdonnell Ryan P Tool wear monitoring system
US20040030531A1 (en) * 2002-03-28 2004-02-12 Honeywell International Inc. System and method for automated monitoring, recognizing, supporting, and responding to the behavior of an actor
US6907305B2 (en) * 2002-04-30 2005-06-14 Advanced Micro Devices, Inc. Agent reactive scheduling in an automated manufacturing environment
US7286999B2 (en) * 2002-05-09 2007-10-23 International Business Machines Corporation Integrated project management and development environment for determining the time expended on project tasks
US7512454B1 (en) * 2002-05-31 2009-03-31 Advanced Micro Devices, Inc. Display unit with processor and communication controller
US20040039469A1 (en) * 2002-08-22 2004-02-26 Taiwan Semiconductor Manufacturing Co., Ltd. Flexible dispatching system and method for coordinating between a manual automated dispatching mode
US7127310B1 (en) * 2002-08-30 2006-10-24 Advanced Micro Devices, Inc. Method and apparatus for determining cost functions using parameterized components
US7069097B1 (en) * 2002-08-30 2006-06-27 Advanced Micro Devices, Inc. Method and apparatus for reducing scheduling conflicts for a resource
US6782302B1 (en) * 2002-08-30 2004-08-24 Advanced Micro Devices, Inc. Method and apparatus for scheduling workpieces with compatible processing requirements
US6904329B1 (en) * 2002-08-30 2005-06-07 Advanced Micro Devices, Inc. Method and apparatus for generating a multi-dimensional cost function
US6801819B1 (en) * 2002-08-30 2004-10-05 Advanced Micro Devices, Inc. Method and apparatus for evaluating bids for scheduling a resource
US6862555B2 (en) * 2002-11-27 2005-03-01 Taiwan Semiconductor Manufacturing Co., Ltd Enhanced preventative maintenance system and method of use
US7027885B1 (en) * 2002-12-30 2006-04-11 Advanced Micro Devices, Inc. Determining batch start versus delay
US20060090165A1 (en) * 2004-09-24 2006-04-27 International Business Machines Corporation Program agent initiated processing of enqueued event actions
US7337032B1 (en) * 2004-10-04 2008-02-26 Advanced Micro Devices, Inc. Scheduling ahead for various processes

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233289A1 (en) * 2002-06-14 2003-12-18 Yang Lou Ping Multi-stage supply chain management system with dynamic order placement
WO2003107118A2 (en) * 2002-06-14 2003-12-24 Getsilicon, Inc. Buyer, multi-supplier, multi-stage supply chain management system with lot tracking
WO2003107118A3 (en) * 2002-06-14 2004-06-17 Getsilicon Inc Buyer, multi-supplier, multi-stage supply chain management system with lot tracking
US20090259527A1 (en) * 2002-06-14 2009-10-15 E2Open, Inc. Multi-Stage Supply Chain Management System With Dynamic Order Placement
US8290833B2 (en) 2002-06-14 2012-10-16 E2Open, Inc. Multi-stage supply chain management system with dynamic order placement
US20030233290A1 (en) * 2002-06-14 2003-12-18 Yang Lou Ping Buyer, multi-supplier, multi-stage supply chain management system with lot tracking
US7529695B2 (en) 2002-06-14 2009-05-05 E2Open, Inc. Multi-stage supply chain management system with dynamic order placement
US20050144088A1 (en) * 2002-07-30 2005-06-30 Croke Charles E. User-friendly rule-based system and method for automatically generating photomask orders
US7640529B2 (en) * 2002-07-30 2009-12-29 Photronics, Inc. User-friendly rule-based system and method for automatically generating photomask orders
US7426419B2 (en) * 2002-08-13 2008-09-16 Texas Instruments Incorporated Scheduling system and method
US20080281454A1 (en) * 2002-08-13 2008-11-13 Texas Instruments Incorporated Scheduling System and Method
US7574278B2 (en) * 2002-08-13 2009-08-11 Texas Instruments Incorporated Scheduling system and method
US20040093251A1 (en) * 2002-08-13 2004-05-13 James Heskin Scheduling system and method
US6909996B2 (en) * 2003-03-12 2005-06-21 Taiwan Semiconductor Manufacturing Co., Ltd Online material consumption monitoring system and method for monitoring material within a wafer fabrication facility
US20040181371A1 (en) * 2003-03-12 2004-09-16 Taiwan Semiconductor Manufacturing Co., Ltd. Online material consumption monitoring system and method for monitoring material within a wafer fabrication facility
US20040260419A1 (en) * 2003-06-19 2004-12-23 Yen-Hung Chen Method for generating a suggestive dispatch lot list that considers upstream/downstream stage requirements
US7006885B2 (en) * 2003-06-19 2006-02-28 Taiwan Semiconductor Manufacturing Co., Ltd. Method for generating a suggestive dispatch lot list that considers upstream/downstream stage requirements
US20050027481A1 (en) * 2003-07-18 2005-02-03 Samsung Electronics Co., Ltd. System for making semiconductor devices and processing control thereof
US7039482B2 (en) * 2003-10-28 2006-05-02 Taiwan Semiconductor Manufacturing Company, Ltd. Floating process flow control system to handle operation events in a full automation plant
US20050090924A1 (en) * 2003-10-28 2005-04-28 Taiwan Semiconductor Manufacturing Co. Floating process flow control system to handle operation events in a full automation plant
US7127311B2 (en) * 2004-03-31 2006-10-24 Canon Kabushiki Kaisha Exposure apparatus and device manufacturing method
US20050222699A1 (en) * 2004-03-31 2005-10-06 Canon Kabushiki Kaisha Exposure apparatus and device manufacturing method
US6983188B2 (en) * 2004-04-16 2006-01-03 Hewlett-Packard Development Company, L.P. Scheduling system
US20050234577A1 (en) * 2004-04-16 2005-10-20 Loughran Stephen A Scheduling system
US20060077365A1 (en) * 2004-10-07 2006-04-13 Canon Kabushiki Kaisha Exposure method and apparatus
US7257453B2 (en) * 2004-10-07 2007-08-14 Canon Kabushiki Kaisha Exposure method and apparatus
US7463939B1 (en) * 2004-11-18 2008-12-09 Advanced Micro Devices, Inc. Scheduling tools with queue time constraints
GB2437855A (en) * 2004-11-19 2007-11-07 Advanced Micro Devices Inc Scheduling amhs pickup and delivery ahead of schedule
WO2006055143A3 (en) * 2004-11-19 2006-07-13 Advanced Micro Devices Inc Scheduling amhs pickup and delivery ahead of schedule
WO2006055143A2 (en) * 2004-11-19 2006-05-26 Advanced Micro Devices, Inc. Scheduling amhs pickup and delivery ahead of schedule
GB2437855B (en) * 2004-11-19 2009-08-12 Advanced Micro Devices Inc Scheduling AHMS pickup and delivery ahead of schedule
US20080140243A1 (en) * 2005-01-05 2008-06-12 International Business Machines Corporation method for autonomic control of a manufacturing system
US7653451B2 (en) 2005-01-05 2010-01-26 International Business Machines Corporation Method for autonomic control of a manufacturing system
US20060149404A1 (en) * 2005-01-05 2006-07-06 International Business Machines Corporation A method for autonomic control of a manufacturing system
US7349751B2 (en) 2005-01-05 2008-03-25 International Business Machines Corporation Method for autonomic control of a manufacturing system
US7151972B2 (en) 2005-01-05 2006-12-19 International Business Machines Corporation Method for autonomic control of a manufacturing system
US20060271223A1 (en) * 2005-05-27 2006-11-30 International Business Machines Corporation Method and system for integrating equipment integration software, equipment events, mes and rules databases
US8014889B2 (en) 2005-10-13 2011-09-06 Stratasys, Inc. Transactional method for building three-dimensional objects
US20090271323A1 (en) * 2005-10-13 2009-10-29 Stratasys, Inc. Transactional Method for Building Three-Dimensional Objects
US7206653B1 (en) * 2005-11-29 2007-04-17 Taiwan Semiconductor Manufacturing Co., Ltd. Wafer-based planning methods and systems for batch-based processing tools
CN100419607C (en) * 2005-11-29 2008-09-17 台湾积体电路制造股份有限公司 Wafer-based planning methods and systems
US20070143124A1 (en) * 2005-12-15 2007-06-21 International Business Machines Corporation Extensible object data enabled manufacturing
US7515982B2 (en) * 2006-06-30 2009-04-07 Intel Corporation Combining automated and manual information in a centralized system for semiconductor process control
US20080004739A1 (en) * 2006-06-30 2008-01-03 Aishwarya Varadhan Combining automated and manual information in a centralized system for semiconductor process control
US8160736B2 (en) * 2007-01-31 2012-04-17 Globalfoundries Singapore Pte. Ltd. Methods and apparatus for white space reduction in a production facility
US20080183324A1 (en) * 2007-01-31 2008-07-31 Chartered Semiconductor Manufacturing, Ltd. Methods and apparatus for white space reduction in a production facility
US10295979B2 (en) * 2015-09-15 2019-05-21 Applied Materials, Inc. Scheduling in manufacturing environments
US20170083587A1 (en) * 2015-09-18 2017-03-23 Samsung Electronics Co., Ltd. Data collecting/processing system and product manufacturing/analyzing system including the same
US20170310608A1 (en) * 2016-04-21 2017-10-26 Google Inc. System for allocating sensor network resources
US10003549B2 (en) * 2016-04-21 2018-06-19 Google Llc System for allocating sensor network resources
US10749816B2 (en) 2016-04-21 2020-08-18 Google Llc System for allocating sensor network resources
US11383377B2 (en) * 2018-10-09 2022-07-12 Jpmorgan Chase Bank, N.A. System and method for bot automation lifecycle management

Also Published As

Publication number Publication date
WO2003102771A2 (en) 2003-12-11
AU2002359877A1 (en) 2003-12-19
GB2404458B (en) 2006-06-14
DE10297744T5 (en) 2005-08-11
CN100403324C (en) 2008-07-16
JP2005528787A (en) 2005-09-22
JP4722479B2 (en) 2011-07-13
WO2003102771A3 (en) 2004-04-01
KR100946397B1 (en) 2010-03-09
CN1628273A (en) 2005-06-15
AU2002359877A8 (en) 2003-12-19
KR20050004902A (en) 2005-01-12
GB0424487D0 (en) 2004-12-08
TWI295754B (en) 2008-04-11
TW200400428A (en) 2004-01-01
GB2404458A (en) 2005-02-02

Similar Documents

Publication Publication Date Title
US20030225474A1 (en) Specialization of active software agents in an automated manufacturing environment
US7337032B1 (en) Scheduling ahead for various processes
US7463939B1 (en) Scheduling tools with queue time constraints
US6907305B2 (en) Agent reactive scheduling in an automated manufacturing environment
US7512454B1 (en) Display unit with processor and communication controller
KR101391419B1 (en) Scheduling amhs pickup and delivery ahead of schedule
US6564113B1 (en) Lot start agent that calculates virtual WIP time in a multi-product and multi-bottleneck manufacturing environment
US6801819B1 (en) Method and apparatus for evaluating bids for scheduling a resource
US7813993B1 (en) Method and apparatus for scheduling a resource
US7069097B1 (en) Method and apparatus for reducing scheduling conflicts for a resource
US7127310B1 (en) Method and apparatus for determining cost functions using parameterized components
US6782302B1 (en) Method and apparatus for scheduling workpieces with compatible processing requirements
US6725113B1 (en) Lot start agent that determines virtual WIP time including an exponentially weighted moving average cycle time
US7027885B1 (en) Determining batch start versus delay
US7072731B1 (en) Starvation avoidance lot start agent (SALSA)
US7043318B1 (en) Lot start agent that determines quantity and timing for lot starts
US7054702B1 (en) Lot start agent that determines delta virtual WIP time for each bottleneck station in a multi-product and multi-bottleneck manufacturing environment
US6904329B1 (en) Method and apparatus for generating a multi-dimensional cost function
US20090157216A1 (en) Automated scheduling of test wafer builds in a semiconductor manufacturing process flow
Kim et al. A due-date-based algorithm for lot-order assignment in a semiconductor wafer fabrication facility

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADVANCED MICRO DEVICES, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MATA, GUSTAVO;NETTLES, STEVEN C.;BARTO, LARRY D.;AND OTHERS;REEL/FRAME:012974/0091

Effective date: 20020530

AS Assignment

Owner name: GLOBALFOUNDRIES INC., CAYMAN ISLANDS

Free format text: AFFIRMATION OF PATENT ASSIGNMENT;ASSIGNOR:ADVANCED MICRO DEVICES, INC.;REEL/FRAME:023120/0426

Effective date: 20090630

Owner name: GLOBALFOUNDRIES INC.,CAYMAN ISLANDS

Free format text: AFFIRMATION OF PATENT ASSIGNMENT;ASSIGNOR:ADVANCED MICRO DEVICES, INC.;REEL/FRAME:023120/0426

Effective date: 20090630

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION