Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect

Information

  • Patent Grant
  • 6721918
  • Patent Number
    6,721,918
  • Date Filed
    Friday, December 29, 2000
    23 years ago
  • Date Issued
    Tuesday, April 13, 2004
    20 years ago
Abstract
A bus has a first set of data lines and a second set of data lines. In an embodiment, the bus has a selector circuit to count the number of data lines in the first set of data lines and second set of data lines that have a certain value and to select one set of data lines to be inverted based on the count. In an embodiment, the bus has a first inverter to invert the set of data lines selected and a second inverter to re-invert the set of data lines selected at a receiver based on the value of an added control line.
Description




FIELD OF THE INVENTION




Embodiments of the present invention relate to data busses. In particular, the present invention relates to a method and apparatus for minimizing the effects generated by simultaneous switching of outputs in a bus.




BACKGROUND




A bus is a collection of wires, interfaces, and control elements through which information is transmitted between components in a computer system. A bus may connect to components such as a processor, cache memory, or Random Access Memory (RAM) and may connect to subsystems or devices such as a disk drive, input device, or output device. The component transmitting information over a bus may be referred to as the “transmitting node” and the component receiving information at the output of the bus may be referred to as the “receiving node.”




Data is typically transmitted over a bus in digital format with each wire or signal in the bus transmitting a single bit of information (i.e., binary value). During normal operation, each signal is either transmitting a voltage in a high range, which may represent the value of “one,” or transmitting a voltage in a low range, which may represent the value of “zero.” A signal may be said to be in a “high state” when it is driving a high voltage range and may be said to be in a “low state” when it is driving a low voltage range. A collection of signals in the bus may be referred to as a “databus.” The individual states of the signals in a databus taken together define a set of states which the bus may be in. For example, when a bus is driving the value of FFFF it is one state, and when the bus is driving the value F0FF it is in another state.




During normal operation of the bus, signals are repeatedly switched between states as dictated by the content of the data being transferred. The state of the bus is sampled by a receiving node at time intervals, or cycles, which may be defined by a clock or strobe. Any signal in the bus may be changed from one cycle to the next, and it is not uncommon for the values being driven on each of the signals in the bus to switch states for consecutive cycles. For example, a large number of signals in a bus will change from one state to another from one cycle to the next (i.e., simultaneously) if a large number of the digital values being transmitted over the bus changes from one clock interval to the next. In a high speed bus the signals may be switched between states at a high rate, such as for example 1 million times per second.




A power supply or “rail” (which may be designated VCC) supplies the power to drive a signal from a low state to a high state. To go from a high state to a low state, the capacitance is drained from the signal to a ground. The switching of states of a large number of signals between cycles is known as simultaneous switching and causes a condition known as the simultaneous switching outputs (“SSO”) effect. For example, when a large number of signals change from a high state to a low state during a clock cycle, this may cause the ground to rise in voltage. Because the ground has risen in voltage, it may take longer to drain the charge from the signals and, thus, longer to change the state of the signals. Similarly, when a large number of signals change from a low state to a high state during a clock cycle, this may cause the VCC to be lowered in voltage. In general, a large change in current relative to time (di/dt) produces supply offsets that may affect input buffers and adjacent drivers. A lower power supply voltage or higher ground voltage may slow outputs. A large di/dt can also cause errors on data strobes and may put noise on adjacent signals.




The SSO effect may be difficult to find, understand and correct and is particularly a problem in high speed busses or busses with a large width. The SSO effect can be minimized by distributing multiple grounds for each bus, for example two or three grounds for every bus pair. However, the use of multiple grounds and supply pins substantially increases the cost of the bus and the board area used.











DESCRIPTION OF THE DRAWINGS





FIG. 1

is a partial block diagram of a system including an apparatus to encode a bus to minimize simultaneous switching according to an embodiment of the present invention.





FIG. 2

is a partial block diagram of a bus according to an embodiment of the present invention.





FIG. 3

