Breakpoint control in an in-circuit emulation system

Information

  • Patent Grant
  • 8103496
  • Patent Number
    8,103,496
  • Date Filed
    Thursday, November 1, 2001
    23 years ago
  • Date Issued
    Tuesday, January 24, 2012
    12 years ago
Abstract
A breakpoint control mechanism for an In-Circuit Emulation system. Break bits are assigned to each instruction address and stored in a lookup table within a base station containing a virtual microcontroller. As a program counter increments, a determination is made as to whether or not a break is to occur by reading the break bit from the lookup table. When a break is to occur, a breakpoint controller issues a break command over an interface to an actual microcontroller under test, thus freeing the microcontroller under test from having to include a look-up table on board for a breakpoint control or otherwise provide specifically for breakpoint control.
Description
COPYRIGHT NOTICE

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 or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.


FIELD OF THE INVENTION

This invention relates generally to the field of In Circuit Emulation. More particularly, this invention relates to methods and apparatus for providing breakpoint control in an In-Circuit Emulation System having a real microcontroller and a virtual microcontroller.


BACKGROUND OF THE INVENTION

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.



FIG. 1 illustrates an exemplary conventional in-circuit emulation arrangement 100 used to model, analyze and debug the operation of a microcontroller device. In this arrangement, a host computer (e.g., a personal computer) 110 is connected to a debug logic block 120 which is further connected to a special version of the microcontroller device that has been developed specially for use in emulation. Operational instructions are loaded from the host computer 110 through the debug logic 120 to the special version of the microcontroller 130. The debug logic 120 monitors operation of the microcontroller 130 as the instructions are executed. Depending upon the application, this operation may be monitored while the special version of the microcontroller 130 is interconnected with the circuitry that is intended to interface a production version of the microcontroller in the finished product under development. Such interconnection may be via simulation within host computer 110 or as actual circuitry or some combination thereof. As the circuit is stepped through its operation, the debug logic gathers information about the state of various components of the microcontroller 130 during operation and feeds that information back to the host computer 110 for analysis.


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.


SUMMARY OF THE INVENTION

The present invention relates generally to handling breakpoints 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 a breakpoint control mechanism for an In-Circuit Emulation system is provided. Break bits are assigned to each instruction address and stored in a lookup table within a base station containing a virtual microcontroller. As a program counter increments, a determination is made as to whether or not a break is to occur by reading the break bit from the lookup table. When a break is to occur, a breakpoint controller issues a break command over an interface to an actual microcontroller under test, thus freeing the microcontroller under test from having to include a look-up table on board for a breakpoint control or otherwise provide specifically for breakpoint control. This, advantageously, helps to minimize the dedicated debug circuitry required on the actual microcontroller.


An In-Circuit Emulation system breakpoint control consistent with an embodiment of the present invention has a microcontroller and a virtual microcontroller operating in lock-step synchronization. A breakpoint lookup table is associated with the virtual microcontroller with a break bit associated with each of a plurality of instruction addresses, the break bit being set to indicate that a break is to occur at a specified instruction address. A breakpoint controller sends a break message to the microcontroller whenever an instruction address is encountered that is associated with a set break bit.


A method of establishing a breakpoint in a microcontroller in an In-Circuit Emulation system consistent with certain embodiments of the present invention includes storing a breakpoint lookup table in a virtual microcontroller; executing a sequence of instructions in a microcontroller and in the virtual microcontroller in lock-step synchronization; at each instruction of the sequence of instructions, inspecting the breakpoint lookup table for a set break bit associated with instruction; and if a break bit is set, sending a break message to the microcontroller to implement a break in instruction execution.


A method of establishing a breakpoint in an In-Circuit Emulation system consistent with certain embodiments of the present invention include providing an microcontroller and a virtual microcontroller executing a sequence of instructions in lock-step synchronization, the virtual microcontroller having a breakpoint lookup table; determining an instruction address which a break is to precede; and programming the breakpoint lookup table to have a set break bit at the instruction address with a break is to precede.


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.





BRIEF DESCRIPTION OF THE DRAWINGS

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:



FIG. 1 is a block diagram of a conventional In-Circuit Emulation system.



FIG. 2 is a block diagram of an exemplary In-Circuit Emulation system consistent with certain microcontroller embodiments of the present invention.



FIG. 3 is an illustration of the operational phases of an In-Circuit Emulation system consistent with an embodiment of the present invention.



FIG. 4 is an illustration of the operational phases of an In-Circuit Emulation system consistent with an embodiment of the present invention viewed from a virtual microcontroller perspective.



FIG. 5 is a timing diagram useful in understanding an exemplary data and control phase of operation of certain embodiments of the present invention.



