WO2000038022A1 - Method and apparatus for controlling a system using hierarchical state machines - Google Patents
Method and apparatus for controlling a system using hierarchical state machines Download PDFInfo
- Publication number
- WO2000038022A1 WO2000038022A1 PCT/US1999/029264 US9929264W WO0038022A1 WO 2000038022 A1 WO2000038022 A1 WO 2000038022A1 US 9929264 W US9929264 W US 9929264W WO 0038022 A1 WO0038022 A1 WO 0038022A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subsystems
- state
- execution
- state machines
- hierarchy
- Prior art date
Links
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/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/045—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
-
- 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
- G05B11/00—Automatic controllers
- G05B11/01—Automatic controllers electric
-
- 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
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
Definitions
- This invention relates in general to control systems and, more specifically, to a method and apparatus for controlling complex systems using state machines.
- the ion implantation system is used for implanting ionized atoms or molecules into a semiconductor wafer in order to insure that the desired conductivity properties are met for the wafer.
- the ion implantation system may include a number of mechanical components, such as an ion beam generator and vacuum pumps, each of which are independently controlled. Interactions between the mechanical components must be carefully controlled in order to insure that a viable product is output from the system.
- each mechanical component of the processing system is controlled via a software program.
- Each software program includes an interface to support communication of information. As the mechanical components interact, the effects of the interactions are passed between software program via the interfaces.
- a main software program may be provided to prioritize the operations performed by the different software programs to synchronize the interactions between the different mechanical components within the system.
- Typical control systems are defined by a control system architecture (CSA), a control system observability component (CSO) and a control system controllability (CSC) component.
- the CSA organizes subsystems of the processing system into a structure that is logically consistent with the physical system to be controlled.
- the CSO component monitors sensory signals to determine the status of the physical system.
- the CSO component monitors and modifies the state of signals to actuators, where actuators are associated with each component to control the operation of the component.
- the signals may represent a continuous measurement or a true/false measurement.
- the CSC component determines which control actions to take based on the changes detected in monitored signals.
- control systems typically are not easily reconfigurable is because of the integrated nature of the hardware and software elements of the control system. Adding new control instructions to the existing control system to support new elements may affect the timing of existing interactions of components within the system, thereby threatening the ability of the control system to perform normal operations. Hence, once the system is designed, it is difficult to incorporate new elements without revising the entire system. For example, in order to appropriately order the sequence of operations by each of the software programs, the main software program is designed to accommodate all of the interrelations between the software programs. As a result, the main software program must be capable of managing a large number of exception conditions.
- one of the exception conditions may be that software program A may be able to transition to state X if software program B is in state Y or software program C is in state Z.
- the design of the main software program is often complex, degrading the performance of the main software program, and hence the overall system, and making it difficult to add or remove elements without numerous modifications to the main software program.
- a system can somehow be adapted to incorporate new elements without revision, because of the control and timing dependencies between the components in the system, there may be significant doubts about the accuracy of the operation of the control system with the new elements. As a result, it is difficult to attempt to adapt existing operations or to reuse existing capabilities in new products.
- the system should also be capable of facilitating the addition or removal of new components and allowing for an intelligent error handling process to be supported.
- a control system architecture comprised of hierarchically ordered subsystems is employed to provide a flexible and reliable means of controlling complex processes.
- Each subsystem is represented by one or more state machines, which provide monitoring and control of the subsystem, and one or more digital signal processing and conditioning units (DSPCUs).
- the DSCPUs convert control system signals into states for further processing by the state machines and/or convert command inputs to send to the control system actuators from the state machines.
- Associated with the DSPCUs of each subsystem is a data flow diagram for dictating flow of data between DSPCUs and order of execution of the DSPCUs.
- Control system observability (CSO) and control system controllability (CSC) are enabled through the interconnection between sets of parent-child state machines in the hierarchy.
- Child states are visible to the parent one level up in the hierarchy. Data flow is through explicit paths within one subsystem or up and down one level.
- each cycle of operation of the control system is operated according to an ordered protocol comprising four phases; a first data flow execution phase, an upward state machine execution phase, a downward state machine execution phase, and a second data flow execution phase.
- the order of each of the components in the subsystem that are executed in each of these phases is maintained in a scheduled list.
- the operation of each of the execution phases and a method and apparatus for scheduling execution of the state machines and data flow diagrams are described in greater detail below.
- data collection is synchronized to occur at fixed points during the execution of the above protocol, where data collection includes an execution of the input signals received by the system, an execution of the output signals provided by the system and receipt of commands from a user interface associated with the system. Collecting data at fixed points during the execution of the protocol enables input and output signals to be controlled in a manner that overlays the hierarchy and ensures state consistency.
- the four phases of the protocol occur in one operating cycle.
- all of the phases of execution are performed within a predetermined execution period.
- the time to complete execution of all tasks associated with all subsystems is known.
- the schedule lists and/or data collection times are automatically revised.
- Hierarchically coupling the state machines in the above manner facilitates the seamless incorporation or removal of components from the control system since all data flow component connections are explicitly defined. To add a component to the system, appropriate connections are made between the state machines and data flow diagrams that represent the component and other components in the system.
- the control system of the present invention provides both flexibility and reliability with a minimum amount of complexity.
- the required revisions are localized to the single parent in the hierarchy.
- the hierarchical coupling of state machines allows exception handling to be programmed into state machines that are higher in the hierarchy to appropriately handle exceptions that may occur at state machines that are lower in the hierarchy.
- a system for controlling a complex system of devices having interconnected control system software components includes one or more subsystems coupled in a hierarchy, with lower level control system software components at a given level in the hierarchy being included in a control system software component at an immediately higher level of the hierarchy.
- the system includes a plurality of hierarchically coupled state machines, with at least one state machine associated with each of the hierarchically coupled subsystems and means for evaluating the states of the state machines for each of the hierarchically coupled subsystems in an order defined by the hierarchy.
- a method for analyzing a system having a plurality of interconnected subsystems is provided.
- the interconnected subsystems are coupled in a hierarchy, with subsystems at a given level in the hierarchy being included in a subsystem at an immediately higher level of the hierarchy, and each one of the interconnected subsystems being associated with a corresponding one of a plurality of hierarchically coupled state machines.
- the method includes the steps of evaluating, for each subsystem, a state of the associated state machine, wherein the order of evaluation of the associated state machines is determined in response to an order defined by the hierarchy of the one or more interconnected subsystems.
- a control system for controlling a device includes a processor coupled to the device.
- the processor includes a memory for storing signals associated with the device, where the signals are received from the device and are forwarded to the device during operation of the device.
- the processor further includes a hierarchical data structure comprising a plurality of hierarchically interconnected subsystems representative of the operative functions of the device, means for forwarding the signals to the hierarchical data structure and means, responsive to the signals, for updating states within the hierarchical data structure in a controlled manner.
- an ion implantation system includes a control system for controlling the ion implantation of material by the system.
- the control system includes a memory for storing signals associated with the device, where the signals are received from the device and are forwarded to the device during operation of the device, a hierarchical data structure comprising a plurality of hierarchically interconnected subsystems representative of the operative functions of the device, means for forwarding the signals to the hierarchical data structure and means, responsive to the signals, for updating states within the hierarchical data structure in a controlled manner.
- the ion implantation system is used as an example for the invention, the invention is not limited to the control of any specific type of system.
- Fig. 1 is a schematic block diagram illustrating an ion implanter that may be controlled by a control system of the present invention
- Fig. 2 is a high level block diagram of systems components that are employed in the control system of the present invention and that may be used to control the ion implanter of Fig. 1;
- Fig. 3 is a block diagram illustrating an exemplary hierarchical data structure of state machines and digital signal processing and conditioning units that may be used to control the ion implanter of Fig. 1;
- Fig. 4 is a block diagram of an exemplary subsystem that may be represented by the data structure of Fig. 3, illustrating the finite state machine and data flow diagram that represent a typical element of the control system hierarchy;
- Fig. 5 is a flow diagram illustrating one embodiment of the method used to build a data structure such as that in Fig. 3;
- Fig. 6 is a block diagram of components of a scheduler that is used to schedule the operation of the subsystems in the control system of Fig. 2;
- Fig. 7 is a flow diagram of one embodiment of a method of scheduling employed by the scheduler of Fig. 6; and Fig. 8 is a flow diagram for illustrating an execution protocol used in the control system of Fig. 2.
- a control system architecture of hierarchically coupled subsystems representing the operative functions of a device.
- a method of controlling the device represented by the CSA schedules the execution of the subsystems according to an execution protocol.
- the execution protocol performs an upwards and downwards execution of each of the subsystems for every execution cycle of the device.
- the operations of complex systems may be modularized into subsystems, and the interrelations between the subsystems may handled in a controlled manner in accordance with the hierarchy.
- One device which may be controlled by the control system architecture of the present invention is an ion implantation system. Ion implantation has become a standard, commercially accepted technique for introducing conductivity altering impurities into semiconductor wafers.
- the desired impurity material is ionized in an ion source, and the ions are accelerated to form an ion beam of prescribed energy that is directed at the surface of a semiconductor wafer.
- the energetic ions in the beam penetrate into the bulk of the semiconductor material and are imbedded in the crystalline lattice of the semiconductor material to form a region of desired conductivity.
- the performance of the ion implanter is measured in terms of wafers processed per unit time. Wafer transfer time, implant time, and down time all contribute to the total processing time, and thus it is desirable to minimize these times in order to achieve high throughput.
- the performance of the ion implanter is also measured in terms of dose accuracy of the ions and dose uniformity over the surface of the wafer. Because many semiconductor devices are fabricated by an ion implantation system, it is crucial to provide dose accuracy and uniformity from wafer to wafer in order to ensure that the devices have controllable and repeatable operating characteristics. Accordingly, in order to insure that accuracy is maintained while performance is maximized, the operation of the elements of the ion implantation system are carefully coordinated so that the appropriate implantation occurs at the appropriate time without incurring unwanted delay.
- Fig. 1 One example of an ion implantation system 100 is shown in Fig. 1.
- the ion implantation system of Fig. 1 is described in U.S. Patent No. 5,350,926, entitled “Compact High Current Broad Beam Implanter”and issued September 27, 1994 to White et al, which is incorporated herein by reference.
- the ion implantation system 100 operates generally as follows.
- an ion implantation system 100 operates with an ion beam 1 produced by an ion source 2.
- An arrangement of three slotted grids 11, 12, 13 serve to confine, extract and accelerate ions from the source.
- Ion beam 1 enters between the poles of an analyzing electromagnet 3 which deflects the ion beam 1 toward a resolving slit 4. Unwanted ions having differing momentum are deflected through different angles by the magnetic field, so that they are intercepted on either side of the resolving slit.
- Ion beam 1 diverges again after passing through the resolving aperture 4, and passes between the poles of a second electromagnet 5, to provide an output beam 6 having parallel ion trajectories.
- a target 7 is moved up and down at a controlled velocity on a stage 7a. Uniform ion implantation is accomplished by moving target 7 through the output beam 6 with its vertical component of velocity constant.
- the stage 7a deposits the target on a conveyor belt or the like and retrieves the next target for processing. Exact timing, dosage, and control of the elements in the ion implantation system 100 are maintained by a control system 200.
- the control system 200 of ion implantation system 100 is implemented by software applications that execute on a pair of Central Processing Units (CPUs) CPU 60 and CPU 70.
- CPUs Central Processing Units
- the control system that is implemented on CPUs 60 and 70, according to one embodiment of the invention, is a periodic control system wherein the operation of the ion implantation system is modularized into a number of hierarchically arranged subsystems.
- Associated with each subsystem of the ion implantation system 100 is one or more state machines and one data flow diagram, where each data flow diagram identifies an order of flow of data from digital signal processing and conditioning units (DSPCUs) associated with the state machines.
- DSPCUs digital signal processing and conditioning units
- the state machines receive state information from and send command information to the digital signal processing and conditioning objects, which in addition may read and process digital and analog inputs and numeric inputs, and forward signals to the digital and analog outputs 120.
- Selected commands may be input to the control system 200 via a graphical user interface (GUI) 80.
- GUI graphical user interface
- FIG. 2 A high level block diagram illustrating one embodiment of hardware and software components that may be used to provide periodic control by the control system 200 is shown in Fig. 2.
- the control system 200 includes an Information Application Network (IAN) Computer 101, a New Control System Computer (NCS) 102, and input/output (I/O) hardware 104.
- the control system 200 also may advantageously include a table (D5) identifying constraints on the permissible set of input and output signals and states of each of the subsystems to facilitate system revision and control.
- the table D5 is shown in CPU 70, although it may reside at any accessible location in the control system 200.
- Each of the IAN, NCS and I/O is described in more detail below.
- the IAN 101 and I/O 104 together provide data and command collection for the control system 200. Separating the data collection into two components, one which transfers signal data between the ion implantation system and the control system, and one which transfers commands between a GUI and the control system, allows each of the functions to be independently scheduled in order to reduce the potential for inconsistent states.
- I/O 104 comprises hardware that provides data collection means (D4a) for receiving and transmitting signals 120 to properly coordinate each operation of the ion implant system 100.
- the I/O 104 receives signal lines 120 which are coupled to various control signals in the ion implantation system 100 that are to be monitored or driven by the NCS 102.
- the control data signals are retrieved by a loop master hardware 122.
- the loop master hardware samples received control signals to provide representative digital signals that are stored as digital data values in one portion of a dual-ported memory 128.
- a processor 130 is coupled to the dual-ported memory 128. One function performed by the processor 130 is reading the digital data values from memory and transferring the data to CPU 70 on line to 132 as well as to the New Control System (NCS) 102 software.
- NCS New Control System
- the NCS 102 uses the digital data values stored in memory and processed by the digital signal processing and conditioning objects to provide state information to each of the state machines that control and observe each of the subsystems in the ion implantation system.
- the IAN 101 in one embodiment, is a software data collection application (D4b) which controls the transfer of data and commands between the control system 200 and the GUI 80.
- the IAN 101 comprises a user interface that allows a user, for example at the GUI 80, to customize the operation of the ion implantation system 100 by inputting various commands and data to the NCS 102 to affect the operation of the ion implantation system.
- the user input commands are received and processed by IAN 101 and propagated to the NCS 102 at a predetermined time during each execution cycle of the ion implantation system. Control over the transfer of commands between the IAN 101 and the NCS 102 is provided by processors 150 and 130.
- the NCS 102 is a software application that includes a hierarchical control structure
- the NCS 102 also includes protocol control (D2) for determining an order of execution of subsystems in the hierarchy.
- the NCS 102 further includes a scheduler (D3) for performing the execution of tasks of subsystems within the hierarchy according to the protocol and scheduled according to the timing of tasks performed by each of the associated subsystems.
- Structures D1-D5 are functional units that may be implemented in either hardware, software or a combination thereof. Although the different functional units D1-D5 are shown in Fig. 2 as being implemented by certain ones of the CPUs 60 and 70, the present invention is not limited to any particular number of CPUs or any particular distribution of functions among CPUs. However, one advantage of separating the functionality of the control system into different CPUs is that it allows for two different operating systems, or a single operating system with the configuration optimized for each CPU, to be used with the NCS and IAN software programs. This approach assures that the best operating system (or operating system configuration) for data monitoring and gathering is utilized for the IAN, while the NCS relies on the best operating system (or operating system configuration) for control purposes.
- each of the subsystems in the ion implantation system is broken down into sub-subsystems.
- sub-subsystems are broken down into sub- sub- subsystems, that identify the components of the given sub-subsystem.
- the breaking down of subsystems into their component sub-subsystems continues until certain basic subsystems are identified. More details on the creation and evaluation of the hierarchical subsystem structure of the NCS 102 are provided below.
- Each subsystem that can be divided into a number of sub-subsystems is said to be a 'parent' with regard to the sub-subsystems, while the sub-subsystems are said to be 'children' with regard to the parent subsystem.
- the operative functions of each of the subsystems, sub- subsystems, etc. are defined by the combination of state machines and data flow diagrams of the DSPCU associated with the subsystem, sub-subsystem, etc.
- the NCS 102 may operate in either an automatic or a manual mode.
- each subsystem within the system hierarchy may operate in either an automatic or a manual mode.
- commands from the GUI 80 may be sent only to the highest level subsystem in the hierarchy of subsystems.
- Commands to lower level subsystems in the hierarchy from the GUI 80 are executed only after all of the subsystems in the hierarchy between the highest order subsystem and the parent of the destination subsystem (called the "parent chain") are successfully switched to manual mode.
- parent subsystems will not command child subsystems, which assures that a child subsystem will not be commanded by both its parent subsystem and through the GUI 80 at the same time. Therefore, switching to manual mode must start from the highest level subsystem first.
- a command sent to a child subsystem will automatically cause the NCS 102 software to command the parent chain to manual mode, from the top down.
- Manual mode for the NCS 102 software includes all states of the system in which at least the highest level subsystem is in manual mode.
- the interconnected data structure Dl thus provides a framework for ordered, coherent decision making by the control system. Ordered decision making and subsystem execution is enforced by the protocol controller D2 and by the scheduler D3. The method used by the protocol controller D2 and the scheduler D3 for scheduling decisions and execution in the subsystems of the hierarchical data structure is described in more detail below. First, the basic structure of one embodiment of the hierarchical data structure and a method for building the hierarchical data structure are described.
- the operative functions of the ion implantation system are represented using a hierarchy of subsystems, each of which may comprise one or more state machines and a data flow diagram identifying a flow of data to and from DSPCUs.
- the parent and two child subsystems are defined by a set of state machines 170-172 and data flow diagrams of DSPCUs 370a, 370b and 370c. If the NCS 102 were used to control the ion implantation system 100 of Fig. 1, state machines
- the subsystem made up of state machine 170 and data flow diagram 270 may be associated with the ion implantation system, state machine 171 and data flow diagram
- state machine 172 and data flow diagram 272 may be associated with the motion scan control element 27.
- state machines 171 and 172 are under the direct control of state machine 170.
- 370b and 370c are interconnected between subsystems and are not constrained by the hierarchy.
- Each subsystem is responsible for detecting and responding to error conditions. In many cases a subsystem may not be able to determine the appropriate response for an error condition. In this case, the subsystem propagates the error to its parent subsystem, which is then responsible for either responding to the error or further propagating the error up the parent chain. This is referred to as "bubbling up" the error.
- a parent subsystem by design has control over more of the whole system and has a larger set of information to determine the appropriate response to errors. As a result, error conditions need not be propagated to a top level in the hierarchy, but may be handled at a more appropriate level.
- an example illustrating the components that are potentially included in each subsystem includes a master state machine 300 and a data flow diagram 310.
- the data flow diagram 310 identifies associated single DSPCUs and another component which configures the behavior of the DSPCU.
- each subsystem may also include one or more additional levels of state machines, such as the observer state machine 302, which are evaluated during execution before the evaluation of the master finite state machine 300.
- the state machines identify the states and associated transitions taken at the state machine subsystem in response to the input signals.
- the subsystem represented by the state machines 300 and 302 in Fig. 4 is an indicator subsystem.
- Error states are indicated by circles (such as state 303), transitional states are indicated by rounded edge polygons (such as state 304) and terminal states are indicated by octagons such as octagon 305.
- state machine 302 is an observer state machine that is used to sample the input signals received at the indicator subsystem (either from the dual-ported memory 128 or from a child subsystem). Digital inputs can be of state ON, OFF or
- the master state machine 300 is shown receiving the status of the transition states as inputs FSM.Observer.On*OK and FSM.Observer.Off*OK. Whenever one of these inputs is asserted (the Observer FSM enters one of those states), the master finite state machine transitions into a terminal state of either ON or OFF. If the FSM.Observer.I/O*ERROR input becomes asserted, the indicator transitions to a terminal SHUTDOWN state.
- the state machine/ data flow diagram also called a subsystem diagram (as shown in Fig. 4), is manually constructed for each subsystem by a user. After a diagram is constructed, it can be described by an interface defined by a set of zero or more commands, a set of one or more states, a set of zero or more data flow inputs and a set of zero or more data flow outputs.
- a reference to each instance of the child subsystem is provided in the parent data flow diagram through an element which represents the subsystem interface. This element has the same interface as a DSPCU, but actually represents the encapsulated behavior of the child subsystem.
- VISIO tm graphical design tools have been enhanced and are used to create the subsystem designs in the form of diagrams.
- the VISIO tool allows for data from the state machine/ data flow diagrams of a child subsystem to be linked with the parent subsystem as the overall hierarchical structure of the NCS 102 is constructed.
- Other graphical tools that provide connections between graphical elements and support for external program control may alternatively be used, and the invention is therefore not limited to the use of the VISIO tool.
- a given subsystem diagram describes the state machines, DSPCU' s and the child subsystems linked to the parent.
- the hierarchy can be defined (and resolved) fully by starting at the highest subsystem diagram and creating (following) the links through each of the child subsystems.
- a user prepares subsystem drawings for each of the subsystems that should be represented within the system.
- a complete set of drawings 222 is provided that includes each of the state machine/data flow diagrams that are included in the hierarchical data structure.
- the build file is compiled. During the compile process, unattached inputs and outputs between the subsystems in the hierarchy, if any, are identified. After any unattached inputs and outputs have been corrected, a configuration file 226 is created. The configuration file is similar to the build file. However, all of the inputs and outputs of the parent/child subsystems have been resolved, and, accordingly, the information for analyzing the upward and downward execution of the parent and child subsystems has been provided.
- the configuration file 226 is used by both the CPU 60 and the CPU 70.
- the CPU 70 uses the configuration file 226 at step 228 to build the IAN 100 generic user interface 229.
- the generic user interface 229 allows for a user to control the NCS 102 without specific knowledge of which subsystems are actually included in the NCS 102.
- the CPU 60 uses the configuration file 226 at step 230 as a template to build the software 231 that executes the NCS 102.
- the CPU 60 uses the scheduler D3 (described in more detail below) to identify which subsystems in the configuration file are to be evaluated during each execution cycle of the ion implantation system.
- a schedule of how each of the subsystems interacts during processing of the controlled system is provided.
- the schedule is selected to ensure that the operation of each of the subsystems is performed at the appropriate times to achieve desired results.
- the total time for operation of the controlled system is referred to as its total operative time.
- the total operative time is apportioned into a number of execution cycles, during which time the state of the controlled device is evaluated.
- the hierarchical data structure is analyzed both in an ascending order of the hierarchy and in a descending order of the hierarchy.
- Each execution cycle may be further apportioned into a number of fundamental time periods.
- the scheduler schedules the execution of subsystems at appropriate fundamental time periods during an execution cycle, for each of the execution cycles in the total operative time of the controlled device.
- the scheduler D3 orders the execution of the state machines and data flow diagrams of the subsystems that comprise the control system hierarchy.
- the order of execution determined by the scheduler is based on the respective position of the subsystem in the hierarchy and a selected frequency at which the subsystem is analyzed. For example, the subsystem may be analyzed in every execution cycle or every tenth execution cycle.
- the scheduling of execution of state machines and data flow diagrams is performed prior to actual operation of the controlled system to maximize performance of the controlled system.
- each state machine and DSPCU is represented as an object, and scheduling is performed using object-oriented programming methods. Each object is assigned to a fundamental time period within the execution cycle. The less frequently an object is selected for execution, the lower the processing overhead associated with that object.
- the assignment of objects to different fundamental time periods is performed by the system designer based upon control requirements. Once the system designer has selected the time period(s) at which the objects are to be executed, a series of schedule lists are generated. As mentioned above, in every execution cycle of operation of the controlled system, both an upward and downward execution is performed. Therefore, the series of lists includes, for each execution cycle, lists identifying DSPCU objects that are executed in an upward phase of execution and lists identifying DSPCU objects that are executed in a downward phase of execution.
- the hierarchical data structure is evaluated to determine the worst-case run-time conditions of the controlled system; i.e., the maximum amount of time it would take to perform both the upward and downward execution of every DSPCU in the hierarchical data structure.
- the worst-case run-time is used to determine an amount of time to allow for the execution of each cycle of the controlled system.
- the determined worst-case run-time is divided by a selected number of processing cycles to determine the fundamental time period.
- Fig. 6 a block diagram is provided for illustrating the lists that are generated for calculating worst-case run-time, and the lists that are generated by the scheduler for scheduling the execution of subsystems during the processing cycles.
- the DSPCU objects and state machine objects are retrieved from the hierarchical data structure to form lists 250 and 253 using known recursive hierarchical tree searching techniques.
- List 253 is a list of all the pointers to state machine objects. The pointers are ordered from those pointers that point to state machine objects of the subsystems at the bottom of the hierarchical data structure to those pointers that point to state machine objects of the subsystems at the top of the hierarchical data structure.
- List 250 is a list of all the pointers to DSPCU objects.
- the pointers to DSPCU objects are ordered in the order defined by their associated data flow diagram, in order from the DSPCU objects associated with the subsystems at the bottom of the hierarchical data structure to the DSPCU objects associated with subsystems at the top of the hierarchical data structure.
- Update Up list 261 is a combination of the DSPCU object list 253 followed by the state machine object list 250.
- Update Down list 256 is a combination of the inverse of the list 253 of pointers to state machine objects (i.e., ordered from the bottom of list 253 to the top of list 253) followed by the DSPCU object list 250.
- the Update Up list 261 and the Update Down list 256 thus include pointers to objects ordered in accordance with the hierarchical execution protocol.
- the objects in the lists have different timing requirements associated with their execution. That is, each of the objects may be analyzed at different fundamental time periods during an execution cycle of the controlled system.
- the time intervals that are available for object execution are restricted to a set of the intervals that are factors of the total number of fundamental time periods in an execution cycle. For example, if the total number of fundamental time periods required for either upward or downward execution was eight, then the time intervals that would be available for object execution would be those time intervals that are factors of eight; one, two, four and eight.
- the original Update Up and Update Down lists may be apportioned into as many lists as there are sets (i.e., factors of the total time intervals) using multiple searches of the respective lists. For example, as shown in Fig. 6, assuming that the number of fundamental time periods in one execution cycle of the controlled system is equal to eight, there are four factors of eight; one, two, four and eight. It is assumed that the Update Up list 261 and Update Down list 256 are each comprised completely of objects associated with execution time intervals of one, two, four and eight times the fundamental period.
- each of the group lists is assigned a value equal to the time interval associated with the group divided by the least common multiple.
- the assigned values for each of the groups 262/266, 263/267, 264/268 and 265/269 are equal to eight, four, two and one, respectively.
- the assigned value determines the number of fundamental time periods in which each of the objects in the group is analyzed during one cycle of execution of the controlled system.
- each object in group 262 is analyzed for eight fundamental time periods, while each object in group 265 is executed for one fundamental time period.
- each group is apportioned into a balanced number of subgroups of objects.
- the number of subgroups in each pair of groups is determined by calculating the total allowable execution time for all objects in the pair of groups, and dividing this total allowable execution time by the number of fundamental time periods with the pair of groups.
- the total allowable execution time is eight fundamental time periods, while the number of fundamental time periods is eight, so there is one subgroup.
- the total allowable execution time is two fundamental time periods, while the total number of fundamental time periods is eight, so there are four subgroups of two fundamental time periods each.
- groups 262 and 266 have one subgroup each
- groups 263 and 267 have two subgroups each
- groups 264 and 268 have four subgroups each
- groups 265 and 269 have eight subgroups each.
- objects are distributed from the Update Up list 261 and Update Down list 256 into subgroups of each of the groups.
- the group into which an object is allocated is determined in response to the associated time interval of the object (one, two, four or eight).
- the subgroup that the object is placed into is determined in response to the time it takes each object to run and the time allocated to the subgroup.
- a total time allocation for each group is determined by adding the number of fundamental periods associated with the particular group (for example, adding up the total time period for execution of objects associated with the time interval two from the Update Up list and Update Down list).
- each group all of the objects from the Update Up list are filled into Update Up subgroups before objects retrieved from the Update Down list for placement in Update down subgroups, although this is not a limitation of the present invention.
- objects from the Update Up list 261 have been allocated to subgroups, then, using the remaining time allocated to the group, objects from the Update Down list 256 are allocated to subgroups.
- each subgroup has associated therewith an allocated time period which is some multiple of the fundamental time period.
- Objects are placed into subgroups until the allocated time period for the subgroup has been matched, then objects are placed in the next successive subgroup for the group.
- the execution time for the object (stored, for example, as a property of the object) is added to the total subgroup execution time and is compared against the allocated subgroup time. If the sum exceeds the allocated subgroup time, at step 710 the next subgroup is retrieved. If the sum does not exceed the allocated subgroup time at step 708 or once the new subgroup is retrieved at step 710, at step 712 the object is placed in the subgroup, and the total time and subgroup times are incremented. At step 714, a comparison is made against the maximum allocated group time. If time remains for analyzing the group, the process returns to step 704.
- the result of the process described in Fig. 7 is a series of time period based lists, each of which includes pointers to state machine and DSPCU objects from the hierarchical data structure and identifies the fundamental time period(s) at which the associated object is analyzed during one execution cycle of the controlled system.
- the time period based lists are used to generate run time execution lists 274-289 (Fig. 6), which are lists of pointers to the subgroups.
- the run time execution lists identify the order of execution of each of the subgroups of objects for each of the fundamental cycles in one upward and downward execution of the controlled system.
- the Update Up run time execution list comprises eight run time execution upward execution lists 274-281 and the Update Down run-time execution list comprises eight run-time execution downward execution lists 282-289.
- an upward and downward pair of run-time execution lists is executed, with the objects in each of the subgroups pointed to in the run-time execution lists being executed in order.
- the run-time execution lists are constructed as follows. For each fundamental time period, one of the subgroups from each of the time period based lists is included in the runtime execution list. Each of the next successive subgroups in the group is selected for execution in successive cycles. Separating subgroups into different fundamental time periods distributes operations across the execution cycle, thereby limiting the number of objects that is processed in a given time period to a manageable quantity.
- the run-time execution lists are used to generate an Update Up lists 290 and Update Down lists 291, each of which is a list of pointers to run-time execution lists such as lists 274- 289.
- Each of eight lists such as list 274-281 is provided for each execution cycle of the controlled system.
- a timer (either implemented in software or hardware) is incremented from zero to the total number of execution cycles of the controlled device. For each timer increment, one list is generated in each Update Up list 290 and Update down list 291 by copying pointers from each of the run-time lists to the respective lists. For example, if there are 1000 execution cycles in one operative cycle of the controlled system, the Update Up lists 290 include 1000 run-time execution lists.
- Update Up lists 290 and Update Down lists 291 thus provide the scheduling of operations for each of the execution cycles of the controlled system. Scheduling execution of each of the objects prior to the actual run-time of the controlled system reduces the run-time overhead and therefore enhances the performance of the controlled system.
- the present invention is not limited to the above described steps. Rather, any method of scheduling execution of the objects that allows for the hierarchical structure of the objects to be maintained may alternatively be used.
- the protocol controller D2 enforces an execution protocol of the DSPCU and state machine elements of the children/parent subsystems for each execution cycle of the controlled system.
- the protocol comprises two separate execution programs, called threads, as shown in the flow diagram of Fig. 8.
- One program, a main thread 400 is for state evaluation and command evaluation of DSPCUs and state machines in a tightly controlled periodic time frame.
- the other program, a secondary thread 500 is for execution of possibly longer individual calculations by the DSPCUs.
- the two threads operate independently, where the secondary thread 500 is under the control of the DSPCUs in the main thread 400.
- the main thread 400 has seven phases of execution and involves the IAN 101, the NCS 102 and the I/O 104 components described above with reference to Fig. 2.
- the operation of the protocol controller is now described with reference to Fig. 8, referencing elements of the control system 200 illustrated in Fig. 2.
- a first step 402 is for synchronization to provide periodicity to the operation of each execution cycle. Once a periodic timer has elapsed, operation proceeds to step 404.
- phase I of the execution protocol is initiated. Data collection is performed at I/O 104, and the new output signal values are stored into, and the new input signal values are read from the memory 128.
- Output signals calculated by the DSPCUs during the previous phase II, step 406, and phase V, step 412, are stored in numeric format into the dual ported memory of I/O 104 for controlling the physical hardware associated with each of the subsystems. Input signal values from the physical hardware are read from the dual ported memory of I/O 104 and are stored in memory in the NCS 102 for evaluation in the next phase.
- phase II of the execution protocol is initiated.
- the NCS 102 executes the state evaluation function of the DSPCUs of the subsystems. The execution order is dictated by the combined data flow diagrams of all subsystems, from left to right, in the order defined by the data flow arrows, from the least senior child subsystem in the hierarchy to the most senior parent in the hierarchy.
- phase III of the execution protocol is initiated.
- the NCS NCS
- Phase II and phase III together comprise the state evaluation in upward execution phases.
- inputs received only from children subsystems or inputs received directly from the I/O 104 are used to evaluate the state machines and DSPCUs of a parent subsystem.
- phase IV the NCS 102 executes the command evaluation function of each of the state machines in the hierarchy.
- the execution order is from the most senior parent through to the least senior child.
- phase V the NCS 102 executes the command evaluation function of each of the DSCPUs.
- the execution order is in the same order as during phase II, namely data flow order.
- the digital output is retrieved and translated into analog signals if necessary, for controlling the physical hardware of each of the subsystems.
- the process proceeds back to step 402 to wait for the next periodic timer tick, where a wait state is entered until the start of the next execution cycle.
- the secondary thread 500 operation starts when one or more DSPCUs add requests.
- the DSPCU may add an execution request to the secondary thread new request list 450 during step 414, phase VI, operation.
- the new execution requests are removed from the new request list 450 and are added to a secondary thread request list 501 in step 504.
- the secondary thread 500 executes each request in the order given, after previous requests are completed, in step 506.
- the execution of each request may run for many periodic cycles of the main thread 400. This allows a DSCPU to execute longer calculations without interfering with the periodicity of the main thread 400.
- the DSPCU evaluates the state of its execution request during each of the subsequent phase II state evaluations (step 406) until execution of the request is completed by the secondary thread in step 508.
- the secondary thread 500 continues to execute requests until the list is empty.
- the secondary thread 500 waits at step 502 until the main thread 400 generates more requests.
- the up/down execution environment described above allows for a high degree of coordinated control to be exerted over the subsystems within the ion implant system 100.
- the state of operation of the ion implant system may first be evaluated before commands are issued that impact that state.
- the true state of each subsystem may be determined since it is affected by the two different types of inputs.
- an improved method and apparatus for controlling complex systems includes a plurality of hierarchically coupled state machines that reflect control the operations of associated subsystems within the control system.
- One feature of the new control system is that it is periodic. Because the state machines are evaluated at periodic intervals within a given analytical time period, an accurate representation of the state of the subsystem at any given time is provided.
- a second feature of the control system is that it has a synchronized interface to both input/output signals as well as to user commands from the user interface. By separating the execution of the signals from that of the commands, it can be assured that the impact of the commands are synchronized with the actual states of the system to be controlled.
- control system is based on a hierarchical state machine arrangement
- the addition or deletion of elements within the control system may be easily accommodated by providing or removing appropriate communication links in parent and child subsystems. Accordingly, no the required redesign of system components is required for adding and deleting clearly identifiable for subsystems that are added to and deleted from the existing of subsystems in the control system.
- error conditions may be propagated at only to the appropriate supervisory level within the control system. As a result, error handling is distributed among the control system to thereby reduce the overall complexity of handling at any one subsystem, while allowing for informed error handling.
- control system has been described with regard to an ion implant system, it should be understood that the present invention is not limited to such a use but rather is intended to cover the control of any complex systems that may be modularized into subsystems. Accordingly, the above control system, which uses hierarchical subsystems defined by hierarchical state machines that are inter-coupled to maximize adaptability and error handling may be expanded for use in other systems as well.
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE69913201T DE69913201T2 (en) | 1998-12-22 | 1999-12-10 | METHOD AND DEVICE FOR CONTROLLING A SYSTEM WITH HIERARCHICAL STATE AUTOMATES |
JP2000590015A JP4693142B2 (en) | 1998-12-22 | 1999-12-10 | Method and apparatus for controlling a system using a hierarchical state machine |
EP99965202A EP1141793B1 (en) | 1998-12-22 | 1999-12-10 | Method and apparatus for controlling a system using hierarchical state machines |
AU31170/00A AU3117000A (en) | 1998-12-22 | 1999-12-10 | Method and apparatus for controlling a system using hierarchical state machines |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/219,584 US6374144B1 (en) | 1998-12-22 | 1998-12-22 | Method and apparatus for controlling a system using hierarchical state machines |
US09/219,584 | 1998-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000038022A1 true WO2000038022A1 (en) | 2000-06-29 |
Family
ID=22819877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/029264 WO2000038022A1 (en) | 1998-12-22 | 1999-12-10 | Method and apparatus for controlling a system using hierarchical state machines |
Country Status (9)
Country | Link |
---|---|
US (1) | US6374144B1 (en) |
EP (1) | EP1141793B1 (en) |
JP (1) | JP4693142B2 (en) |
KR (1) | KR100623109B1 (en) |
CN (1) | CN1124530C (en) |
AU (1) | AU3117000A (en) |
DE (1) | DE69913201T2 (en) |
TW (1) | TW466387B (en) |
WO (1) | WO2000038022A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003005137A1 (en) * | 2001-07-02 | 2003-01-16 | Ubinetics Limited | Data processing |
US8447417B2 (en) | 2002-11-18 | 2013-05-21 | Iris International, Inc. | Multi-level controller system and method |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6889110B1 (en) * | 1999-10-01 | 2005-05-03 | Novellus Systems, Inc. | Operational lists for simultaneous wafer scheduling and system event scheduling |
US6986146B2 (en) * | 2001-05-30 | 2006-01-10 | Siemens Communications, Inc. | Method and apparatus for providing a state machine operating on a real-time operating system |
US6823220B2 (en) * | 2001-10-10 | 2004-11-23 | Ge Medical Systems Global Technology Company, Llc | Design and implementation device for real-time controllers |
US6907305B2 (en) | 2002-04-30 | 2005-06-14 | Advanced Micro Devices, Inc. | Agent reactive scheduling in an automated manufacturing environment |
US7512454B1 (en) | 2002-05-31 | 2009-03-31 | Advanced Micro Devices, Inc. | Display unit with processor and communication controller |
US20030225474A1 (en) * | 2002-05-31 | 2003-12-04 | Gustavo Mata | Specialization of active software agents in an automated manufacturing environment |
US6801819B1 (en) | 2002-08-30 | 2004-10-05 | Advanced Micro Devices, Inc. | Method and apparatus for evaluating bids for scheduling a resource |
US7069097B1 (en) | 2002-08-30 | 2006-06-27 | Advanced Micro Devices, Inc. | Method and apparatus for reducing scheduling conflicts for a resource |
US7127310B1 (en) | 2002-08-30 | 2006-10-24 | Advanced Micro Devices, Inc. | Method and apparatus for determining cost functions using parameterized components |
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 |
US7813993B1 (en) | 2002-08-30 | 2010-10-12 | Advanced Micro Devices, Inc. | Method and apparatus for scheduling a resource |
US7027885B1 (en) | 2002-12-30 | 2006-04-11 | Advanced Micro Devices, Inc. | Determining batch start versus delay |
US7135789B2 (en) * | 2003-05-12 | 2006-11-14 | Potentia Semiconductor, Inc. | Controlling devices using cascaded control units |
CN100396061C (en) * | 2003-07-05 | 2008-06-18 | 华为技术有限公司 | A method for controlling asynchronous operation by using state machine |
US20070282480A1 (en) * | 2003-11-10 | 2007-12-06 | Pannese Patrick D | Methods and systems for controlling a semiconductor fabrication process |
US20070269297A1 (en) | 2003-11-10 | 2007-11-22 | Meulen Peter V D | Semiconductor wafer handling and transport |
US8639489B2 (en) * | 2003-11-10 | 2014-01-28 | Brooks Automation, Inc. | Methods and systems for controlling a semiconductor fabrication process |
US10086511B2 (en) | 2003-11-10 | 2018-10-02 | Brooks Automation, Inc. | Semiconductor manufacturing systems |
US8639365B2 (en) * | 2003-11-10 | 2014-01-28 | Brooks Automation, Inc. | Methods and systems for controlling a semiconductor fabrication process |
US8472792B2 (en) | 2003-12-08 | 2013-06-25 | Divx, Llc | Multimedia distribution system |
US7519274B2 (en) | 2003-12-08 | 2009-04-14 | Divx, Inc. | File format for multiple track digital data |
US20060200744A1 (en) * | 2003-12-08 | 2006-09-07 | Adrian Bourke | Distributing and displaying still photos in a multimedia distribution system |
US20060080419A1 (en) * | 2004-05-21 | 2006-04-13 | Bea Systems, Inc. | Reliable updating for a service oriented architecture |
US20050273520A1 (en) * | 2004-05-21 | 2005-12-08 | Bea Systems, Inc. | Service oriented architecture with file transport protocol |
US20060031432A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systens, Inc. | Service oriented architecture with message processing pipelines |
US20060007918A1 (en) * | 2004-05-21 | 2006-01-12 | Bea Systems, Inc. | Scaleable service oriented architecture |
US20050278335A1 (en) * | 2004-05-21 | 2005-12-15 | Bea Systems, Inc. | Service oriented architecture with alerts |
US20050264581A1 (en) * | 2004-05-21 | 2005-12-01 | Bea Systems, Inc. | Dynamic program modification |
US20060031481A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Service oriented architecture with monitoring |
US20060005063A1 (en) * | 2004-05-21 | 2006-01-05 | Bea Systems, Inc. | Error handling for a service oriented architecture |
US20050273502A1 (en) * | 2004-05-21 | 2005-12-08 | Patrick Paul B | Service oriented architecture with message processing stages |
US20060031431A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Reliable updating for a service oriented architecture |
US20050273516A1 (en) * | 2004-05-21 | 2005-12-08 | Bea Systems, Inc. | Dynamic routing in a service oriented architecture |
US20050270970A1 (en) * | 2004-05-21 | 2005-12-08 | Bea Systems, Inc. | Failsafe service oriented architecture |
US7310684B2 (en) * | 2004-05-21 | 2007-12-18 | Bea Systems, Inc. | Message processing in a service oriented architecture |
US20060031353A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Dynamic publishing in a service oriented architecture |
US20060031355A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Programmable service oriented architecture |
US20050267892A1 (en) * | 2004-05-21 | 2005-12-01 | Patrick Paul B | Service proxy definition |
US7774485B2 (en) * | 2004-05-21 | 2010-08-10 | Bea Systems, Inc. | Dynamic service composition and orchestration |
US7653008B2 (en) * | 2004-05-21 | 2010-01-26 | Bea Systems, Inc. | Dynamically configurable service oriented architecture |
US20050273497A1 (en) * | 2004-05-21 | 2005-12-08 | Bea Systems, Inc. | Service oriented architecture with electronic mail transport protocol |
US20060031930A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Dynamically configurable service oriented architecture |
US20050273517A1 (en) * | 2004-05-21 | 2005-12-08 | Bea Systems, Inc. | Service oriented architecture with credential management |
US20050278374A1 (en) * | 2004-05-21 | 2005-12-15 | Bea Systems, Inc. | Dynamic program modification |
US20060069791A1 (en) * | 2004-05-21 | 2006-03-30 | Bea Systems, Inc. | Service oriented architecture with interchangeable transport protocols |
US20050267947A1 (en) * | 2004-05-21 | 2005-12-01 | Bea Systems, Inc. | Service oriented architecture with message processing pipelines |
US20060031354A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Service oriented architecture |
US20060031433A1 (en) * | 2004-05-21 | 2006-02-09 | Bea Systems, Inc. | Batch updating for a service oriented architecture |
US20050273521A1 (en) * | 2004-05-21 | 2005-12-08 | Bea Systems, Inc. | Dynamically configurable service oriented architecture |
US7337032B1 (en) | 2004-10-04 | 2008-02-26 | Advanced Micro Devices, Inc. | Scheduling ahead for various processes |
US20060080331A1 (en) * | 2004-10-12 | 2006-04-13 | International Business Machines Corporation | Common interface system administration service library |
US7463939B1 (en) | 2004-11-18 | 2008-12-09 | Advanced Micro Devices, Inc. | Scheduling tools with queue time constraints |
US20080275582A1 (en) * | 2004-11-19 | 2008-11-06 | Nettles Steven C | Scheduling AMHS pickup and delivery ahead of schedule |
US8806490B1 (en) * | 2004-12-08 | 2014-08-12 | Cadence Design Systems, Inc. | Method and apparatus for managing workflow failures by retrying child and parent elements |
US20070022126A1 (en) * | 2005-07-21 | 2007-01-25 | Caterpillar Inc. | Method and apparatus for updating an asset catalog |
WO2007106844A2 (en) | 2006-03-14 | 2007-09-20 | Divx, Inc. | Federated digital rights management scheme including trusted systems |
DE102006021767A1 (en) * | 2006-05-10 | 2007-11-15 | Siemens Ag | HMI device for exchanging information with a field device in an automation system |
US7877727B2 (en) * | 2006-08-18 | 2011-01-25 | Bitrouter | Hierarchical state programming with a markup language |
DE102006046108A1 (en) * | 2006-09-28 | 2008-04-17 | Pcs Systemtechnik Gmbh | Programmable control for e.g. entry control device, has device for administration of condition table, and interpretation device for interpretation of table and for direct conversion of table units into event oriented program flow |
US8950998B2 (en) * | 2007-02-27 | 2015-02-10 | Brooks Automation, Inc. | Batch substrate handling |
US8996394B2 (en) * | 2007-05-18 | 2015-03-31 | Oracle International Corporation | System and method for enabling decision activities in a process management and design environment |
US8185916B2 (en) | 2007-06-28 | 2012-05-22 | Oracle International Corporation | System and method for integrating a business process management system with an enterprise service bus |
WO2009065137A1 (en) | 2007-11-16 | 2009-05-22 | Divx, Inc. | Hierarchical and reduced index structures for multimedia files |
US8510303B2 (en) | 2009-01-07 | 2013-08-13 | Divx, Llc | Singular, collective and automated creation of a media guide for online content |
EP2507995A4 (en) | 2009-12-04 | 2014-07-09 | Sonic Ip Inc | Elementary bitstream cryptographic material transport systems and methods |
US8914534B2 (en) | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol |
US9165029B2 (en) * | 2011-04-12 | 2015-10-20 | Microsoft Technology Licensing, Llc | Navigating performance data from different subsystems |
KR102163151B1 (en) | 2011-08-30 | 2020-10-08 | 디빅스, 엘엘씨 | Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels |
US9467708B2 (en) | 2011-08-30 | 2016-10-11 | Sonic Ip, Inc. | Selection of resolutions for seamless resolution switching of multimedia content |
US8818171B2 (en) | 2011-08-30 | 2014-08-26 | Kourosh Soroushian | Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates |
US8909922B2 (en) | 2011-09-01 | 2014-12-09 | Sonic Ip, Inc. | Systems and methods for playing back alternative streams of protected content protected using common cryptographic information |
US8964977B2 (en) | 2011-09-01 | 2015-02-24 | Sonic Ip, Inc. | Systems and methods for saving encoded media streamed using adaptive bitrate streaming |
US10452715B2 (en) | 2012-06-30 | 2019-10-22 | Divx, Llc | Systems and methods for compressing geotagged video |
US9313510B2 (en) | 2012-12-31 | 2016-04-12 | Sonic Ip, Inc. | Use of objective quality measures of streamed content to reduce streaming bandwidth |
US9191457B2 (en) | 2012-12-31 | 2015-11-17 | Sonic Ip, Inc. | Systems, methods, and media for controlling delivery of content |
EP2770431B1 (en) * | 2013-02-25 | 2017-01-04 | Telefonica S.A. | System and method to trigger cross-layer optimizations in a network |
US9906785B2 (en) | 2013-03-15 | 2018-02-27 | Sonic Ip, Inc. | Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
US9094737B2 (en) | 2013-05-30 | 2015-07-28 | Sonic Ip, Inc. | Network video streaming with trick play based on separate trick play files |
US9967305B2 (en) | 2013-06-28 | 2018-05-08 | Divx, Llc | Systems, methods, and media for streaming media content |
US9866878B2 (en) | 2014-04-05 | 2018-01-09 | Sonic Ip, Inc. | Systems and methods for encoding and playing back video at different frame rates using enhancement layers |
US10148989B2 (en) | 2016-06-15 | 2018-12-04 | Divx, Llc | Systems and methods for encoding video content |
US10498795B2 (en) | 2017-02-17 | 2019-12-03 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4551815A (en) * | 1983-12-12 | 1985-11-05 | Aerojet-General Corporation | Functionally redundant logic network architectures with logic selection means |
EP0644573A1 (en) * | 1993-09-20 | 1995-03-22 | Eaton Corporation | Scan control for ion beam apparatus |
US5469553A (en) * | 1992-04-16 | 1995-11-21 | Quantum Corporation | Event driven power reducing software state machine |
US5675756A (en) * | 1994-09-02 | 1997-10-07 | Square D Company | Monitoring and control system using graphical representations with prelinked parameters for devices within a network |
US5689702A (en) * | 1995-06-07 | 1997-11-18 | Microtec Research, Inc. | Flexible data structure layout for data structure including bit-field data members |
WO1998029817A1 (en) * | 1996-12-25 | 1998-07-09 | Emultek Ltd. | Device for implementing hierarchical state charts and methods and apparatus useful therefor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL78542A0 (en) * | 1986-04-18 | 1986-08-31 | Yeda Res & Dev | Electronic controller based on the use of statecharts as an abstract model |
EP0397924B1 (en) * | 1989-05-17 | 1995-11-29 | Koninklijke Philips Electronics N.V. | Work station controller module |
FR2686175B1 (en) * | 1992-01-14 | 1996-12-20 | Andre Thepaut | MULTIPROCESSOR DATA PROCESSING SYSTEM. |
US5504896A (en) * | 1993-12-29 | 1996-04-02 | At&T Corp. | Method and apparatus for controlling program sources in an interactive television system using hierarchies of finite state machines |
JPH10510082A (en) | 1995-09-28 | 1998-09-29 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | Method of identifying a system comprising a plurality of interconnected functional modules each representing a machine based on an individual abstract state and a system so identified |
US5710700A (en) * | 1995-12-18 | 1998-01-20 | International Business Machines Corporation | Optimizing functional operation in manufacturing control |
US5691895A (en) * | 1995-12-18 | 1997-11-25 | International Business Machines Corporation | Mechanism and architecture for manufacturing control and optimization |
-
1998
- 1998-12-22 US US09/219,584 patent/US6374144B1/en not_active Expired - Lifetime
-
1999
- 1999-12-10 KR KR1020017007912A patent/KR100623109B1/en active IP Right Grant
- 1999-12-10 EP EP99965202A patent/EP1141793B1/en not_active Expired - Lifetime
- 1999-12-10 AU AU31170/00A patent/AU3117000A/en not_active Abandoned
- 1999-12-10 DE DE69913201T patent/DE69913201T2/en not_active Expired - Fee Related
- 1999-12-10 WO PCT/US1999/029264 patent/WO2000038022A1/en active IP Right Grant
- 1999-12-10 JP JP2000590015A patent/JP4693142B2/en not_active Expired - Lifetime
- 1999-12-10 CN CN99814902A patent/CN1124530C/en not_active Expired - Lifetime
- 1999-12-22 TW TW088122615A patent/TW466387B/en not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4551815A (en) * | 1983-12-12 | 1985-11-05 | Aerojet-General Corporation | Functionally redundant logic network architectures with logic selection means |
US5469553A (en) * | 1992-04-16 | 1995-11-21 | Quantum Corporation | Event driven power reducing software state machine |
EP0644573A1 (en) * | 1993-09-20 | 1995-03-22 | Eaton Corporation | Scan control for ion beam apparatus |
US5675756A (en) * | 1994-09-02 | 1997-10-07 | Square D Company | Monitoring and control system using graphical representations with prelinked parameters for devices within a network |
US5689702A (en) * | 1995-06-07 | 1997-11-18 | Microtec Research, Inc. | Flexible data structure layout for data structure including bit-field data members |
WO1998029817A1 (en) * | 1996-12-25 | 1998-07-09 | Emultek Ltd. | Device for implementing hierarchical state charts and methods and apparatus useful therefor |
Non-Patent Citations (2)
Title |
---|
CHO H ET AL: "Intelligent Workstation Controller for Computer-Integrated Manufacturing: Problems and Models", JOURNAL OF MANUFACTURING SYSTEMS,US,SOCIETY OF MANUFACTURING ENGINEERS, DEARBORN, MI, vol. 14, no. 4, 1 January 1995 (1995-01-01), pages 252 - 263, XP004002183, ISSN: 0278-6125 * |
KLEIN M H ET AL: "RATE-MONOTONIC ANALYSIS FOR REAL-TIME INDUSTRIAL COMPUTING", COMPUTER,US,IEEE COMPUTER SOCIETY, LONG BEACH., CA, US, vol. 27, no. 1, 1 January 1994 (1994-01-01), pages 24 - 32, XP000426339, ISSN: 0018-9162 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003005137A1 (en) * | 2001-07-02 | 2003-01-16 | Ubinetics Limited | Data processing |
US8447417B2 (en) | 2002-11-18 | 2013-05-21 | Iris International, Inc. | Multi-level controller system and method |
Also Published As
Publication number | Publication date |
---|---|
DE69913201T2 (en) | 2004-08-12 |
EP1141793B1 (en) | 2003-11-26 |
CN1331813A (en) | 2002-01-16 |
EP1141793A1 (en) | 2001-10-10 |
AU3117000A (en) | 2000-07-12 |
JP2002533795A (en) | 2002-10-08 |
US6374144B1 (en) | 2002-04-16 |
JP4693142B2 (en) | 2011-06-01 |
TW466387B (en) | 2001-12-01 |
CN1124530C (en) | 2003-10-15 |
DE69913201D1 (en) | 2004-01-08 |
KR100623109B1 (en) | 2006-09-13 |
KR20010089671A (en) | 2001-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6374144B1 (en) | Method and apparatus for controlling a system using hierarchical state machines | |
Glassey et al. | Closed-loop job release control for VLSI circuit manufacturing | |
EP0423287B1 (en) | Batch process control using expert systems | |
Mei et al. | A hardware-software partitioning and scheduling algorithm for dynamically reconfigurable embedded systems | |
US5627745A (en) | Parallel processing in a multitasking industrial controller | |
Gruver et al. | Intelligent Manufacturing:: Programming Environments for CIM | |
Agre et al. | A taxonomy of distributed real-time control systems | |
US5790406A (en) | Hierarchical system of the simple modification of process steps for a manufacturing tool | |
Armstrong et al. | Studies for a common selection software environment in ATLAS: from the level-2 trigger to the offline reconstruction | |
Li et al. | Easyscale: Accuracy-consistent elastic training for deep learning | |
Beckett et al. | A strict occam design tool | |
Korbaa et al. | Solving transient scheduling problems with constraint programming | |
Reich et al. | Symbolic Simulation Based Techniques for Debugging Discrete Control Programs | |
Jones | On-line computers: A survey of techniques and concepts applied to low-energy nuclear research | |
Tudruj et al. | Load balancing with migration based on synchronizers in PS-GRADE graphical tool | |
Féret et al. | An architecture for real-time diagnostics systems | |
Jacak | Object-Oriented Discrete-Event Simulator of Intelligent Robotic Cells | |
Yue et al. | Realization of an expert system based PID controller using industry standard software and hardware environments | |
Kacsuk et al. | Tools for mapping, load balancing and monitoring in the LOGFLOW parallel Prolog project | |
Mitchell et al. | Clustering module dependency graphs of software systems using the bunch tool | |
JPH03253965A (en) | Multi-task processing system by controller | |
Flor et al. | Model driven data acquisition system | |
Öhman et al. | Implementation aspects of the PLC standard IEC 1131-3 | |
Silberschatz | Priority and Queuing Specification in ‘Distributed Processes’ | |
Sienicki et al. | Graphical methodology language for CAD frameworks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 99814902.0 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU CA CN IN JP KR SG |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1999965202 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020017007912 Country of ref document: KR |
|
ENP | Entry into the national phase |
Ref document number: 2000 590015 Country of ref document: JP Kind code of ref document: A |
|
WWP | Wipo information: published in national office |
Ref document number: 1020017007912 Country of ref document: KR |
|
WWP | Wipo information: published in national office |
Ref document number: 1999965202 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 1999965202 Country of ref document: EP |
|
WWG | Wipo information: grant in national office |
Ref document number: 1020017007912 Country of ref document: KR |