is a table that contains sample bus states according to an embodiment of the present invention.





FIG. 4

is a flow diagram of a method of encoding a bus to minimize simultaneous switching according to an embodiment of the present invention.











DETAILED DESCRIPTION




Embodiments of the present invention relate to a method and apparatus for encoding a bus to minimize the impact of simultaneous switching effect by eliminating the cases where the entire bus draws current from VCC or drain to ground in a single cycle. In an embodiment, a databus is divided into right and left halves. Before data is driven down the bus for each cycle, the number of “ones” for each half the databus is counted and the half that has the most “ones” is inverted. In a further embodiment, a control bit is sent with the databus and indicates to the receiving agent which half of the databus is inverted. According to embodiments of this invention, one half of the databus will always be inverted. When embodiments such as these are used, the extreme cases are removed from the transition distribution (e.g., the bus is not will not transition from all “ones” to all “zeros” or vice versa). According to an embodiment, the maximum number of “ones” that can be driven is one-half the databus.




An embodiment of the invention includes an encoder that has a component to count the number of “ones” in each part of the databus and a component to compare the magnitudes of the counts. In a further embodiment, the result of the magnitude comparison determines which part of the databus is inverted and determines the value transmitted on the control signal. In a still further embodiment, a predictive method is used to avoid serializing the control bit with parity generation.





FIG. 1

is a partial block diagram of a system


100


including an apparatus to encode a bus to minimize simultaneous switching according to an embodiment of the present invention. System


100


includes a transmitting node


110


which is coupled to a receiving node


120


through a bus


130


. A node may be an architectural unit that includes a single component, such as a processor, memory device, or input/output device, or may include multiple components. Thus, each node in system


100


may be a single processor or may contain multiple processors as well as other resources such as memory devices. The term “coupled” encompasses a direct connection, an indirect connection, an indirect communication, etc.




Bus


130


may be a uni-directional bus or a bi-directional bus. For the purposes of illustration, bus


130


is shown as a uni-directional bus that transmits information from transmitting node


110


to receiving node


120


. Bus


120


includes data lines


131


and a decode control line


132


which are coupled to transmitting node


110


and receiving node


120


. In an embodiment, each of the lines in bus


130


is a signal that may transmit a single bit of binary information. The “data lines”


131


in bus


130


may include one or more strobe signals, parity lines, and control information. Data lines


131


may be referred to as a databus. Though not shown in

FIG. 1

, system


100


may also include a system clock which is coupled to the transmitting node


110


and receiving node


120


. As shown in FIG.


1


, bus


130


has eight data lines. In other embodiments, bus


130


may have any number of data lines, such as for example sixteen, twenty, etc.




As shown in

FIG. 1

, transmitting node


110


contains an encoder circuit


115


and receiving node


120


contains a decoder circuit


125


. In an embodiment of the invention, decode control line


132


is a simultaneous switching decode control line, encoder circuit


115


is a simultaneous switching encoder circuit, and decoder circuit


125


is a simultaneous switching decoder circuit. In an embodiment, encoder circuit


115


may encode one-half of the bit values to be transmitted across data lines


131


in a cycle before driving the bit values over the databus so that maximum number of “ones” that can be driven is equal to or less than one-half the number of signals in the databus. In an embodiment, encoder circuit


115


contains components to determine the number of “one” values in each half of the databus and compare the results of this determination. In this embodiment, encoder circuit


115


may determine the number of “one” values in each half of the databus and compare the results of said determination. In an embodiment, encoder circuit


115


inverts the values sent on a part of the of data lines


131


. In a further embodiment, encoder circuit


115


ensures that one-half the lines in the databus are inverted. In an embodiment, decoder circuit


125


decodes (i.e., re-inverts) the inverted values. In an embodiment, bus


130


is a bi-directional bus, receiving node


120


contains a encoder circuit and transmitting node


110


contains a decoder circuit. Details of “one” embodiment of an encoder circuit and a decoder circuit are discussed below with reference to FIG.