FIG. 6 is a block diagram isolating the host to FPGA interface consistent with an embodiment of the present invention



FIG. 7 is a flow chart describing the operation of the host to FPGA interface in an embodiment consistent with the present invention.



FIG. 8 is a block diagram illustrating breakpoint control consistent with an embodiment of the present invention.



FIG. 9 is a flow chart describing the break process consistent with an embodiment of the present invention.





DETAILED DESCRIPTION OF THE INVENTION

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.


NOTATION AND NOMENCLATURE

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.


Breakpoint Control in an in-Circuit Emulation System in Accordance with the Invention


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 FIG. 2, an architecture for implementation of an embodiment of an ICE system of the present invention is illustrated as system 200. In system 200, a Host computer 210 (e.g., a personal computer based on a PENTIUM® class microprocessor) is interconnected (e.g., using a standard PC interface 214 such as a parallel printer port connection, a universal serial port (USB) connection, etc.) with a base station 218. The host computer 210 generally operates to run an ICE computer program to control the emulation process and further operates in the capacity of a logic analyzer to permit a user to view information provided from the base station 218 for use in analyzing and debugging a system under test or development.


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 1/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 FIG. 2, the actual production microcontroller 232 carries out its normal functions in the intended application and passes 110 information and other information needed for debugging to the FPGA 220. The virtual microcontroller 220 implemented within the FPGA of base station 218 serves to provide the operator with visibility into the core processor functions that are inaccessible in the production microcontroller 232. Thus, the FPGA 220, by virtue of operating in lock-step operation with the microcontroller 232 provides an exact duplicate of internal registers, memory contents, interrupt vectors and other useful debug information. Additionally, memory 222 can be used to store information useful in trace operations that is gathered by the FPGA 220 during execution of the program under test. This architecture, therefore, permits the operator to have visibility into the inner workings of the microcontroller 232 without need to provide special bondouts and expensive circuitry on the microcontroller itself.


The base station 218's FPGA based virtual microcontroller 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 basic 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 (Data1) 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 Data1 line is only driven by the real microcontroller 232. A second data line (Data2), 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 Data2 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:











TABLE 1






Signal Direction




with Respect to


Signal Name
Base Station 218
Description







U_HCLK
In
24/48 MHz data clock driven


(Data Clock or

by microcontroller 232. This


HCLOCK)

clock is used to drive the ICE




virtual microcontroller com-




munication state machines.




This clock always runs at 24




MHz, unless the U_CCLK




clock is running at 24 MHz—




then it switches to 48 MHz.


U_CCLK
In
The internal microcontroller 232


(microcontroller

CPU clock.


Clock or


CCLOCK)


U_D1_IRQ
In
One of two data lines used by


(Data1)

the microcontroller 232 to




send I/O data to the ICE. This




line is also used to notify the




ICE of pending interrupts. This




line is only driven by the




microcontroller 232 (i.e., uni-




directional).


U_D0_BRQ
In/Out
One of two data lines used by


(Data0)

the microcontroller 232 to send




I/O data to the ICE. The ICE




uses this line to convey halt




requests and other information




to the microcontroller 232.




This line is used for bi-




directional communication.


ICE_POD_RST
Out
Optional active high reset signal


(RESET)

to microcontroller 232.


ICE_POD_PW_R
Out
Optional power supply to micro-


(POWER)

controller 232.


ICE_POD_GND
Out
Optional ground wire to micro-




controller 232.









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 notwithstanding, 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 FPGA 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 FIG. 3. The cycle begins with the initial startup or reset of both the microcontroller 232 and the virtual microcontroller 220 at 304. Once both microcontrollers are started in synchronism, the data phase 310 is entered in which serialized data is sent from the microcontroller to the virtual microcontroller. At the start of this phase the internal start of instruction (SOI) signal signifies the beginning of this phase will commence with the next low to high transition of the system clock. In the current embodiment, this data phase lasts four system clock cycles, but this is only intended to be exemplary and not limiting. The SOI signal further indicates that any I/O data read on the previous instruction is now latched into a register and can be serialized and transmitted to the virtual microcontroller. Upon the start of the data phase 310, any such I/O read data (eight bits of data in the current embodiment) is serialized into two four bit nibbles that are transmitted using the Data0 and Data1 lines of the current interface data portion 242. One bit is transmitted per data line at the clock rate of the system clock. Thus, all eight bits are transmitted in the four clock cycles of the data transfer phase.


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, data1 and data2 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 read transfers can be ignored.



