Loopback configurations are often used to calibrate and test integrated circuits. For example, a master component or circuit may send data and/or clock signals to a slave component to calibrate the slave component with respect to the master component (e.g., often referred to as “training”), where the responses received by the master component from the slave component indicate whether or not the slave component is calibrated. Additionally, this training using the loopback configuration can be performed periodically to recalibrate the system and compensate for variations (e.g., process variations, voltage variations, temperature variations, etc.) which occur over time. Loopback configurations may also be used to test or verify a slave component by sending test data (e.g., test vectors or patterns) to the slave component and comparing received responses with expected values to validate the operation of the slave component.
Some conventional loopback configurations utilize multiple dedicated unidirectional interfaces for sending the training data or test data between the master and slave components. For example, a first interface is used to send the data from the master component to the slave component, whereas a second interface is used to send data from the slave component to the master component. As such, each interface has a fixed (e.g., predetermined and unchangeable) direction of data communication.
Although conventional loopback configurations using multiple unidirectional interfaces enable integrated circuit calibration and testing, the results of the testing and the effectiveness of the calibration is limited. For example, the use of multiple interfaces makes it more difficult to isolate problems that may exist on one of the multiple interfaces. Additionally, since multiple interfaces are required to calibrate the system, the interfaces cannot be calibrated separately. As such, additional calibration steps are required to account for all the possible loopback configurations, where each configuration utilizes a different combination of interfaces and/or interface components (e.g., required to link the interfaces and implement the loopback). Further, the fixed master/slave relationship and the fixed direction of data communication between the components further limits the calibration and testing of the system and components thereof.
Other conventional loopback configurations use multiple bi-directional interfaces for communicating data between master and slave components. Conventional bi-directional interfaces comprise multiple paths or lanes, where each lane is capable of communicating information in either a forward or reverse direction depending upon the current configuration of each respective lane. Additionally, conventional bi-directional interfaces configure all lanes to communicate information in the same direction (e.g., all in the forward direction or all in the reverse direction), thereby operating similarly to a dedicated unidirectional interface at any given instant in time. As such, conventional loopback configurations using multiple bi-directional interfaces operate similarly to the conventional loopback configurations utilizing multiple unidirectional interfaces. Thus, conventional loopback configurations using multiple bi-directional interfaces suffer drawbacks similar to those discussed above with respect to conventional loopback configurations utilizing multiple unidirectional interfaces.
Accordingly, a need exists for a loopback configuration which improves calibration and/or testing capabilities of electronic systems. More specially, a need exists for a loopback configuration which enables more flexible, effective and meaningful calibration and/or testing of electronic systems. Embodiments of the present invention provide novel solutions to these needs and others as described below.
Embodiments are directed to an interface for implementing a loopback configuration which offers improved calibration and/or testing of an electronic system. More specifically, embodiments provide a bi-directional interface (e.g., communication bus) with at least two portions or partitions capable of communicating data in opposite directions and implementing a loopback configuration between components (e.g., a memory controller and a memory, a graphics processor and a memory, between other computer system components, etc.) of an electronic system, thereby enabling more flexible, efficient and effective calibration and/or testing of the electronic system (e.g., comprising the bi-directional interface) using a single interface. The loopback of the partitioned bi-directional interface may be used to perform data link training (e.g., for calibration of a data link, calibration of at least one of the components coupled to the bi-directional interface, compensation for PVT variations of the electronic system, etc.) and/or electronic system testing (e.g., automated testing of components and/or circuitry coupled to the bi-directional interface).
The loopback configuration of the interface may be reversible. For example, the direction in which each partition communicates data may be reversed to effectively reverse the direction of the loopback. Additionally, the looped or coupled end of the partitions may be switched from one component to another, thereby reversing the configuration of the loopback in one embodiment. As such, embodiments enable different and/or additional calibration operations and/or tests to be performed when compared with conventional loopback configurations.
In one embodiment, a bi-directional communication bus includes a first bi-directional portion configured for communicating signals in a first direction, wherein a size of the first bi-directional portion is configurable. The bi-directional communication bus also includes a second bi-directional portion configured for communicating signals in a second direction, wherein the second direction and the first direction are opposed, wherein a size of the second bi-directional portion is configurable. The first and second portions are configured to implement a loopback configuration for communicating signals between components coupled to the first and second portions. The components may include a first component and a second component, and wherein the first and second bi-directional portions communicatively couple the first and second components. In one embodiment, the first component is selected from a group consisting of a graphics processor and a memory controller, wherein the second component includes a memory, and wherein the first and second bi-directional portions implement a memory interface. The loopback configuration of the first and second bi-directional portions may be for performing operations selected from a group consisting of calibration of the bi-directional interface, calibration of at least one of the components, and testing of at least one of the components.
In another embodiment, a method of communicating signals includes partitioning a bi-directional communication bus into a first portion for performing read operations and a second portion for performing write operations. A training operation is performed to characterize signal delay across the communication bus using the first portion and the second portion. At a completion of a training operation, the bi-directional communication bus is reconfigured to communicate signals in a same direction over the first and second portions. Paths of the first portion and paths of the second portion may be interlaced. Additionally, the performing a training operation may include the first portion and the second portion performing read and write operations simultaneously. Alternatively, the performing a training operation may include the first portion and the second portion performing read and write operations sequentially. Further, the first portion may have a larger number of paths than the second portion in one embodiment.
In yet another embodiment, a method of configuring a bi-directional memory interface includes initiating a loopback configuration of a first portion and a second portion of the bi-directional interface, wherein the first and second portions couple a memory to a memory controller. Signals are communicated over the first portion from the memory controller to the memory. Signals are communicated over the second portion from the memory to the memory controller. The loopback configuration is exited and a normal operating mode of the bi-directional interface is commenced, wherein the normal operating mode comprises accessing the memory using the bi-directional interface, wherein the first and second portions of the bi-directional bus communicate signals in a same direction during the normal operating mode. The memory controller may be implemented within a graphics processor in one embodiment. The direction of signal communication over the first and second portions in the loopback configuration may be reversible. Additionally, communication of the signals over the first and second portions may include performing operations selected from a group consisting of calibration of the bi-directional interface, calibration of the memory, and testing of the memory.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements.
Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings. While the present invention will be discussed in conjunction with the following embodiments, it will be understood that they are not intended to limit the present invention to these embodiments alone. On the contrary, the present invention is intended to cover alternatives, modifications, and equivalents which may be included with the spirit and scope of the present invention as defined by the appended claims. Furthermore, 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, embodiments of the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so 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, logic blocks, processing and other symbolic representations of operations on data bits within a 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. In the present application, a procedure, logic block, process, or the like, is 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, although 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 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 the terms such as “accepting,” “accessing,” “adding,” “adjusting,” “analyzing,” “applying,” “assembling,” “assigning,” “calculating,” “capturing,” “combining,” “commencing,” “communicating,” “comparing,” “collecting,” “creating,” “defining,” “depicting,” “detecting,” “determining,” “displaying,” “establishing,” “executing,” “exiting,” “generating,” “grouping,” “identifying,” “initiating,” “interacting,” “modifying,” “monitoring,” “moving,” “outputting,” “performing,” “placing,” “presenting,” “processing,” “programming,” “querying,” “removing,” “repeating,” “sampling,” “sorting,” “storing,” “subtracting,” “tracking,” “transforming,” “using,” 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.
Embodiments of the Invention
In one embodiment, depicted by dashed lines 130, computer system platform 100 may comprise at least one processor 110 and at least one memory 120. Processor 110 may comprise a central processing unit (CPU) or other type of processor. Depending on the configuration and/or type of computer system environment, memory 120 may comprise volatile memory (e.g., RAM), non-volatile memory (e.g., ROM, flash memory, etc.), or some combination of the two. Additionally, memory 120 may be removable, non-removable, etc.
In other embodiments, computer system platform 100 may comprise additional storage (e.g., removable storage 140, non-removable storage 145, etc.). Removable storage 140 and/or non-removable storage 145 may comprise volatile memory, non-volatile memory, or any combination thereof. Additionally, removable storage 140 and/or non-removable storage 145 may comprise CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information for access by computer system platform 100.
As shown in
Graphics processor 150 may perform graphics processing operations on graphical data stored in frame buffer 160 or another memory (e.g., 120, 140, 145, etc.) of computer system platform 100. In one embodiment, graphics processor 150 and processor 110 may be combined into a single unit (e.g., thereby forming a general purpose processor). Graphical data stored in frame buffer 160 may be accessed, processed, and/or modified by components (e.g., graphics processor 150, processor 110, etc.) of computer system platform 100 and/or components of other systems/devices. Additionally, the graphical data may be accessed (e.g., by graphics processor 150) and displayed on an output device coupled to computer system platform 100. Accordingly, one or more processors (e.g., processor 130, graphics processor 150, a hybrid processor formed by processor 130 and graphics processor 150, etc.) may access and/or execute instructions stored in a memory accessible to computer system platform 100 (e.g., 120, 140, 145, a memory accessed via communication interface 170, etc.) for performing one or more computer system operations.
As shown in
And in other embodiments, one or more other components of computer system 100 may be communicatively coupled by interface 180. For example, interface 180 may couple processor 110 and graphics processor 150. Alternatively, interface 180 may couple processor 110 and memory 120. Additionally, in other embodiment, interface 180 may implement a chipset interface communicatively coupling a chipset component (e.g., northbridge, southbridge, etc.) to another chipset component and/or a non-chipset component (e.g., processor 110, memory 120, graphics processor 150, frame buffer 160, etc.). As such, although interface 180 is depicted in
As shown in
Graphics processor 150 comprises interface component 255 for implementing a loopback configuration (e.g., depicted by arrows 285a, 257a and 283a) of interface 180 by looping or coupling partitions 282 and 284. For example, interface component 255 may receive signals (e.g., generated by components of frame buffer 160) transmitted over partition 284 and communicate signals over partition 282 in response thereto. The signals communicated over partition 282 by interface component 255 may be generated (e.g., by interface component 255, by another component of graphics processor 150, by a component of computer system 100, etc.) based upon signals received over partition 284, may comprise relayed or conveyed versions of signals communicated over partition 284, or some combination thereof.
Accordingly, interface 180 may be used to perform data link training (e.g., to calibrate for data link latency, latency attributable to interface components, etc.) when placed in a loopback configuration (e.g., using interface component 255, interface component 265, etc.). For example, training data may be communicated from graphics processor 150 over partition 282 and used to adjust the delay of a frame buffer clock such that subsequently-transferred data may be clocked out from partition 282 by interface component 265. Partition 284 may be used to transmit the received training data (e.g., in encoded or non-encoded form) and/or information related to the training (e.g., a training status indicator indicating whether or not the training is complete, a data bus inversion (DBI) bit to indicate whether the data transmitted over partition 284 is inverted or not, a CRC of the received data, etc.) back to graphics processor 150. Similar data link training may be performed by frame buffer 160 using the partitions (e.g., 282 and 284) and interface component 255. The loopback configuration of interface 180 used for data link training may be transitioned into from a normal or mission operating mode (e.g., where partitions 282 and 284 communicate signals in the same direction).
As such, a single bi-directional interface (e.g., interface 180) may be used to calibrate the interface itself and/or components coupled to the interface (e.g., portions of interface component 265, other components used to communicate data over interface 180, etc.). Although such data link training may be used before normal operation (e.g., mission mode operation) for initial calibration, it should be appreciated that similar data link training may be performed using interface 180 during or in between normal operations (e.g., reads/writes to frame buffer memory 160, etc.) to compensate for variations which may occur over time. Such variations occurring over time may comprise process-voltage-temperature, or PVT, variations. Alternatively, the variations may comprise process variations, voltage variations, temperature variations, or some combination thereof, in other embodiments.
Interface 180 may also be used to perform automated testing of components and/or circuitry of computer system 100 (e.g., coupled to interface 180). For example, test data (e.g., test patterns, test vectors, etc.) may be communicated from graphics processor 150 over partition 282 to interface component 265. The test data may be communicated to the component/circuitry being tested before being communicated back to graphics processor 150 over partition 284 for comparison with expected values to validate operation of components (e.g., portions of a memory core within frame buffer 160, input/output components used to access or communicate data over interface 180 or through components coupled to interface 180, etc.) and/or circuitry coupled to interface 180. The loopback configuration of interface 180 used for automated testing may be transitioned into from a normal or mission operating mode (e.g., where partitions 282 and 284 communicate signals in the same direction). Similar automated testing of graphics processor 150 and/or components thereof may be performed using the partitions (e.g., 282 and 284) and interface component 255. As such, a single bi-directional interface (e.g., interface 180) may be used to automatically test components and/or circuitry coupled to the interface (e.g., 180).
Accordingly, embodiments provide swappable loopback configurations which may be swapped by switching the active interface component between interface component 255 and interface component 265 to swap the looped or coupled end between graphics processor 150 and frame buffer 160 as depicted in
Although
Accordingly, the interlaced loopback configuration of interface 180 as shown in
Additionally, the interlaced loopback configuration of interface 180 as shown in
Interface components 355a and 365a are operable to couple or loop partitions 352a and 362a (e.g., as discussed above with respect to interface components 255 and 265 of
Data link training may be performed using two or more of partitions 352a-362b when the partitions are placed in a loopback configuration (e.g., using interface components 355a, 365a, 355b, 365b, or some combination thereof). For example, memory controller logic 359 may communicate training data over partition 352a using interface component 355a. The training data may be used by interface component 365a to adjust the delay of the local memory clock such that subsequently-transferred data may be clocked out from partition 352a by interface component 365a. Partition 362a may be used to transmit the received training data (e.g., in encoded or non-encoded form) and/or information related to the training (e.g., a training status indicator indicating whether or not the training is complete, a data bus inversion (DBI) bit to indicate whether the data transmitted over partition 284 is inverted or not, a CRC of the received data, etc.) back to memory controller logic 359 (e.g., to provide feedback and enable control of the data link training process) via interface component 355a. Similar data link training may be performed by memory controller logic 359 using partitions 352b and 362b, or alternatively, data link training may be performed by memory core 369 using any of the partitions (e.g., 352a-362b) and interface components (e.g., 355a and/or 355b). As such, a single bi-directional interface (e.g., interface 180) may be used to calibrate the interface itself and/or components coupled to the interface (e.g., portions of interface components 355a-365b, other components used to communicate data over interface 180, etc.). Although such data link training may be used before normal operation for initial calibration, it should be appreciated that similar data link training may be performed using interface 180 during or in between normal operations (e.g., reads/writes to frame buffer memory 160, etc.) to compensate for variations which may occur over time. Such variations occurring over time may comprise process-voltage-temperature, or PVT, variations. Alternatively, the variations may comprise process variations, voltage variations, temperature variations, or some combination thereof, in other embodiments.
Additionally, automated testing of components and/or circuitry of computer system 100 (e.g., coupled to interface 180) may be performed using two or more of partitions 352a-362b when the partitions are placed in a loopback configuration (e.g., using interface components 355a, 365a, 355b, 365b, or some combination thereof). For example, test data (e.g., test patterns, test vectors, etc.) may be communicated from memory controller logic 359 over partition 352a to interface component 365a. The test data may be communicated to the component/circuitry being tested before being communicated back to memory controller logic 359 over partition 362a for comparison with expected values to validate operation of components (e.g., portions of a memory core 369, input/output components used to access or communicate data over interface 180 or through components coupled to interface 180, etc.) and/or circuitry coupled to interface 180. Similar automated testing may be performed by memory controller logic 359 using partitions 352b and 362b, or alternatively, graphics processor 150 and/or components thereof (e.g., memory controller logic 359, etc.) may be tested using any of the partitions (e.g., 352a-362b) and interface components (e.g., 355a and 355b). As such, a single bi-directional interface (e.g., interface 180) may be used to automatically test components and/or circuitry coupled to the interface (e.g., 180).
Although
As shown in
Although
Step 520 involves performing initial data link training to calibrate the interface (e.g., 180 or portions thereof) and/or interface components (e.g., any component coupled to interface 180, interface components 255/265, etc.). The data link training may comprise communicating training data from the first component (e.g., graphics processor 150) over the first partition (e.g., 282) and used to adjust the delay of a frame buffer clock such that subsequently-transferred data may be clocked out from the first partition (e.g., 282) by an interface component (e.g., 265) of the second component (e.g., frame buffer 160). The second partition (e.g., 284) may be used to transmit the received training data (e.g., in encoded or non-encoded form) and/or information related to the training (e.g., a training status indicator indicating whether or not the training is complete, a data bus inversion (DBI) bit to indicate whether the data transmitted over partition 284 is inverted or not, a CRC of the received data, etc.) back to the first component (e.g., graphics processor 150). Similar data link training may be performed by the second component (e.g., frame buffer 160) using the partitions (e.g., 282 and 284) and an interface component (e.g., 255) of the first component (e.g., graphics processor 150).
As shown in
Thereafter, process 500 may commence, or alternatively, step 540 may be performed. Step 540 involves initiating a loopback configuration of a bi-directional interface (e.g., 180). Step 540 may be performed analogously to step 510 in one embodiment.
As shown in
Step 620 involves performing automated testing of components and/or circuitry coupled to the interface (e.g., 180). The automated testing may comprise communicating test data (e.g., test patterns, test vectors, etc.) from the first component (e.g., graphics processor 150) over the first partition (e.g., 282) to an interface component (e.g., 265) of the second component (e.g., frame buffer 160). The test data may be communicated to the component/circuitry being tested before being communicated back to the first component (e.g., graphics processor 150) over the second partition (e.g., 284) for comparison with expected values to validate operation of components (e.g., portions of a memory core within frame buffer 160, input/output components used to access or communicate data over interface 180 or through components coupled to interface 180, etc.) and/or circuitry coupled to the interface (e.g., 180). Similar automated testing of the first component (e.g., graphics processor 150) and/or components thereof may be performed using the partitions (e.g., 282 and 284) and the interface component (e.g., 255) of the first component (e.g., graphics processor 150).
As shown in
Step 720 involves communicating signals over the first portion (e.g., 282) from a memory controller (e.g., memory controller logic 359) to a memory (e.g., frame buffer 160). The memory controller may be implemented within a graphics processor (e.g., 150) in one embodiment. In one embodiment, the signals communicated in step 720 may comprise calibration signals (e.g., data link training signals) for calibrating portions of the bi-directional interface (e.g., 180), components of the memory (e.g., frame buffer 160), components of the memory controller (e.g., memory controller logic 359), other components coupled to the interface (e.g., 180), etc. Alternatively, the signals communicated in step 720 may comprise test signals (e.g., test vectors, test patterns, etc.) for testing portions of the bi-directional interface (e.g., 180), components of the memory (e.g., frame buffer 160), components of the memory controller (e.g., memory controller logic 359), other components coupled to the interface (e.g., 180), etc.
As shown in
Step 740 involves exiting the loopback configuration and commencing a normal operating mode. Where the bi-directional interface (e.g., 180) comprises a memory interface, the normal operating mode may comprise accessing a memory (e.g., frame buffer 160) coupled to the interface (e.g., 180).
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is, and is intended by the applicant to be, the invention is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Hence, no limitation, element, property, feature, advantage, or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
| Number | Name | Date | Kind |
|---|---|---|---|
| 3940740 | Coontz | Feb 1976 | A |
| 4208810 | Rohner et al. | Jun 1980 | A |
| 4412281 | Works | Oct 1983 | A |
| 4541075 | Dill et al. | Sep 1985 | A |
| 4773044 | Sfarti et al. | Sep 1988 | A |
| 4885703 | Deering | Dec 1989 | A |
| 4918626 | Watkins et al. | Apr 1990 | A |
| 4949280 | Littlefield | Aug 1990 | A |
| 4951220 | Ramacher et al. | Aug 1990 | A |
| 4985988 | Littlebury | Jan 1991 | A |
| 5036473 | Butts et al. | Jul 1991 | A |
| 5077660 | Haines et al. | Dec 1991 | A |
| 5081594 | Horsley | Jan 1992 | A |
| 5107455 | Haines et al. | Apr 1992 | A |
| 5125011 | Fung | Jun 1992 | A |
| 5276893 | Savaria | Jan 1994 | A |
| 5287438 | Kelleher | Feb 1994 | A |
| 5313287 | Barton | May 1994 | A |
| 5379405 | Ostrowski | Jan 1995 | A |
| 5392437 | Matter et al. | Feb 1995 | A |
| 5400777 | Olsson et al. | Mar 1995 | A |
| 5408606 | Eckart | Apr 1995 | A |
| 5432898 | Curb et al. | Jul 1995 | A |
| 5446836 | Lentz et al. | Aug 1995 | A |
| 5448496 | Butts et al. | Sep 1995 | A |
| 5452104 | Lee | Sep 1995 | A |
| 5452412 | Johnson, Jr. et al. | Sep 1995 | A |
| 5455536 | Kono et al. | Oct 1995 | A |
| 5483258 | Cornett et al. | Jan 1996 | A |
| 5498975 | Cliff et al. | Mar 1996 | A |
| 5513144 | O'Toole | Apr 1996 | A |
| 5513354 | Dwork et al. | Apr 1996 | A |
| 5517666 | Ohtani et al. | May 1996 | A |
| 5530457 | Helgeson | Jun 1996 | A |
| 5543935 | Harrington | Aug 1996 | A |
| 5570463 | Dao | Oct 1996 | A |
| 5574847 | Eckart et al. | Nov 1996 | A |
| 5578976 | Yao | Nov 1996 | A |
| 5594854 | Baldwin et al. | Jan 1997 | A |
| 5623692 | Priem et al. | Apr 1997 | A |
| 5630171 | Chejlava, Jr. et al. | May 1997 | A |
| 5633297 | Valko et al. | May 1997 | A |
| 5634107 | Yumoto et al. | May 1997 | A |
| 5638946 | Zavracky | Jun 1997 | A |
| 5664162 | Dye | Sep 1997 | A |
| 5671376 | Bucher et al. | Sep 1997 | A |
| 5694143 | Fielder et al. | Dec 1997 | A |
| 5705938 | Kean | Jan 1998 | A |
| 5766979 | Budnaitis | Jun 1998 | A |
| 5768178 | McLaury | Jun 1998 | A |
| 5778348 | Manduley et al. | Jul 1998 | A |
| 5805833 | Verdun | Sep 1998 | A |
| 5809230 | Pereira | Sep 1998 | A |
| 5815162 | Levine | Sep 1998 | A |
| 5821949 | Deering | Oct 1998 | A |
| 5854631 | Akeley et al. | Dec 1998 | A |
| 5854637 | Sturges | Dec 1998 | A |
| 5872902 | Kuchkuda et al. | Feb 1999 | A |
| 5884053 | Clouser et al. | Mar 1999 | A |
| 5896391 | Solheim et al. | Apr 1999 | A |
| 5909595 | Rosenthal et al. | Jun 1999 | A |
| 5913218 | Carney et al. | Jun 1999 | A |
| 5937173 | Olarig et al. | Aug 1999 | A |
| 5956252 | Lau et al. | Sep 1999 | A |
| 5956505 | Manduley | Sep 1999 | A |
| 5968175 | Morishita et al. | Oct 1999 | A |
| 5977987 | Duluk, Jr. | Nov 1999 | A |
| 5996996 | Brunelle | Dec 1999 | A |
| 5999990 | Sharrit et al. | Dec 1999 | A |
| 6003100 | Lee | Dec 1999 | A |
| 6028608 | Jenkins | Feb 2000 | A |
| 6034699 | Wong et al. | Mar 2000 | A |
| 6038348 | Carley | Mar 2000 | A |
| 6049870 | Greaves | Apr 2000 | A |
| 6065131 | Andrews et al. | May 2000 | A |
| 6067262 | Irrinki et al. | May 2000 | A |
| 6067633 | Robbins et al. | May 2000 | A |
| 6069540 | Berenz et al. | May 2000 | A |
| 6072500 | Foran et al. | Jun 2000 | A |
| 6072686 | Yarbrough | Jun 2000 | A |
| 6085269 | Chan et al. | Jul 2000 | A |
| 6094116 | Tai et al. | Jul 2000 | A |
| 6098118 | Ellenby et al. | Aug 2000 | A |
| 6104407 | Aleksic et al. | Aug 2000 | A |
| 6104417 | Nielsen et al. | Aug 2000 | A |
| 6115049 | Winner et al. | Sep 2000 | A |
| 6118394 | Onaya | Sep 2000 | A |
| 6128000 | Jouppi et al. | Oct 2000 | A |
| 6129070 | Jingu et al. | Oct 2000 | A |
| 6137918 | Harrington et al. | Oct 2000 | A |
| 6160557 | Narayanaswami | Dec 2000 | A |
| 6160559 | Omtzigt | Dec 2000 | A |
| 6188394 | Morein et al. | Feb 2001 | B1 |
| 6201545 | Wong et al. | Mar 2001 | B1 |
| 6204859 | Jouppi et al. | Mar 2001 | B1 |
| 6219070 | Baker et al. | Apr 2001 | B1 |
| 6219628 | Kodosky et al. | Apr 2001 | B1 |
| 6249288 | Campbell | Jun 2001 | B1 |
| 6249853 | Porterfield | Jun 2001 | B1 |
| 6255849 | Mohan | Jul 2001 | B1 |
| 6256758 | Abramovici et al. | Jul 2001 | B1 |
| 6259460 | Gossett et al. | Jul 2001 | B1 |
| 6307169 | Sun et al. | Oct 2001 | B1 |
| 6323699 | Quiet | Nov 2001 | B1 |
| 6323874 | Gossett | Nov 2001 | B1 |
| 6348811 | Haycock et al. | Feb 2002 | B1 |
| 6359623 | Larson | Mar 2002 | B1 |
| 6362819 | Dalal et al. | Mar 2002 | B1 |
| 6363285 | Wey | Mar 2002 | B1 |
| 6363295 | Akram et al. | Mar 2002 | B1 |
| 6366289 | Johns | Apr 2002 | B1 |
| 6370603 | Silverman et al. | Apr 2002 | B1 |
| 6377898 | Steffan et al. | Apr 2002 | B1 |
| 6388590 | Ng | May 2002 | B1 |
| 6389585 | Masleid et al. | May 2002 | B1 |
| 6392431 | Jones | May 2002 | B1 |
| 6429288 | Esswein et al. | Aug 2002 | B1 |
| 6429747 | Franck et al. | Aug 2002 | B2 |
| 6429877 | Stroyan | Aug 2002 | B1 |
| 6433657 | Chen | Aug 2002 | B1 |
| 6437657 | Jones | Aug 2002 | B1 |
| 6437780 | Baltaretu et al. | Aug 2002 | B1 |
| 6452595 | Montrym et al. | Sep 2002 | B1 |
| 6469707 | Voorhies | Oct 2002 | B1 |
| 6480205 | Greene et al. | Nov 2002 | B1 |
| 6486425 | Seki | Nov 2002 | B2 |
| 6501564 | Schramm et al. | Dec 2002 | B1 |
| 6504542 | Voorhies et al. | Jan 2003 | B1 |
| 6504841 | Larson et al. | Jan 2003 | B1 |
| 6522329 | Ihara et al. | Feb 2003 | B1 |
| 6525737 | Duluk, Jr. et al. | Feb 2003 | B1 |
| 6529207 | Landau et al. | Mar 2003 | B1 |
| 6530045 | Cooper et al. | Mar 2003 | B1 |
| 6530049 | Abramovici et al. | Mar 2003 | B1 |
| 6535986 | Rosno et al. | Mar 2003 | B1 |
| 6550030 | Abramovici et al. | Apr 2003 | B1 |
| 6598194 | Madge et al. | Jul 2003 | B1 |
| 6606093 | Gossett et al. | Aug 2003 | B1 |
| 6611272 | Hussain et al. | Aug 2003 | B1 |
| 6614444 | Duluk, Jr. et al. | Sep 2003 | B1 |
| 6614448 | Garlick et al. | Sep 2003 | B1 |
| 6624823 | Deering | Sep 2003 | B2 |
| 6629181 | Alappat et al. | Sep 2003 | B1 |
| 6633197 | Sutardja | Oct 2003 | B1 |
| 6633297 | McCormack et al. | Oct 2003 | B2 |
| 6646639 | Greene et al. | Nov 2003 | B1 |
| 6662133 | Engel et al. | Dec 2003 | B2 |
| 6671000 | Cloutier | Dec 2003 | B1 |
| 6693637 | Koneru et al. | Feb 2004 | B2 |
| 6693639 | Duluk, Jr. et al. | Feb 2004 | B2 |
| 6697063 | Zhu | Feb 2004 | B1 |
| 6700581 | Baldwin et al. | Mar 2004 | B2 |
| 6701466 | Fiedler | Mar 2004 | B1 |
| 6717474 | Chen et al. | Apr 2004 | B2 |
| 6717576 | Duluk, Jr. et al. | Apr 2004 | B1 |
| 6717578 | Deering | Apr 2004 | B1 |
| 6718496 | Fukuhisa et al. | Apr 2004 | B1 |
| 6734770 | Aigner et al. | May 2004 | B2 |
| 6734861 | Van Dyke et al. | May 2004 | B1 |
| 6738856 | Milley et al. | May 2004 | B1 |
| 6741247 | Fenney | May 2004 | B1 |
| 6741258 | Peck, Jr. et al. | May 2004 | B1 |
| 6742000 | Fantasia et al. | May 2004 | B1 |
| 6747057 | Ruzafa et al. | Jun 2004 | B2 |
| 6747483 | To et al. | Jun 2004 | B2 |
| 6765575 | Voorhies et al. | Jul 2004 | B1 |
| 6778177 | Furtner | Aug 2004 | B1 |
| 6782587 | Reilly | Aug 2004 | B2 |
| 6785841 | Akrout et al. | Aug 2004 | B2 |
| 6788101 | Rahman | Sep 2004 | B1 |
| 6788301 | Thrasher | Sep 2004 | B2 |
| 6794101 | Liu et al. | Sep 2004 | B2 |
| 6798410 | Redshaw et al. | Sep 2004 | B1 |
| 6803782 | Koob et al. | Oct 2004 | B2 |
| 6803916 | Ramani et al. | Oct 2004 | B2 |
| 6806788 | Marumoto | Oct 2004 | B1 |
| 6819332 | Baldwin | Nov 2004 | B2 |
| 6823283 | Steger et al. | Nov 2004 | B2 |
| 6825847 | Molnar et al. | Nov 2004 | B1 |
| 6833835 | van Vugt | Dec 2004 | B1 |
| 6849924 | Allison et al. | Feb 2005 | B2 |
| 6850133 | Ma | Feb 2005 | B2 |
| 6861865 | Carlson | Mar 2005 | B1 |
| 6862027 | Andrews et al. | Mar 2005 | B2 |
| 6879207 | Nickolls | Apr 2005 | B1 |
| 6906716 | Moreton et al. | Jun 2005 | B2 |
| 6938176 | Alben et al. | Aug 2005 | B1 |
| 6940514 | Wasserman et al. | Sep 2005 | B1 |
| 6947057 | Nelson et al. | Sep 2005 | B2 |
| 6956579 | Diard et al. | Oct 2005 | B1 |
| 6961057 | Van Dyke et al. | Nov 2005 | B1 |
| 6966020 | Abramovici et al. | Nov 2005 | B1 |
| 6973608 | Abramovici et al. | Dec 2005 | B1 |
| 6978317 | Anantha et al. | Dec 2005 | B2 |
| 6982718 | Kilgard et al. | Jan 2006 | B2 |
| 7002591 | Leather et al. | Feb 2006 | B1 |
| 7009607 | Lindholm et al. | Mar 2006 | B2 |
| 7009615 | Kilgard et al. | Mar 2006 | B1 |
| 7020598 | Jacobson | Mar 2006 | B1 |
| 7043622 | Henry et al. | May 2006 | B2 |
| 7058738 | Stufflebeam, Jr. | Jun 2006 | B2 |
| 7061495 | Leather | Jun 2006 | B1 |
| 7064771 | Jouppi et al. | Jun 2006 | B1 |
| 7069369 | Chou et al. | Jun 2006 | B2 |
| 7069458 | Sardi et al. | Jun 2006 | B1 |
| 7069558 | Stone et al. | Jun 2006 | B1 |
| 7075542 | Leather | Jul 2006 | B1 |
| 7075797 | Leonard et al. | Jul 2006 | B1 |
| 7081902 | Crow et al. | Jul 2006 | B1 |
| 7085824 | Forth et al. | Aug 2006 | B2 |
| 7119809 | McCabe | Oct 2006 | B1 |
| 7124318 | Luick | Oct 2006 | B2 |
| 7126600 | Fowler et al. | Oct 2006 | B1 |
| 7136953 | Bisson et al. | Nov 2006 | B1 |
| 7154066 | Talwar et al. | Dec 2006 | B2 |
| 7158148 | Toji et al. | Jan 2007 | B2 |
| 7170315 | Bakker et al. | Jan 2007 | B2 |
| 7170515 | Zhu | Jan 2007 | B1 |
| 7174407 | Hou et al. | Feb 2007 | B2 |
| 7174411 | Ngai | Feb 2007 | B1 |
| 7184040 | Tzvetkov | Feb 2007 | B1 |
| 7185135 | Briggs et al. | Feb 2007 | B1 |
| 7185225 | Sutardja et al. | Feb 2007 | B2 |
| 7187383 | Kent | Mar 2007 | B2 |
| 7224364 | Yue et al. | May 2007 | B1 |
| 7246274 | Kizer et al. | Jul 2007 | B2 |
| 7260007 | Jain et al. | Aug 2007 | B2 |
| RE39898 | Nally et al. | Oct 2007 | E |
| 7293127 | Caruk | Nov 2007 | B2 |
| 7305571 | Cranford, Jr. et al. | Dec 2007 | B2 |
| 7307628 | Goodman et al. | Dec 2007 | B1 |
| 7307638 | Leather et al. | Dec 2007 | B2 |
| 7324458 | Schoenborn et al. | Jan 2008 | B2 |
| 7340541 | Castro et al. | Mar 2008 | B2 |
| 7362325 | Anderson | Apr 2008 | B2 |
| 7373547 | Sutardja et al. | May 2008 | B2 |
| 7382368 | Molnar et al. | Jun 2008 | B1 |
| 7398336 | Feng et al. | Jul 2008 | B2 |
| 7414636 | Kokojima et al. | Aug 2008 | B2 |
| 7415551 | Pescatore | Aug 2008 | B2 |
| 7424564 | Mehta et al. | Sep 2008 | B2 |
| 7437021 | Satoh | Oct 2008 | B2 |
| 7453466 | Hux et al. | Nov 2008 | B2 |
| 7480808 | Caruk et al. | Jan 2009 | B2 |
| 7483029 | Crow et al. | Jan 2009 | B2 |
| 7525986 | Lee et al. | Apr 2009 | B2 |
| 7548996 | Baker et al. | Jun 2009 | B2 |
| 7551174 | Iourcha et al. | Jun 2009 | B2 |
| 7594061 | Shen et al. | Sep 2009 | B2 |
| 7633506 | Leather et al. | Dec 2009 | B1 |
| 7634637 | Lindholm et al. | Dec 2009 | B1 |
| 7663633 | Diamond et al. | Feb 2010 | B1 |
| 7782325 | Gonzalez et al. | Aug 2010 | B2 |
| 7791617 | Crow et al. | Sep 2010 | B2 |
| 7793029 | Parson et al. | Sep 2010 | B1 |
| 7965902 | Zelinka et al. | Jun 2011 | B1 |
| 8063903 | Vignon et al. | Nov 2011 | B2 |
| 8132015 | Wyatt | Mar 2012 | B1 |
| 8144166 | Lyapunov et al. | Mar 2012 | B2 |
| 8237738 | Crow | Aug 2012 | B1 |
| 8412872 | Wagner et al. | Apr 2013 | B1 |
| 8417838 | Tamasi et al. | Apr 2013 | B2 |
| 20010005209 | Lindholm et al. | Jun 2001 | A1 |
| 20020005729 | Leedy | Jan 2002 | A1 |
| 20020026623 | Morooka | Feb 2002 | A1 |
| 20020031025 | Shimano et al. | Mar 2002 | A1 |
| 20020050979 | Oberoi et al. | May 2002 | A1 |
| 20020059392 | Ellis, III | May 2002 | A1 |
| 20020087833 | Burns et al. | Jul 2002 | A1 |
| 20020091979 | Cooke et al. | Jul 2002 | A1 |
| 20020097241 | McCormack et al. | Jul 2002 | A1 |
| 20020120723 | Forth et al. | Aug 2002 | A1 |
| 20020130863 | Baldwin | Sep 2002 | A1 |
| 20020138750 | Gibbs et al. | Sep 2002 | A1 |
| 20020140655 | Liang et al. | Oct 2002 | A1 |
| 20020143653 | DiLena et al. | Oct 2002 | A1 |
| 20020158869 | Ohba et al. | Oct 2002 | A1 |
| 20020158885 | Brokenshire et al. | Oct 2002 | A1 |
| 20020196251 | Duluk, Jr. et al. | Dec 2002 | A1 |
| 20020199110 | Kean | Dec 2002 | A1 |
| 20030020173 | Huff et al. | Jan 2003 | A1 |
| 20030023771 | Erickson et al. | Jan 2003 | A1 |
| 20030046472 | Morrow | Mar 2003 | A1 |
| 20030051091 | Leung et al. | Mar 2003 | A1 |
| 20030061409 | RuDusky | Mar 2003 | A1 |
| 20030067468 | Duluk, Jr. et al. | Apr 2003 | A1 |
| 20030076325 | Thrasher | Apr 2003 | A1 |
| 20030093506 | Oliver et al. | May 2003 | A1 |
| 20030101288 | Tague et al. | May 2003 | A1 |
| 20030115500 | Akrout et al. | Jun 2003 | A1 |
| 20030122815 | Deering | Jul 2003 | A1 |
| 20030160795 | Alcorn et al. | Aug 2003 | A1 |
| 20030163589 | Bunce et al. | Aug 2003 | A1 |
| 20030164830 | Kent | Sep 2003 | A1 |
| 20030179631 | Koob et al. | Sep 2003 | A1 |
| 20030194116 | Wong et al. | Oct 2003 | A1 |
| 20030201994 | Taylor et al. | Oct 2003 | A1 |
| 20040012082 | Dewey et al. | Jan 2004 | A1 |
| 20040012597 | Zatz et al. | Jan 2004 | A1 |
| 20040046764 | Lefebvre et al. | Mar 2004 | A1 |
| 20040064628 | Chiu | Apr 2004 | A1 |
| 20040085313 | Moreton et al. | May 2004 | A1 |
| 20040102187 | Moller et al. | May 2004 | A1 |
| 20040130552 | Duluk, Jr. et al. | Jul 2004 | A1 |
| 20040183148 | Blasko, III | Sep 2004 | A1 |
| 20040183801 | Deering | Sep 2004 | A1 |
| 20040188781 | Bar | Sep 2004 | A1 |
| 20040196285 | Rice et al. | Oct 2004 | A1 |
| 20040196290 | Satoh | Oct 2004 | A1 |
| 20040207642 | Crisu et al. | Oct 2004 | A1 |
| 20040225787 | Ma et al. | Nov 2004 | A1 |
| 20040227599 | Shen et al. | Nov 2004 | A1 |
| 20040246251 | Fenney et al. | Dec 2004 | A1 |
| 20050030314 | Dawson | Feb 2005 | A1 |
| 20050041031 | Diard | Feb 2005 | A1 |
| 20050041037 | Dawson | Feb 2005 | A1 |
| 20050044284 | Pescatore | Feb 2005 | A1 |
| 20050045722 | Park | Mar 2005 | A1 |
| 20050060601 | Gomm | Mar 2005 | A1 |
| 20050066148 | Luick | Mar 2005 | A1 |
| 20050088445 | Gonzalez et al. | Apr 2005 | A1 |
| 20050122338 | Hong et al. | Jun 2005 | A1 |
| 20050125629 | Kissell | Jun 2005 | A1 |
| 20050134588 | Aila et al. | Jun 2005 | A1 |
| 20050134603 | Iourcha et al. | Jun 2005 | A1 |
| 20050172135 | Wiersma | Aug 2005 | A1 |
| 20050173233 | Kaelberer | Aug 2005 | A1 |
| 20050174353 | Alcorn et al. | Aug 2005 | A1 |
| 20050179698 | Vijayakumar et al. | Aug 2005 | A1 |
| 20050182881 | Chou et al. | Aug 2005 | A1 |
| 20050210472 | Accapadi et al. | Sep 2005 | A1 |
| 20050237083 | Bakker et al. | Oct 2005 | A1 |
| 20050246460 | Stufflebeam, Jr. | Nov 2005 | A1 |
| 20050251358 | Van Dyke et al. | Nov 2005 | A1 |
| 20050251761 | Diamond et al. | Nov 2005 | A1 |
| 20050259100 | Teruyama | Nov 2005 | A1 |
| 20050261863 | Van Dyke et al. | Nov 2005 | A1 |
| 20050275663 | Kokojima et al. | Dec 2005 | A1 |
| 20050278666 | Diamond | Dec 2005 | A1 |
| 20050285863 | Diamond | Dec 2005 | A1 |
| 20060004536 | Diamond et al. | Jan 2006 | A1 |
| 20060033745 | Koselj et al. | Feb 2006 | A1 |
| 20060044317 | Bourd et al. | Mar 2006 | A1 |
| 20060053188 | Mantor et al. | Mar 2006 | A1 |
| 20060053189 | Mantor | Mar 2006 | A1 |
| 20060055641 | Robertus et al. | Mar 2006 | A1 |
| 20060106911 | Chapple et al. | May 2006 | A1 |
| 20060123177 | Chan et al. | Jun 2006 | A1 |
| 20060132495 | Anderson | Jun 2006 | A1 |
| 20060170690 | Leather | Aug 2006 | A1 |
| 20060190663 | Lu | Aug 2006 | A1 |
| 20060203005 | Hunter | Sep 2006 | A1 |
| 20060221086 | Diard | Oct 2006 | A1 |
| 20060245001 | Lee et al. | Nov 2006 | A1 |
| 20060252285 | Shen | Nov 2006 | A1 |
| 20060267981 | Naoi | Nov 2006 | A1 |
| 20060267987 | Litchmanov | Nov 2006 | A1 |
| 20060282604 | Temkine et al. | Dec 2006 | A1 |
| 20070038794 | Purcell et al. | Feb 2007 | A1 |
| 20070067535 | Liu | Mar 2007 | A1 |
| 20070088877 | Chen et al. | Apr 2007 | A1 |
| 20070115271 | Seo et al. | May 2007 | A1 |
| 20070115290 | Polzin et al. | May 2007 | A1 |
| 20070115291 | Chen et al. | May 2007 | A1 |
| 20070139440 | Crow et al. | Jun 2007 | A1 |
| 20070268298 | Alben et al. | Nov 2007 | A1 |
| 20070273689 | Tsao | Nov 2007 | A1 |
| 20070296725 | Steiner et al. | Dec 2007 | A1 |
| 20080024497 | Crow et al. | Jan 2008 | A1 |
| 20080024522 | Crow et al. | Jan 2008 | A1 |
| 20080100618 | Woo et al. | May 2008 | A1 |
| 20080198163 | Nakahashi et al. | Aug 2008 | A1 |
| 20080273218 | Kitora et al. | Nov 2008 | A1 |
| 20090044003 | Berthiaume et al. | Feb 2009 | A1 |
| Number | Date | Country |
|---|---|---|
| 101093578 | Dec 2007 | CN |
| 61020348 | Jan 1986 | JP |
| 04266768 | Sep 1992 | JP |
| 06180758 | Jun 1994 | JP |
| 10134198 | May 1998 | JP |
| 11195132 | Jul 1999 | JP |
| 11328133 | Nov 1999 | JP |
| 2002076120 | Mar 2002 | JP |
| 2005182547 | Jul 2005 | JP |
| 093127712 | Jul 2005 | TW |
| 0013145 | Mar 2000 | WO |
| 02054224 | Jul 2002 | WO |
| 2004030127 | Mar 2005 | WO |
| 2005029329 | Mar 2005 | WO |
| Entry |
|---|
| “Addressing the System-on-a-Chip Interconnect Woes Through Communication-Based Design” by Sgroi et al., DAC 2001, Jun. 18-22, 2001, copyright ACM. |
| Welch, D. “Building Self-Reconfiguring Distributed Systems Using Compensating Reconfiguration”, Proceedings Fourth International Journal Conference on Configurable Distributed Systems, May 4-6, 1998, pp. 18-25. |
| International Search Report. PCT/US2004/030127. Mail Date Jun. 30, 2005. |
| PCT International Preliminary Report on Patentability. PCT/US2004/030127. International Filing Date Sep. 13, 2004. Application: Nvidia Corporation. Date of Issuance of this Report: Mar. 16, 2006. |
| A parallel algorithm for polygon rasterization Juan Pineda Jun. 1988 ACM XX. |
| A VLSI architecture for updating raster-scan displays Satish Gupta, Robert F. Sproull, Ivan E. Sutherland Aug. 1981 ACM SIGGRAPH Computer Graphics, Proceedings of the 8th annual conference on Computer graphics and interactive techniques SIGGRAPH '81, vol. 15 Issue 3 Publisher: ACM Press. XX. |
| Boyer, et al.; “Discrete Analysis for Antialiased Lines,” Eurographics 2000; 3 pages. XX. |
| Crow; “The Use of Grayscale for Improves Raster Display of Vectors and Characters;” University of Texas, Austin, Texas; Work supported by the National Science Foundation unser Grants MCS 76-83889; pp. 1-5: ACM Press. XX, 1978. |
| “Addressing the System-on-a-Chip Interconnect Woes Through Communication-Based Design” by Sgrol et al., DAC 2001, Jun. 18-22, 2001, copyright ACM. |
| “OSI Reference Model-The ISO Model of Architecture for Open Systems Interconnection,” by Zimmermann, IEEE Transactions on Communicaions, Apr. 1980. |
| “SuperPaint: An Early Frame Buffer Graphics System”, by Richard Shoup, IEEE Annals of the History of Computing, copyright 2001. |
| “Multimedia Processors” by Kuroda et al., Proceedings of the IEEE, Jun. 1998. |
| “Test Requirements for Embedded Core-based Systems and IEEE P1500” by Yervant Zorian, International Test Conference,copyright IEEE 1997. |
| PCI Express Card Electromechanical Specification Rev. 1.1, 2005, p. 87. |
| A parallel algorithm for polygon rasterization Juan Pineda Jun. 1988 ACM. |
| A VLSI architecture for updating raster-scan displays Satish Gupta, Robert F. Sproull, Ivan E. Sutherland Aug. 1981 ACM SIGGRAPH Computer Graphics , Proceedings of the 8th annual conference on Computer graphics and interactive techniques SIGGRAPH '81, vol. 15 Issue 3 Publisher: ACM Press. |
| Blythe, OpenGL Section 3.4.1, “Basic Line Segment Rasterization”, Mar. 29, 1997, pp. 1-3. |
| Boyer, et al.; “Discrete Analysis for Antialiased Lines,” Eurographics 2000; 3 Pages. |
| Crow; “he Use of Grayscale for Improves Raster Display of Vectors and Characters;” University of Texas, Austin, Texas; Work supported by the National Science Foundation unser Grants MCS 76-83889; pp. 1-5: ACM Press, 1978. |
| Number | Date | Country | |
|---|---|---|---|
| 20090103443 A1 | Apr 2009 | US |