A method for adjusting timing of multiple cores within an integrated circuit includes selecting a reference core and a target core from among a plurality of cores of an integrated circuit. Self-test circuitry of the integrated circuit is used to generate a response signature for each of the reference core and the target core. The response signature of the reference core is compared with the response signature of the target core. A local clock buffer of the target core is adjusted until the response signature of the target core matches the response signature of the reference core.
|
20. An integrated circuit system, comprising:
a first integrated circuit core comprising a first multiple input shift register for generating a first response signature in response to a test pattern processed by the first integrated circuit core;
a second integrated circuit core comprising a second multiple input shift register for generating a second response signature in response to the test pattern processed by the second integrated circuit core; and
a checker receiving the first response signature and the second response signature and producing an output signal indicating whether the first response signature is substantially identical to the second response signature.
1. A method for adjusting critical path timing of one or more cores within a multi-core integrated circuit, comprising:
selecting a reference core and a target core from among a plurality of cores of an integrated circuit;
using self-test circuitry of the integrated circuit to generate a response signature for each of the reference core and the target core;
comparing the response signature of the reference core with the response signature of the target core; and
adjusting a local clock buffer of the target core until the response signature of the target core matches the response signature of the reference core, thereby adjusting the critical path timing of the target core.
11. A multi-core integrated circuit, comprising:
a first integrated circuit core comprising a first multiple input shift register for generating a first response signature in response to a test pattern processed by the first integrated circuit core;
a second integrated circuit core comprising a second multiple input shift register for generating a second response signature in response to the test pattern processed by the second integrated circuit core;
a first latch receiving the first response signature and a scan clock signal;
a second latch receiving the second response signature and the scan clock signal; and
a checker receiving output from the first and second latches for checking when the first response signature is substantially identical to the second response signature.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
12. The circuit of
14. The circuit of
15. The circuit of
16. The circuit of
17. The circuit of
18. The circuit of
19. The circuit of
21. The system of
23. The system of
24. The system of
|
1. Technical Field
The present disclosure relates to multi-core integrated circuits and, more specifically, to a system and method for self-adjusting critical path timing of multi-core very-large-scale integration (VLSI) chips.
2. Discussion of Related Art
Very-large-scale integration (VLSI) is a process for creating modern complex integrated circuits that may contain thousands, millions, and often billions of transistor-based circuits on a single chip. Such chips may include microprocessors such as central processing units (CPUs) for computer systems, system-on-chip devices, digital signal processors, graphical processing units (GPUs) and the like.
A modern trend in microprocessor design is to utilize two or more independent cores within a single chip. Efficiency gains may then be achieved as each of the cores is able to independently process instructions. While today many commercially available multi-core microprocessors are dual-core or quad-core, microprocessors including substantially higher-order cores are also available or in development.
Many software applications are designed to divide instructions into multiple threads that may be processed in parallel by the multiple cores of the microprocessor. Such applications may be well suited for exploiting the potential of multi-core microprocessors. For many of these applications, the multiple cores may operate, to some extent, asynchronously, with each core responsible for processing its own threads. However, some other applications may be able to benefit from the multiple cores operating in synchronous. Synchronizing the timing of the multiple cores may be difficult, as subtle manufacturing variations within the multiple-cores may permit some cores to operate at different speeds. These differences in core speeds may result in distinct critical path timing for each core.
A method for adjusting timing of multiple cores within an integrated circuit includes selecting a reference core and a target core from among a plurality of cores of an integrated circuit. Self-test circuitry of the integrated circuit is used to generate a response signature for each of the reference core and the target core. The response signature of the reference core is compared with the response signature of the target core. A local clock buffer of the target core is adjusted until the response signature of the target core matches the response signature of the reference core.
A multi-core integrated circuit with elements for synchronizing the multiple cores includes a first integrated circuit core including a first multiple input shift register for generating a first response signature in response to a test pattern processed by the first integrated circuit core and a second integrated circuit core including a second multiple input shift register for generating a second response signature in response to the test pattern processed by the second integrated circuit core. A first latch receives the first response signature and a scan clock signal and a second latch receives the second response signature and the scan clock signal. A checker receives output from the first and second latches for checking when the first response signature is substantially identical to the second response signature.
A system for adjusting timing of multiple cores within an integrated circuit includes a first integrated circuit core including a first multiple input shift register for generating a first response signature in response to a test pattern processed by the first integrated circuit core and a second integrated circuit core including a second multiple input shift register for generating a second response signature in response to the test pattern processed by the second integrated circuit core. A checker receives the first response signature and the second response signature and produces an output signal indicating whether the first response signature is substantially identical to the second response signature.
A more complete appreciation of the present disclosure and many of the attendant aspects thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
In describing exemplary embodiments of the present disclosure illustrated in the drawings, specific terminology is employed for sake of clarity. However, the present disclosure is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents which operate in a similar manner.
Exemplary embodiments of the present invention seek to provide integrated circuits such as microprocessors that are capable of self-adjusting critical path timing of multiple cores, for example, so that one or more of the multiple cores of the microprocessor may function substantially in synchronous.
As described above, synchronization of multiple cores is complicated by subtle variations across the chip and from core-to-core. These variations may result in timing skew between identical processing paths executed on different cores. Accordingly, exemplary embodiments of the present invention seek to reduce the timing skew across multiple cores to enhance multi-core synchronization.
Many integrated circuits may be manufactured to include a logic built-in self-test (LBIST). The LBIST is circuitry that is designed to simplify the testing of the integrated circuit that contains the LBIST by, for example, generating a random stimulus and gauge the integrated circuit's response to the generated stimulus by capturing a response to the stimulus within a multiple input shift register (MISR). The MISR then may generate a response signature that may be matched against an expected response signature. If the response signature matches the expected response, then the integrated circuit may be seen as fully operational.
The LBIST may thus be used at either the wafer level, the chip level or at the system level to determine the operational status of the integrated circuit.
Accordingly, the LBIST is a component of the integrated circuit that effects a self-test. After fabrication, a microprocessor may be set into a self-test mode in which the LBIST may be used to test the functionality of the integrated circuit. Here, the LBIST generally provides a simple pass or fail output indicating the operational status of the integrated circuit.
Exemplary embodiments of the present invention seek to use self-test circuitry such as the LBIST or other automatic test pattern generation circuitry to reduce the timing skew across multiple cores to enhance multi-core synchronization. In this way, the LBIST, or similar circuitry, is used for a novel purpose that is other than testing the functionality of the integrated circuit.
First, two cores of the integrated circuit may be selected for comparison (Step S10). As exemplary embodiments of the present invention seek to tune the function of each core, the various cores may all be brought into synchronization by systematically synchronizing two cores at a time until all cores are in synchronous with one another. As described herein, a first core may be synchronized with a second core, the second core synchronized to the third core, and so on until all cores are synchronized. However, this two-at-a-time approach is offered for the purposes of keeping the explanation of the invention as simple as possible, and it is to be understood that other approaches to synchronizing the cores may be used. For example, each core may be synchronized to a particular reference core or all cores may be synchronized to a reference level that is not determined by one of the cores.
After two cores have been selected for comparison (Step S10), the self-test circuitry, for example, the LBIST, may be used to generate a response signature for processing one or more critical paths for each core of the integrated circuit (Step S11). For example, a particular response signature may be generated for each core for a given critical path at a given frequency. This step may be performed for each of the multiple cores, for each of the given critical paths, and at each of a number of different frequencies, as desired. Where it is desired that response signatures be generated at multiple different frequencies, various different frequencies may be achieved by shmooing the chip across a range of cycle times.
Then, the generated response signatures may be compared (Step S12). Comparison of the response signatures may include comparing the response signatures for each of the currently selected cores for the same critical path and the same frequency, although the comparison may be repeated for different critical paths and/or different frequencies. A simple on-chip comparator may be used, for example, to compare the response signature from the MISRs of the various cores. If it is determined that the response signatures for the selected cores match (Yes, Step S12), for example, because for each critical path and at each frequency, the response signatures for each core are identical, then the two cores may be considered to be in synchronous and a next set of cores may be selected for comparison (Step S10). If, however, it is determined that the response signatures for the selected cores do not match (No, Step S12), for example, because for any given critical path or frequency, the response signatures for each core are not identical, then a setting of a local clock buffer (LCB) for one of the mismatched cores may be adjusted (Step S13). As each of the multiple cores may have its own LCB, and the LCB of either of the selected cores may be adjusted to better synchronize the two cores, it may not matter which LCB is adjusted during the first comparison. However, in subsequent comparisons, it may be important that the LCB of a previously synchronized core not be changed. Thus where there is a reference core, the LCB of the other core may be adjusted and where the cores are compared in series, for example, a first core with a second core, the second core with a third core, the third core with a fourth core, etc., in the first comparison between the first core and the second core it may not matter which LCB is adjusted, however, in the next comparison between the second core and the third core, the LCB from the third core should be adjusted to avoid breaking synchronization between the first core and the second core. For example, in the first comparison, the LCB of the slower path may be adjusted.
Adjusting of the LCB may include reprogramming the programmable LCB to a different level. After the LCB of one of the mismatched cores has been reprogrammed, response signatures may again be generated (Step S11) and it may again be determined whether there is a match between response signatures. As adjustments to the LCB of one of the selected cores may be used to offset timing skews, the selected cores may be brought into synchronization with one another. After all cores have been successfully synchronized, for example, in pairs, as discussed above, the process may end.
The LCB may also be changed with respect to particular critical paths and as such, synchronization by LBIST comparison and LCB adjustment may be performed for each critical path of a list of desired critical paths. Because of the fact that many multi-core integrated circuits may already include an LBIST and LCBs for each core, minimal integrated circuit redesign may be required to perform the above-described method for minimizing timing skew between cores according to exemplary embodiments of the present invention. Moreover, integrated circuit redesign needs only include minimal extra elements, for example, a few logic gates and some non-timing-critical wires. Accordingly, exemplary embodiments of the present invention need not noticeably add to integrated circuit complexity.
Synchronizing of the multiple cores of an integrated circuit, as described above, may be performed at any stage of system assembly. For example, it may be performed at the wafer level where multiple integrated circuits still occupy a single wafer, at a chip level where each integrated circuit has been cut from the wafer and possibly packaged, or at a system level after the integrated circuit has been implemented into a computer system. Additionally, performance of synchronization as described above need not be limited to manufacturing. Exemplary embodiments of the present invention may be performed in the field and may be repeated as desired to correct for stress, degradation and other subtle changes that may affect an integrated circuit with use and time.
According to other exemplary embodiments of the present invention, rather than using an LBIST or other design-for-test chip feature, external testing circuits may be used to determine and compare response signatures and reprogram LCBs as described above. In such a case, no circuit overhead need be added to the integrated circuit to perform exemplary embodiments of the present invention.
While other variations of chip design may be used, exemplary embodiments of the present invention may utilize a level sensitive scan design (LSSD). The LSSD methodology is a system design and a Design-for-Test (DFT) approach that incorporates several basic test concepts such as scan design. En such a design most of the device's storage elements, such as latches or registers are concatenated in one or more scan chains and can be externally accessible via one or more serial inputs and outputs. Storage elements that are not in this category are usually memory or other special macros that are isolated and tested independently.
LSSD is described in detail in U.S. Pat. Nos. 4,293,919; 3,783,254; 3,761,695; and 3,784,907, each of which is incorporated herein by reference.
Self-test circuitry used in performance of exemplary embodiments of the present invention may be in the form of a Self-Test Using MISR and parallel SRSG (STUMPS). As described above, a MISR is a Multiple Input Shift Register. SRSG is a Shift Register Sequence Generator. A STUMPS may take the form of an LBIST, as described above, or other variations may be used.
The Linear Feedback Shift Register (LFSR) structure 31 illustrated in
This STUMPS structure may be further enhanced by adding some control logic to not only let the test results from a group of latches compress into MISR 37, but an individual latch as well.
In particular, the control logic macro 40 may have the ability to select a desired scan chain and a desired latch. Output from the selected latch alone may then be sent to the MISR 37 to generate a signature specific to the selected latch. Then, in implementing the selective signature feature, each latch may be tested as the running frequency is stepped up in small increments, for example, by shmooing, to determine the frequency at which the latch signature becomes erroneous (i.e. changes). Using this technique, the first latch or latches to change signatures, as the running frequency is increased, may be regarded as top critical paths as the corresponding integrated circuit core would not be able to function faster than the frequency that caused these latches to produce erroneous signatures. As exemplary embodiments of the present invention may then modify the LCB corresponding to the critical path latch, the critical path may be driven at a higher running frequency, and accordingly, the corresponding core could be driven at a higher running frequency thereby reducing timing skews between cores of the integrated circuit.
In a multi-core integrated circuit design, each core may have its own MISR 37. The LBIST may run independently. For synchronized cores, MISR signatures should be the same for a given selected path, pattern number (loops), and running frequencies. Accordingly, exemplary embodiments of the present invention seek to reduce the timing skew between the identical paths on two different cores by tuning the LCB setting.
Exemplary embodiments described herein are illustrative, and many variations can be introduced without departing from the spirit of the disclosure or from the scope of the appended claims. For example, elements and/or features of different exemplary embodiments may be combined with each other and/or substituted for each other within the scope of this disclosure and appended claims.
Song, Peilin, Stellari, Franco
Patent | Priority | Assignee | Title |
10184980, | Sep 06 2016 | Texas Instruments Incorporated | Multiple input signature register analysis for digital circuitry |
11209481, | Sep 06 2016 | Texas Instruments Incorporated | Multiple input signature register analysis for digital circuitry |
9158319, | Oct 23 2013 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Closed-loop adaptive voltage scaling for integrated circuits |
9194916, | Jan 02 2014 | GLOBALFOUNDRIES Inc | Method with system and program product for prioritizing clock domains for testing of integrated circuit designs |
Patent | Priority | Assignee | Title |
7139947, | Dec 22 2000 | Intel Corporation | Test access port |
7627797, | Dec 22 2000 | Intel Corporation | Test access port |
20050156370, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 26 2010 | STELLARI, FRANCO | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024451 | /0469 | |
May 26 2010 | SONG, PEILIN | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024451 | /0469 | |
May 27 2010 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Jun 29 2015 | International Business Machines Corporation | GLOBALFOUNDRIES U S 2 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036550 | /0001 | |
Sep 10 2015 | GLOBALFOUNDRIES U S 2 LLC | GLOBALFOUNDRIES Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036779 | /0001 | |
Sep 10 2015 | GLOBALFOUNDRIES U S INC | GLOBALFOUNDRIES Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036779 | /0001 | |
Nov 27 2018 | GLOBALFOUNDRIES Inc | WILMINGTON TRUST, NATIONAL ASSOCIATION | SECURITY AGREEMENT | 049490 | /0001 | |
Oct 22 2020 | GLOBALFOUNDRIES Inc | GLOBALFOUNDRIES U S INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 054633 | /0001 | |
Nov 17 2020 | WILMINGTON TRUST, NATIONAL ASSOCIATION | GLOBALFOUNDRIES Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 054636 | /0001 | |
Nov 17 2020 | WILMINGTON TRUST, NATIONAL ASSOCIATION | GLOBALFOUNDRIES U S INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 056987 | /0001 |
Date | Maintenance Fee Events |
Sep 15 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 17 2020 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 18 2024 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 02 2016 | 4 years fee payment window open |
Oct 02 2016 | 6 months grace period start (w surcharge) |
Apr 02 2017 | patent expiry (for year 4) |
Apr 02 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 02 2020 | 8 years fee payment window open |
Oct 02 2020 | 6 months grace period start (w surcharge) |
Apr 02 2021 | patent expiry (for year 8) |
Apr 02 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 02 2024 | 12 years fee payment window open |
Oct 02 2024 | 6 months grace period start (w surcharge) |
Apr 02 2025 | patent expiry (for year 12) |
Apr 02 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |