US20030225474A1 - Specialization of active software agents in an automated manufacturing environment - Google Patents
Specialization of active software agents in an automated manufacturing environment Download PDFInfo
- 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
Links
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 312
- 230000008569 process Effects 0.000 claims abstract description 251
- 238000012545 processing Methods 0.000 claims abstract description 165
- 235000012431 wafers Nutrition 0.000 claims description 76
- 238000012423 maintenance Methods 0.000 claims description 28
- 230000003449 preventive effect Effects 0.000 claims description 22
- 230000000694 effects Effects 0.000 claims description 20
- 238000012797 qualification Methods 0.000 claims description 18
- 230000009471 action Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 9
- 235000003642 hunger Nutrition 0.000 claims description 7
- 230000037351 starvation Effects 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 142
- 230000006399 behavior Effects 0.000 description 32
- 230000032258 transport Effects 0.000 description 15
- CVHZOJJKTDOEJC-UHFFFAOYSA-N saccharin Chemical compound C1=CC=C2C(=O)NS(=O)(=O)C2=C1 CVHZOJJKTDOEJC-UHFFFAOYSA-N 0.000 description 14
- 239000004065 semiconductor Substances 0.000 description 14
- 239000000463 material Substances 0.000 description 13
- SDNXQWUJWNTDCC-UHFFFAOYSA-N 2-methylsulfonylethanamine Chemical compound CS(=O)(=O)CCN SDNXQWUJWNTDCC-UHFFFAOYSA-N 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000011112 process operation Methods 0.000 description 6
- JFINOWIINSTUNY-UHFFFAOYSA-N pyrrolidin-3-ylmethanesulfonamide Chemical compound NS(=O)(=O)CC1CCNC1 JFINOWIINSTUNY-UHFFFAOYSA-N 0.000 description 6
- 102100031262 Deleted in malignant brain tumors 1 protein Human genes 0.000 description 5
- 101000844721 Homo sapiens Deleted in malignant brain tumors 1 protein Proteins 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- ZINJLDJMHCUBIP-UHFFFAOYSA-N ethametsulfuron-methyl Chemical compound CCOC1=NC(NC)=NC(NC(=O)NS(=O)(=O)C=2C(=CC=CC=2)C(=O)OC)=N1 ZINJLDJMHCUBIP-UHFFFAOYSA-N 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000007599 discharging Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004069 differentiation Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000002019 doping agent Substances 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007858 starting material Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 239000004820 Pressure-sensitive adhesive Substances 0.000 description 1
- 208000014633 Retinitis punctata albescens Diseases 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 206010063344 microscopic polyangiitis Diseases 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920006375 polyphtalamide Polymers 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41865—Total 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32263—Afo products, their components to be manufactured, lot selective
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32328—Dynamic scheduling, resource allocation, multi agent negotiation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45031—Manufacturing semiconductor wafers
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/80—Management 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
Description
- 1. Field of the Invention
- This invention pertains to automated manufacturing environments, and, more particularly, to the specialization of active software agents in an automated manufacturing environment.
- 2. Description of the Related Art
- Growing technological requirements and the worldwide acceptance of sophisticated electronic devices have created an unprecedented demand for large-scale, complex, integrated circuits. Competition in the semiconductor industry requires that products be designed, manufactured, and marketed in the most efficient manner possible. This requires improvements in fabrication technology to keep pace with the rapid improvements in the electronics industry. Meeting these demands spawns many technological advances in materials and processing equipment and significantly increases the number of integrated circuit designs. These improvements also require effective utilization of computing resources and other highly sophisticated equipment to aid, not only design and fabrication, but also the scheduling, control, and automation of the manufacturing process.
- Turning first to fabrication, integrated circuits, or microchips, are manufactured from 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:
- layering, or adding thin layers of various materials to a wafer from which a semiconductor is produced;
- patterning, or removing selected portions of added layers;
- doping, or placing specific amounts of dopants in selected portions of the wafer through openings in the added layers; and
- heat treating, or heating and cooling the materials to produce desired effects in the processed wafer.
- Although there are only four basic operations, they can be combined in hundreds of different ways, depending upon the particular fabrication process. See, e.g., Peter Van Zant,Microchip Fabrication A Practical Guide to Semiconductor Processing (3d Ed. 1997 McGraw-Hill Companies, Inc.) (ISBN 0-07-067250-4).
- 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.
- 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.
- 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.
- 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.
- 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.
- However, the presence of WFTs also inevitably introduces some inefficiencies. There typically is a large difference between the performance of the best WFT and the performance of the worst WFT. A WFT typically simultaneously monitors the processing of multiple tools and lots, making it difficult to focus on an individual lot or tool. Furthermore, the size and complexity of the modern fabrication process flows makes it exceedingly difficult for a WFT to foresee and prevent downstream bottlenecks or shortages arising from upstream activities. Shift changes, rest breaks, and days off for the WFT also create inefficiencies or machine idle time that adversely impact the manufacturing process flow. Just as the importance of the WFT is magnified by the deficiencies of the automated MES, so are the inefficiencies of the WFT magnified by his importance.
- Thus, factory control systems utilized in today's wafer 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.
- 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.
- 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.
- The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements, and in which:
- FIG. 1 conceptually 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; and
- FIG. 6 illustrates various classes of agents in the AEMS of the process flow in FIG. 1.
- 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.
- Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort, even if complex and time-consuming, would be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
- FIG. 1 conceptually illustrates a portion of one particular embodiment of a
process flow 100 constructed and operated in accordance with the present invention. Theprocess flow 100 fabricates semiconductor devices. However, the invention may be applied to other types of manufacturing processes. Thus, in theprocess flow 100 discussed above, thelots 130 ofwafers 135 may be more generically referred to as “work pieces.” Theprocess 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
process flow 100 includes twostations 105, eachstation 105 including acomputing device 110 communicating with aprocess tool 115. Thestations 105 communicate with one another over communications links 120. In the illustrated embodiment, thecomputing devices 110 and thecommunications links 120 comprise a portion of a larger computing system, e.g., anetwork 125. Theprocess tools 115 are shown in FIG. 1processing lots 130 ofwafers 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.) 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 thecomputing devices 110 will include many such routine features. - In the illustrated embodiment, the
computing device 110 is a workstation, employing a UNIX-based operating system, but the invention is not so limited. Thecomputing 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. Thecomputing device 110 may even be, in some alternative embodiments, a processor or controller embedded in theprocess 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 thecomputing device 110. - The
computing device 110 also includes aprocessor 205 communicating with somestorage 210 over abus system 215. Thestorage 210 will typically include at least a hard disk and some random access memory (“RAM”). Thecomputing device 110 may also, in some embodiments, include removable storage such as theoptical disk 230, or the floppyelectromagnetic disk 235, or some other form such as a magnetic tape or a zip disk (not shown). Theprocessor 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, theprocessor 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. Thecomputing device 110 includes amonitor 240,keyboard 245, and amouse 250, which together, along with their associated user interface software 255 (shown in FIG. 2) comprise auser 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
computing devices 110. Eachcomputing device 110 includes, in the illustrated embodiment, asoftware agent 265 residing thereon in thestorage 210. Note that thesoftware agents 265 may reside in theprocess flow 100 in places other than thecomputing devices 110. The situs of thesoftware agent 265 is not material to the practice of the invention. Note also that, since the situs of thesoftware agents 265 is not material, somecomputing devices 110 may havemultiple software agents 265 residing thereon whileother computing devices 110 may not have any. Portions of anautomated MES 270, such as WORKSTREAM™, reside on at least onecomputing device 110. - Returning briefly to FIG. 1, as was mentioned above, the
computing devices 110 may also be part of alarger 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. Thecomputing 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, thecomputing devices 110 may communicate directly with one another. The communications links 120 may be wireless, coaxial cable, optical fiber, or twisted wire pair links. Thecomputing system 125, in embodiments employing one, and thecommunications links 120 will be implementation specific and may be implemented in any suitable manner known to the art. Thecomputing 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
software agents 265, collectively, are responsible for efficiently scheduling and controlling thelots 130 ofwafers 135 through the fabrication process. Eachprocess tool 115 represents some resource that may be employed for this purpose. For instance, aprocess tool 115 may be a fabrication tool used to fabricate some portion of thewafers 135, i.e., layer, pattern, dope, or heat treat thewafers 135. Or, aprocess tool 115 may be a metrology tool used to evaluate the performance of various parts of theprocess flow 100. Thus, thesoftware agents 265 are capable of assessing a plurality of resources for subsequent processing of thelots 130 ofwafers 135, allocating the resources represented by theprocess tools 115, and negotiating among themselves for the allocation of those resources for subsequent processing of thelot 130 ofwafers 135. - In the illustrated embodiment, 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. Thesoftware agents 265 are also self-adjusting as their environment changes. Thesoftware 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, thesoftware agents 265 interface with theMES 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 theMES 270 and the factory control systems. - Collectively, the
software agents 265 schedule ahead for eachlot 130 one or more operations on a specificqualified 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 approachinglot 130, and scheduling opportunistic preventive maintenance or qualifications to meet specifications. Thesoftware 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, thesoftware agents 265 may, for instance: - schedule and initiate execution of material transport required for a
lot 130 to meet its next processing appointment at a specifiedtool 115; - monitor transport activity and react to deviations;
- schedule and initiate transport to a reserved machine port by a specified appointment start time;
- detect machine port carrier arrival via auto-identification and equipment event;
- initiate recipe download and processing to a
process tool 115 via an equipment interface; - perform MES transactions;
- monitor processing activity and notify WFTs of abnormalities;
- detect near completion of processing via an equipment event and schedule a processing appointment for a next process in the process flow with a
certified process tool 115; - initiate transport to the nearest stocker or a
nearby process tool 115; - detect carrier departure and release the port;
- schedule preventive maintenance procedures and notify maintenance technicians (“MTs”) at the appropriate time;
- schedule qualification procedures and notify WFTs at the appropriate time; and
- schedule resources (e.g., reticles, loaders, unloaders, etc.) for processing or performing a PM or a Qual.
- 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.
- As will be explained further below, the
software agents 265 can be specialized on several different levels to further this behavior. One level is by “type,” i.e., whether thesoftware agents 265 represent a “consumer” or a service “provider” in theprocess flow 100. More particularly, whether thesoftware 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, asoftware agent 265 may represent alot 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 somesoftware agents 265 represent manufacturing domain entities that are consumers in some contexts and providers in others, as will be discussed more fully below. Thesoftware agents 265 are also specialized by function—i.e., by what function thesoftware agent 265 performs in the process flow. Eachspecialized software agents 265 occupies a different role in the overall performance of theprocess flow 100 on which this embodiment is implemented. - Note that the
software agents 265 need not necessarily exist in a one-to-one correspondence with manufacturing domain entities, such aslots 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, alot 130 or aprocess 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
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 ofconsumers 315, e.g., thelots 130 orPM procedures 320, in advancing thelots 130 through theprocess 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 ofproviders 325, e.g., machines such as theprocess tool 115, in meeting the demands of consumers for processing resources in advancing thelots 130 through theprocess flow 100 in a timely and efficient manner. For instance, asoftware agent 265 representing alot 130 ofwafers 135 would be considered a “consumer”agent 305 and asoftware agent 265 representing aprocess tool 115 would be considered “provider” agent because theprocess tool 115 is “providing” processing services “consumed” by thelot 130. Note that, as was previously mentioned and as will be discussed still more fully below, asoftware agent 265 may sometimes be classed as aprovider agent 310 in one context and aconsumer agent 305 in another context. - As noted above, the distinction between
consumer agents 305 andprovider agents 310 is particularly apt in the context of scheduling. The scheduling of actions initiated by thesoftware 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 aconsumer 315 that theconsumer agent 305 uses to procure the process services of theproviders 325. Similarly, theprovider 325charges consumers 315 for the processing services it represents, e.g., processing time. The amount of the budget aconsumer 315 is willing to pay depends on how badly theconsumer 315 needs the processing resources to stay on schedule and the amount charged by theprovider 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
method 330. Themethod 330 may be practiced in a variety of embodiments and implementations, a particular one of which is disclosed below. Theconsumer software agents 305 andprovider software agents 310 use a “contract net negotiation protocol” approach to schedule theconsumers 315 for theproviders 325. Theconsumer agents 305 negotiate withprovider agents 310 for theconsumer 315's access to theprovider 325's services. This access is referred to as an “appointment.” In this particular embodiment, both theconsumer agent 305 and theprovider agent 310 “book” the appointment on their respective calendars. - The
method 330 begins by providing a budget for theconsumer 315 for a particular process resource, e.g., process time on theprocess tool 215, it next wants to consume, as set forth inbox 335. Theconsumer 315 then issues through its consumer software agent 305 a bid request for theconsumer 315 to acquire the process resource, as set forth in thebox 340. In one implementation, theconsumer software agent 305 requests bids from alleligible providers 310 on behalf of aconsumer 315. When aconsumer software agent 305 requests a bid, it gives theproviders 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 theconsumer 315; the location from which theconsumer 315 will be transported to theprovider 310; and, the consumer's “budget calculator.” - The
provider 325 then, through itsprovider software agent 310, submits to theconsumer 315 at least one bid responsive to the bid request, as set forth in thebox 345. In alternative embodiments, aprovider software agent 310 may not submit any bids. As mentioned above, the provider software agent maintains acalendar 327 to track appointments. When a bid request is received, theprovider software agent 310 searches thecalendar 327 for a time slot in which theprovider 305 can potentially provide the requested service. For each potential time slot, theprovider 305 submits a bid consisting of the start and end times and an optional cost. - The
consumer 315, through theconsumer software agent 305, then selects a submitted bid by considering the time and optional cost. Theconsumer 315 then awards a contract to theprovider 325 for the selected bid, as set forth in thebox 355, through theconsumer software agent 305. However, theprovider 325 typically is negotiating withseveral consumers 315 on an ongoing basis. It is possible that theprovider 325 subsequently scheduled anotherconsumer 315 in a manner conflicting with the submitted bid such that it can no longer accept the contract. Thus, theprovider 325, through itsprovider software agent 310, checks thecalendar 327 to see whether it can still implement the bid and accept the contract. If the bid is still feasible on thecalendar 327, theprovider 325 then confirms the awarded contract, as set forth in thebox 360, and both the consumer and provider schedule theappointment 362 on theirrespective calendars provider 325 has obligated itself to perform the activity. - Thus, decision-making in the process flow300 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 andprovider software agents consumers 305 in a timely and efficient manner. - FIG. 4 depicts a portion of a semiconductor fabrication process flow400 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”)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”)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. - Although not shown, the
lot 130,process tool 115, PM or Qual procedure (not shown) andreticle 420 all have corresponding “processing” agents to whom thescheduling agents LSA 405 tries to minimize costs while staying on schedule. TheMSA 410 tries to optimize tool utilization while maximizing profits. - The
LSA 405 tries to keep thelot 130 it represents on schedule. TheMSA 410 tries to maximize utilization of theprocess tool 115 it represents. Similarly, theRSA 415 tries to maximize utilization of the resource it represents, i.e., thereticle 420. Note that theRSA 415 can represent other types of resources, e.g., machine loading resource, dummy wafers, cassettes, wafer fab technicians, maintenance technicians, etc., in other implementations. ThePMSA 418 attempts to opportunistically schedule PMs and Quals on, inter alia, theprocess tool 115. Thevarious agents - More particularly, a
lot 130 typically negotiates with a number of pieces of equipment, e.g.,process tools 115. TheLSA 405 tries to find a time slot offered by a process tool that will allow thelot 130 to meet its due date and feed the next bottleneck machine station at the appropriate time. At the same time, theMSA 410 tries to acquirelots 130 for processing in a way that optimizes the utilization of theprocess tool 115. Overall, the goals of theMSA 410 are to maximize the overall utilization of itsrespective process tool 115, respect the relative priority of thelots 130, reduce setup or recipe changes, and optimize its batch size. This collaboration of agent interaction results in the scheduling of alot 130 on aparticular process tool 115 within a specified time window. - In general terms, the
LSA 405 begins the negotiation by publishing a “request bid”message 425 to all of theMSAs 410 representingprocess tools 115 capable of performing a desired manufacturing operation. At this point, aMSA 410 is acting as a provider because theprocess tool 115 is providing processing services, i.e., processing time. TheMSA 410 for eachcapable process tool 115, upon receipt of therequest bid message 425, identifies a potential bid, recognizes that it will need aqualified reticle 420 to perform the job, and publishes its ownrequest bid message 430 to theRSAs 415 of all capable resources, i.e.,qualified reticles 420. TheMSA 410 has now shifted from a provider at this point to a consumer since theprocess tool 115 is now consuming process services, i.e., time with thereticle 420. EachRSA 415 representing aqualified reticle 420 submits one ormore bids 435, one of which theMSA 410 selects for inclusion in itsbid 460. TheMSA 410, having now identified the necessary resources, returns to its role as a provider of processing services. If another potential bid is identified by theMSA 410, it once again requests bids from theappropriate RSAs 415. - Each
MSA 410 representing acapable process tool 115 submits one ormore bids 460 to theLSA 405 that published therequest bid message 425. TheLSA 405 selects onebid 460 from among all the submittedbids 460 of all theMSAs 410. TheLSA 405 then awards thecontract 465 to theMSA 410 submitting the selectedbid 460. TheMSA 410 checks itsmachine calendar 470, determines that the bid is still available and, if so, awards thecontract 440 to thereticle 420 that submitted the selectedbid 435. TheRSA 415 checks itsresource calendar 445, sees that the bid is still available, and schedules theappointment 475 a on itsown resource calendar 445. TheRSA 415 then confirms the contract with a “confirm bid”message 455, and theMSA 410 schedules an appointment 475 b on itsmachine calendar 470, with a reference to theRSA 415 that provided the “resource”bid 435. TheMSA 410 then sends a “confirmed bid”message 480 to theLSA 405. TheLSA 405 then schedules thecorresponding appointment 475 c on itsown lot calendar 485. When the time arrives for theappointments scheduling agents - Thus, although agents of the same type are usually programmed with similar behavior, differentiation occurs to create specialized agents. Comparing the behavior of the
MSA 410 to theLSA 405 and theRSA 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 ofprocess tools 115, and each type ofprocess tool 115 might possess different characteristics for which arespective software agent 265 may need specialization. Exemplary characteristics that may lend themselves to specialization in machine agents in the illustrated embodiment include: - whether the
process tool 115 processes by wafer, bylot 130, by batches oflots 130, or by batches of wafers; - whether the
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
process tool 115; - whether the ports for the
process tool 115 are input, output, or input/output; - whether the chambers for the
process tool 115 are used in series or in parallel; - whether the
process tool 115 can chain PMs; - the number of chambers in the
process tool 115; - whether the
process tool 115 includes internal storage; - whether the
process tool 115 can queue the processing of alot 130 or batch while processing anotherlot 130 or batch; - whether the
process tool 115 requires loading and/or unloading; - whether the
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
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:
- a baseline processing agent;
- a wafer-based, processing agent;
- a wafer-based, sequential processing agent;
- a wafer-based, batch sequential processing agent;
- a wafer-based, batch processing agent;
- a lot-based processing agent;
- a lot-based, sequential processing agent;
- a lot-based, batch processing agent;
- a lot-based batch, sequential processing agent;
- a baseline scheduling agent;
- a wafer-based, scheduling agent;
- a wafer-based, sequential scheduling agent;
- a wafer-based, batch sequential scheduling agent;
- a wafer-based, batch scheduling agent;
- a lot-based scheduling agent;
- a lot-based, sequential scheduling agent;
- a lot-based, batch scheduling agent; and
- a lot-based, batch sequential scheduling agent.
- 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
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;
- a wafer-based, serial calendar;
- a wafer-based, serial batch calendar;
- a wafer-based, batch sequential calendar
- a lot-based, serial calendar;
- a lot-based, sequential calendar;
- a lot-based, serial batch calendar; and
- a lot-based, batch sequential calendar.
- Note, however, that this is not necessary to the practice of the invention.
- 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:
- wafer-based PM scheduling agents;
- time-based PM scheduling agents;
- processing unit-based (e.g., number of
lots 130 processed, number of batches processed) PM scheduling agents; - processing time-based (e.g., cumulative processing time) PM scheduling agents;
- event-based PM scheduling agents (e.g., an end of processing event);
- wafer-based PM processing agents;
- time-based PM processing agents;
- processing unit-based (e.g., number of
lots 130 processed, number of batches processed) PM processing agents; - processing time-based (e.g., cumulative processing time) PM processing agents; and
- 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. - LSAs can be specialized for reasons such as:
- priority;
- product; and
- product family.
- 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.
- 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.
- 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.
- Consider the
inheritance hierarchy 500, shown in FIG. 5A, for the MSA object class. TheMSA 502 is the baseline class for MSAs. TheMSA 502 contains the behavior shared by all of the MSAs. For example, theMSA 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. TheMSA 502 is also responsible for requesting a tool status. The LSAs also call on theMSA 502 to generate or confirm bids. All of the behaviors in theMSA 502 are inherited by the MSAs. The MSAs include aLot MSA 504, aLot Sequential MSA 506, aBatch MSA 508, aBatch Lot MSA 510, a BatchLot Sequential MSA 512, aBatch Wafer MSA 514, a BatchWafer Sequential MSA 516, a WaferMachine Scheduling Agent 518, and aWafer 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
process tool 115 associated with the MSA processeslots 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 aWafer MSA 518 versus aBatch Lot MSA 510. - A Wafer MSA518 (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 agents Wafer MSA 518 will receive a tool status that contains information based on wafers while theBatch Lot MSA 510 will receive a tool status based on lot batches. Eachagent agents process tool 115 is almost done processing thelot 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 theBatch Lot MSA 510. The number of wafers 135 alot 130 contains and the process operation determine the consumption time on a wafer-based machine. On the other hand, aBatch 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 aWafer MSA 518, theagent 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. TheBatch 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
inheritance hierarchy 550 of FIG. 5B. TheRSA object class 552, is the baseline class for all RSAs. Thebaseline RSA 552 contains the behavior shared by all of the RSAs. For example, thebaseline RSA 552 is responsible for creating and removing appointment start time and end time alarms. Thebaseline RSA 552 is further classified into two sub classes:dedicated RSAs 554 and sharedRSAs 556. A typical example of a dedicated resource is the loading resource responsible for loading and unloadinglots 130 on abatch processing tool 115. Such a dedicated resource is represented by adedicated RSA 554, e.g., the loadingRSA 558. Typical examples for a shared resource are reticles, empty cassettes, dummy wafers, WFTs and MTs. Such shared resources are represented by sharedRSAs 556, e.g., thereticle scheduling agent 560, the emptycassette scheduling agent 562, dummywafer 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 aloading RSA 558 receives an appointment change event related to update of the earliest arrival time of alot 130, it will determine an optimized loading order of all thelots 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 loadingRSA 558 is the scheduling of unloading appointments when a batch job haslate 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 thelots 130 in the first batch will be scheduled after the charge end time of the second batch. However, if onelot 130 in the second batch can not arrive at theprocessing tool 115 early enough to be loaded before the discharge start time of the first batch, the loading appointment for thislot 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 theprocessing tool 115. In one case, the process operation performed on one type ofbatch 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 thelate 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
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 sharedRSA 556, because the resource has to be shared between a group ofprocessing tools 115 orlots 130, a move appointment has to be scheduled between two appointments if these two appointments are scheduled for two different locations. So a sharedRSA 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 sharedRSA 556 also has its own specialized behaviors regarding bid generation and bid confirmation. It allows a higherpriority processing tool 115 orlot 130 to bump appointments for lessimportant processing tools 115 orlots 130. - Other specialized RSAs also exhibit other specialized behaviors. For the WFT or
MT scheduling agents process tool 115 during loading and unloading but can perform other tasks while thetool 115 is processing. An emptycassette 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. Dummywafer 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
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 class610, further including:
- LSAs630 that schedule processing and associated move appointments on behalf of a specified
lot 130; - MSAs650 that schedule appointments with other scheduling agents on behalf of a specified machine;
- PM scheduling agents (“PSAs”)640 that schedule specified PM and Qual appointments on behalf of a specified machine; and
- RSAs660 that schedule the use of secondary resources (e.g., reticles, WFTs, MTs);
- a
processing agent class 620, further including: - lot processing agents (“LPAs”)670 that execute lot processing and move appointments;
- machine processing agents (“MPAs”)690 that execute setup, lot processing or batch processing, and PM and Qual appointments;
- PM processing agents (“PPAs”)680 that execute PM and Qual appointments; and
- resource processing agents (“RPAs”)685 that execute resource-specific appointments (e.g., loads and unloads for machine loading resources, resource movement, resource usage); and
- 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
- a scheduled release lot start agent (“SRLSA”)615 that releases lots according to a predetermined schedule.
- Alternative embodiments may employ still other classes.
- As mentioned, the
SALSA agent 605 determines whennew lots 130 are released into the process flow of the fab. More particularly, theSALSA agent 605 monitors work in process (“WIP”) in the process flow and identifies one or more workstations that create bottlenecks in the process flow. TheSALSA 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, theSALSA agent 605 even determines one or more product types for the selected amount of additional work. - The
AEMS 600 also comprises a number of software components (not shown) in “helper classes” that are used by thesoftware agents 265 to accomplish their functions. - These other components can be generally grouped as follows:
- 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; and - 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; and
- 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.
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.
- 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.
- 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.
- 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.
- 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.
Claims (67)
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)
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)
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)
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)
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 |
-
2002
- 2002-05-31 US US10/160,990 patent/US20030225474A1/en not_active Abandoned
- 2002-12-20 GB GB0424487A patent/GB2404458B/en not_active Expired - Fee Related
- 2002-12-20 AU AU2002359877A patent/AU2002359877A1/en not_active Abandoned
- 2002-12-20 WO PCT/US2002/041659 patent/WO2003102771A2/en active Application Filing
- 2002-12-20 KR KR1020047019536A patent/KR100946397B1/en not_active IP Right Cessation
- 2002-12-20 JP JP2004509789A patent/JP4722479B2/en not_active Expired - Fee Related
- 2002-12-20 CN CNB028290585A patent/CN100403324C/en not_active Expired - Fee Related
- 2002-12-20 DE DE10297744T patent/DE10297744T5/en not_active Ceased
-
2003
- 2003-04-11 TW TW092108319A patent/TWI295754B/en not_active IP Right Cessation
Patent Citations (99)
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)
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 |