A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document of the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This invention relates generally to the field of In-Circuit Emulation. More particularly, this invention relates to methods and apparatus for providing conditional branching in and In-Circuit Emulation system.
In-circuit emulation (ICE) has been used by software and hardware developers for a number of years as a development tool to emulate the operation of complex circuit building blocks and permit diagnosis and debugging of hardware and software. Such in-circuit emulation is most commonly used currently to analyze and debug the behavior of complex devices such as microcontrollers and microprocessors that have internal structures that are far too complex to readily model using computer simulation software alone.
During the course of the analysis, various trace information such as time stamps, register values, data memory content, etc. may be logged in the host computer 110 for analysis and debugging by the designer. Additionally, it is generally the case that various break points can be defined by the designer that cause the program to halt execution at various points in the operation to permit detailed analysis. Other debugging tools may also be provided to enable the user to debug the operation of the circuit.
In-circuit emulation systems such as 100 have a number of disadvantages and limitations. In earlier systems, the microcontroller 130 might have been simply the production version of the microcontroller itself with no special debugging features. In such systems, the information that can be gathered by the ICE system 100 is limited to that which is available at the pinouts of the microcontroller 130 (or which can be extracted from the microcontroller using clever programming or special coding supported by the processor).
Enhancements to such early systems provided the microcontroller or other processor with an array of built-in debugging tools that use standard pins on the part and built-in instructions that facilitated in-circuit emulation. In such enhanced processors, the emulation tools are integrated into the part and thus become a design constraint for developing and improving the part. Thus, support for the debugging instruction code and the like can increase the cost and complexity of the circuit.
Newer systems often use a so-called “bond-out” microcontroller. A bond-out version of the microcontroller is a version of the production microcontroller that has been designed with special wirebonding pads on the chip that are not normally connected in the production wirebonding. The bond-out version connects these pads to pins on the microcontroller package to permit access to otherwise inaccessible points of the circuit to facilitate debugging. This technique is in common use, but has the disadvantage of imposing significant limitations on the circuit layout to permit space and circuitry associated with the special wirebonding pads. Additionally, it is usually the case that substantial interface circuitry and other special circuitry to facilitate the debugging and bond-out has to be added to the circuit. This increases the complexity, size, power consumption and potentially reduces the yield of the production part. Moreover, development resources are required to lay out the bond-out circuitry and pads and do associated design of such bond-out circuitry. Additionally, instruction code must generally be provided and supported for such an implementation. Such resources may have to be applied with every updated version of the part and may significantly impact speed, cost or flexibility in development of improved versions of the part.
A third technique, one that is used in the Pentium® and PENTIUM PRO™ series of microprocessors available from Intel Corporation, provides a special “probe mode” of operation of the processor. When the processor is placed in this probe mode, a number of internal signals are routed to a “debug port” for use by the in-circuit emulation system. This debug port is used to permit the in-circuit emulation system to communicate with the processors at all times and, when placed in probe mode, to read otherwise inaccessible probe points within the processor. Of course, providing such a probe mode requires significant design resources to design in all such probe and debug functions and associated instruction code support into the standard processor. This, of course, increases development cost, chip complexity and chip size. Moreover, such facilities become a part of the processor design which must be carried through and updated as required as enhancements to the original design are developed.
The present invention relates generally to handling conditional jumps in an ICE system. Objects, advantages and features of the invention will become apparent to those skilled in the art upon consideration of the following detailed description of the invention.
In one embodiment consistent with the present invention, an In-Circuit Emulation system has a real microcontroller (device under test) operating in lock-step with a virtual microcontroller so that registers, memory locations and other debugged data can be retrieved from the virtual microcontroller without disrupting operation of a real microcontroller. When an I/O read instruction is carried out followed by a conditional jump instruction dependent upon I/O read data, the virtual microcontroller does not have adequate time to compute the jump address after receipt of I/O read data from the real microcontroller. Thus, when the sequence of instructions is detected, the virtual microcontroller pre-calculates the jump address and makes the jump decision after receipt of the I/O read data from the real microcontroller. This is advantageous in that it permits the virtual microcontroller to operate in lock-step with the real microcontroller so that debug information can be retrieved from the virtual microcontroller to avoid disturbing operation of the real microcontroller and permit real time debugging.
An in-circuit emulation system consistent with an embodiment of the present invention has a microcontroller. A virtual microcontroller is coupled to and executes instructions in lock-step with the microcontroller, The microcontroller sends I/O read data to the virtual microcontroller. The virtual microcontroller detects a sequence of instructions comprising an I/O read instruction followed by a conditional jump instruction, and for computing a conditional jump address prior to receipt of I/O read data from the microcontroller. The virtual microcontroller further determines after receipt of the I/O read data from the microcontroller whether to proceed with instruction execution at a next consecutive address or at the conditional jump address.
In an in-circuit emulation system having a microcontroller coupled to and operating in lock-step with a virtual microcontroller, a method consistent with certain embodiments of the present invention for handling conditional jumps in the virtual microcontroller, includes detecting a sequence of instructions comprising an I/O read instruction followed by a conditional jump instruction; computing a conditional jump address prior to receipt of I/O read data from the microcontroller; and determining after receipt of the I/O read data from the microcontroller whether to proceed with instruction execution at a next consecutive address or at the conditional jump address.
In another in-circuit emulation system having a device under test coupled to and operating in lock-step with a virtual processor, a method consistent with certain embodiments of the present invention, of handling conditional jumps in the virtual processor, includes detecting a sequence of instructions compressing an I/O read instruction followed by a conditional jump instruction; computing a conditional jump address prior to receipt of I/O read data from the virtual processor; and determining after receipt of the I/O read data from the device under test whether to proceed with instruction execution at a next consecutive address or at the conditional jump address.
The above summaries are intended to illustrate exemplary embodiments of the invention, which will be best understood in conjunction with the detailed description to follow, and are not intended to limit the scope of the appended claims.
The features of the invention believed to be novel are set forth with particularity in the appended claims. The invention itself however, both as to organization and method of operation, together with objects and advantages thereof, may be best understood by reference to the following detailed description of the invention, which describes certain exemplary embodiments of the invention, taken in conjunction with the accompanying drawings in which:
In the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details or with equivalents thereof. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits that can be performed on computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities.
Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “transferring” or “executing” or “determining” or “instructing” or “issuing” or “halting” or “clearing” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail specific embodiments, with the understanding that the present disclosure is to be considered as an example of the principles of the invention and not intended to limit the invention to the specific embodiments shown and described. In the description below, like reference numerals are used to describe the same, similar or corresponding parts in the several views of the drawings.
A commercial ICE system utilizing the present invention is available from Cypress MicroSystems, Inc., for the CY8C25xxx/26xxx series of microcontrollers. Detailed information regarding this commercial product is available from Cypress Microsystems, Inc., 22027 17th Avenue SE, Suite 201, Bothell, Wash. 98021, in the form of version 1.11 of “PSOC DESIGNER: Integrated Development Environment User Guide”, which is hereby incorporated by reference. While the present invention is described in terms of an ICE system for the above exemplary microcontroller device, the invention is equally applicable to other complex circuitry including microprocessors and other circuitry that is suitable for analysis and debugging using in-circuit emulation. Moreover, the invention is not limited to the exact implementation details of the exemplary embodiment used herein for illustrative purposes.
Referring now to
The base station 218 is based upon a general purpose programmable hardware device such as a gate array configured to function as a functionally equivalent “virtual microcontroller” 220 (or other device under test (DUT)). This is accomplished using an associated integral memory 222 which stores program instructions, data, trace information and other associated information. Thus, the base station is configured as an emulator of the internal microprocessor portion of the microcontroller 232. In preferred embodiments, a field programmable gate array FPGA (or other programmable logic device) is configured to function as the virtual microcontroller 220. The FPGA and virtual microcontroller 220 will be referred to interchangeably herein. The base station 218 is coupled (e.g., using a four wire interface 226) to a standard production microcontroller 232 mounted in a mounting device referred to as a “pod”. The pod, in certain embodiments, provides connections to the microcontroller 232 that permit external probing as well as interconnection with other circuitry as might be used to simulate a system under development.
The FPGA of the base station 218 of the current embodiment is designed to emulate the core processor functionality (microprocessor functions, Arithmetic Logic Unit functions and RAM and ROM memory functions) of the Cypress MicroSystems CY8C25xxx/26xxx series microcontrollers. The CY8C25xxx/26xxx series of microcontrollers also incorporates I/O functions and an interrupt controller as well as programmable digital and analog circuitry. This circuitry need not be modeled using the FPGA 220. Instead, the I/O read information, interrupt vectors and other information can be passed to the FPGA 220 from the microcontroller 232 over the interface 226 as will be described later.
In order to minimize the need for any special ICE related functions on the microcontroller 232 itself, the FPGA 220 and associated circuitry of the base station 218 are designed to operate functionally in a manner identically to that of microprocessor portion of the production microcontroller, but to provide for access to extensive debug tools including readout of registers and memory locations to facilitate traces and other debugging operations.
The base station 218's virtual microcontroller 220 operates to execute the code programmed into the microcontroller 232 in lock-step operation with the microcontroller 232. Thus, the actual microcontroller 232 is freed of any need to provide significant special facilities for ICE, since any such facilities can be provided in the virtual microcontroller 220. The base station 218's virtual microcontroller 220 and microcontroller 232 operate together such that I/O reads and interrupts are fully supported in real time. The combination of real and virtual microcontroller behave just as the microcontroller 232 would alone under normal operating conditions. I/O reads and interrupt vectors are transferred from the microcontroller 232 to the base station 218 as will be described later. Base station 218 is then able to provide the host computer 210 with the I/O reads and interrupt vectors as well as an array of information internal to the microcontroller 232 within memory and register locations that are otherwise inaccessible.
In the designing of a microcontroller or other complex circuit such as the microcontroller 232, it is common to implement the design using the VERILOG® language (or other suitable language). Thus, it is common that the full functional design description of the microcontroller is fully available in a software format. The base station 218 of the current embodiment is based upon the commercially available SPARTAN® series of FPGAs from Xilinx, Inc., 2100 Logic Drive, San Jose, Calif. 95124. The VERILOG® description can be used as the input to the FPGA design and synthesis tools available from the FPGA manufacturer to realize the virtual microcontroller 220 (generally after timing adjustments and other debugging). Thus, design and realization of the FPGA implementation of an emulator for the microcontroller (virtual microcontroller) or other device can be readily achieved by use of the VERILOG® description along with circuitry to provide interfacing to the base station and the device under test (DUT).
In the embodiment described in connection with
The base station 218's FPGA based virtual controller 220, operating under control of host computer 210, carries out the core processor functions of microcontroller 232 and thus contains a functionally exact emulated copy of the contents of the registers and memory of the real microcontroller 232. The ICE system starts both microcontrollers (real and virtual) at the same time and keeps them running in synchronization. The real microcontroller 232 sends I/O data to the base station 218 (and in turn to the ICE software operating on the host computer 210 if required) fast enough to keep the real microcontroller 232 and the virtual microcontroller 220 of base station 218 in synchronization. Whenever the system is halted (i.e., when the system is not emulating), other information such as flash memory programming functions, test functions, etc. can be sent over the interface.
Because the microcontroller 232 operates in synchronization with the virtual microcontroller 220, less data needs to be sent over the four wire interface than would be required in an ICE system otherwise. The type of data sent over the lines is allowed to change depending on when the data is sent in the execution sequence. In other words, depending on the execution sequence time, the information over the data lines can be commands to the real microcontroller 232 or they can be data. Since the clock frequency of the real microcontroller 232 is programmable, it copies its current clock on one of the lines of the four wire interface. Moreover, the lock-step operation of the microcontroller 232 and the virtual microcontroller 220 allows the virtual microcontroller 220 to not require certain resources of the microcontroller 232 such as timers, counters, amplifiers, etc. since they are fully implemented in the microcontroller 232. In addition, the microcontroller 232 (or other DUT) can be debugged in real time without need for extensive debug logic residing on the microcontroller 232, since all registers and memory locations, etc. are available through the virtual microcontroller 220.
In the embodiment illustrated, the base interface used is a four line interface between microcontroller 232 and base station 218. This interface permits use of a standard five wire Category Five patch cable to connect the microcontroller 232 and base station 218 in one embodiment, but of course, this is not to be considered limiting. The four wire interface 226 of the present embodiment can be functionally divided into two functional portions. A data transport portion 242 carries two data lines in the current embodiment. A clock portion 246 carries a debug system clock plus the microcontroller clock signal for the microcontroller 232. Three additional lines are also provided (not shown) for supply, ground and a reset line. But, the data transport portion 242 and the clock portion 246 are of primary interest, since the supply and reset functions can be readily provided in any other suitable manner.
The two portions of the interface are implemented in the current embodiment using four lines as described, however, in other embodiments, these two portions can be implemented with as few as two wires. In the current embodiment, the microcontroller clock signal can be varied by programming (even dynamically during execution of a program). Therefore, it is desirable to have two clock signals—the microcontroller clock to easily track the microcontroller clock timing as well as a system clock that regulates the data transfer and other operations. However, in other embodiments, particularly where a clock frequency is not changed dynamically, a single clock can be used. The single clock can be multiplied or divided as required to implement the required clocking signals.
The present embodiment using an eight bit microcontroller that only reads eight bits at a time on any given I/O read. Thus, the present microcontroller 232 needs only to effect serializing and transferring a maximum of one eight bit I/O read for each instruction cycle. This is easily accommodated using two data lines transferring four bits each over four system clock cycles. However, using a clock which is two times faster, a single line could equally well transfer the data in the same time. Similarly, four lines could be used to transfer the same data in only two clock cycles. In any case, the objective is to transfer the data in a short enough time to permit the virtual microcontroller 220 to process the data and issue any needed response before the next instruction cycle begins. The time required to accomplish this is held at a minimum in the current invention, since the system synchronization eliminates need for any overhead protocol for transmission of the data.
The current embodiment of the invention uses a four line communication interface and method of communicating between the FPGA within base station 218 (acting as a “virtual microcontroller” 220 or ICE) and the real microcontroller device under test (microcontroller 232). The four line communication interface is time-dependent so that different information can be transferred at different times over a small number of communication lines. Moreover, since the two processors operate in lockstep, there is no need to provide bus arbitration, framing, or other protocol overhead to effect the communication between the microcontroller 232 and the virtual microcontroller 220. This interface is used for, among other things, transferring of I/O data from the microcontroller 232 to the FPGA 220 (since the FPGA emulates only the core processor functions of the microcontroller in the current embodiment). A first interface line (Data0) is a data line used by the microcontroller 232 to send I/O data to the FPGA based virtual microcontroller 220. This line is also used to notify the FPGA 220 of pending interrupts. This Data0 line is only driven by the real microcontroller 232. A second data line Data1, which is bidirectional, is used by the microcontroller 232 to send I/O data to the FPGA based virtual microcontroller of base station 218. In addition, the FPGA 220 uses the Data1 line to convey halt requests (i.e., to implement simple or complex breakpoints) to the microcontroller 232.
A third interface line is a 24/48 Mhz debug system clock used to drive the virtual microcontroller 220's communication state machines (the logic used within the state controller to communicate with the microcontroller 232). In the current embodiment, this clock always runs at 24 MHz unless the microcontroller 232's internal clock is running at 24 Mhz. In this case the system clock switches to 48 Mhz. Of course, these exact clock speeds are not to be considered limiting, but are presented as illustrative of the current exemplary embodiment. The fourth interface line is the internal microcontroller clock from the microcontroller 232.
A fifth line can be used to provide a system reset signal to effect the simultaneous startup of both microcontrollers. This fifth line provides a convenient mechanism to reset the microcontrollers, but in most environments, the simultaneous startup can also be effected in other ways including switching of power. Sixth and Seventh lines are provided in the current interface to provide power and ground for power supply.
The base station 218's virtual microcontroller 220 communicates with the microcontroller 232 via four signal and clock lines forming a part of the four line interface 226 forming a part of a seven wire connection as described below. The interface signals travel over a short (e.g., one foot) of CAT5 network cable. The ICE transmits break commands to the microcontroller 232 via the base station 218, along with register read/write commands when the microcontroller 232 is halted. The microcontroller 232 uses the interface to return register information when halted, and to send I/O read, interrupt vector, and watchdog information while running. The microcontroller 232 also sends a copy of its internal clocks for the ICE. The four lines of the four line interface are the first four entries in the table below. Each of the signals and their purpose is tabulated below in Table 1:
Synchronization between the microcontroller 232 and the virtual microcontroller 220 is achieved by virtue of their virtually identical operation. They are both started simultaneously by a power on or reset signal. They then track each other's operation continuously executing the same instructions using the same clocking signals. The system clock signal and the microcontroller clock signal are shared between the two microcontrollers (real and virtual) so that even if the microprocessor clock is changed during operation, they remain in lock-step.
In accordance with certain embodiments of the invention, a mechanism is provided for allowing the FPGA 220 of base station 218 and the microcontroller 232 to stop at the same instruction in response to a breakpoint event (a break or halt). The FPGA 220 has the ability monitor the microcontroller states of microcontroller 232 for a breakpoint event, due to its lock-step operation with microcontroller 232. In the process of executing an instruction, an internal start of instruction cycle (SOI) signal is generated (by both microcontrollers) that indicates that the device is about to execute a next instruction. If a breakpoint signal (a halt or break signal—the terms “halt” and “break” are used synonymously herein) is generated by the FPGA, the execution of the microcontroller 232 can be stopped at the SOI signal point before the next instruction starts.
Although the SOI signal is labeled as a signal indicating the start of an instruction, the SOI signal is used for multiple purposes in the present microcontroller. It is not required that the SOI signal actually indicate a start of instruction for many purposes, merely that there be a convenient time reference on which to base certain actions. For example, any reference signal that always takes place prior to execution of an instruction can be used as a time reference for reading a halt command. Accordingly, any such available or generated reference signal can be used equivalently as a “halt read” signal without departing from the present invention. That not withstanding, the SOI signal is conveniently used in the current embodiment and will be used as a basis for the explanation that follows, but should not be considered limiting.
Logic within the FPGA 220 of base station 218 allows not only for implementation of simple breakpoint events, but also for producing breakpoints as a result of very complex events. By way of example, and not limitation, a breakpoint can be programmed to occur when a program counter reaches 0x0030, an I/O write is happening and the stack pointer is about to overflow. Other such complex breakpoints can readily be programmed to assist in the process of debugging. Complex breakpoints are allowed, in part, also because the virtual microcontroller 220 has time to carry out complex computations and comparisons after receipt of I/O data transfers from the microcontroller 232 and before the next instruction commences. After the receipt of I/O data from the microcontroller 232, the FPGS 220 of base station 218 has a relatively long amount of computation time to determine if a breakpoint event has occurred or not. In the event a breakpoint has occurred, the microcontroller 232 can be halted and the host processor 210 is informed.
An advantage of this process is that the FPGA 220 and the microcontroller 232 can be stopped at the same time in response to a breakpoint event. Another advantage is that complex and robust breakpoint events are allowed while still maintaining breakpoint synchronization between the two devices. These advantages are achieved with minimal specialized debugging logic (to send I/O data over the interface) and without special bond-out circuitry being required in the microcontroller device under test 232.
Normal operation of the current microcontroller is carried out in a cycle of two distinct stages or phases as illustrated in connection with
At the end of the four clock cycle data transfer phase in the current embodiment, the control phase 318 begins. During this control phase, which in the current embodiment may be as short as two microcontroller clock periods (or as long as about fourteen clock periods, depending upon the number of cycles required to execute an instruction), the microcontroller 232 can send interrupt requests, interrupt data, and watchdog requests. Additionally, the virtual microcontroller 220 can issue halt (break) commands. If a halt command is issued it is read by the microcontroller at the next SOI signal. Once the control phase ends, the data transfer phase repeats. If there is no data to transfer, data0 and data1 remain idle (e.g. at a logic low state). To simplify the circuitry, I/O bus data are sent across the interface on every instruction, even if it is not a bus transfer. Since the virtual microcontroller 220 is operating in synchronization with microcontroller 232 and executing the same instructions, the emulation system knows that data transferred during non I/O red transfers can be ignored.
By operating in the manner described, any breakpoints can be guaranteed to occur in a manner such that both the virtual microcontroller 220 and the microcontroller 232 halt operation in an identical state. Moreover, although the virtual microcontroller 220 and the microcontroller 232 operate on I/O data obtained at different times, both microcontrollers are in complete synchronization by the time each SOI signal occurs. Thus, the virtual microcontroller 220 and the microcontroller 232 can be said to operate in lock-step with respect to a common time reference of the SOI signal as well as with respect to execution of any particular instruction within a set of instructions being executed by both virtual microcontroller 220 and the microcontroller 232.
A transfer of I/O data as just described is illustrated with reference to the timing diagram of
The base station 218 only transmits break (halt) commands to the microcontroller 232 during the control phase. After the microcontroller 232 is halted in response to the break command, the interface can be used to implement memory/register read/write commands. The halt command is read at the SOI signal transition (T1 or T4). The microcontroller 232 uses the interface to return register information when halted, and to send I/O read, interrupt vector and watchdog timer information while running.
To summarize, a break is handled as follows. The ICE asserts U_D0_BRQ (break) to stop the microcontroller 232. When the ICE asserts the break, the microcontroller 232 reads it as the SOI transition to high and stops. The ICE assert breaks during the control phase. The microcontroller 232 samples the U_D0_BRQ line at the rising edge of SOI (at T4) to determine if a break is to take place. After halting, the ICE may issue commands over the U_D0_BRQ line to query the status of various registers and memory locations of th virtual microcontroller or carry out other functions.
In the case of an interrupt, if an interrupt request is pending for the microcontroller 232, the system asserts U_D1_IRQ as an interrupt request during the control phase of the microcontroller 232. Since the interrupt signal comes to the virtual microcontroller 220 from the microcontroller 232 during the control phase, the virtual microcontroller 220 knows the timing of the interrupt signal going forward. That is, the interrupt signal is the synchronizing event rather than the SOI signal. In case of an interrupt, there is no SOI, because the microcontroller 232 performs special interrupt processing including reading the current interrupt vector from the interrupt controller. Since program instructions are not being executed during the interrupt processing, there is no data/control phase. The virtual microcontroller 220 expects the interrupt vector to be passed at a deterministic time across the interface during this special interrupt processing and before execution of instructions proceeds. Since the virtual microcontroller 220 of the current embodiment does not implement an interrupt controller, interrupt vectors are read from the interrupt controller upon receipt of an interrupt request over the interface. The interrupt vector data is passed over the interface using the two data lines as with the I/O read data, following the assertion of an internal microcontroller IVR_N (active low) signal during the control phase. In the current embodiment, an interrupt cycle is approximately 10 clock cycles long. Since the interrupt service cycle is much longer than the time required to transfer the current interrupt vector, the data is easily transferred using the two data lines, with no particular timing issues.
If the microcontroller 232 undergoes a watchdog reset, it asserts the IRQ (interrupt) and BRQ (break) lines indefinitely. The ICE detects this condition and further detects that the microcontroller clock has stopped. This is enough to establish that a watchdog reset has occurred. The ICE applies an external reset, and notifies the ICE software in the host computer 210.
Referring now to the block diagram of
When the software on the host is started, the INIT connection 416 is driven by the host computer 210 to a logic low causing the FPGA to clear its configuration memory 424 and begin receiving configuration data. The configuration data is stored in configuration memory to define the functionality of the FPGA. This configuration data is clocked in eight bits at a time over the data lines 420 using the data strobe signal as a clock signal. That is, an eight bit word is placed on the interface data lines 420 by host processor 210 followed by toggling the data strobe line to clock the data into the FPGA 220. This unidirectional data transfer from the host computer incorporates a set of design parameters that configure the circuitry of the FPGA 220 to function, in part, as a standard IEEE 1284 EPP interface once the FPGA 220 is programmed and functional. This programming configures the FPGA 220 to have an IEEE 1284 EPP interface with the data lines 420 connected to the FPGA as bidirectional data lines, the configuration clock configured to operate as the IEEE 1284 data clock line connected to data strobe 412 and the INIT line 416 continues to drive the FPGA clear and reset function.
Data transfer continues in this manner until the FPGA 220 is fully programmed by virtue of having received the correct amount of data required by the particular FPGA 220 used in base station 218. Thus, each time the host software is initialized, a data transfer to the FPGA 220 occurs to program the FPGA 220 to function in its capacity of a virtual microcontroller (in this embodiment). Once programming ceases, the FPGA 220 “wakes up” as a virtual microcontroller (or whatever device is programmed into the FPGA 220 in general) and begins to function as the virtual microcontroller. At this point, the interface 214 ceases to function as a unidirectional programming interface and begins to function as a bidirectional communication interface using the programmed operation of the FPGA 220 communicating through its programmed IEEE 1248 EPP parallel communication interface.
In the virtual microcontroller mode of operation of the FPGA 220, communication is carried out using the eight data lines 420 as bidirectional data lines compliant with IEEE 1284 EPP parallel communication protocol with the data strobe line 412 used as a data clock and the INIT line 416 continuing to act as a clear and reset signal. INIT line 416 can thus be used to reinitialize the programming of the FPGA 220, for example, to revise a design parameter or to simply restart the ICE system. Table 2 below summarizes the significant connections of this interface.
The programming and communication process between the host 210 and the FPGA 220 is described in flow chart 500 of
This process continues at 526 until all data are transferred at 530. The FPGA 220 then wakes up to operate with the new configuration parameters stored in configuration memory 424 at 534. The FPGA 220 continues to operate as configured at 538 until such time as the INIT line 416 is again asserted by the Host computer 210 at 544. Control then returns to 514 where the FPGA 220 is cleared and the reprogramming process proceeds as previously described.
Using this mechanism, the FPGA 220 can be coupled to the host computer 210 using a single interface 214 for both programming the FPGA 220 and for later communication with the FPGA 220 operating as the virtual microcontroller. This avoids use of multiple interface connections and/or use of a separate processor to handle details associated with configuration programming and communication with the FPGA 220.
The present invention provides for full in-circuit emulation without need for a special bond-out version of a DUT. This is accomplished using a minimal amount of design embedded within the DUT itself. In the current embodiment, the only functionality required of the production microcontroller itself is to provide for transfer of data over two lines forming the data portion of the interface and reading commands for break, watchdog and interrupt functions received over the same two data lines. These provisions are simple to implement, and use minimal circuitry. The two additional pinouts used for this function were readily accommodated in the eight bit microcontroller of the current invention. Moreover, the use of a single standard IEEE 1284 printer cable interface between the virtual microcontroller and the host computer to provide both FPGA programming and communication between the ICE system and the Host processor provides for a simple and versatile implementation.
In the above described In-Circuit Emulator system, the virtual microcontroller and the real microcontroller operate in lock-step as previously described. A problem can arise in trying to keep the two microcontrollers operating in lock-step synchronization when an I/O read operation is performed followed by a conditional jump (or branch) based on the result of the I/O read. The problem involves keeping the In-Circuit Emulator operating in lock-step operation with the real micro controller.
As previously described, the real microcontroller 232 incorporates an I/O bus and other circuitry that is not present in the virtual microcontroller 220. Thus, transfers of I/O read information from the microcontroller 232 to the virtual microcontroller 220 are used to provide the results of I/O reads to the virtual microcontroller. Although the microcontroller 232 has access to I/O read information immediately after the read, the virtual microcontroller 220 waits for data to be transferred over bus 226 in order to obtain the I/O read information.
When an instruction following an I/O read is a conditional jump instruction based on the result of the I/O read, the virtual microcontroller 220 may not have enough time to properly compute the location of a conditional jump. For example, consider the following two instructions that are executed in both microcontrollers.
The first instruction specifies reading an I/O address 08h and compares the value there with the value in memory location ffh. If the condition of the comparison is met, the “zero flag” is set. The second instruction specifies that if the zero flag is set, a jump is to be made to a specified instruction. The first instruction tells the microcontroller 232 to obtain I/O data from a peripheral location. At the end of the test instruction the microcontroller's zero flag is set, but the I/O data has not yet been forwarded to the virtual microcontroller. In fact, the I/O data will not be sent to the virtual microcontroller until just before the end of the conditional jump instruction. However, both the virtual microcontroller 220 and the microcontroller 232 need to execute the instructions and remain in lock-step synchronization.
In order to overcome this problem, the virtual microcontroller always assumes that a jump condition is true and computes the target jump location as if the condition requiring the jump has been satisfied. This permits the virtual microcontroller to compute the target jump location as the I/O data is being received. Just before the actual jump is performed, the virtual microcontroller 220 has time to evaluate the conditional jump and then, depending on the outcome of the evaluation, either use the pre-computed jump information if the condition is true or simply increment the program counter if the jump condition fails.
This process is described in connection with process 600 of
If, however, a jump is to be performed as a result of the I/O read data at 632, the address of the jump as computed in 624 is retrieved at 640 and the instruction at the jump address is retrieved at 644. Control then passes to 616 where the instruction retrieved at 644 is executed. Control then returns to 608 where the next consecutive address following the retrieved jump location is retrieved.
Using this technique, speculative execution is carried out to compute the potential jump address so that a jump can be rapidly made when a determination based on the result of I/O read data is received at the virtual microcontroller 220. Thus, even when an I/O read followed by a conditional jump is encountered, the real microcontroller 232 and virtual microcontroller 220 can continue to operate in lock-step.
While the present embodiment is implemented using a processor that does not use pipelined instructions, this is not to be considered limiting. As long as adequate time is available to serialize and transmit data over the interface, the present interface and break management techniques could equally well be implemented in a pipelined processor.
Those skilled in the art will understand that although the current invention has been explained in terms of providing in-circuit emulation of the core processing functions of a microcontroller. However, the present invention can be realized for any complex electronic device for which in-circuit emulation is needed including, but not limited to, microprocessors and other complex large scale integration devices without limitation. Moreover, although the mechanism for use of the interface between the host processor and the FPGA has been described in the environment of an ICE system, this should not be considered limiting since this interface mechanism can be used for other systems requiring FPGA programming and communication functions over a single interface.
Those skilled in the art will recognize that the present invention has been described in terms of exemplary embodiments based upon use of a programmed processor. However, the invention should not be so limited, since the present invention could be implemented using hardware component equivalents such as special purpose hardware and/or dedicated processors which are equivalents to the invention as described and claimed. Similarly, general purpose computers, microprocessor based computers, micro-controllers, optical computers, analog computers, dedicated processors and/or dedicated hard wired logic may be used to construct alternative equivalent embodiments of the present invention.
Those skilled in the art will appreciate that the program steps and associated data used to implement the embodiments described above can be implemented using disc storage as well as other forms of storage such as for example Read Only Memory (ROM) devices, Random Access Memory (RAM) devices; optical storage elements, magnetic storage elements, magneto-optical storage elements, flash memory, core memory and/or other equivalent storage technologies without departing from the present invention. Such alternative storage devices should be considered equivalents.
The present invention, as described in embodiments herein, is implemented using a programmed processor executing programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic storage medium or transmitted over any suitable electronic communication medium. However, those skilled in the art will appreciate that the processes described above can be implemented in any number of variations and in many suitable programming languages without departing from the present invention. For example, the order of certain operations carried out can often be varied, additional operations can be added or operations can be deleted without departing from the invention. Error trapping can be added and/or enhanced and variations can be made in user interface and information presentation without departing from the present invention. Such variations are contemplated and considered equivalent.
While the invention has been described in conjunction with specific embodiments, it is evident that many alternatives, modifications, permutations and variations will become apparent to those skilled in the art in light of the foregoing description. Accordingly, it is intended that the present invention embrace all such alternatives, modifications and variations as fall within the scope of the appended claims.
This application is a continuation-in-part of U.S. patent application Ser. No. 09/975,105 filed Oct. 10, 2001 now U.S. Pat. No. 7,206,733 to Nemecek entitled “Host to FPGA Interface in an In-Circuit Emulation System”, which is hereby incorporated. The application is related to, incorporates by reference and claims priority benefit under 35 U.S.C. §119(e) of provisional patent application Ser. No. 60/243,708 filed Oct. 26, 2000 to Snyder, et al. entitled “Advanced Programmable Microcontroller Device” which is also hereby incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
3600690 | White | Aug 1971 | A |
3725804 | Langan | Apr 1973 | A |
3740588 | Stratton et al. | Jun 1973 | A |
3810036 | Bioedom | May 1974 | A |
3831113 | Ahmed | Aug 1974 | A |
3845328 | Hollingsworth | Oct 1974 | A |
3940760 | Brokaw | Feb 1976 | A |
4061987 | Nagahama | Dec 1977 | A |
4134073 | MacGregor | Jan 1979 | A |
4138671 | Comer et al. | Feb 1979 | A |
4176258 | Jackson | Nov 1979 | A |
4250464 | Schade, Jr. | Feb 1981 | A |
4272760 | Prazak et al. | Jun 1981 | A |
4283713 | Phillipp | Aug 1981 | A |
4326135 | Jarrett et al. | Apr 1982 | A |
4344067 | Lee | Aug 1982 | A |
4380083 | Andersson et al. | Apr 1983 | A |
4438404 | Phillipp | Mar 1984 | A |
4475151 | Phillipp | Oct 1984 | A |
4497575 | Phillipp | Feb 1985 | A |
4608502 | Dijkmans et al. | Aug 1986 | A |
4656603 | Dunn | Apr 1987 | A |
4670838 | Kawata | Jun 1987 | A |
4689740 | Moelands et al. | Aug 1987 | A |
4692718 | Roza et al. | Sep 1987 | A |
4701907 | Collins | Oct 1987 | A |
4727541 | Mori et al. | Feb 1988 | A |
4736097 | Phillipp | Apr 1988 | A |
4740966 | Goad | Apr 1988 | A |
4755766 | Metz | Jul 1988 | A |
4757534 | Matyas et al. | Jul 1988 | A |
4773024 | Faggin et al. | Sep 1988 | A |
4794558 | Thompson | Dec 1988 | A |
4802103 | Faggin et al. | Jan 1989 | A |
4802119 | Heene et al. | Jan 1989 | A |
4809345 | Tabata et al. | Feb 1989 | A |
4812684 | Yamagiwa et al. | Mar 1989 | A |
4827401 | Hrustich et al. | May 1989 | A |
4833418 | Quintus et al. | May 1989 | A |
4868525 | Dias | Sep 1989 | A |
4876534 | Mead et al. | Oct 1989 | A |
4878200 | Asghar et al. | Oct 1989 | A |
4879461 | Phillipp | Nov 1989 | A |
4885484 | Gray | Dec 1989 | A |
4907121 | Hrassky | Mar 1990 | A |
4935702 | Mead et al. | Jun 1990 | A |
4939637 | Pawloski | Jul 1990 | A |
4942540 | Black et al. | Jul 1990 | A |
4947169 | Smith et al. | Aug 1990 | A |
4953928 | Anderson et al. | Sep 1990 | A |
4962342 | Mead et al. | Oct 1990 | A |
4964074 | Suzuki et al. | Oct 1990 | A |
4969087 | Tanagawa et al. | Nov 1990 | A |
4970408 | Hanke et al. | Nov 1990 | A |
4972372 | Ueno | Nov 1990 | A |
4977381 | Main | Dec 1990 | A |
4980652 | Tarusawa et al. | Dec 1990 | A |
4999519 | Kitsukawa et al. | Mar 1991 | A |
5043674 | Bonaccio et al. | Aug 1991 | A |
5049758 | Mead et al. | Sep 1991 | A |
5050168 | Paterson | Sep 1991 | A |
5053949 | Allison et al. | Oct 1991 | A |
5055827 | Phillipp | Oct 1991 | A |
5059920 | Anderson et al. | Oct 1991 | A |
5068622 | Mead et al. | Nov 1991 | A |
5073759 | Mead et al. | Dec 1991 | A |
5083044 | Mead et al. | Jan 1992 | A |
5095284 | Mead | Mar 1992 | A |
5097305 | Mead et al. | Mar 1992 | A |
5107146 | El-Ayat | Apr 1992 | A |
5107149 | Platt et al. | Apr 1992 | A |
5109261 | Mead et al. | Apr 1992 | A |
5119038 | Anderson et al. | Jun 1992 | A |
5120996 | Mead et al. | Jun 1992 | A |
5122800 | Phillipp | Jun 1992 | A |
5126685 | Platt et al. | Jun 1992 | A |
5127103 | Hill et al. | Jun 1992 | A |
5128871 | Schmitz | Jul 1992 | A |
5136188 | Ha et al. | Aug 1992 | A |
5140197 | Grider | Aug 1992 | A |
5142247 | Lada et al. | Aug 1992 | A |
5144582 | Steele | Sep 1992 | A |
5146106 | Anderson et al. | Sep 1992 | A |
5150079 | Williams et al. | Sep 1992 | A |
5155836 | Jordan et al. | Oct 1992 | A |
5159292 | Canfield et al. | Oct 1992 | A |
5159335 | Veneruso | Oct 1992 | A |
5160899 | Anderson et al. | Nov 1992 | A |
5161124 | Love | Nov 1992 | A |
5165054 | Platt et al. | Nov 1992 | A |
5166562 | Allen et al. | Nov 1992 | A |
5175884 | Suarez | Dec 1992 | A |
5179531 | Yamaki | Jan 1993 | A |
5198817 | Walden et al. | Mar 1993 | A |
5200751 | Smith | Apr 1993 | A |
5202687 | Distinti | Apr 1993 | A |
5204549 | Platt et al. | Apr 1993 | A |
5206582 | Ekstedt et al. | Apr 1993 | A |
5220512 | Watkins et al. | Jun 1993 | A |
5230000 | Mozingo et al. | Jul 1993 | A |
5235617 | Mallard, Jr. | Aug 1993 | A |
5241492 | Girardeau, Jr. | Aug 1993 | A |
5243554 | Allen et al. | Sep 1993 | A |
5245262 | Moody et al. | Sep 1993 | A |
5248843 | Billings | Sep 1993 | A |
5248873 | Allen et al. | Sep 1993 | A |
5258760 | Moody et al. | Nov 1993 | A |
5260592 | Mead et al. | Nov 1993 | A |
5260979 | Parker et al. | Nov 1993 | A |
5270963 | Allen et al. | Dec 1993 | A |
5276407 | Mead et al. | Jan 1994 | A |
5276890 | Arai | Jan 1994 | A |
5280199 | Itakura | Jan 1994 | A |
5280202 | Chan et al. | Jan 1994 | A |
5289023 | Mead | Feb 1994 | A |
5303329 | Mead et al. | Apr 1994 | A |
5304955 | Atriss et al. | Apr 1994 | A |
5305017 | Gerpheide | Apr 1994 | A |
5305312 | Fornek et al. | Apr 1994 | A |
5307381 | Ahuja | Apr 1994 | A |
5313618 | Pawloski | May 1994 | A |
5317202 | Waizman | May 1994 | A |
5319370 | Signore et al. | Jun 1994 | A |
5319771 | Takeda | Jun 1994 | A |
5321828 | Phillips et al. | Jun 1994 | A |
5324958 | Mead et al. | Jun 1994 | A |
5325512 | Takahashi | Jun 1994 | A |
5329471 | Swoboda et al. | Jul 1994 | A |
5331215 | Allen et al. | Jul 1994 | A |
5331571 | Aronoff et al. | Jul 1994 | A |
5334952 | Maddy et al. | Aug 1994 | A |
5336936 | Allen et al. | Aug 1994 | A |
5339213 | O'Callaghan | Aug 1994 | A |
5339262 | Rostoker et al. | Aug 1994 | A |
5341267 | Whitten | Aug 1994 | A |
5345195 | Cordoba et al. | Sep 1994 | A |
5349303 | Gerpheide | Sep 1994 | A |
5355097 | Scott et al. | Oct 1994 | A |
5357626 | Johnson et al. | Oct 1994 | A |
5361290 | Akiyama | Nov 1994 | A |
5371524 | Herczeg et al. | Dec 1994 | A |
5371860 | Mura et al. | Dec 1994 | A |
5371878 | Coker | Dec 1994 | A |
5374787 | Miller et al. | Dec 1994 | A |
5378935 | Korhonen et al. | Jan 1995 | A |
5381515 | Platt et al. | Jan 1995 | A |
5384467 | Plimon et al. | Jan 1995 | A |
5384745 | Konishi et al. | Jan 1995 | A |
5384910 | Torres | Jan 1995 | A |
5392784 | Gudaitis | Feb 1995 | A |
5394522 | Sanchez-Frank et al. | Feb 1995 | A |
5396245 | Rempfer | Mar 1995 | A |
5398261 | Marbot | Mar 1995 | A |
5399922 | Kiani et al. | Mar 1995 | A |
5408194 | Steinbach et al. | Apr 1995 | A |
5414308 | Lee et al. | May 1995 | A |
5414380 | Floyd et al. | May 1995 | A |
5416895 | Anderson et al. | May 1995 | A |
5422823 | Agrawal et al. | Jun 1995 | A |
5424689 | Gillig et al. | Jun 1995 | A |
5426378 | Ong | Jun 1995 | A |
5426384 | May | Jun 1995 | A |
5428319 | Marvin et al. | Jun 1995 | A |
5430395 | Ichimaru | Jul 1995 | A |
5430687 | Hung et al. | Jul 1995 | A |
5430734 | Gilson | Jul 1995 | A |
5432476 | Tran | Jul 1995 | A |
5438672 | Dey | Aug 1995 | A |
5440305 | Signore et al. | Aug 1995 | A |
5442772 | Childs et al. | Aug 1995 | A |
5451887 | El-Avat et al. | Sep 1995 | A |
5455525 | Ho et al. | Oct 1995 | A |
5455731 | Parkinson | Oct 1995 | A |
5455927 | Huang | Oct 1995 | A |
5457410 | Ting | Oct 1995 | A |
5457479 | Cheng | Oct 1995 | A |
5463591 | Aimoto et al. | Oct 1995 | A |
5479603 | Stone et al. | Dec 1995 | A |
5479643 | Bhaskar et al. | Dec 1995 | A |
5479652 | Dreyer et al. | Dec 1995 | A |
5481471 | Naglestad | Jan 1996 | A |
5488204 | Mead et al. | Jan 1996 | A |
5491458 | McCune | Feb 1996 | A |
5493246 | Anderson | Feb 1996 | A |
5493723 | Beck et al. | Feb 1996 | A |
5495077 | Miller et al. | Feb 1996 | A |
5495593 | Elmer et al. | Feb 1996 | A |
5495594 | MacKenna et al. | Feb 1996 | A |
5499192 | Knapp et al. | Mar 1996 | A |
5517198 | McEwan | May 1996 | A |
5519854 | Watt | May 1996 | A |
5521529 | Agrawal et al. | May 1996 | A |
5530444 | Tice et al. | Jun 1996 | A |
5530673 | Tobita et al. | Jun 1996 | A |
5530813 | Paulsen et al. | Jun 1996 | A |
5537057 | Leong et al. | Jul 1996 | A |
5541878 | LeMoncheck et al. | Jul 1996 | A |
5543588 | Bisset et al. | Aug 1996 | A |
5543590 | Gillespie et al. | Aug 1996 | A |
5543591 | Gillespie et al. | Aug 1996 | A |
5544067 | Rostoker et al. | Aug 1996 | A |
5544311 | Harenberg et al. | Aug 1996 | A |
5546433 | Tran et al. | Aug 1996 | A |
5546562 | Patel | Aug 1996 | A |
5552725 | Ray et al. | Sep 1996 | A |
5552748 | O'Shaughnessy | Sep 1996 | A |
5554951 | Gough | Sep 1996 | A |
5555452 | Callaway et al. | Sep 1996 | A |
5555907 | Phillipp | Sep 1996 | A |
5557762 | Okuaki et al. | Sep 1996 | A |
5559502 | Schutte | Sep 1996 | A |
5559996 | Fujioka et al. | Sep 1996 | A |
5563526 | Hastings et al. | Oct 1996 | A |
5563529 | Seltzer et al. | Oct 1996 | A |
5564010 | Henry et al. | Oct 1996 | A |
5564108 | Hunsaker et al. | Oct 1996 | A |
5565658 | Gerpheide et al. | Oct 1996 | A |
5566702 | Phillipp | Oct 1996 | A |
5572665 | Nakabayashi et al. | Nov 1996 | A |
5572719 | Biesterfeldt | Nov 1996 | A |
5574678 | Gorecki | Nov 1996 | A |
5574852 | Bakker et al. | Nov 1996 | A |
5574892 | Christensen | Nov 1996 | A |
5579353 | Parmenter et al. | Nov 1996 | A |
5587945 | Lin et al. | Dec 1996 | A |
5587957 | Kowalczyk et al. | Dec 1996 | A |
5590354 | Klapproth et al. | Dec 1996 | A |
5594388 | O'Shaughnessy et al. | Jan 1997 | A |
5594734 | Worsley et al. | Jan 1997 | A |
5594890 | Yamaura et al. | Jan 1997 | A |
5600262 | Kolze | Feb 1997 | A |
5604466 | Dreps et al. | Feb 1997 | A |
5608892 | Wakerly | Mar 1997 | A |
5625316 | Chambers et al. | Apr 1997 | A |
5629857 | Brennan | May 1997 | A |
5629891 | LeMoncheck et al. | May 1997 | A |
5630052 | Shah | May 1997 | A |
5630057 | Hait | May 1997 | A |
5630102 | Johnson et al. | May 1997 | A |
5631577 | Freidin et al. | May 1997 | A |
5633766 | Hase et al. | May 1997 | A |
5642295 | Smayling | Jun 1997 | A |
5646544 | Iadanza | Jul 1997 | A |
5646901 | Sharpe-Geisler et al. | Jul 1997 | A |
5648642 | Miller et al. | Jul 1997 | A |
5651035 | Tozun | Jul 1997 | A |
5663900 | Bhandari et al. | Sep 1997 | A |
5663965 | Seymour | Sep 1997 | A |
5664199 | Kuwahara | Sep 1997 | A |
5670915 | Cooper et al. | Sep 1997 | A |
5673198 | Lawman et al. | Sep 1997 | A |
5675825 | Dreyer et al. | Oct 1997 | A |
5677691 | Hosticka et al. | Oct 1997 | A |
5680070 | Anderson et al. | Oct 1997 | A |
5682032 | Phillipp | Oct 1997 | A |
5684434 | Mann et al. | Nov 1997 | A |
5684952 | Stein | Nov 1997 | A |
5686844 | Hull et al. | Nov 1997 | A |
5689195 | Cliff et al. | Nov 1997 | A |
5689196 | Schutte | Nov 1997 | A |
5691664 | Anderson et al. | Nov 1997 | A |
5691898 | Rosenberg et al. | Nov 1997 | A |
5694063 | Burlison et al. | Dec 1997 | A |
5696952 | Pontarelli | Dec 1997 | A |
5699024 | Manlove et al. | Dec 1997 | A |
5703871 | Pope et al. | Dec 1997 | A |
5706453 | Cheng et al. | Jan 1998 | A |
5708798 | Lynch et al. | Jan 1998 | A |
5710906 | Ghosh et al. | Jan 1998 | A |
5712969 | Zimmermann et al. | Jan 1998 | A |
5724009 | Collins et al. | Mar 1998 | A |
5727170 | Mitchell et al. | Mar 1998 | A |
5729704 | Stone et al. | Mar 1998 | A |
5730165 | Phillipp | Mar 1998 | A |
5732277 | Kodosky et al. | Mar 1998 | A |
5734272 | Belot et al. | Mar 1998 | A |
5734334 | Hsieh et al. | Mar 1998 | A |
5737557 | Sullivan | Apr 1998 | A |
5737760 | Grimmer et al. | Apr 1998 | A |
5745011 | Scott | Apr 1998 | A |
5748048 | Moyal | May 1998 | A |
5748875 | Tzori | May 1998 | A |
5752013 | Christensen et al. | May 1998 | A |
5754552 | Allmond et al. | May 1998 | A |
5754826 | Gamal et al. | May 1998 | A |
5757368 | Gerpheide et al. | May 1998 | A |
5758058 | Milburn | May 1998 | A |
5761128 | Watanabe | Jun 1998 | A |
5763909 | Mead et al. | Jun 1998 | A |
5764714 | Stansell et al. | Jun 1998 | A |
5767457 | Gerpheide et al. | Jun 1998 | A |
5774704 | Williams | Jun 1998 | A |
5777399 | Shibuya | Jul 1998 | A |
5781030 | Agrawal et al. | Jul 1998 | A |
5781747 | Smith et al. | Jul 1998 | A |
5784545 | Anderson et al. | Jul 1998 | A |
5790957 | Heidari | Aug 1998 | A |
5796183 | Hourmand | Aug 1998 | A |
5799176 | Kapusta et al. | Aug 1998 | A |
5802073 | Platt | Sep 1998 | A |
5802290 | Casselman | Sep 1998 | A |
5805792 | Swobada et al. | Sep 1998 | A |
5805897 | Glowny | Sep 1998 | A |
5808883 | Hawkes | Sep 1998 | A |
5811987 | Ashmore, Jr. et al. | Sep 1998 | A |
5812698 | Platt et al. | Sep 1998 | A |
5818254 | Agrawal et al. | Oct 1998 | A |
5818444 | Alimpich et al. | Oct 1998 | A |
5819028 | Manghirmalani et al. | Oct 1998 | A |
5822387 | Mar | Oct 1998 | A |
5822531 | Gorczyca et al. | Oct 1998 | A |
5828693 | Mays et al. | Oct 1998 | A |
5838583 | Varadarajan et al. | Nov 1998 | A |
5841078 | Miller et al. | Nov 1998 | A |
5841996 | Nolan et al. | Nov 1998 | A |
5844256 | Mead et al. | Dec 1998 | A |
5848285 | Kapusta et al. | Dec 1998 | A |
5850156 | Wittman | Dec 1998 | A |
5852733 | Chien et al. | Dec 1998 | A |
5854625 | Frisch et al. | Dec 1998 | A |
5857109 | Taylor | Jan 1999 | A |
5861583 | Schediwy et al. | Jan 1999 | A |
5861875 | Gerpheide | Jan 1999 | A |
5864242 | Allen et al. | Jan 1999 | A |
5864392 | Winklhofer et al. | Jan 1999 | A |
5867046 | Sugasawa | Feb 1999 | A |
5867399 | Rostoker et al. | Feb 1999 | A |
5869979 | Bocchino | Feb 1999 | A |
5870004 | Lu | Feb 1999 | A |
5870309 | Lawman | Feb 1999 | A |
5870345 | Stecker | Feb 1999 | A |
5872464 | Gradinariu | Feb 1999 | A |
5874958 | Ludolph | Feb 1999 | A |
5875293 | Bell et al. | Feb 1999 | A |
5877656 | Mann et al. | Mar 1999 | A |
5878425 | Redpath | Mar 1999 | A |
5880411 | Gillespie et al. | Mar 1999 | A |
5880598 | Duong | Mar 1999 | A |
5883623 | Cseri | Mar 1999 | A |
5886582 | Stansell | Mar 1999 | A |
5889236 | Gillespie et al. | Mar 1999 | A |
5889723 | Pascucci | Mar 1999 | A |
5889988 | Held | Mar 1999 | A |
5894226 | Koyama | Apr 1999 | A |
5894243 | Hwang | Apr 1999 | A |
5894565 | Furtek et al. | Apr 1999 | A |
5895494 | Scalzi et al. | Apr 1999 | A |
5896068 | Moyal | Apr 1999 | A |
5896330 | Gibson | Apr 1999 | A |
5898345 | Namura et al. | Apr 1999 | A |
5900780 | Hirose et al. | May 1999 | A |
5901062 | Burch et al. | May 1999 | A |
5903718 | Marik | May 1999 | A |
5905398 | Todsen et al. | May 1999 | A |
5911059 | Profit, Jr. | Jun 1999 | A |
5914465 | Allen et al. | Jun 1999 | A |
5914633 | Comino et al. | Jun 1999 | A |
5914708 | LaGrange et al. | Jun 1999 | A |
5917356 | Casal et al. | Jun 1999 | A |
5920310 | Faggin et al. | Jul 1999 | A |
5923264 | Lavelle et al. | Jul 1999 | A |
5926566 | Wang et al. | Jul 1999 | A |
5929710 | Bien | Jul 1999 | A |
5930150 | Cohen et al. | Jul 1999 | A |
5933023 | Young | Aug 1999 | A |
5933356 | Rostoker et al. | Aug 1999 | A |
5933816 | Zeanah et al. | Aug 1999 | A |
5935266 | Thurnhofer et al. | Aug 1999 | A |
5939904 | Fetterman et al. | Aug 1999 | A |
5939949 | Olgaard et al. | Aug 1999 | A |
5941991 | Kageshima | Aug 1999 | A |
5942733 | Allen et al. | Aug 1999 | A |
5943052 | Allen et al. | Aug 1999 | A |
5945878 | Westwick et al. | Aug 1999 | A |
5949632 | Barreras, Sr. et al. | Sep 1999 | A |
5952888 | Scott | Sep 1999 | A |
5959871 | Pierzchala et al. | Sep 1999 | A |
5963075 | Hiiragizawa | Oct 1999 | A |
5963105 | Nguyen | Oct 1999 | A |
5963503 | Lee | Oct 1999 | A |
5964893 | Circello et al. | Oct 1999 | A |
5966027 | Kapusta et al. | Oct 1999 | A |
5966532 | McDonald et al. | Oct 1999 | A |
5968135 | Teramoto et al. | Oct 1999 | A |
5969513 | Clark | Oct 1999 | A |
5969632 | Diamant et al. | Oct 1999 | A |
5973368 | Pearce et al. | Oct 1999 | A |
5974235 | Nunally et al. | Oct 1999 | A |
5977791 | Veenstra | Nov 1999 | A |
5978584 | Nishibata et al. | Nov 1999 | A |
5978937 | Miyamori et al. | Nov 1999 | A |
5982105 | Masters | Nov 1999 | A |
5982229 | Wong et al. | Nov 1999 | A |
5982241 | Nguyen et al. | Nov 1999 | A |
5983277 | Heile et al. | Nov 1999 | A |
5986479 | Mohan | Nov 1999 | A |
5987246 | Thomsen et al. | Nov 1999 | A |
5988902 | Holehan | Nov 1999 | A |
5994939 | Johnson et al. | Nov 1999 | A |
5996032 | Baker | Nov 1999 | A |
5999725 | Barbier et al. | Dec 1999 | A |
6002268 | Sasaki et al. | Dec 1999 | A |
6002398 | Wilson | Dec 1999 | A |
6003054 | Oshima et al. | Dec 1999 | A |
6003133 | Moughanni et al. | Dec 1999 | A |
6005814 | Mulholland et al. | Dec 1999 | A |
6005904 | Knapp et al. | Dec 1999 | A |
6008685 | Kunst | Dec 1999 | A |
6008703 | Perrott et al. | Dec 1999 | A |
6009270 | Mann | Dec 1999 | A |
6009496 | Tsai | Dec 1999 | A |
6011407 | New | Jan 2000 | A |
6012835 | Thompson et al. | Jan 2000 | A |
6014135 | Fernandes | Jan 2000 | A |
6014509 | Furtek et al. | Jan 2000 | A |
6016554 | Skrovan et al. | Jan 2000 | A |
6016563 | Fleisher | Jan 2000 | A |
6018559 | Azegami et al. | Jan 2000 | A |
6023422 | Allen et al. | Feb 2000 | A |
6023565 | Lawman et al. | Feb 2000 | A |
6026134 | Duffy et al. | Feb 2000 | A |
6026501 | Hohl et al. | Feb 2000 | A |
6028271 | Gillespie et al. | Feb 2000 | A |
6028959 | Wang et al. | Feb 2000 | A |
6031365 | Sharpe-Geisler | Feb 2000 | A |
6032268 | Swoboda et al. | Feb 2000 | A |
6034538 | Abramovici | Mar 2000 | A |
6037807 | Wu et al. | Mar 2000 | A |
6038551 | Barlow et al. | Mar 2000 | A |
6041406 | Mann | Mar 2000 | A |
6043695 | O'Sullivan | Mar 2000 | A |
6043719 | Lin et al. | Mar 2000 | A |
6049223 | Lytle et al. | Apr 2000 | A |
6049225 | Huang et al. | Apr 2000 | A |
6051772 | Cameron et al. | Apr 2000 | A |
6052035 | Nolan et al. | Apr 2000 | A |
6052524 | Pauna | Apr 2000 | A |
6057705 | Wojewoda et al. | May 2000 | A |
6058263 | Voth | May 2000 | A |
6058452 | Rangasayee et al. | May 2000 | A |
6066961 | Lee et al. | May 2000 | A |
6070003 | Gove et al. | May 2000 | A |
6072803 | Allmond et al. | Jun 2000 | A |
6075941 | Itoh et al. | Jun 2000 | A |
6079985 | Wohl et al. | Jun 2000 | A |
6081140 | King | Jun 2000 | A |
6094730 | Lopez et al. | Jul 2000 | A |
6097211 | Couts-Martin et al. | Aug 2000 | A |
6097432 | Mead et al. | Aug 2000 | A |
6101457 | Barch et al. | Aug 2000 | A |
6101617 | Burckhartt et al. | Aug 2000 | A |
6104217 | Magana | Aug 2000 | A |
6104325 | Liaw et al. | Aug 2000 | A |
6107769 | Saylor et al. | Aug 2000 | A |
6107826 | Young et al. | Aug 2000 | A |
6107882 | Gabara et al. | Aug 2000 | A |
6110223 | Southgate et al. | Aug 2000 | A |
6111431 | Estrada | Aug 2000 | A |
6112264 | Beasley et al. | Aug 2000 | A |
6121791 | Abbott | Sep 2000 | A |
6121805 | Thamsirianunt et al. | Sep 2000 | A |
6121965 | Kenney et al. | Sep 2000 | A |
6125416 | Warren | Sep 2000 | A |
6130548 | Koifman | Oct 2000 | A |
6130551 | Agrawal et al. | Oct 2000 | A |
6130552 | Jefferson et al. | Oct 2000 | A |
6133773 | Garlepp et al. | Oct 2000 | A |
6134181 | Landry | Oct 2000 | A |
6134516 | Wang et al. | Oct 2000 | A |
6137308 | Nayak | Oct 2000 | A |
6141376 | Shaw | Oct 2000 | A |
6141764 | Ezell | Oct 2000 | A |
6144327 | Distinti et al. | Nov 2000 | A |
6148104 | Wang et al. | Nov 2000 | A |
6148441 | Woodward | Nov 2000 | A |
6149299 | Aslan et al. | Nov 2000 | A |
6150866 | Eto et al. | Nov 2000 | A |
6154064 | Proebsting | Nov 2000 | A |
6157024 | Chapdelaine et al. | Dec 2000 | A |
6157270 | Tso | Dec 2000 | A |
6161199 | Szeto et al. | Dec 2000 | A |
6166367 | Cho | Dec 2000 | A |
6166960 | Marneweck et al. | Dec 2000 | A |
6167077 | Ducaroir | Dec 2000 | A |
6167559 | Furtek et al. | Dec 2000 | A |
6172571 | Moyal et al. | Jan 2001 | B1 |
6173419 | Barnett | Jan 2001 | B1 |
6175914 | Mann | Jan 2001 | B1 |
6175949 | Gristede et al. | Jan 2001 | B1 |
6181163 | Agrawal et al. | Jan 2001 | B1 |
6183131 | Holloway et al. | Feb 2001 | B1 |
6185127 | Myers et al. | Feb 2001 | B1 |
6185450 | Seguine et al. | Feb 2001 | B1 |
6185522 | Bakker | Feb 2001 | B1 |
6185703 | Guddat et al. | Feb 2001 | B1 |
6185732 | Mann et al. | Feb 2001 | B1 |
6188228 | Philipp | Feb 2001 | B1 |
6188241 | Gauthier et al. | Feb 2001 | B1 |
6188381 | van der Wal et al. | Feb 2001 | B1 |
6188391 | Seely et al. | Feb 2001 | B1 |
6188975 | Gay | Feb 2001 | B1 |
6191603 | Muradali et al. | Feb 2001 | B1 |
6191660 | Mar et al. | Feb 2001 | B1 |
6191998 | Reddy et al. | Feb 2001 | B1 |
6192431 | Dabral et al. | Feb 2001 | B1 |
6198303 | Rangasayee | Mar 2001 | B1 |
6201407 | Kapusta et al. | Mar 2001 | B1 |
6201829 | Schneider | Mar 2001 | B1 |
6202044 | Tzori | Mar 2001 | B1 |
6204687 | Schultz et al. | Mar 2001 | B1 |
6205574 | Dellinger et al. | Mar 2001 | B1 |
6208572 | Adams et al. | Mar 2001 | B1 |
6211708 | Klemmer | Apr 2001 | B1 |
6211715 | Terauchi | Apr 2001 | B1 |
6211741 | Dalmia | Apr 2001 | B1 |
6215352 | Sudo | Apr 2001 | B1 |
6219729 | Keats et al. | Apr 2001 | B1 |
6222528 | Gerpheide et al. | Apr 2001 | B1 |
6223144 | Barnett | Apr 2001 | B1 |
6223147 | Bowers | Apr 2001 | B1 |
6223272 | Coehlo et al. | Apr 2001 | B1 |
RE37195 | Kean | May 2001 | E |
6225866 | Kubota et al. | May 2001 | B1 |
6236242 | Hedberg | May 2001 | B1 |
6236275 | Dent | May 2001 | B1 |
6236278 | Olgaard | May 2001 | B1 |
6236593 | Hong et al. | May 2001 | B1 |
6239389 | Allen et al. | May 2001 | B1 |
6239798 | Ludolph et al. | May 2001 | B1 |
6240375 | Sonoda | May 2001 | B1 |
6246258 | Lesea | Jun 2001 | B1 |
6246410 | Bergeron et al. | Jun 2001 | B1 |
6249167 | Oguchi et al. | Jun 2001 | B1 |
6249447 | Boylan et al. | Jun 2001 | B1 |
6262717 | Donohue et al. | Jul 2001 | B1 |
6263302 | Hellestrand et al. | Jul 2001 | B1 |
6263339 | Hirsch | Jul 2001 | B1 |
6263484 | Yang | Jul 2001 | B1 |
7171455 | Gupta et al. | Jul 2001 | B1 |
6271679 | McClintock et al. | Aug 2001 | B1 |
6275117 | Abugharbieh et al. | Aug 2001 | B1 |
6278568 | Cloke et al. | Aug 2001 | B1 |
6280391 | Olson et al. | Aug 2001 | B1 |
6281753 | Corsi et al. | Aug 2001 | B1 |
6282547 | Hirsch | Aug 2001 | B1 |
6282551 | Anderson et al. | Aug 2001 | B1 |
6286127 | King et al. | Sep 2001 | B1 |
6288707 | Philipp | Sep 2001 | B1 |
6289300 | Brannick et al. | Sep 2001 | B1 |
6289478 | Kitagaki | Sep 2001 | B1 |
6289489 | Bold et al. | Sep 2001 | B1 |
6292028 | Tomita | Sep 2001 | B1 |
6294932 | Watarai | Sep 2001 | B1 |
6294962 | Mar | Sep 2001 | B1 |
6298320 | Buckmaster et al. | Oct 2001 | B1 |
6304014 | England et al. | Oct 2001 | B1 |
6304101 | Nishihara | Oct 2001 | B1 |
6304790 | Nakamura et al. | Oct 2001 | B1 |
6307413 | Dalmia et al. | Oct 2001 | B1 |
6310521 | Dalmia | Oct 2001 | B1 |
6310611 | Caldwell | Oct 2001 | B1 |
6311149 | Ryan et al. | Oct 2001 | B1 |
7406674 | Ogami et al. | Oct 2001 | B1 |
6314530 | Mann | Nov 2001 | B1 |
6320184 | Winklhofer et al. | Nov 2001 | B1 |
6320282 | Caldwell | Nov 2001 | B1 |
6321369 | Heile et al. | Nov 2001 | B1 |
6323846 | Westerman et al. | Nov 2001 | B1 |
6324628 | Chan | Nov 2001 | B1 |
6326859 | Goldman et al. | Dec 2001 | B1 |
6332137 | Hori et al. | Dec 2001 | B1 |
6332201 | Chin et al. | Dec 2001 | B1 |
6337579 | Mochida | Jan 2002 | B1 |
6338109 | Snyder et al. | Jan 2002 | B1 |
6339815 | Feng et al. | Jan 2002 | B1 |
6342907 | Petty et al. | Jan 2002 | B1 |
6345383 | Ueki | Feb 2002 | B1 |
6347395 | Payne et al. | Feb 2002 | B1 |
6351789 | Green | Feb 2002 | B1 |
6353452 | Hamada et al. | Mar 2002 | B1 |
6355980 | Callahan | Mar 2002 | B1 |
6356862 | Bailey | Mar 2002 | B2 |
6356958 | Lin | Mar 2002 | B1 |
6356960 | Jones et al. | Mar 2002 | B1 |
6359950 | Gossmann et al. | Mar 2002 | B2 |
6362697 | Pulvirenti | Mar 2002 | B1 |
6366174 | Berry et al. | Apr 2002 | B1 |
6366300 | Ohara et al. | Apr 2002 | B1 |
6366874 | Lee et al. | Apr 2002 | B1 |
6366878 | Grunert | Apr 2002 | B1 |
6371878 | Bowen | Apr 2002 | B1 |
6373954 | Malcolm et al. | Apr 2002 | B1 |
6374370 | Bockhaus et al. | Apr 2002 | B1 |
6377009 | Philipp | Apr 2002 | B1 |
6377575 | Mullaney et al. | Apr 2002 | B1 |
6377646 | Sha | Apr 2002 | B1 |
6380811 | Zarubinsky et al. | Apr 2002 | B1 |
6380929 | Platt | Apr 2002 | B1 |
6380931 | Gillespie et al. | Apr 2002 | B1 |
6384947 | Ackerman et al. | May 2002 | B1 |
6385742 | Kirsh et al. | May 2002 | B1 |
6388109 | Schwarz et al. | May 2002 | B1 |
6388464 | Lacey et al. | May 2002 | B1 |
6396302 | New et al. | May 2002 | B2 |
6397232 | Cheng-Hung et al. | May 2002 | B1 |
6404204 | Farruggia et al. | Jun 2002 | B1 |
6404445 | Galea et al. | Jun 2002 | B1 |
6407953 | Cleeves | Jun 2002 | B1 |
6408432 | Herrmann et al. | Jun 2002 | B1 |
6411665 | Chan et al. | Jun 2002 | B1 |
6411974 | Graham et al. | Jun 2002 | B1 |
6414671 | Gillespie et al. | Jul 2002 | B1 |
6421698 | Hong | Jul 2002 | B1 |
6425109 | Choukalos et al. | Jul 2002 | B1 |
6429882 | Abdelnur et al. | Aug 2002 | B1 |
6430305 | Decker | Aug 2002 | B1 |
6433645 | Mann et al. | Aug 2002 | B1 |
6437805 | Sojoodi et al. | Aug 2002 | B1 |
6438565 | Ammirato et al. | Aug 2002 | B1 |
6438735 | McElvain et al. | Aug 2002 | B1 |
6438738 | Elayda | Aug 2002 | B1 |
6441073 | Tanaka et al. | Aug 2002 | B1 |
6449628 | Wasson | Sep 2002 | B1 |
6449755 | Beausang et al. | Sep 2002 | B1 |
6452437 | Takeuchi et al. | Sep 2002 | B1 |
6452514 | Philipp | Sep 2002 | B1 |
6453175 | Mizell et al. | Sep 2002 | B2 |
6453461 | Chaiken | Sep 2002 | B1 |
6455304 | Angiulo et al. | Sep 2002 | B1 |
6457355 | Philipp | Oct 2002 | B1 |
6457479 | Zhuang et al. | Oct 2002 | B1 |
6460172 | Farre et al. | Oct 2002 | B1 |
6463488 | San Juan | Oct 2002 | B1 |
6466036 | Philipp | Oct 2002 | B1 |
6466078 | Stiff | Oct 2002 | B1 |
6466898 | Chan | Oct 2002 | B1 |
6473069 | Gerpheide | Oct 2002 | B1 |
6477691 | Rab et al. | Nov 2002 | B1 |
6480921 | Mansoorian et al. | Nov 2002 | B1 |
6483343 | Faith et al. | Nov 2002 | B1 |
6487700 | Fukushima | Nov 2002 | B1 |
6489899 | Ely et al. | Dec 2002 | B1 |
6490213 | Mu et al. | Dec 2002 | B1 |
6492834 | Lytle et al. | Dec 2002 | B1 |
6498720 | Glad | Dec 2002 | B2 |
6499134 | Buffet et al. | Dec 2002 | B1 |
6499359 | Washeleski et al. | Dec 2002 | B1 |
6504403 | Bangs et al. | Jan 2003 | B2 |
6507214 | Snyder | Jan 2003 | B1 |
6507215 | Piasecki et al. | Jan 2003 | B1 |
6507857 | Yalcinalp | Jan 2003 | B1 |
6509758 | Piasecki et al. | Jan 2003 | B2 |
6512395 | Lacey et al. | Jan 2003 | B1 |
6677932 | Westerman | Jan 2003 | B1 |
6516428 | Wenzel et al. | Feb 2003 | B2 |
6522128 | Ely et al. | Feb 2003 | B1 |
6523416 | Takagi et al. | Feb 2003 | B2 |
6525593 | Mar | Feb 2003 | B1 |
6529791 | Takagi | Mar 2003 | B1 |
6530065 | McDonald et al. | Mar 2003 | B1 |
6534970 | Ely et al. | Mar 2003 | B1 |
6535200 | Philipp | Mar 2003 | B2 |
6535946 | Bryant et al. | Mar 2003 | B1 |
6536028 | Katsioulas et al. | Mar 2003 | B1 |
6539534 | Bennett | Mar 2003 | B1 |
6542025 | Kutz et al. | Apr 2003 | B1 |
6542844 | Hanna | Apr 2003 | B1 |
6554469 | Thomson et al. | Apr 2003 | B1 |
6557164 | Faustini | Apr 2003 | B1 |
6559685 | Green | May 2003 | B2 |
6560306 | Duffy et al. | May 2003 | B1 |
6560699 | Konkle | May 2003 | B1 |
6563391 | Mar | May 2003 | B1 |
6564179 | Belhaj | May 2003 | B1 |
6566961 | Dasgupta et al. | May 2003 | B2 |
6567426 | van Hook et al. | May 2003 | B1 |
6567932 | Edwards et al. | May 2003 | B2 |
6570557 | Westerman et al. | May 2003 | B1 |
6571331 | Henry et al. | May 2003 | B2 |
6574590 | Kershaw et al. | Jun 2003 | B1 |
6574739 | Kung et al. | Jun 2003 | B1 |
6575373 | Nakano | Jun 2003 | B1 |
6577258 | Ruha et al. | Jun 2003 | B2 |
6580329 | Sander | Jun 2003 | B2 |
6581191 | Schubert et al. | Jun 2003 | B1 |
6587093 | Shaw et al. | Jul 2003 | B1 |
6587995 | Duboc et al. | Jul 2003 | B1 |
6588004 | Southgate et al. | Jul 2003 | B1 |
6590422 | Dillon | Jul 2003 | B1 |
6590517 | Swanson | Jul 2003 | B1 |
6591369 | Edwards et al. | Jul 2003 | B1 |
6592626 | Bauchot et al. | Jul 2003 | B1 |
6594799 | Robertson et al. | Jul 2003 | B1 |
6597212 | Wang et al. | Jul 2003 | B1 |
6597824 | Newberg et al. | Jul 2003 | B2 |
6598178 | Lee et al. | Jul 2003 | B1 |
6600346 | Macaluso | Jul 2003 | B1 |
6600351 | Bisanti et al. | Jul 2003 | B2 |
6600575 | Kohara | Jul 2003 | B1 |
6601189 | Edwards et al. | Jul 2003 | B1 |
6601236 | Curtis | Jul 2003 | B1 |
6603330 | Snyder | Aug 2003 | B1 |
6603348 | Preuss et al. | Aug 2003 | B1 |
6604179 | Volk et al. | Aug 2003 | B2 |
6606731 | Baum et al. | Aug 2003 | B1 |
6608472 | Kutz et al. | Aug 2003 | B1 |
6611220 | Snyder | Aug 2003 | B1 |
6611276 | Muratori et al. | Aug 2003 | B1 |
6611856 | Liao et al. | Aug 2003 | B1 |
6611952 | Prakash et al. | Aug 2003 | B1 |
6610936 | Gillespie et al. | Sep 2003 | B2 |
6613098 | Sorge et al. | Sep 2003 | B1 |
6614260 | Welch et al. | Sep 2003 | B1 |
6614320 | Sullam et al. | Sep 2003 | B1 |
6614374 | Gustavsson et al. | Sep 2003 | B1 |
6614458 | Lambert et al. | Sep 2003 | B1 |
6617888 | Volk | Sep 2003 | B2 |
6618854 | Mann | Sep 2003 | B1 |
6621356 | Gotz et al. | Sep 2003 | B2 |
6624640 | Lund et al. | Sep 2003 | B2 |
6625765 | Krishnan | Sep 2003 | B1 |
6628163 | Dathe et al. | Sep 2003 | B2 |
6631508 | Williams | Oct 2003 | B1 |
6634008 | Dole | Oct 2003 | B1 |
6636096 | Schaffer et al. | Oct 2003 | B2 |
6637015 | Ogami et al. | Oct 2003 | B1 |
6639586 | Gerpheide | Oct 2003 | B2 |
6642857 | Schediwy et al. | Nov 2003 | B1 |
6643151 | Nebrigic et al. | Nov 2003 | B1 |
6643810 | Whetsel | Nov 2003 | B2 |
6649924 | Philipp et al. | Nov 2003 | B1 |
6650581 | Hong et al. | Nov 2003 | B2 |
6658498 | Carney et al. | Dec 2003 | B1 |
6658633 | Devins et al. | Dec 2003 | B2 |
6661288 | Morgan et al. | Dec 2003 | B2 |
6661410 | Casebolt et al. | Dec 2003 | B2 |
6664978 | Kekic et al. | Dec 2003 | B1 |
6664991 | Chew et al. | Dec 2003 | B1 |
6667740 | Ely et al. | Dec 2003 | B2 |
6670852 | Hauck | Dec 2003 | B1 |
6673308 | Hino et al. | Jan 2004 | B2 |
6677814 | Low et al. | Jan 2004 | B2 |
6678645 | Rajsuman et al. | Jan 2004 | B1 |
6678877 | Perry et al. | Jan 2004 | B1 |
6680632 | Meyers et al. | Jan 2004 | B1 |
6680731 | Gerpheide et al. | Jan 2004 | B2 |
6681280 | Miyake et al. | Jan 2004 | B1 |
6681359 | Au et al. | Jan 2004 | B1 |
6683462 | Shimizu | Jan 2004 | B2 |
6683930 | Dalmia | Jan 2004 | B1 |
6686787 | Ling | Feb 2004 | B2 |
6686860 | Gulati et al. | Feb 2004 | B2 |
6690224 | Moore | Feb 2004 | B1 |
6691301 | Bowen | Feb 2004 | B2 |
6697754 | Alexander | Feb 2004 | B1 |
6856433 | Hatano et al. | Feb 2004 | B2 |
6701340 | Gorecki | Mar 2004 | B1 |
6701487 | Ogami et al. | Mar 2004 | B1 |
6701508 | Bartz et al. | Mar 2004 | B1 |
6704381 | Moyal et al. | Mar 2004 | B1 |
6704879 | Parrish | Mar 2004 | B1 |
6704889 | Veenstra et al. | Mar 2004 | B2 |
6704893 | Bauwens et al. | Mar 2004 | B1 |
6705511 | Dames et al. | Mar 2004 | B1 |
6711226 | Williams et al. | Mar 2004 | B1 |
6711731 | Weiss | Mar 2004 | B2 |
6713897 | Caldwell | Mar 2004 | B2 |
6714066 | Gorecki et al. | Mar 2004 | B2 |
6714817 | Daynes et al. | Mar 2004 | B2 |
6715132 | Bartz et al. | Mar 2004 | B1 |
6717474 | Chen et al. | Apr 2004 | B2 |
6718294 | Bortfeld | Apr 2004 | B1 |
6718520 | Merryman et al. | Apr 2004 | B1 |
6718533 | Schneider et al. | Apr 2004 | B1 |
6724220 | Snyder et al. | Apr 2004 | B1 |
6728900 | Meli | Apr 2004 | B1 |
6728902 | Kaiser et al. | Apr 2004 | B2 |
6730863 | Gerpheide | May 2004 | B1 |
6731552 | Perner | May 2004 | B2 |
6732347 | Camilleri et al. | May 2004 | B1 |
6738858 | Fernald et al. | May 2004 | B1 |
6744323 | Moyal et al. | Jun 2004 | B1 |
6748569 | Brooke et al. | Jun 2004 | B1 |
6750852 | Gillespie | Jun 2004 | B2 |
6750889 | Livingston et al. | Jun 2004 | B1 |
6754765 | Chang et al. | Jun 2004 | B1 |
6754849 | Tamura | Jun 2004 | B2 |
6757882 | Chen et al. | Jun 2004 | B2 |
6765407 | Snyder | Jul 2004 | B1 |
6768337 | Kohno et al. | Jul 2004 | B2 |
6768352 | Maher et al. | Jul 2004 | B1 |
6769622 | Tournemille et al. | Aug 2004 | B1 |
6771552 | Fujisawa | Aug 2004 | B2 |
6774644 | Eberlein | Aug 2004 | B2 |
6781456 | Pradhan | Aug 2004 | B2 |
6782068 | Wilson et al. | Aug 2004 | B1 |
6785881 | Bartz et al. | Aug 2004 | B1 |
6788116 | Cook et al. | Sep 2004 | B1 |
6788221 | Ely et al. | Sep 2004 | B1 |
6788521 | Nishi | Sep 2004 | B2 |
6791377 | Ilchmann et al. | Sep 2004 | B2 |
6792584 | Eneboe et al. | Sep 2004 | B1 |
6798218 | Kasperkovitz | Sep 2004 | B2 |
6798299 | Mar et al. | Sep 2004 | B1 |
6799198 | Huboi et al. | Sep 2004 | B1 |
6806771 | Hildebrant et al. | Oct 2004 | B1 |
6806782 | Motoyoshi et al. | Oct 2004 | B2 |
6809275 | Cheng et al. | Oct 2004 | B1 |
6809566 | Xin-LeBlanc | Oct 2004 | B1 |
6810442 | Lin et al. | Oct 2004 | B1 |
6625869 | Bang | Nov 2004 | B2 |
6815979 | Ooshita | Nov 2004 | B2 |
6816544 | Bailey et al. | Nov 2004 | B1 |
6819142 | Viehmann et al. | Nov 2004 | B2 |
6823282 | Snyder | Nov 2004 | B1 |
6823497 | Schubert et al. | Nov 2004 | B2 |
6825689 | Snyder | Nov 2004 | B1 |
6828824 | Betz et al. | Dec 2004 | B2 |
6829727 | Pawloski | Dec 2004 | B1 |
6836169 | Richmond et al. | Dec 2004 | B2 |
6839774 | Ahn et al. | Jan 2005 | B1 |
6842710 | Gehring et al. | Jan 2005 | B1 |
6847203 | Conti et al. | Jan 2005 | B1 |
6850117 | Weber et al. | Feb 2005 | B2 |
6850554 | Sha | Feb 2005 | B1 |
6853598 | Chevallier | Feb 2005 | B2 |
6854067 | Kutz et al. | Feb 2005 | B1 |
6859884 | Sullam | Feb 2005 | B1 |
6862240 | Burgan | Mar 2005 | B2 |
6864710 | Lacey et al. | Mar 2005 | B1 |
6865429 | Schneider et al. | Mar 2005 | B1 |
6865504 | Larson et al | Mar 2005 | B2 |
6868500 | Kutz et al. | Mar 2005 | B1 |
6871253 | Greeff et al. | Mar 2005 | B2 |
6871331 | Bloom et al. | Mar 2005 | B1 |
6873203 | Latham, II et al. | Mar 2005 | B1 |
6873210 | Mulder et al. | Mar 2005 | B2 |
6880086 | Kidder et al. | Apr 2005 | B2 |
6888453 | Lutz et al. | May 2005 | B2 |
6888538 | Ely et al. | May 2005 | B2 |
6892310 | Kutz et al. | May 2005 | B1 |
6892322 | Snyder | May 2005 | B1 |
6893724 | Lin et al. | May 2005 | B2 |
6894928 | Owen | May 2005 | B2 |
6897390 | Caldwell et al. | May 2005 | B2 |
6898703 | Ogami et al. | May 2005 | B1 |
6900663 | Roper et al. | May 2005 | B1 |
6901563 | Ogami et al. | May 2005 | B1 |
6903402 | Miyazawa | Jun 2005 | B2 |
6903613 | Mitchell et al. | Jun 2005 | B1 |
6904570 | Foote et al. | Jun 2005 | B2 |
6910126 | Mar et al. | Jun 2005 | B1 |
6911857 | Stiff | Jun 2005 | B1 |
6917661 | Scott et al. | Jul 2005 | B1 |
6922821 | Nemecek | Jul 2005 | B1 |
6924668 | Muller et al. | Aug 2005 | B2 |
6934674 | Douezy et al. | Aug 2005 | B1 |
6937075 | Lim et al. | Aug 2005 | B2 |
6940356 | McDonald et al. | Sep 2005 | B2 |
6941336 | Mar | Sep 2005 | B1 |
6944018 | Caldwell | Sep 2005 | B2 |
6949811 | Miyazawa | Sep 2005 | B2 |
6949984 | Siniscalchi | Sep 2005 | B2 |
6950954 | Sullam et al. | Sep 2005 | B1 |
6950990 | Rajarajan et al. | Sep 2005 | B2 |
6952778 | Snyder | Oct 2005 | B1 |
6954511 | Tachimori | Oct 2005 | B2 |
6954904 | White | Oct 2005 | B2 |
6956419 | Mann et al. | Oct 2005 | B1 |
6957180 | Nemecek | Oct 2005 | B1 |
6957242 | Snyder | Oct 2005 | B1 |
6963233 | Puccio et al. | Nov 2005 | B2 |
6967511 | Sullam | Nov 2005 | B1 |
6967960 | Bross et al. | Nov 2005 | B1 |
6969978 | Dening | Nov 2005 | B2 |
6970844 | Bierenbaum | Nov 2005 | B1 |
6973400 | Cahill-O'Brien et al. | Dec 2005 | B2 |
6975123 | Malang et al. | Dec 2005 | B1 |
6980060 | Boerstler et al. | Dec 2005 | B2 |
6981090 | Kutz et al. | Dec 2005 | B1 |
6996799 | Cismas et al. | Feb 2006 | B1 |
7005933 | Shutt | Feb 2006 | B1 |
7009444 | Scott | Mar 2006 | B1 |
7015735 | Kimura et al. | Mar 2006 | B2 |
7017145 | Taylor | Mar 2006 | B2 |
7017409 | Zielinski et al. | Mar 2006 | B2 |
7020854 | Killian et al. | Mar 2006 | B2 |
7023257 | Sullam | Apr 2006 | B1 |
7024636 | Weed | Apr 2006 | B2 |
7030513 | Caldwell | Apr 2006 | B2 |
7030656 | Lo et al. | Apr 2006 | B2 |
7030688 | Dosho et al. | Apr 2006 | B2 |
7030782 | Ely et al. | Apr 2006 | B2 |
7034603 | Brady et al. | Apr 2006 | B2 |
7042301 | Sutardja | May 2006 | B2 |
7047166 | Dancea | May 2006 | B2 |
7055035 | Allison et al. | May 2006 | B2 |
7058921 | Hwang et al. | Jun 2006 | B1 |
7073158 | McCubbrey | Jul 2006 | B2 |
7076420 | Snyder et al. | Jul 2006 | B1 |
7086014 | Bartz et al. | Aug 2006 | B1 |
7088166 | Reinschmidt et al. | Aug 2006 | B1 |
7089175 | Nemecek et al. | Aug 2006 | B1 |
7091713 | Erdelyi et al. | Aug 2006 | B2 |
7092980 | Mar et al. | Aug 2006 | B1 |
7098414 | Caldwell | Aug 2006 | B2 |
7099818 | Nemecek | Aug 2006 | B1 |
7109978 | Gillespie et al. | Sep 2006 | B2 |
7117485 | Wilkinson et al. | Oct 2006 | B2 |
7119550 | Kitano et al. | Oct 2006 | B2 |
7119602 | Davis | Oct 2006 | B2 |
7124376 | Zaidi et al. | Oct 2006 | B2 |
7127630 | Snyder | Oct 2006 | B1 |
7129793 | Gramegna | Oct 2006 | B2 |
7129873 | Kawamura | Oct 2006 | B2 |
7132835 | Arcus | Nov 2006 | B1 |
7133140 | Lukacs et al. | Nov 2006 | B2 |
7133793 | Ely et al. | Nov 2006 | B2 |
7138841 | Li | Nov 2006 | B1 |
7138868 | Sanchez et al. | Nov 2006 | B2 |
7139530 | Kusbel | Nov 2006 | B2 |
7141968 | Hibbs et al. | Nov 2006 | B2 |
7141987 | Hibbs et al. | Nov 2006 | B2 |
7149316 | Kutz et al. | Dec 2006 | B1 |
7150002 | Anderson et al. | Dec 2006 | B1 |
7151528 | Taylor et al. | Dec 2006 | B2 |
7154294 | Liu et al. | Dec 2006 | B2 |
7161936 | Barrass et al. | Jan 2007 | B1 |
7162410 | Nemecek et al. | Jan 2007 | B1 |
7176701 | Wachi et al. | Feb 2007 | B2 |
7180342 | Shutt et al. | Feb 2007 | B1 |
7185162 | Snyder | Feb 2007 | B1 |
7185321 | Roe et al. | Feb 2007 | B1 |
7188063 | Snyder | Mar 2007 | B1 |
7193901 | Ruby et al. | Mar 2007 | B2 |
7200507 | Chen et al. | Apr 2007 | B2 |
7206733 | Nemecek | Apr 2007 | B1 |
7212189 | Shaw et al | May 2007 | B2 |
7221187 | Snyder et al. | May 2007 | B1 |
7227389 | Gong et al. | Jun 2007 | B2 |
7236921 | Nemecek et al. | Jun 2007 | B1 |
7250825 | Wilson et al. | Jul 2007 | B2 |
7256588 | Howard et al. | Aug 2007 | B2 |
7265633 | Stiff | Sep 2007 | B1 |
7281846 | McLeod | Oct 2007 | B2 |
7282905 | Chen et al. | Oct 2007 | B2 |
7288977 | Stanley | Oct 2007 | B2 |
7295049 | Moyal et al. | Nov 2007 | B1 |
7298124 | Kan et al. | Nov 2007 | B2 |
7301835 | Joshi et al. | Nov 2007 | B2 |
7307485 | Snyder et al. | Dec 2007 | B1 |
7312616 | Snyder | Dec 2007 | B2 |
7323879 | Kuo et al. | Jan 2008 | B2 |
7342405 | Eldridge et al. | Mar 2008 | B2 |
7358714 | Watanabe et al. | Apr 2008 | B2 |
7367017 | Maddocks et al. | Apr 2008 | B2 |
7376001 | Joshi et al. | May 2008 | B2 |
7386740 | Kutz et al. | Jun 2008 | B2 |
7400183 | Sivadasan et al. | Jul 2008 | B1 |
7421251 | Westwick et al. | Sep 2008 | B2 |
7466307 | Trent, Jr. et al. | Dec 2008 | B2 |
7542533 | Jasa et al. | Jun 2009 | B2 |
7554847 | Lee | Jun 2009 | B2 |
20010002129 | Zimmerman et al. | May 2001 | A1 |
20010010083 | Satoh | Jul 2001 | A1 |
20010045861 | Bloodworth et al. | Sep 2001 | A1 |
20010038392 | Humpleman et al. | Nov 2001 | A1 |
20010043081 | Rees | Nov 2001 | A1 |
20010044927 | Karniewicz | Nov 2001 | A1 |
20010047509 | Mason et al. | Nov 2001 | A1 |
20020010716 | McCartney et al. | Jan 2002 | A1 |
20020016706 | Cooke et al. | Feb 2002 | A1 |
20020023110 | Fortin et al. | Feb 2002 | A1 |
20020042696 | Garcia et al. | Apr 2002 | A1 |
20020052729 | Kyung et al. | May 2002 | A1 |
20020059543 | Cheng et al. | May 2002 | A1 |
20020063688 | Shaw et al. | May 2002 | A1 |
20020065646 | Waldie et al. | May 2002 | A1 |
20020068989 | Ebisawa et al. | Jun 2002 | A1 |
20020073119 | Richard | Jun 2002 | A1 |
20020073380 | Cooke | Jun 2002 | A1 |
20020080186 | Frederiksen | Jun 2002 | A1 |
20020085020 | Carroll, Jr. | Jul 2002 | A1 |
20020091739 | Ferlitsch et al. | Jul 2002 | A1 |
20020109722 | Rogers et al. | Aug 2002 | A1 |
20020116168 | Kim | Aug 2002 | A1 |
20020122060 | Markel | Sep 2002 | A1 |
20020129334 | Dane et al. | Sep 2002 | A1 |
20020133771 | Barnett | Sep 2002 | A1 |
20020133794 | Kanapathippillai et al. | Sep 2002 | A1 |
20020138516 | Igra | Sep 2002 | A1 |
20020121679 | Bazarjani et al. | Oct 2002 | A1 |
20020145433 | Morrise et al. | Oct 2002 | A1 |
20020152234 | Estrada et al. | Oct 2002 | A1 |
20020152449 | Lin | Oct 2002 | A1 |
20020156885 | Thakkar | Oct 2002 | A1 |
20020156929 | Hekmatpour | Oct 2002 | A1 |
20020156998 | Casselman | Oct 2002 | A1 |
20020161568 | Sample et al. | Oct 2002 | A1 |
20020161802 | Gabrick et al. | Oct 2002 | A1 |
20020166100 | Meding | Nov 2002 | A1 |
20020174134 | Goykhman | Nov 2002 | A1 |
20020174411 | Feng et al. | Nov 2002 | A1 |
20020188910 | Zizzo | Dec 2002 | A1 |
20020191029 | Gillespie et al. | Dec 2002 | A1 |
20030011653 | Webb | Jan 2003 | A1 |
20030014447 | White | Jan 2003 | A1 |
20030025734 | Boose et al. | Feb 2003 | A1 |
20030041235 | Meyer | Feb 2003 | A1 |
20030056071 | Triece et al. | Mar 2003 | A1 |
20030058469 | Buis et al. | Mar 2003 | A1 |
20030061572 | McClannahan et al. | Mar 2003 | A1 |
20030062889 | Ely et al. | Apr 2003 | A1 |
20030080755 | Kobayashi | May 2003 | A1 |
20030097640 | Abrams et al. | May 2003 | A1 |
20030105620 | Bowen | Jun 2003 | A1 |
20030126947 | Margaria | Jul 2003 | A1 |
20030135842 | Frey et al. | Jul 2003 | A1 |
20030149961 | Kawai et al. | Aug 2003 | A1 |
20030154466 | Snider | Aug 2003 | A1 |
20030229482 | Cook et al. | Dec 2003 | A1 |
20030229877 | Bersch et al. | Dec 2003 | A1 |
20040054821 | Warren et al. | Mar 2004 | A1 |
20040153802 | Kudo et al. | Aug 2004 | A1 |
20040205553 | Hall et al. | Oct 2004 | A1 |
20040205617 | Light | Oct 2004 | A1 |
20040205695 | Fletcher | Oct 2004 | A1 |
20040221238 | Cifra et al. | Nov 2004 | A1 |
20050024341 | Gillespie et al. | Feb 2005 | A1 |
20050143968 | Odom et al. | Jun 2005 | A9 |
20050240917 | Wu | Oct 2005 | A1 |
20050248534 | Kehlstadt | Nov 2005 | A1 |
20050280453 | Hsieh | Dec 2005 | A1 |
20060032680 | Elias et al. | Feb 2006 | A1 |
20060097991 | Hotelling et al. | May 2006 | A1 |
20060273804 | Delorme et al. | Dec 2006 | A1 |
20070139074 | Reblewski | Jun 2007 | A1 |
20080095213 | Lin et al. | Apr 2008 | A1 |
20080186052 | Needham et al. | Aug 2008 | A1 |
20080259998 | Venkataraman et al. | Oct 2008 | A1 |
Number | Date | Country |
---|---|---|
19710829 | Sep 1998 | DE |
0308583A2 | Mar 1989 | EP |
368398 | May 1990 | EP |
0450863A2 | Oct 1991 | EP |
0499383A2 | Aug 1992 | EP |
0639816A2 | Feb 1995 | EP |
1170671A1 | Jan 2002 | EP |
1205848 | May 2002 | EP |
1191423A2 | Feb 2003 | EP |
404083405 | Mar 1992 | JP |
405055842 | Mar 1993 | JP |
06021732 | Jan 1994 | JP |
404095408 | Mar 2002 | JP |
9532478 | Nov 1995 | WO |
PCTUS9617305 | Jun 1996 | WO |
PCTUS9834376 | Aug 1998 | WO |
PCTUS9909712 | Feb 1999 | WO |
Number | Date | Country | |
---|---|---|---|
60243708 | Oct 2000 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09975105 | Oct 2001 | US |
Child | 10002217 | US |