2


.





FIG. 2

is a partial block diagram of a bus


200


according to an embodiment of the present invention. Bus


200


includes an input interface


210


, simultaneous switching encoder circuit


220


, databus


230


, simultaneous switching decode control line


240


, simultaneous switching decoder circuit


250


, and output interface


260


. Input interface


210


and output interface


260


may be used to connect bus


200


to components. Input interface


210


may include a plurality of inputs and output interface


260


may include a plurality of outputs. Input interface


210


may be coupled to simultaneous switching encoder circuit


220


, and simultaneous switching decoder circuit


250


may be coupled to output interface


260


. Databus


230


may be coupled to simultaneous switching encoder circuit


220


and simultaneous switching decoder circuit


250


and may transmit data values from simultaneous switching encoder circuit


220


to simultaneous switching decoder circuit


250


.




In an embodiment, databus


230


is divided into parts. Databus


230


may include a first set of data lines


231


and a second set of data lines


232


. In an embodiment, the first set of data lines


231


and second set of data lines


232


both have the same number of data lines. In

FIG. 2

, databus


230


comprises eight data lines, the first set of data lines


231


comprises four data lines, and second set of data lines


232


comprises four data lines. In other embodiments, databus


230


, first set of data lines


231


, and second set of data lines


232


may have any number of data lines, such as for example sixteen, twenty, sixty, etc.




Simultaneous switching encoder circuit


220


may include a counter circuit


221


, a counter circuit


222


, an inverter component


223


, and a magnitude comparitor


228


. In an embodiment, one half of the bits that are input to input interface


210


are coupled to counter circuit


221


as inputs, and the other half of the bits that are input to input interface


210


are coupled to counter circuit


222


as inputs. Counter circuit


221


, counter circuit


222


, and magnitude comparitor


228


may comprise a selector circuit that counts the number of signals in the first set of data lines and second set of data lines that have a certain value (e.g., a value of “one”) and selects a set of data lines to be inverted based on the count determined. In an embodiment, counter circuit


221


and counter


223


are both Wallace trees which are structures of Carry Save Adders (CSAs) that count the number of “ones” values input into the counter and output a binary sum. In other embodiments, counter circuit


221


and counter


223


may count the number of “zeros.” In an embodiment, magnitude comparitor


228


compares the magnitude of the sums generated by counter circuit


221


and counter circuit


222


and outputs a result that indicates which sum is greater. As shown in

FIG. 2

, the output of magnitude comparitor


228


is coupled to simultaneous switching decode control line


240


and is input to inverter component


223


. In an embodiment, each of the bits that are input to input interface


210


are coupled to inverter component


223


as inputs.




As shown in

FIG. 2

, simultaneous switching decoder circuit


250


contains an inverter component


255


coupled to inputs of inverter


255


. In this embodiment, simultaneous switching decode control line


240


is also coupled to an input of inverter component


255


. The outputs of inverter component


255


are coupled to the outputs of output interface


260


.




The operation of bus


200


according to an embodiment of the invention will now be described. A set of bit values may be received at input interface


210


during each cycle. Simultaneous switching encoder circuit


220


determines a value to be transmitted on the simultaneous switching decode control line


240


and encodes (i.e., inverts) a value to be transmitted on one set of data lines. In an embodiment, if the first half has more “ones” simultaneous switching encoder circuit


220


will select the first half of the input bits to be inverted and will send a value on simultaneous switching decode control line


240


indicating that the first half has been inverted. In this embodiment, if the second half has more “ones” simultaneous switching encoder circuit


220


will select the second half of the input bits to be inverted and will send a value on simultaneous switching decode control line


240


indicating that the second half has been inverted. In an embodiment, the first half of the inputs will be inverted if both halves have the same number of “ones.” The inverted set of data lines and the non-inverted set of data lines are then transmitted during the bus cycle over databus


230


to simultaneous switching decoder circuit


250


