The present invention relates to methods for debugging programs on configurable architectures.
A reconfigurable architecture includes chips (VPU) with configurable function and/or networking, particularly integrated chips with a multiplicity of arithmetic and/or logic and/or analog and/or storing and/or networking modules arranged one-dimensionally or multidimensionally (called PAEs in the text which follows) and/or communicative/peripheral modules (IO) which are connected to one another either directly or by one or more bus system(s). PAEs are arranged in any design, mixture and hierarchy. This arrangement will be called PAE array or PA in the further text.
The conventional type of these chips includes systolic arrays, neuron networks, multiprocessor systems, processors having a number of arithmetic logic units and/or logic cells, networking and network chips such as e.g. crossbar switches and also known chips of the conventional FPGA, DPGA, XPUTER etc. type. Particular reference is made in this context to the following patents by the same applicant: P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT/DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10516, EP 01 102 674.7, each of which is expressly incorporated herewith by reference in its entirety.
It should also be noted that the methods can also be applied to groups of a number of chips.
A number of methods and hardware implementations are presented which may enable VPU systems to be efficiently debugged.
Debugging may take place either by using a microcontroller appropriately connected to a VPU or by a loading logic as described in U.S. Pat. No. 5,943,242 (PACT01), U.S. Pat. No. 6,424,068 (PACT02), U.S. Pat. No. 6,088,795 (PACT04), U.S. Pat. No. 6,021,490 (PACT05), U.S. Ser. No. 09/598,926 (PACT09), U.S. Ser. No. 09/623,052 (PACT10), U.S. Ser. No. 09/967,847 (PACT11), U.S. Ser. No. 10/009,649 (PACT13), (PACT17), each of which is expressly incorporated herewith by reference in its entirety.
b illustrates a representation of an example embodiment of the finite state machine by a reconfigurable architecture.
Example Embodiment of Detection of a Debugging Condition
The programmer may specify, for example within the debugging tool, one or more conditions which start the debugging. The occurrence of the conditions may be determined at run time in the VPU. This may take place due to the occurrence of particular data values at particular variables and/or particular trigger values at particular PAEs.
Example Embodiment of Detection of a Debugging Condition—Precondition
In this example embodiment, a particular condition according to the abovementioned definition may be established by the programmer a number of clock cycles before the occurrence of the debugging condition. This may eliminate latency problems which will be discussed in the text which follows.
In the text which follows, two fundamental types of debugging for VPUs will be discussed, the method which may be employed in each case may depend on the choice of compiler:
For compilers which generate code on the basis of instanced modules of a hardware description language (or similar language), method A may be particularly suitable and will be described in the text which follows.
For compilers similar to PACT11 which generate complex instructions in accordance with a method similar to VLIW, method B may be particularly suitable and will be described in the text which follows.
Example Embodiment of Method A—Basic Principle
After the occurrence of a (pre)condition, the VPU may be stopped. After that, the relevant debugging information may be transferred from the PAEs to the debugging program. The relevant debugging information may have previously been established by the programmer in the debugging program. After all relevant debugging information has been read out, the next clock cycle may be executed and the relevant debugging information may be read out again. This may be repeated until the programmer terminates the debugging process.
Method A—Example Embodiment of Support by the Hardware—Reading Out the Registers
One factor for the operation of the debugger is the possibility for the CT or another processor connected externally (called debugging processor (DB) in the text which follows) to read back in the internal data registers and/or status registers and/or state registers, and if possible, depending on implementation, other relevant registers and/or signals from the PAEs and/or the network (collectively known as debugging information in the text which follows). Such a possibility may be implemented, for example, with the connection between the loading logic and the data bus of a PAE created in U.S. Pat. No. 6,081,903 (PACT08/PCT) (PACT08/PCT 0403, FIG. 4).
It should be expressly noted that serial methods may also be used for reading out the registers. For example, JTAG may be selected and DB may also be connected, if necessary, as external separate device via this method.
Method A—Example Embodiment of Support by the Hardware—Stopping or Slowing Down the Clock
Due to the occurrence of a condition and/or precondition, the clock may either be stopped or slowed down in order to provide sufficient readout time. This beginning of debugging may be triggered either directly by a PAE which calculated the (pre)condition(s) or by a loading logic due to any actions, for example due to the information that a (pre)condition occurred at a PAE and/or due to an action within the debugging processor and/or by any program and/or any external/peripheral source. To provide information, trigger mechanisms according to U.S. Pat. No. 5,943,242 (PACT01), U.S. Pat. No. 6,425,068 (PACT02), U.S. Pat. No. 6,081,903 (PACT08), U.S. Ser. No. 09/623,052 (PACT10), (PACT12), (PACT17) are available.
If the clock is slowed down, all relevant debugging information may need to be read out of the PAEs by the debugging processor within the slowed-down cycle of the processing clock.
If the clock is stopped, a single-step mode may be produced, i.e. the debugging processor may stop the processing clock until it has read out all debugging information. After that, it may restart the processing clock for one cycle and stop it again until all relevant debugging information has been read out.
The readout clock and the clock of the debugging processor may be independent of the processing clock of the PAEs so that the data processing is separate from the debugging and particularly the reading out of the debugging information.
With respect to the hardware, the stopping or slowing down of the clock may be achieved by conventional methods, such as, for example, gated clocks and/or PLLs and/or dividers or other methods.
Method A—Example Embodiment of Support by the Hardware—Register Pipeline for Compensating for Latency
At higher operating frequencies, latency may occur between the detection of the beginning of debugging and the stopping or slowing down of the clock. This latency may be precisely predetermined since the position of the delaying registers in the VPU may be defined by hardware and/or the algorithm to be debugged and may, therefore, be calculated precisely by the debugger.
However, the latency may shift the information provided to the debugging processor, in such a manner that it is no longer possible to read out the correct debugging information.
By inserting a multistage register pipeline which may transmit the debugging information in each clock cycle further by one register, the debugging processor may refer back to the same number of clock cycles of debugging information as the register pipeline is long.
Due to the precise calculability of the latency, the debugging program may now read out the relevant debugging information of the correct time from the register pipeline.
Method A—Example Embodiment of Visible Debugging Information
In this method, debugging may take place after the occurrence of the (pre)condition since it is may be only after that that the clock may be slowed down or stopped and the debugging information may be read out. Debugging information from before the occurrence of the (pre)condition may not be visible initially.
However, it is possible, although with the loss of operating performance, to operate a VPU with a slowed-down clock or a single-step mode right from the start of an application. The relevant debugging information may be read out by the debugging processor from the start.
Example Embodiment of Method B—Basic Principle
Relevant debugging information from the memory units which, according to U.S. Pat. No. 5,943,242 (PACT01), U.S. Pat. No. 6,088,795 (PACT04), U.S. Ser. No. 10/009,649 (PACT13), U.S. Ser. No. 09/967,847 (PACT11), (PACT18), contain the application data and states of a particular operating step, may be transmitted to the debugging program. In the machine model of U.S. Pat. No. 5,943,242 (PACT01), U.S. Pat. No. 6,088,795 (PACT04), U.S. Ser. No. 09/967,847 (PACT11), U.S. Ser. No. 10/009,649 (PACT13), (PACT18), these memory units may operate as registers for storing data which has been calculated in the PA or parts of the PA within a configuration cycle. A memory unit may consist of an arbitrary arrangement and hierarchy of independent and dependent memories. It is possible to execute simultaneously a number of different algorithms on the PA which then use different memories.
For the application of this method that data and/or algorithmically relevant states may need to be stored in the memory units associated with the PAEs. A memory unit may be in each case dimensioned at least in such a manner that all relevant data and/or states of a cycle may be stored; the length of a cycle may be determined by the size of the memory unit.
Different data and/or states may be stored in the memory units in such a manner that they may be unambiguously correlated with the algorithm. As a result, the debugger may unambiguously identify the relevant data and/or states (debugging information).
The relevant debugging information may have been previously specified by the programmer within the debugging program. This debugging information may be read out of the memory units. Different methods are available for this and some possibilities will be described in greater detail in the text which follows. After all relevant debugging information has been read out, the next configuration cycle may be executed and the relevant debugging information may be read out again. This may be repeated until the programmer/debugger terminates the debugging process.
In other words, the relevant data and/or status information may be transmitted to the debugger configuration by configuration rather than clock cycle by clock cycle. This may occur from the memory units which are comparable to the registers of a CPU.
Example Embodiment of Method B—Support by the Hardware
A factor for the operation of the debugger may be the possibility for the CT or any other processor connected externally (called debugging processor (DB) in the text which follows) to read the, for example, also internal, memory unit of the VPU. Such a possibility may be given, for example, by the CT being connected to the memories for preloading and reading the data and/or by the methods for writing the internal memories to external memories, described in PACT13. Memory (units) may be accessed by the debugging processor by various conventional methods (e.g., shared memory, bank switching).
According to the method A, the clock for reading out the memories may be either correspondingly slowed down, if necessary, or stopped and generated in single-step mode. In this arrangement, special intervention in the clock may be omitted depending on the implementation of the memories, e.g., in the case of the bank switching method. According to method B, stopping or slowing down the clock and reading out and/or copying and/or switching of the memory unit may be done only when a data processing cycle or configuration cycle has ended.
Example Embodiment of Method B—Access to Debugging Information
In U.S. Pat. No. 5,943,242 (PACT01), U.S. Pat. No. 6,088,795(PACT04), U.S. Ser. No. 09/967,847 (PACT11), U.S. Ser. No. 10/009,649 (PACT13), data processing methods are described in which a set of operations may be cyclically mapped to a reconfigurable data processing chip. In each cycle, a plurality of data may be calculated which originate from a peripheral source and/or an internal/external memory and are written to a peripheral source and/or an internal/external memory. In this arrangement, different and/or, above all, a number of independent memories may be used simultaneously in each case.
In other words, the memory units or a part of the memory units may be used as register set in this data processing method.
According to U.S. Ser. No. 09/967,847 (PACT11) and U.S. Ser. No. 10/009,649 (PACT13), all data and states which may be relevant for the further data processing may be stored in the memory units or read out of these. States which may be irrelevant for the further data processing need not be stored.
The distinction between relevant and irrelevant states may be demonstrated in the following example and reference is made to PACT11:
The state information of a comparison may be essential, for example, for the further processing of the data since it determines the functions to be executed.
A sequential divider may be produced, for example, by mapping a division instruction onto a hardware which only supports sequential division. This may produce a state which identifies the computing step within the division. This state may be irrelevant since only the result (i.e. the division performed) is required for the algorithm. In this case, therefore, only the result and the time information (i.e. the availability) may be needed.
The time information may be obtained, for example, by the RDY/ACK handshake in the VPU technology of U.S. Pat. No. 5,943,242 (PACT01), U.S. Pat. No. 6,425,068 B1 (PACT02), U.S. Ser. No. 10/009,649 (PACT13). However, it may be noted in this respect that the handshake may not represent a relevant state, either, since it may only signals the validity of the data as a result of which the remaining relevant information may be again reduced to the existence of valid data.
A distinction between locally and globally relevant states is demonstrated in U.S. Ser. No. 09/967,847 (PACT11) as follows:
Local: the state is only relevant within a single completed configuration. For this reason, it is not mandatory to store the state.
Global: the state information is needed for a number of configurations. The state may need to be stored.
It is now possible that the programmer wants to debug a locally relevant state which is not stored in the memories. In this case, the application may need to be modified to the extent that a debugging configuration may be produced (equivalent to the debugging code of processors) which exhibits a modification of the “normal” code of the application in such a manner that this state may be additionally written into the memory unit and may be thus provided to the debugger.
Example Embodiment of Method B—Visible Debugging Information
Debugging before the (pre)condition may be comparatively simple and may be performed without great performance losses since the debugging information needed may be available in memories. The debugging information may be saved simply by copying the memories into other memory areas. An even faster method may be to switch the memories by means of a (conventional) bank switching method between the individual configurations in such a manner that the debugging information may be located in a new bank in each case. The switching may be done in a very time-optimizing manner, even without effect on the processing performance in the optimum case.
In contrast to method A, irrelevant states may be picked up only with difficulty since they need not be stored (according to U.S. Ser. No. 09/967,847 (PACT11). In special cases, however, they may be additionally stored within the debugging code similar to the locally relevant states, and/or a method may be used in which method A and B are used jointly.
However, it should be mentioned that there does not appear to be any requirement for storing this information in the VPU technology according to U.S. Pat. No. 6,425,068 B1 (PACT02). It is only when programmable sequences according to U.S. Ser. No. 10/009,649 (PACT13) are used instead of the SM unit U.S. Pat. No. 6,425,068 B1 (PACT02), that it may be useful to debug irrelevant states.
Example Embodiment of Operation of the Debugger
The debugger program itself may run on a DB outside the PA. The debugging information may be read by the debugger according to method A or B and stored in a memory and/or memory area separate from the data processing. The debugger program may define the breakpoints and (pre)conditions. The debugger program may also take over control of the execution of the application, particularly the start of execution and the end of execution.
The debugger according to the invention may also communicate with other tools and particularly also debuggers according to U.S. Ser. No. 09/967,498 (PACT20) within a development environment, as a result of which the control and definition of the debugging parameters may be taken over from another debugger. Similarly, the debugger may provide the debugging information generated by it to another debugger or obtain from the latter its debugging information.
The determination of the occurrence of breakpoints and/or (pre)conditions, in particular, may be performed by another debugger from the units debugged by this other debugger. The debugger according to the invention and the VPU may then respond correspondingly.
Evaluation of the Methods
Method A may be considerably more time- and resource-intensive than method B in which hardly any additional hardware may be required and moreover the time-consuming reading out of the debugging information from the start of the application may possibly be omitted. Method B may, therefore, be preferred in principle. However, applications which are formed by the compilation of normal HDL source codes onto a VPU may be scarcely suitable for applying method B. For compilers according to PACT11, however, method B must be clearly preferred.
b illustrates a representation of an exemplary embodiment of the finite state machine by a reconfigurable architecture according to U.S. Pat. No. 5,943,242 (PACT01) and U.S. Pat. No. 6,088,795 (PACT04) (PACT04, FIGS. 12-15). The combinatorial network of
The operand and result memories (0202, 0203) may be physically or virtually coupled to one another in such a manner that, for example, the results of a function of one another may be used as operands and/or results and operands of a function of one another may be used as operands. Such coupling may be established, for example, by a bus systems or by a (re)configuration in accordance with which the function and networking of the memories with the 0201s may be reconfigured.
0101
b and 0102b are illustrated as already described. In addition, an external memory unit is shown (0302) which may possibly be connected (0307) to 0102b similar to U.S. Pat. No. 6,038,650 (PACT13). Reference is made to the fact that both 0102b and 0302 may be external or internal memory units. Similarly, a memory unit may need to be defined as at least one register, a set of registers or a memory (RAM, flash, hard disk or similar).
The debugging unit 0301 may set breakpoints within 0101b (0303) on the basis of which the actual debugging process may be triggered. When a breakpoint is reached, an information item (0304) may be sent to 0301 which starts the debugging process; at the same time, all provisions for debugging internal to 0101b, (e.g. stopping and/or slowing down of the clock) may be triggered. As an alternative, information may also be generated by 0301 and sent to 0101b. 0301 may access the data and/or states from the memory 0102b and/or the memory 0302 via 0305 and/or 0306. The accessing may be done, for example, by
As an example, a figure from U.S. Ser. No. 10/009,649 (PACT13) has been selected. Reference is made to the fact that, in principle, every memory method and every shared memory (stack, random access, FIFO etc.) May be correspondingly processed.
| Number | Date | Country | Kind |
|---|---|---|---|
| 101 42 904 | Sep 2001 | DE | national |
| 101 44 733 | Sep 2001 | DE | national |
| Number | Name | Date | Kind |
|---|---|---|---|
| 2067477 | Cooper | Jan 1937 | A |
| 3242998 | Gubbins | Mar 1966 | A |
| 3681578 | Stevens | Aug 1972 | A |
| 3757608 | Willner | Sep 1973 | A |
| 3855577 | Vandierendonck | Dec 1974 | A |
| 4498172 | Bhavsar | Feb 1985 | A |
| 4566102 | Hefner | Jan 1986 | A |
| 4591979 | Iwashita | May 1986 | A |
| 4663706 | Allen et al. | May 1987 | A |
| 4682284 | Schrofer | Jul 1987 | A |
| 4706216 | Carter | Nov 1987 | A |
| 4720780 | Dolecek | Jan 1988 | A |
| 4739474 | Holsztynski | Apr 1988 | A |
| 4761755 | Ardini et al. | Aug 1988 | A |
| 4811214 | Nosenchuck et al. | Mar 1989 | A |
| 4852043 | Guest | Jul 1989 | A |
| 4852048 | Morton | Jul 1989 | A |
| 4860201 | Stolfo et al. | Aug 1989 | A |
| 4870302 | Freeman | Sep 1989 | A |
| 4891810 | de Corlieu et al. | Jan 1990 | A |
| 4901268 | Judd | Feb 1990 | A |
| 4910665 | Mattheyses et al. | Mar 1990 | A |
| 4967340 | Dawes | Oct 1990 | A |
| 5014193 | Garner et al. | May 1991 | A |
| 5015884 | Agrawal et al. | May 1991 | A |
| 5021947 | Campbell et al. | Jun 1991 | A |
| 5023775 | Poret | Jun 1991 | A |
| 5043978 | Nagler et al. | Aug 1991 | A |
| 5047924 | Fujioka et al. | Sep 1991 | A |
| 5065308 | Evans | Nov 1991 | A |
| 5072178 | Matsumoto | Dec 1991 | A |
| 5081375 | Pickett et al. | Jan 1992 | A |
| 5109503 | Cruickshank et al. | Apr 1992 | A |
| 5113498 | Evan et al. | May 1992 | A |
| 5115510 | Okamoto et al. | May 1992 | A |
| 5123109 | Hillis | Jun 1992 | A |
| 5125801 | Nabity et al. | Jun 1992 | A |
| 5128559 | Steele | Jul 1992 | A |
| 5142469 | Weisenborn | Aug 1992 | A |
| 5144166 | Camarota et al. | Sep 1992 | A |
| 5193202 | Jackson et al. | Mar 1993 | A |
| 5203005 | Horst | Apr 1993 | A |
| 5204935 | Mihara et al. | Apr 1993 | A |
| 5208491 | Ebeling et al. | May 1993 | A |
| 5226122 | Thayer et al. | Jul 1993 | A |
| RE34363 | Freeman | Aug 1993 | E |
| 5233539 | Agrawal et al. | Aug 1993 | A |
| 5247689 | Ewert | Sep 1993 | A |
| 5274593 | Proebsting | Dec 1993 | A |
| 5287472 | Horst | Feb 1994 | A |
| 5294119 | Vincent et al. | Mar 1994 | A |
| 5301284 | Estes et al. | Apr 1994 | A |
| 5301344 | Kolchinsky | Apr 1994 | A |
| 5303172 | Magar et al. | Apr 1994 | A |
| 5336950 | Popli et al. | Aug 1994 | A |
| 5347639 | Rechtschaffen et al. | Sep 1994 | A |
| 5349193 | Mott et al. | Sep 1994 | A |
| 5353432 | Richek et al. | Oct 1994 | A |
| 5361373 | Gilson | Nov 1994 | A |
| 5379444 | Mumme | Jan 1995 | A |
| 5410723 | Schmidt et al. | Apr 1995 | A |
| 5418952 | Morley et al. | May 1995 | A |
| 5421019 | Holsztynski et al. | May 1995 | A |
| 5422823 | Agrawal et al. | Jun 1995 | A |
| 5425036 | Liu et al. | Jun 1995 | A |
| 5426378 | Ong | Jun 1995 | A |
| 5428526 | Flood et al. | Jun 1995 | A |
| 5430687 | Hung et al. | Jul 1995 | A |
| 5440245 | Galbraith et al. | Aug 1995 | A |
| 5440538 | Olsen | Aug 1995 | A |
| 5442790 | Nosenchuck | Aug 1995 | A |
| 5444394 | Watson et al. | Aug 1995 | A |
| 5448186 | Kawata | Sep 1995 | A |
| 5455525 | Ho et al. | Oct 1995 | A |
| 5457644 | McCollum | Oct 1995 | A |
| 5465375 | Thepaut et al. | Nov 1995 | A |
| 5473266 | Ahanin et al. | Dec 1995 | A |
| 5473267 | Stansfield | Dec 1995 | A |
| 5475583 | Bock et al. | Dec 1995 | A |
| 5475803 | Stearns et al. | Dec 1995 | A |
| 5475856 | Kogge | Dec 1995 | A |
| 5483620 | Pechanek et al. | Jan 1996 | A |
| 5485103 | Pedersen et al. | Jan 1996 | A |
| 5485104 | Agrawal et al. | Jan 1996 | A |
| 5489857 | Agrawal et al. | Feb 1996 | A |
| 5491353 | Kean | Feb 1996 | A |
| 5493239 | Zlotnick | Feb 1996 | A |
| 5497498 | Taylor | Mar 1996 | A |
| 5506998 | Kato et al. | Apr 1996 | A |
| 5510730 | El Gamal et al. | Apr 1996 | A |
| 5511173 | Yamaura et al. | Apr 1996 | A |
| 5513366 | Agarwal et al. | Apr 1996 | A |
| 5521837 | Frankle et al. | May 1996 | A |
| 5522083 | Gove et al. | May 1996 | A |
| 5530873 | Takano | Jun 1996 | A |
| 5530946 | Bouvier et al. | Jun 1996 | A |
| 5532693 | Winters et al. | Jul 1996 | A |
| 5532957 | Malhi | Jul 1996 | A |
| 5535406 | Kolchinsky | Jul 1996 | A |
| 5537057 | Leong et al. | Jul 1996 | A |
| 5537601 | Kimura et al. | Jul 1996 | A |
| 5541530 | Cliff et al. | Jul 1996 | A |
| 5544336 | Kato et al. | Aug 1996 | A |
| 5548773 | Kemeny et al. | Aug 1996 | A |
| 5555434 | Carlstedt | Sep 1996 | A |
| 5559450 | Ngai et al. | Sep 1996 | A |
| 5561738 | Kinerk et al. | Oct 1996 | A |
| 5570040 | Lytle et al. | Oct 1996 | A |
| 5574930 | Halverson, Jr. et al. | Nov 1996 | A |
| 5583450 | Trimberger et al. | Dec 1996 | A |
| 5586044 | Agrawal et al. | Dec 1996 | A |
| 5587921 | Agrawal et al. | Dec 1996 | A |
| 5588152 | Dapp et al. | Dec 1996 | A |
| 5590345 | Barker et al. | Dec 1996 | A |
| 5590348 | Phillips et al. | Dec 1996 | A |
| 5596742 | Agarwal et al. | Jan 1997 | A |
| 5600265 | El Gamal et al. | Feb 1997 | A |
| 5611049 | Pitts | Mar 1997 | A |
| 5617547 | Feeney et al. | Apr 1997 | A |
| 5625806 | Kromer | Apr 1997 | A |
| 5634131 | Matter et al. | May 1997 | A |
| 5649176 | Selvidge et al. | Jul 1997 | A |
| 5649179 | Steenstra et al. | Jul 1997 | A |
| 5652894 | Hu et al. | Jul 1997 | A |
| 5655069 | Ogawara et al. | Aug 1997 | A |
| 5655124 | Lin | Aug 1997 | A |
| 5657330 | Matsumoto | Aug 1997 | A |
| 5659797 | Zandveld et al. | Aug 1997 | A |
| 5675743 | Mavity | Oct 1997 | A |
| 5680583 | Kuijsten | Oct 1997 | A |
| 5713037 | Wilkinson et al. | Jan 1998 | A |
| 5717943 | Barker et al. | Feb 1998 | A |
| 5732209 | Vigil et al. | Mar 1998 | A |
| 5734921 | Dapp et al. | Mar 1998 | A |
| 5742180 | DeHon et al. | Apr 1998 | A |
| 5748872 | Norman | May 1998 | A |
| 5754827 | Barbier et al. | May 1998 | A |
| 5754871 | Wilkinson et al. | May 1998 | A |
| 5760602 | Tan | Jun 1998 | A |
| 5761484 | Agarwal et al. | Jun 1998 | A |
| 5773994 | Jones | Jun 1998 | A |
| 5778439 | Trimberger et al. | Jul 1998 | A |
| 5784636 | Rupp | Jul 1998 | A |
| 5794059 | Barker et al. | Aug 1998 | A |
| 5794062 | Baxter | Aug 1998 | A |
| 5801715 | Norman | Sep 1998 | A |
| 5802290 | Casselman | Sep 1998 | A |
| 5828229 | Cliff et al. | Oct 1998 | A |
| 5828858 | Athanas et al. | Oct 1998 | A |
| 5838165 | Chatter | Nov 1998 | A |
| 5844888 | Narjjyka | Dec 1998 | A |
| 5848238 | Shimomura et al. | Dec 1998 | A |
| 5854918 | Baxter | Dec 1998 | A |
| 5859544 | Norman | Jan 1999 | A |
| 5865239 | Carr | Feb 1999 | A |
| 5867691 | Shiraishi | Feb 1999 | A |
| 5867723 | Chin et al. | Feb 1999 | A |
| 5884075 | Hester et al. | Mar 1999 | A |
| 5887162 | Williams et al. | Mar 1999 | A |
| 5889982 | Rodgers et al. | Mar 1999 | A |
| 5892370 | Eaton et al. | Apr 1999 | A |
| 5892961 | Trimberger | Apr 1999 | A |
| 5901279 | Davis, III | May 1999 | A |
| 5915123 | Mirsky et al. | Jun 1999 | A |
| 5924119 | Sindhu et al. | Jul 1999 | A |
| 5927423 | Wada et al. | Jul 1999 | A |
| 5933642 | Greenbaum et al. | Aug 1999 | A |
| 5936424 | Young et al. | Aug 1999 | A |
| 5943242 | Vorbach et al. | Aug 1999 | A |
| 5956518 | DeHon et al. | Sep 1999 | A |
| 5966534 | Cooke et al. | Oct 1999 | A |
| 5970254 | Cooke et al. | Oct 1999 | A |
| 5996083 | Gupta et al. | Nov 1999 | A |
| 6011407 | New | Jan 2000 | A |
| 6014509 | Furtek et al. | Jan 2000 | A |
| 6021490 | Vorbach et al. | Feb 2000 | A |
| 6023564 | Trimberger | Feb 2000 | A |
| 6023742 | Ebeling et al. | Feb 2000 | A |
| 6034538 | Abramovici | Mar 2000 | A |
| 6038650 | Vorbach et al. | Mar 2000 | A |
| 6038656 | Martin et al. | Mar 2000 | A |
| 6047115 | Mohan et al. | Apr 2000 | A |
| 6049222 | Lawman | Apr 2000 | A |
| 6052773 | DeHon et al. | Apr 2000 | A |
| 6054873 | Laramie | Apr 2000 | A |
| 6058469 | Baxter | May 2000 | A |
| 6081903 | Vorbach et al. | Jun 2000 | A |
| 6085317 | Smith | Jul 2000 | A |
| 6088795 | Vorbach et al. | Jul 2000 | A |
| 6092174 | Roussakov | Jul 2000 | A |
| 6105105 | Trimberger | Aug 2000 | A |
| 6108760 | Mirsky et al. | Aug 2000 | A |
| 6119181 | Vorbach et al. | Sep 2000 | A |
| 6122719 | Mirsky et al. | Sep 2000 | A |
| 6125408 | McGee et al. | Sep 2000 | A |
| 6127908 | Bozler et al. | Oct 2000 | A |
| 6172520 | Lawman et al. | Jan 2001 | B1 |
| 6202182 | Abramovici et al. | Mar 2001 | B1 |
| 6219833 | Solomon et al. | Apr 2001 | B1 |
| 6230307 | Davis et al. | May 2001 | B1 |
| 6243808 | Wang | Jun 2001 | B1 |
| 6260179 | Ohsawa et al. | Jul 2001 | B1 |
| 6263430 | Trimberger et al. | Jul 2001 | B1 |
| 6279077 | Nasserbakht et al. | Aug 2001 | B1 |
| 6282627 | Wong et al. | Aug 2001 | B1 |
| 6288566 | Hanrahan et al. | Sep 2001 | B1 |
| 6289440 | Casselman | Sep 2001 | B1 |
| 6298472 | Phillips et al. | Oct 2001 | B1 |
| 6311200 | Hanrahan et al. | Oct 2001 | B1 |
| 6321366 | Tseng et al. | Nov 2001 | B1 |
| 6321373 | Ekanadham et al. | Nov 2001 | B1 |
| 6338106 | Vorbach et al. | Jan 2002 | B1 |
| 6341318 | Dakhil | Jan 2002 | B1 |
| 6347346 | Taylor | Feb 2002 | B1 |
| 6349346 | Hanrahan et al. | Feb 2002 | B1 |
| 6370596 | Dakhil | Apr 2002 | B1 |
| 6378068 | Foster et al. | Apr 2002 | B1 |
| 6389379 | Lin et al. | May 2002 | B1 |
| 6389579 | Phillips et al. | May 2002 | B1 |
| 6392912 | Hanrahan et al. | May 2002 | B1 |
| 6405299 | Vorbach et al. | Jun 2002 | B1 |
| 6421817 | Mohan et al. | Jul 2002 | B1 |
| 6425068 | Vorbach et al. | Jul 2002 | B1 |
| 6434695 | Esfahani et al. | Aug 2002 | B1 |
| 6457116 | Mirsky et al. | Sep 2002 | B1 |
| 6477643 | Vorbach et al. | Nov 2002 | B1 |
| 6480937 | Vorbach et al. | Nov 2002 | B1 |
| 6480954 | Trimberger et al. | Nov 2002 | B2 |
| 6513077 | Vorbach et al. | Jan 2003 | B2 |
| 6519674 | Lam et al. | Feb 2003 | B1 |
| 6526520 | Vorbach et al. | Feb 2003 | B1 |
| 6538468 | Moore | Mar 2003 | B1 |
| 6539438 | Ledzius et al. | Mar 2003 | B1 |
| 6539477 | Seawright | Mar 2003 | B1 |
| 6542844 | Hanna | Apr 2003 | B1 |
| 6542998 | Vorbach et al. | Apr 2003 | B1 |
| 6571381 | Vorbach et al. | May 2003 | B1 |
| 6587939 | Takano | Jul 2003 | B1 |
| 6657457 | Hanrahan et al. | Dec 2003 | B1 |
| 6687788 | Vorbach et al. | Feb 2004 | B2 |
| 6697979 | Vorbach et al. | Feb 2004 | B1 |
| 6757847 | Farkash et al. | Jun 2004 | B1 |
| 6785826 | Durham et al. | Aug 2004 | B1 |
| 6802026 | Patterson et al. | Oct 2004 | B1 |
| 20010010074 | Nishihara et al. | Jul 2001 | A1 |
| 20020038414 | Taylor et al. | Mar 2002 | A1 |
| 20020143505 | Drusinsky | Oct 2002 | A1 |
| 20020144229 | Hanrahan | Oct 2002 | A1 |
| 20020165886 | Lam | Nov 2002 | A1 |
| 20030014743 | Cooke et al. | Jan 2003 | A1 |
| 20030046607 | Vorbach | Mar 2003 | A1 |
| 20030052711 | Taylor et al. | Mar 2003 | A1 |
| 20030055861 | Lai et al. | Mar 2003 | A1 |
| 20030056085 | Vorbach | Mar 2003 | A1 |
| 20030056091 | Greenberg | Mar 2003 | A1 |
| 20030056202 | Vorbach | Mar 2003 | A1 |
| 20030093662 | Vorbach et al. | May 2003 | A1 |
| 20030097513 | Vorbach et al. | May 2003 | A1 |
| 20030123579 | Safavi et al. | Jul 2003 | A1 |
| 20030135686 | Vorbach et al. | Jul 2003 | A1 |
| 20030192032 | Andrade et al. | Oct 2003 | A1 |
| 20040015899 | May et al. | Jan 2004 | A1 |
| 20040025005 | Vorbach et al. | Feb 2004 | A1 |
| Number | Date | Country |
|---|---|---|
| 42 21 278 | Jan 1994 | DE |
| 44 16 881 | Nov 1994 | DE |
| 196 51 075 | Jun 1998 | DE |
| 196 54 593 | Jul 1998 | DE |
| 196 54 595 | Jul 1998 | DE |
| 196 54 846 | Jul 1998 | DE |
| 197 04 044 | Aug 1998 | DE |
| 197 04 728 | Aug 1998 | DE |
| 197 04 742 | Sep 1998 | DE |
| 198 07 872 | Aug 1999 | DE |
| 198 61 088 | Feb 2000 | DE |
| 199 26 538 | Dec 2000 | DE |
| 100 28 397 | Dec 2001 | DE |
| 100 36 627 | Feb 2002 | DE |
| 101 29 237 | Apr 2002 | DE |
| 102 04 044 | Aug 2003 | DE |
| 0 221 360 | May 1987 | EP |
| 0 428 327 | May 1991 | EP |
| 0 463 721 | Jan 1992 | EP |
| 0 477 809 | Apr 1992 | EP |
| 0 485 690 | May 1992 | EP |
| 0 427 029 | Aug 1992 | EP |
| 0 497 029 | Aug 1992 | EP |
| 0 539 595 | May 1993 | EP |
| 0 628 917 | Dec 1994 | EP |
| 0 678 985 | Oct 1995 | EP |
| 0 686 915 | Dec 1995 | EP |
| 0 707 269 | Apr 1996 | EP |
| 0 726 532 | Aug 1996 | EP |
| 0 735 685 | Oct 1996 | EP |
| 0 835 685 | Oct 1996 | EP |
| 0 748 051 | Dec 1996 | EP |
| 0 726 532 | Jul 1998 | EP |
| 0 926 594 | Jun 1999 | EP |
| 1 102 674 | Jul 1999 | EP |
| 1 146 432 | Oct 2001 | EP |
| 58-58672 | Apr 1983 | JP |
| 2-130023 | May 1990 | JP |
| 2-226423 | Sep 1990 | JP |
| 5-276007 | Oct 1993 | JP |
| 7-154242 | Jun 1995 | JP |
| 8-44581 | Feb 1996 | JP |
| 8-250685 | Sep 1996 | JP |
| WO9004835 | May 1990 | WO |
| WO9011648 | Oct 1990 | WO |
| WO9311503 | Jun 1993 | WO |
| WO9408399 | Apr 1994 | WO |
| WO9500161 | Jan 1995 | WO |
| WO9526001 | Sep 1995 | WO |
| WO9826356 | Jun 1998 | WO |
| WO9828697 | Jul 1998 | WO |
| WO9829952 | Jul 1998 | WO |
| WO9831102 | Jul 1998 | WO |
| WO9835299 | Aug 1998 | WO |
| WO9900731 | Jan 1999 | WO |
| WO9900739 | Jan 1999 | WO |
| WO9912111 | Mar 1999 | WO |
| WO9932975 | Jul 1999 | WO |
| WO9940522 | Aug 1999 | WO |
| WO9944120 | Sep 1999 | WO |
| WO9944147 | Sep 1999 | WO |
| WO0017771 | Mar 2000 | WO |
| WO0077652 | Dec 2000 | WO |
| WO 0155917 | Aug 2001 | WO |
| WO0213000 | Feb 2002 | WO |
| WO0221010 | Mar 2002 | WO |
| WO0229600 | Apr 2002 | WO |
| WO02071248 | Sep 2002 | WO |
| WO02071249 | Sep 2002 | WO |
| WO02103532 | Dec 2002 | WO |
| WO03017095 | Feb 2003 | WO |
| WO03023616 | Mar 2003 | WO |
| WO03025781 | Mar 2003 | WO |
| WO03032975 | Apr 2003 | WO |
| WO03036507 | May 2003 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 20030046607 A1 | Mar 2003 | US |