FIG. 4 shows this operational cycle from the perspective of the virtual microcontroller 220. During the data transfer phase 310, the serialized data is received over Data0 and Data1. It should be noted that prior to receipt of this I/O data, the microcontroller 232 has already had access to this data for several clock cycles and has already taken action on the data. However, until receipt of the I/O read data during the data transfer phase 310, the virtual microcontroller 220 has not had access to the data. Thus, upon receipt of the I/O read data during the data phase 310, the virtual microcontroller 220 begins processing the data to catch up with the existing state of microcontroller 232. Moreover, once the I/O data has been read, the host computer 210 or virtual microcontroller 220 may determine that a complex or simple breakpoint has been reached and thus need to issue a break request. Thus, the virtual microcontroller should be able to process the data quickly enough to make such determinations and issue a break request prior to the next SOI. Break requests are read at the internal SOI signal, which also serves as a convenient reference time marker that indicates that I/O data has been read and is available for transmission by the microcontroller 232 to the virtual microcontroller 220.


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 FIG. 5. After the microcontroller 232 completes an I/O read instruction, it sends the read data back to the base station 218 to the virtual microcontroller, since the virtual microcontroller 220 of the present embodiment implements only the core processor functions (and not the I/O functions). The ICE system can expect the incoming data stream for an I/O read to commence with the first positive edge of U_HCLK (the debug or system clock) when SOI signal for the following instruction is at a predetermined logic level (e.g., a logic high). Thus, at time T1, the SOI signal makes a transition to a logic high and one system clock cycle later at time T2, the data transfer phase 310 begins. This timing allows the ICE system to get the read data to the emulated accumulator of base station 218 before it is needed by the next instruction's execution. Note that the first SOI pulse shown in FIG. 5 represents the first SOI following the I/O read instruction (but could be any suitable reference time signal). Transfer of the data from the microcontroller 232 is carried out using the two data lines (data2 and data1, shown as U_D0_BRK and U_D1_IRQ) with each line carrying four bits of an eight bit word. During this data transfer phase 310, an eight bit transfer representing the I/O read data can take place from the microcontroller 232 to the base station 210 in the four clock cycles between T2 and T3. The control phase 318 starts at time T3 and continues until the beginning of the next data transfer phase 310. The SOI signal at T4 indicates that the next data transfer phase is about to start and serves as a reference time to read the data2 line to detect the presence of any halt signal from the virtual microcontroller 220. The current control phase 318 ends at T5 and the next data transfer phase 310 begins.


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 at 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 the 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 FIG. 6, the interface between the host processor 210 and the base station 218 of a preferred embodiment of the present invention is illustrated. In this embodiment, the connection between the host processor 210 and the FPGA 220 is advantageously provided using a standard IEEE 1284 parallel printer cable 214 with communication carried out using a modification of standard EPP (enhanced parallel port) communication protocol. Of particular interest in this communication interface is the data strobe connection 412, the INIT (initialize) connection 416 and the eight data connections (data line 0 through data line 7) 420. These connection are directly connected to the FPGA with the INIT connection connected to the FPGA RESET pin. The data strobe line 412 is connected to the FPGA configuration clock input and the eight data lines 420 are connected to data input pins of the FPGA.


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 8 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.











TABLE 2






Program Mode
Free Running “Awake”


Interface Lines
Function
Mode Function







Data bits 0
Unidirectional data into
Bidirectional EPP


through 7
the FPGA
compliant communication


Data Strobe
Unidirectional
EPP Compliant Data



programming clock
Strobe


INIT
Low signal indicates
Low signal indicates clear



clear configuration
configuration memory and



memory and prepare to
enter programming mode -



receive new
prepare to receive new



configuration data
configuration data









The programming and communication process between the host 210 and the FPGA 220 is described in flow chart 500 of FIG. 7 starting at 502. The host software is loaded and initialized at 506, and asserts a logic low on the INIT line 416 to signal a reset and clearing of the FPGA 220's configuration memory 424 at 510. In response to this signal, the FPGA 220 clears configuration memory 424 at 514. The Host computer 210 then begins transferring a new set of configuration parameters to the FPGA 220 at 520 by strobing data into the FPGA's configuration memory 424. This set of configuration parameters configures the FPGA 220 to have an IEEE 1284 EPP compliant communication interface. In other embodiments, other modes of communication could also be used (e.g., extended communication port (ECP) or serial communications) could be used without departing from the invention.


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 conventional In-Circuit Emulation systems, breaks are set by inserting a halt command or a trap within the microcontroller or other device's operational code. In other devices, a memory such as a Random Access Memory is provided in the microcontroller device wherein a halt or break bit is provided for each line of code. In such a system, a break bit defines the line of code wherein a break in processing is to occur. Unfortunately, with such devices the requirement for storing break addresses within the microcontroller suggests that the microcontroller has to be burdened with additional memory useful only for the purpose of providing this break function for debugging.