. In addition, the value determined for simultaneous switching decode control line


240


is transmitted over simultaneous switching decode control line


240


to simultaneous switching decoder circuit


250


. Simultaneous switching decoder circuit


250


uses the value received on simultaneous switching decode control line


240


to determine which set of data lines needs to be re-inverted, re-inverts the values received on these data lines, and transmits the values for all of the data lines to output interface


260


as the bus output. Thus, the data lines that were inverted by simultaneous switching encoder circuit


220


are inverted back to their original state and output by simultaneous switching decoder circuit


250


, and the data lines that were never inverted by simultaneous switching encoder circuit


220


are output by simultaneous switching decoder circuit


250


in their original state (i.e., they are not inverted by either simultaneous switching encoder circuit


220


or simultaneous switching decoder circuit


250


). This process is repeated for the next group of inputs during the next bus cycle. In an embodiment, the selector circuit (e.g., counter circuit


221


, counter circuit


222


, and magnitude comparitor


228


) and inverter component ensure that one-half the signals in databus


230


are inverted.




In a further embodiment, the simultaneous switching decode control line


240


is included in the parity generation. In this embodiment, the inputs at input interface


210


are coupled to inputs of a parity generator


281


. The output of magnitude comparitor


228


is coupled to an input of parity generator


281


and to an input of inverter component


282


. Inverter component


282


may be an inverter coupled to a multiplexer. The output of parity generator


281


is also coupled to an input of inverter component


282


. In this embodiment, an output of inverter component


282


is coupled to a parity line


283


which is coupled to an input of parity check circuit


284


. In this embodiment, a predictive method must be used to avoid serializing simultaneous switching decode control line


240


and parity generation. An arbitrary but consistent assumption is made that the simultaneous switching decode control line


240


value will be “one.” A value of “one” for simultaneous switching decode control line


240


is fed into the parity generation (not shown) while the actual simultaneous switching decode control line


240


value is computed in parallel. If the computed simultaneous switching decode control line


240


value is “zero,” then the parity bit is inverted by inverter component


282


. That is, the simultaneous switching encoder circuit will invert the value for the parity line based on the determination of the value transmitted on the simultaneous switching decode control line. If the computer simultaneous switching decode control line


240


value is really “one” (i.e., the prediction was correct), inverter component


282


does not invert the value generated by parity generator


281


. Inverter component


282


transmits the parity bit value over parity line


283


to parity check circuit


284


. According to this embodiment, simultaneous switching decode control line


240


generation should be completed by the time parity generation completes. This embodiment may be used where the two halves of the data bus have even numbers of signals. If the databus has an odd half and that side gets inverted by the decode control line


240


, then parity does not get changed.





FIG. 3

is a table


300


that contains eleven examples of sample bus states according to an embodiment of the present invention. Table


300


includes an example number column


301


, a bus input data column


302


, a column that shows the number of “ones” on the left part of the input data


303


, a column that shows the number of “ones” on right part of the input data


304


, a column that shows the total number of “ones” in input data


305


, a decode control line value column


306


, a data sent from encoder column


307


, and a column that shows the number of “ones” sent from the encoder


308


. The examples in this table are for a thirty-two bit bus. The first example bus state will now be described. The example number


301


for this example is 1 to indicate that this is the first example. The bus input data


302


in this example is FFFF 0000. As would be appreciated by a person of skill in the art, the number of “ones” on the left part of the input data


303


is 16and the number of “ones” on right part of the input data


304


is 0. Thus, the total number of “ones” in input data


305


is 16. Because the left side has more “ones,” in this embodiment the left side is inverted and the decode control line value


306


is “one” to indicate that the left side is inverted. With the left side inverted, the data sent from the encoder


307


is 0000 0000. Thus, the total number of “ones” transmitted from the encoder


308


in this example is 0. Of course, a person of skill in the art would understand examples two to eleven to operate similarly. A comparison of the examples (e.g., a comparison of example 1 with example 2, or a comparison of example 2 with example 3) shows that even when all of the values for the bus input data


302


may change from one state to another state in next cycle, the data sent from the encoder


307


across the databus will never change from all “ones” during one cycle to all “zeros” in the next cycle (or vise-versa). A person of skill in the art would appreciate that the bus illustrated by table


300


has 2


32


×2 possible states but, when encoded according to an embodiment of this invention, the bus only uses one-half of the states. Thus, the encoder circuit has eliminated certain state changes and, therefore, minimized the impact of simultaneous switching.





FIG. 4

is a flow diagram of a method of encoding a bus to minimize simultaneous switching according to an embodiment of the present invention. This method may be used with the apparatus described above. A multi-bit value is received that is to be sent over a bus, and this value comprises two sets of input values (


401


). The first set of input values may be viewed as the values for the right side of a bus (the “right set”), and the second set of input values may be viewed as the values for the left side of the bus (the “left set”). According to this embodiment, the number of bits in each set that has a value of “one” is counted and compared (


402


). If the number of “ones” in the left set of input values is equal to or less than the number of “ones” in the right set, then the right set of input values is inverted (


403


), a value is transmitted over the decode control line indicating that the right set of values was inverted (


404


), and the inverted right set of values and non-inverted left set of values are transmitted over the databus (


405


). If the number of “ones” in the left set of input values is greater than the number of “ones” in the right set, then the left set of input values is inverted (


406


), a value is transmitted over the decode control line indicating that the left set of values was inverted (


407


), and the inverted left set of values and non-inverted right set of values are transmitted over the databus (


408


).




The receiving agent receives both sets of data values and receives the decode control line value. The decode control line value is examined to determine which set of data values was inverted (


409


). If the right set of data values was inverted, then the right set of values are re-inverted (


410


). If the left set of data values was inverted, then the left set of values are re-inverted (


411


). The un-inverted and re-inverted data values are then output from the bus (


412


). This process is repeated for each bus cycle.




The invention disclosed in this application provides a method and apparatus for encoding a bus to minimize the effect of simultaneous switching. The SSO effect is known to cause large di/dt resulting in noise and local supply and ground degradation. The invention disclosed in this application may be employed to manage the input/output (I/O) design and performance by eliminating extreme conditions for the I/O and system designer.




The apparatus and method according to the present invention have been described with respect to several exemplary embodiments. It can be understood, however, that there are many other variations of the above described embodiments which will be apparent to those skilled in the art. It is understood that these modifications are within the teaching of the present invention, which is to be limited only by the claims appended hereto. For example, the number of “zeros” may be counted instead of the number of “ones.” As another example, the method disclosed with reference to

FIG. 4

may be performed in a different order.