The present invention utilizes the virtual microcontroller 220 and base station 218 to provide break functions so that the microcontroller 232 is freed of the burden of implementation of a break table. FIG. 8 illustrates the mechanism utilized in conjunction with certain embodiments of the present invention in which a look-up table 610 is provided within the base station 218. Look-up table 610 has one address location for each line of assembly instruction. Associated with each address is a break bit such that (in this example) a logic 0 in the address location means that no break is to occur while a logic 1 indicates that a break is to occur. In FIG. 8, the 1 in the break bit location adjacent address 00000003 indicates that a break should occur at assembly instruction number 3. Since this function is carried out within the base station 218, there is no reason to have such functionality embedded within standard microcontroller 232, and no reason to provide such functionality in a bond-out device used for In-Circuit Emulation.


In operation, a program counter 614 is used to count down the program instructions as they are retrieved for execution. In addition, program counter 614 addresses look-up table 610 to determine whether or not a break bit is present. If a break bit is present, a breakpoint controller 618 is notified that a break is to occur at the next instruction and breakpoint controller 618 sends a break command over interface 226 to standard microcontroller 232. In this manner, the debug software operating in host computer 210 can insert a breakpoint at any instruction within look-up table 610 to effect a break in the operation of the program. Since microcontroller 232 requires no memory for a look-up table analogous to 610, the microcontroller can be made smaller while still providing full break functionality. In this manner, host computer 210 can implement a break at any desired point so that debug operations can be carried out.


Referring now to FIG. 9, a process 700 describes an embodiment of the present breakpoint control function in greater detail starting at 704. At 708, the host computer 210 programs the look-up table 610 with any desired breakpoints. The system is then initialized to assembly instruction address 0 (the first address) at 712 and the breakpoint bit from the look-up table 610 is read at the current assembly instruction address at 716. At 720, if the break bit is set to 1, control passes to 726 where a break command is sent to microcontroller 232 and the system halts at 730. In this halted mode at 730, the host computer 210 can read memory locations and registers from the virtual microcontroller 220 in order to ascertain various operational status information and thereby carry out debug operations. In the event the break bit is equal to 0 at 720, the instruction at the current assembly instruction address is read at 734 and then executed at 738. The assembly instruction address is then incremented at 742 and control returns to 716 where the next break bit is read from the look-up table 610.


Thus, a mechanism is provided for minimizing the amount of circuitry required within the actual standard microcontroller 232 while still providing the ability to do extensive debugging functions by providing for easy breakpoint programming in the host computer 210.


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.