Claims
  • 1. A bus comprising:a plurality of data lines having a first set of data lines and a second set of data lines; a selector circuit to provide a first count of the number of data lines in the first set of data lines that have a certain value and a second count of the number of data lines in the second set of data lines that have that certain value, and to select one set of data lines to be inverted based on the first count and second count; and an inverter to invert the set of data lines selected.
  • 2. The bus of claim 1, wherein the selector circuit comprises a Wallace tree and a magnitude comparator component.
  • 3. The bus of claim 1, wherein the bus has n data lines and 2n×2 states, and wherein the selector circuit and inverter eliminate certain state changes.
  • 4. The bus of claim 1, wherein the bus has n data lines and the bus has 2n×2 states, and wherein the bus only uses one-half of the states.
  • 5. The bus of claim 1, wherein the selector circuit and inverter are to ensure that one-half the signals in the bus are inverted.
  • 6. A bus comprising a plurality of data lines and a simultaneous switching decode control line, wherein at least two of the plurality of data lines are coupled to a simultaneous switching encoder circuit and to a simultaneous switching decoder circuit, wherein the simultaneous switching encoder circuit comprises a circuit to count data lines having a certain value and to select data lines to be inverted based on the count.
  • 7. The bus of claim 6, wherein the simultaneous switching encoder circuit further comprises a component to encode a value to be transmitted on at least one of the plurality of data lines.
  • 8. The bus of claim 7, wherein the simultaneous switching decoder circuit comprises a selector to select the at least one of the plurality of data lines based on the value received on the simultaneous switching decode control line and an inverter to invert a value received on the at least one of the plurality of data lines.
  • 9. The bus of claim 6, wherein the bus further comprises a parity line coupled to a first inverter to invert the value transmitted on the parity line, and wherein the simultaneous switching encoder circuit comprises a second inverter to invert the value for the parity line based on the determination of the value transmitted on the simultaneous switching decode control line.
  • 10. A bus having an input interface and an output interface, the bus comprising:an encoder circuit having a plurality of inputs coupled to the bus input interface and a plurality of outputs, the encoder circuit including a pair of counting components and a magnitude comparator; a decoder circuit having a plurality of outputs coupled to the bus output interface and a plurality of inputs; a databus coupled to an output of the encoder circuit and to the input of the decoder circuit; and a decode control line coupled to an output of the encoder circuit and to an input of the decoder circuit.
  • 11. The bus of claim 10, wherein the databus comprises a first set of data lines and a second set of data lines, wherein the input interface has a first set of inputs and a second set of inputs, and wherein the pair of counting components comprises:a first counter circuit having a plurality of inputs coupled to the first set of inputs in the input interface; and a second counter circuit having a plurality of inputs coupled to the second set of inputs in the input interface.
  • 12. The bus of claim 11, wherein the encoder circuit further comprises an inverter component coupled to first set of data lines and second set of data lines, and wherein the magnitude comparator comprises:inputs coupled to an output of the first counter circuit and to an output of the second counter circuit; an output coupled to an input of the inverter component; and an output coupled to the decode control line.
  • 13. The bus of claim 10, wherein the decoder circuit comprises an inverter component that comprises inputs coupled to the databus, an input coupled to the decode control line, and outputs coupled to the output interface.
  • 14. The bus of claim 10, wherein the bus comprises a parity line, and wherein the bus further comprises:a parity generator comprising inputs coupled to the bus input interface; and an inverter component comprising an input coupled to an output of the parity generator, an input coupled to an output of the encoder circuit, and an output coupled to the parity line.
  • 15. A system comprising:a plurality of data lines to transmit data values; a first node comprising an encoder circuit coupled to an end of the plurality of data lines to invert the values sent on a part of the plurality of data lines, wherein the encoder circuit comprises a Wallace tree to determine which data values are to be inverted by the encoder; a second node including a decoder circuit coupled to another end of the plurality of data lines to re-invert the values that were inverted by the encoder circuit; and a control line coupled to the encoder circuit and the decoder circuit to control which data values are re-inverted by the decoder circuit.
  • 16. The system of claim 15, wherein the part of the plurality of data lines for which the values sent are inverted comprises one half of the data lines in the plurality of data lines.
  • 17. The system of claim 15, wherein the first node comprises a processor.
  • 18. The system of claim 17, wherein the second node comprises an input device or an output device.
  • 19. A method of sending data over a data bus, the method comprising:determining that a first set of bus input values should be inverted, wherein determining that the first set of input values should be inverted comprises counting the number of input values in the first set having a certain value and determining if that count is less than or the same as the number of input values in the second set having that certain value; inverting the first set of bus input values and transmitting the inverted first set of input values over a first set of signals; transmitting a second set of bus input values over a second set of signals; receiving the second set of values and the inverted first set of values from the signals; and un-inverting the received inverted first set of values.
  • 20. The method of claim 19, wherein the method further comprises transmitting a value over a control line, the value transmitted indicating that the first set of input values has been inverted.
  • 21. The method of claim 20, wherein the method further comprises:determining a parity bit value, wherein the determination assumes that the first set of values are to be inverted; and determining whether the parity bit value should be re-inverted before it is transmitted over the data bus based on the determination to invert the first set of input values.
  • 22. The method of claim 20, wherein the first set of input values comprise one-half of the input values.
  • 23. A system comprising:a bus input interface to receive a plurality of input values; a databus having a plurality of signals; a means for encoding one-half of the input values before driving the values over the databus so that maximum number of ones that can be driven is equal to or less than one-half the number of signals in the databus, wherein the means for encoding comprises a means for determining the number of one values in each half of the databus and a means for comparing the results of said determination.
  • 24. The system of claim 23, wherein the means for encoding comprises a means for ensuring that one-half the signals in the databus are inverted.
  • 25. The system of claim 23, wherein the system further comprises a means for decoding the inverted values.
US Referenced Citations (143)
Number Name Date Kind
4281392 Grants et al. Jul 1981 A
5452319 Cook et al. Sep 1995 A
5485579 Hitz et al. Jan 1996 A
5495419 Rostoker et al. Feb 1996 A
5535116 Gupta et al. Jul 1996 A
5541914 Krishnamoorthy et al. Jul 1996 A
5551048 Steely, Jr. Aug 1996 A
5557533 Koford et al. Sep 1996 A
5581729 Nishtala et al. Dec 1996 A
5588131 Borrill Dec 1996 A
5588132 Cardoza Dec 1996 A
5588152 Dapp et al. Dec 1996 A
5590292 Wooten et al. Dec 1996 A
5590345 Barker et al. Dec 1996 A
5594918 Knowles et al. Jan 1997 A
5603005 Bauman et al. Feb 1997 A
5613136 Casavant et al. Mar 1997 A
5617537 Yamada et al. Apr 1997 A
5625836 Barker et al. Apr 1997 A
5634004 Gopinath et al. May 1997 A
5634068 Nishtala et al. May 1997 A
5636125 Rostoker et al. Jun 1997 A
5644753 Ebrahim et al. Jul 1997 A
5655100 Ebrahim et al. Aug 1997 A
5657472 Van Loo et al. Aug 1997 A
5678026 Vartti et al. Oct 1997 A
5680571 Bauman Oct 1997 A
5680576 Laudon Oct 1997 A
5682322 Boyle et al. Oct 1997 A
5682512 Tetrick Oct 1997 A
5684977 Van Loo et al. Nov 1997 A
5699500 Dasgupta Dec 1997 A
5701313 Purdham Dec 1997 A
5701413 Zulian et al. Dec 1997 A
5708836 Wilkinson et al. Jan 1998 A
5710935 Barker et al. Jan 1998 A
5713037 Wilkinson et al. Jan 1998 A
5717942 Haupt et al. Feb 1998 A
5717943 Barker et al. Feb 1998 A
5717944 Wilkinson et al. Feb 1998 A
5734921 Dapp et al. Mar 1998 A
5734922 Hagersten et al. Mar 1998 A
5742510 Rostoker et al. Apr 1998 A
5745363 Rostoker et al. Apr 1998 A
5749095 Hagersten May 1998 A
5752067 Wilkinson et al. May 1998 A
5754789 Nowatzyk et al. May 1998 A
5754871 Wilkinson et al. May 1998 A
5754877 Hagersten et al. May 1998 A
5761523 Wilkinson et al. Jun 1998 A
5765011 Wilkinson et al. Jun 1998 A
5781439 Rostoker et al. Jul 1998 A
5784697 Funk et al. Jul 1998 A
5787094 Cecchi et al. Jul 1998 A
5793644 Koford et al. Aug 1998 A
5794059 Barker et al. Aug 1998 A
5796605 Hagersten Aug 1998 A
5802578 Lovett Sep 1998 A
5805839 Singhal Sep 1998 A
5815403 Jones et al. Sep 1998 A
5842031 Barker et al. Nov 1998 A
5848254 Hagersten Dec 1998 A
5857113 Muegge et al. Jan 1999 A
5860159 Hagersten Jan 1999 A
5862316 Hagersten et al. Jan 1999 A
5864738 Kessler et al. Jan 1999 A
5867649 Larson Feb 1999 A
5870313 Boyle et al. Feb 1999 A
5870619 Wilkinson et al. Feb 1999 A
5875117 Jones et al. Feb 1999 A
5875201 Bauman et al. Feb 1999 A
5875462 Bauman et al. Feb 1999 A
5875472 Bauman et al. Feb 1999 A
5878241 Wilkinson et al. Mar 1999 A
5878268 Hagersten Mar 1999 A
5881303 Hagersten et al. Mar 1999 A
5887138 Hagersten et al. Mar 1999 A
5887146 Baxter et al. Mar 1999 A
5892970 Hagersten Apr 1999 A
5897657 Hagersten et al. Apr 1999 A
5900020 Safranek et al. May 1999 A
5903461 Rostoker et al. May 1999 A
5905881 Tran et al. May 1999 A
5905998 Ebrahim et al. May 1999 A
5911052 Singhal et al. Jun 1999 A
5914887 Scepanovic et al. Jun 1999 A
5922063 Olnowich et al. Jul 1999 A
5925097 Gopinath et al. Jul 1999 A
5931927 Takashima Aug 1999 A
5931938 Drogichen et al. Aug 1999 A
5938765 Dove et al. Aug 1999 A
5941967 Zulian Aug 1999 A
5943150 Deri et al. Aug 1999 A
5946710 Bauman et al. Aug 1999 A
5950226 Hagersten et al. Sep 1999 A
5958019 Hagersten et al. Sep 1999 A
5960455 Bauman Sep 1999 A
5961623 James et al. Oct 1999 A
5963745 Collins et al. Oct 1999 A
5963746 Barker et al. Oct 1999 A
5963975 Boyle et al. Oct 1999 A
5964886 Slaughter et al. Oct 1999 A
5966528 Wilkinson et al. Oct 1999 A
5971923 Finger Oct 1999 A
5978578 Azarya et al. Nov 1999 A
5978874 Singhal et al. Nov 1999 A
5983326 Hagersten et al. Nov 1999 A
5999734 Willis et al. Dec 1999 A
6026461 Baxter et al. Feb 2000 A
6038646 Sproull Mar 2000 A
6038651 VanHuben et al. Mar 2000 A
6041376 Gilbert et al. Mar 2000 A
6049845 Bauman et al. Apr 2000 A
6049853 Kingsbury et al. Apr 2000 A
6052760 Bauman et al. Apr 2000 A
6055617 Kingsbury Apr 2000 A
6065037 Hitz et al. May 2000 A
6065077 Fu May 2000 A
6081844 Nowatzyk et al. Jun 2000 A
6085295 Ekanadham et al. Jul 2000 A
6092136 Luedtke Jul 2000 A
6092156 Schibinger et al. Jul 2000 A
6094715 Wilkinson et al. Jul 2000 A
6108739 James et al. Aug 2000 A
6119215 Key et al. Sep 2000 A
6141733 Arimilli et al. Oct 2000 A
6148361 Carpenter et al. Nov 2000 A
6155725 Scepanovic et al. Dec 2000 A
6161191 Slaughter et al. Dec 2000 A
6167489 Bauman et al. Dec 2000 A
6171244 Finger et al. Jan 2001 B1
6173386 Key et al. Jan 2001 B1
6173413 Slaughter et al. Jan 2001 B1
6182112 Malek et al. Jan 2001 B1
6189078 Bauman et al. Feb 2001 B1
6189111 Alexander et al. Feb 2001 B1
6199135 Maahs et al. Mar 2001 B1
6199144 Arora et al. Mar 2001 B1
6205528 Kingsbury et al. Mar 2001 B1
6209064 Weber Mar 2001 B1
6212610 Weber et al. Apr 2001 B1
6226714 Safranek et al. May 2001 B1
6542947 Buhring Apr 2003 B1