Claims
  • 1. An In-Circuit Emulation system breakpoint control, comprising: a microcontroller;a virtual microcontroller, which is not identical to and emulates operation of the microcontroller, configured to operate in lock-step synchronization with the microcontroller by executing same instructions using same clocking signals;a breakpoint lookup table which is accessed in response to operation of said virtual microcontroller, wherein said breakpoint lookup table comprises a plurality of break bits associated with a sequence of instruction addresses, and wherein said sequence of instruction addresses are associated with the virtual microcontroller, and wherein each of said sequence addresses has a corresponding break bit, the break bit being set to indicate that a break is to occur at a specified address; anda breakpoint controller that sends a break message to the microcontroller whenever an instruction address is encountered that is associated with a set break bit.
  • 2. The apparatus according to claim 1, wherein the break message is sent to the microcontroller over an interface linking the microcontroller with the virtual microcontroller.
  • 3. The apparatus according to claim 1, further comprising a program counter that increments through the breakpoint lookup table as a sequence of instructions is executed.
  • 4. The apparatus according to claim 1, further comprising a host computer that programs the breakpoint lookup table to set a breakpoint bit at an instruction address where a break is to occur.
  • 5. The apparatus according to claim 1, wherein the microcontroller and the virtual microcontroller operate in a two phase cycle comprising a control phase and a data transfer phase.
  • 6. The apparatus according to claim 5, wherein the break message is sent during the control phase.
  • 7. The apparatus according to claim 1, wherein said virtual microcontroller emulates said microcontroller such that the content of said microcontroller can be accessed to reduce debugging related functions on said microcontroller.
  • 8. A method of establishing a breakpoint in a microcontroller in an In-Circuit Emulation system, comprising: storing a breakpoint lookup table in a virtual microcontroller, which is not identical to and emulates operation of the microcontroller, wherein said breakpoint lookup table comprises a plurality of break bits associated with a sequence of instructions, wherein each of said sequence of instructions has a corresponding break bit;executing said sequence of instructions in the microcontroller and in the virtual microcontroller in lock-step synchronization by using same clocking signals;at each instruction of the sequence of instructions to be executed by said virtual microcontroller, inspecting the breakpoint lookup table for a set break bit associated with instruction; andif a break bit is set, sending a break message to the microcontroller to implement a break in instruction execution.
  • 9. The method according to claim 8, wherein the lookup table comprises a memory having a break bit associated with each instruction address.
  • 10. The method according to claim 8, further comprising programming the lookup table from a host computer.
  • 11. The method according to claim 8, further comprising incrementing a program counter through the breakpoint lookup table as a sequence of instructions is executed.
  • 12. The method according to claim 8, further comprising halting execution of instructions in the microcontroller and the virtual microcontroller prior to the instruction associated with the set break bit.
  • 13. The method according to claim 8, wherein the microcontroller and the virtual microcontroller operate in a two phase cycle comprising a control phase and a data transfer phase.
  • 14. The method according to claim 13, wherein the break message is sent during the control phase.
  • 15. The method according to claim 8, wherein said virtual microcontroller emulates said microcontroller such that the content of said microcontroller can be accessed to reduce debugging related functions on said microcontroller.
  • 16. A method of establishing a breakpoint in an In-Circuit Emulation system, comprising: executing a sequence of instructions in a microcontroller and in a virtual microcontroller, which is not identical to and emulates operation of the microcontroller, in lock-step synchronization by using same clocking signals, the virtual microcontroller having a breakpoint lookup table, wherein said breakpoint lookup table comprises a plurality of break bits associated with said sequence of instructions, and wherein each of said sequence of instructions has a corresponding break bit;determining an instruction address which a break is to precede;programming the breakpoint lookup table to have a set break bit at the instruction address which the break is to precede;at each instruction of the sequence of instructions to be executed by said virtual microcontroller, inspecting the breakpoint lookup table for a set break bit associated with instruction; andhalting execution of instructions in the microcontroller and the virtual microcontroller prior to the instruction associated with the set break bit.
  • 17. The method according to claim 16, wherein if a break bit is set, sending a break message to the microcontroller to implement a break in instruction execution.
  • 18. The method according to claim 16, wherein the lookup table comprises a memory having a break bit associated with each instruction address.
  • 19. The method according to claim 16, wherein the programming of the lookup table is carried out from a host computer.
  • 20. The method according to claim 16, wherein the microcontroller and the virtual microcontroller operate in a two phase cycle comprising a control phase and a data transfer phase, and wherein the break message is sent during the control phase.
  • 21. The method according to claim 16, wherein said virtual microcontroller emulates said microcontroller such that the content of said microcontroller can be accessed to reduce debugging related functions on said microcontroller.
CROSS REFERENCE TO RELATED DOCUMENTS

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.

US Referenced Citations (1167)
Number Name Date Kind
3600690 White Aug 1971 A
3725804 Langan Apr 1973 A
3740588 Stratton et al. Jun 1973 A
3805245 Brooks et al. Apr 1974 A
3810036 Bloedorn 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 Philipp Aug 1981 A
4326135 Jarrett et al. Apr 1982 A
4344067 Lee Aug 1982 A
4380083 Andersson et al. Apr 1983 A
4438404 Philipp Mar 1984 A
4475151 Philipp Oct 1984 A
4497575 Philipp Feb 1985 A
4604363 Newhouse et al. Aug 1986 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 Philipp Apr 1988 A
4740966 Goad Apr 1988 A
4755766 Metz 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
4807183 Kung et al. Feb 1989 A
4809345 Tabata et al. Feb 1989 A
4812684 Yamagiwa et al. Mar 1989 A
4813013 Dunn Mar 1989 A
4827401 Hrustich et al. May 1989 A
4831546 Mitsuta et al. May 1989 A
4833418 Quintus et al. May 1989 A
4868525 Dias Sep 1989 A
4876466 Kondou et al. Oct 1989 A
4876534 Mead et al. Oct 1989 A
4878200 Asghar et al. Oct 1989 A
4879688 Turner et al. Nov 1989 A
4885484 Gray Dec 1989 A
4907121 Hrassky Mar 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 Philipp 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
5099191 Galler 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 Philipp 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
5184061 Lee et al. Feb 1993 A
5196740 Austin Mar 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
5225991 Dougherty Jul 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
5276739 Krokstad 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
5331315 Crosette Jul 1994 A
5331571 Aronoff et al. Jul 1994 A
5334952 Maddy et al. Aug 1994 A
5335342 Pope 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
5341044 Ahanin 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 Lewis et al. Dec 1994 A
5371860 Mura et al. Dec 1994 A
5371878 Coker Dec 1994 A
5371883 Gross et al. Dec 1994 A
5374787 Miller et al. Dec 1994 A
5377333 Nakagoshi 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
5408235 Doyle 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
5451887 El-Avat et al. Sep 1995 A
5453904 Higashiyama 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
5497119 Tedrow et al. Mar 1996 A
5499192 Knapp et al. Mar 1996 A
5500823 Martin 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
5542055 Amini 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, Jr. et al. Sep 1996 A
5555907 Philipp 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 Philipp Oct 1996 A
5572665 Nakabayashi 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
5594876 Getzlaff 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
5614861 Harada Mar 1997 A
5625316 Chambers et al. Apr 1997 A
5625583 Hyatt 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
5652893 Ben-Meir et al. Jul 1997 A
5661433 LaRosa et al. Aug 1997 A
5663900 Bhandari et al. Sep 1997 A
5663965 Seymour Sep 1997 A
5664199 Kuwahara Sep 1997 A
5666480 Leung et al. 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 Philipp Oct 1997 A
5684434 Mann et al. Nov 1997 A
5684952 Stein Nov 1997 A
5686844 Hull et al. Nov 1997 A
5687325 Chang 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
5708589 Beauvais Jan 1998 A
5710906 Ghosh et al. Jan 1998 A
5712969 Zimmermann et al. Jan 1998 A
5721931 Gephardt et al. Feb 1998 A
5724009 Collins et al. Mar 1998 A
5727170 Mitchell et al. Mar 1998 A
5728933 Schultz et al. Mar 1998 A
5729704 Stone et al. Mar 1998 A
5730165 Philipp 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
5801958 Dangelo et al. Sep 1998 A
5802073 Platt Sep 1998 A
5802290 Casselman Sep 1998 A
5805792 Swoboda 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
5818736 Leibold 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
5844404 Caser 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
5887189 Bims et al. Mar 1999 A
5889236 Gillespie et al. Mar 1999 A
5889723 Pascucci Mar 1999 A
5889936 Chan 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
5909544 Anderson, II et al. Jun 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
5930148 Bjorksten et al. Jul 1999 A
5930150 Cohen et al. Jul 1999 A
5931959 Kwiat Aug 1999 A
5933023 Young Aug 1999 A
5933356 Rostoker et al. Aug 1999 A
5933816 Zeanah et al. Aug 1999 A
5935233 Jeddeloh 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
5956279 Mo et al. 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
6003107 Ranson 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
6014723 Tremblay 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
6035320 Kiriaki et al. 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
6055584 Bridges et al. Apr 2000 A
6057705 Wojewoda et al. May 2000 A
6058263 Voth May 2000 A
6058452 Rangasayee et al. May 2000 A
6061511 Marantz 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
6140853 Lo 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
6167364 Stellenberg et al. Dec 2000 A
6167559 Furtek et al. Dec 2000 A
6172428 Jordan Jan 2001 B1
6172571 Moyal 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
6216254 Pesce et al. Apr 2001 B1
6219729 Keats et al. Apr 2001 B1
6222528 Gerpheide et al. Apr 2001 B1
6223144 Barnett et al. 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
6253250 Evans 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
6271679 McClintock et al. Aug 2001 B1
6272646 Rangasayee 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
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
6369660 Wei 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 Kirsch 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
6401230 Ahanessians et al. Jun 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
6421817 Mohan et al. 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
6434187 Beard 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
6445211 Saripella Sep 2002 B1
6449628 Wasson Sep 2002 B1
6449755 Beausang et al. Sep 2002 B1
6449761 Greidinger 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
6456304 Angiulo et al. Sep 2002 B1
6457355 Philipp Oct 2002 B1
6457479 Zhuang et al. Oct 2002 B1
6460172 Insenser 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
6473825 Worley et al. Oct 2002 B1
483343 Faith at el. Nov 2002 A1
6477691 Bergamash et al. Nov 2002 B1
6480921 Mansoorian 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
6496969 Roy et al. Dec 2002 B2
6496971 Lesea 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
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
6526556 Stoica et al. Feb 2003 B1
6529791 Takagi Mar 2003 B1
6530065 McDonald et al. Mar 2003 B1
6534970 Ely et al. Mar 2003 B1
6535061 Darmawaskita et al. Mar 2003 B2
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
6542845 Grucci et al. Apr 2003 B1
6546297 Gaston et al. Apr 2003 B1
6552933 Roohparvar Apr 2003 B2
6553057 Sha Apr 2003 B1
6554469 Thomson et al. Apr 2003 B1
6556044 Langhammer et al. Apr 2003 B2
6557164 Faustini Apr 2003 B1
6559685 Green May 2003 B2
6560306 Duffy 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
6571373 Devins et al. May 2003 B1
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
6578174 Zizzo 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
6590589 Sluiman et al. 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 Yee 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
6610936 Gillespie et al. Aug 2003 B2
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
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
6615167 Devins 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
6628311 Fang Sep 2003 B1
6631508 Williams Oct 2003 B1
6634008 Dole Oct 2003 B1
6634009 Molson et al. Oct 2003 B1
6636096 Schaffer et al. Oct 2003 B2
6636169 Distinti et al. Oct 2003 B1
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
6661724 Snyder et al. Dec 2003 B1
6664978 Kekic et al. Dec 2003 B1
6664991 Chew et al. Dec 2003 B1
6667642 Moyal Dec 2003 B1
6667740 Ely et al. Dec 2003 B2
6670852 Hauck Dec 2003 B1
6671869 Davidson et al. Dec 2003 B2
6673308 Hino et al. Jan 2004 B2
6677814 Low et al. Jan 2004 B2
6677932 Westerman Jan 2004 B1
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
6691193 Wang et al. Feb 2004 B1
6691301 Bowen Feb 2004 B2
6697754 Alexander Feb 2004 B1
6701340 Gorecki Mar 2004 B1
6701487 Ogami et al. Mar 2004 B1
6701508 Bartz et al. Mar 2004 B1
6703961 Mueck et al. Mar 2004 B2
6704381 Moyal et al. Mar 2004 B1
6704879 Parrish Mar 2004 B1
6704889 Herrmann 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
6725441 Keller 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
6732068 Sample et al. May 2004 B2
6732347 Camilleri et al. May 2004 B1
6738858 Fernald et al. May 2004 B1
6744323 Moyal et al. Jun 2004 B1
6745369 May et al. Jun 2004 B1
6748569 Brooke et al. Jun 2004 B1
6750852 Gillespie Jun 2004 B2
6750876 Atsatt et al. Jun 2004 B1
6750889 Livingston Jun 2004 B1
6754101 Terzioglu et al. Jun 2004 B2
6754723 Kato Jun 2004 B2
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
6784821 Lee 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
6815979 Ooshita Nov 2004 B2
6816544 Bailey et al. Nov 2004 B1
6817005 Mason et al. Nov 2004 B2
6819142 Viehmann et al. Nov 2004 B2
6823282 Snyder Nov 2004 B1
6823497 Schubert et al. Nov 2004 B2
6825689 Snyder Nov 2004 B1
6825869 Bang Nov 2004 B2
6828824 Betz et al. Dec 2004 B2
6829727 Pawloski Dec 2004 B1
6834384 Fiorella, II et al. Dec 2004 B2
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
6856433 Hatano et al. Feb 2005 B2
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
6876941 Nightingale Apr 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
6901014 Son et al. May 2005 B2
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
6941538 Hwang et al. Sep 2005 B2
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
6961686 Kodosky et al. Nov 2005 B2
6963233 Puccio et al. Nov 2005 B2
6963908 Lynch et al. Nov 2005 B1
6966039 Bartz et al. Nov 2005 B1
6967511 Sullam Nov 2005 B1
6967960 Bross et al. Nov 2005 B1
6968346 Hekmatpour Nov 2005 B2
6969978 Dening Nov 2005 B2
6970844 Bierenbaum Nov 2005 B1
6971004 Pleis et al. 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
6988192 Snider Jan 2006 B2
6996799 Cismas et al. Feb 2006 B1
7005933 Shutt Feb 2006 B1
7009444 Scott Mar 2006 B1
7010773 Bartz et al. 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
7023215 Steenwyk Apr 2006 B2
7023257 Sullam Apr 2006 B1
7024636 Weed Apr 2006 B2
7024654 Bersch et al. Apr 2006 B2
7026861 Steenwyk 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
7079166 Hong 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 et al. Aug 2006 B1
7100133 Meiyappan et al. Aug 2006 B1
7103108 Beard Sep 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
7152027 Andrade et al. Dec 2006 B2
7154294 Liu et al. Dec 2006 B2
7161936 Barrass et al. Jan 2007 B1
7171455 Gupta et al. Jan 2007 B1
7176701 Wachi et al. Feb 2007 B2
7178096 Rangan 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
7199783 Wenstrand et al. Apr 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
7266768 Ferlitsch et al. Sep 2007 B2
7281846 McLeod Oct 2007 B2
7282905 Chen et al. Oct 2007 B2
7283151 Nihei et al. Oct 2007 B2
7283410 Hsu et al. Oct 2007 B2
7287112 Pleis et al. Oct 2007 B1
7288977 Stanley Oct 2007 B2
7290244 Peck et al. Oct 2007 B2
7295049 Moyal et al. Nov 2007 B1
7298124 Kan et al. Nov 2007 B2
7301835 Joshi et al. Nov 2007 B2
7305510 Miller Dec 2007 B2
7307485 Snyder et al. Dec 2007 B1
7308608 Pleis et al. Dec 2007 B1
7312616 Snyder Dec 2007 B2
7323879 Kuo et al. Jan 2008 B2
7324380 Negut et al. Jan 2008 B2
7332976 Brennan Feb 2008 B1
7342405 Eldridge et al. Mar 2008 B2
7358714 Watanabe et al. Apr 2008 B2
7367017 Maddocks et al. Apr 2008 B2
7373437 Seigneret et al. May 2008 B2
7376001 Joshi et al. May 2008 B2
7376904 Cifra et al. May 2008 B2
7386740 Kutz et al. Jun 2008 B2
7392011 Jacomb-Hood Jun 2008 B1
7392431 Swoboda Jun 2008 B2
7400183 Sivadasan et al. Jul 2008 B1
7406674 Ogami et al. Jul 2008 B1
7421251 Westwick et al. Sep 2008 B2
7461274 Merkin Dec 2008 B2
7466307 Trent, Jr. et al. Dec 2008 B2
7542533 Jasa et al. Jun 2009 B2
7554847 Lee Jun 2009 B2
7616509 Qureshi et al. Nov 2009 B2
5708798 Lynch et al. Apr 2010 A1
7809545 Ciolfi et al. Oct 2010 B2
5390173 Spinney et al. May 2011 A1
20010002129 Zimmerman et al. May 2001 A1
20010010083 Satoh Jul 2001 A1
20010038392 Humpleman et al. Nov 2001 A1
20010043081 Rees Nov 2001 A1
20010044927 Karniewicz Nov 2001 A1
20010045861 Bloodworth et al. 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
20020099863 Comeau et al. Jul 2002 A1
20020109722 Rogers et al. Aug 2002 A1
20020116168 Kim Aug 2002 A1
20020121679 Bazarjani et al. Sep 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
20020144099 Muro, Jr. 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
20020156998 Casselman 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
20020191029 Gillespie et al. Dec 2002 A1
20030011639 Webb Jan 2003 A1
20030014447 White Jan 2003 A1
20030025734 Boose et al. Feb 2003 A1
20030033588 Alexander 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
20030066057 RuDusky Apr 2003 A1
20030080755 Kobayashi May 2003 A1
20030086300 Noyes et al. 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
20030229482 Cook et al. Dec 2003 A1
20040018711 Madurawe Jan 2004 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
20050024341 Gillespie et al. Feb 2005 A1
20050066152 Garey Mar 2005 A1
20050143968 Odom et al. Jun 2005 A9
20050240917 Wu Oct 2005 A1
20050248534 Kehlstadt Nov 2005 A1
20050280453 Hsieh Dec 2005 A1
20060015862 Odom et al. Jan 2006 A1
20060031768 Shah et al. Feb 2006 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
20070258458 Kapoor Nov 2007 A1
20080086668 Jefferson et al. Apr 2008 A1
20080095213 Lin et al. Apr 2008 A1
20080186052 Needham et al. Aug 2008 A1
20080259998 Venkataraman et al. Oct 2008 A1
20080294806 Swindle et al. Nov 2008 A1
20090066427 Brennan Mar 2009 A1
20090322305 De Cremoux Dec 2009 A1
Foreign Referenced Citations (19)
Number Date Country
19710829 Sep 1998 DE
0308583A2 Mar 1989 EP
368398 May 1990 EP
0450863 Oct 1991 EP
0450863 Oct 1991 EP
0499383A2 Aug 1992 EP
0639816A2 Feb 1995 EP
01170671 Jan 2002 EP
1205848 May 2002 EP
9 423A2 Feb 2003 EP
404083405 Mar 1992 JP
405055842 Mar 1993 JP
06021732 Jan 1994 JP
404095408 Mar 2002 JP
9532478 Nov 1995 WO
9532481 Nov 1995 WO
PCTUS9617305 Jun 1996 WO
PCTUS9834376 Aug 1998 WO
PCTUS9909712 Feb 1999 WO
Provisional Applications (1)
Number Date Country
60243708 Oct 2000 US
Continuation in Parts (1)
Number Date Country
Parent 09975105 Oct 2001 US
Child 10001477 US