Critical path delay prediction

Embodiments of the invention provide a method, system, and program product for predicting a delay of a critical path. In one embodiment, the invention provides a method of predicting a delay of at least one critical path of an integrated circuit, the method comprising: determining a delay of at least one ring oscillator on the integrated circuit; and calculating a predicted delay for the at least one critical path delay based on a delay of components of the critical path at a corner condition, a wire delay of the at least one critical path, a delay of the at least one ring oscillator at a corner condition, and the determined delay of the at least one ring oscillator.

TECHNICAL FIELD

The present invention relates generally to semiconductor chip and integrated circuit technologies and, more particularly, to the prediction of a critical path delay.

BACKGROUND OF THE INVENTION

The increased power demands of semiconductor chips are becoming more difficult to overcome, particularly as chip densities increase. Adaptive voltage scaling (AVS) is one technique used to reduce power consumption. Unfortunately, efficient use of AVS requires accurate predictions of critical path performance, and particularly critical path delay, something that has proven difficult to achieve.

SUMMARY OF THE INVENTION

Embodiments of the invention provide methods, systems, and program products for predicting a critical path delay.

A first aspect of the invention provides a method of predicting a delay of at least one critical path of an integrated circuit, the method comprising: determining a delay of at least one ring oscillator on the integrated circuit; and calculating a predicted delay for the at least one critical path delay based on a delay of components of the critical path at a corner condition, a wire delay of the at least one critical path, a delay of the at least one ring oscillator at a corner condition, and the determined delay of the at least one ring oscillator.

A second aspect of the invention provides a system comprising: at least one computing device configured for predicting a delay of at least one critical path of an integrated circuit by performing a method comprising: determining a delay through at least one ring oscillator on the integrated circuit; and calculating a predicted critical path delay based on a delay of components of the critical path at a corner condition, a wire delay of the at least one critical path, a delay of the at least one ring oscillator at a corner condition, and the determined delay of the at least one ring oscillator.

A third aspect of the invention provides a program product stored on a computer-readable storage medium which, when executed, is operable to predict a delay of at least one critical path of an integrated circuit by performing a method comprising: determining a delay through at least one ring oscillator on the integrated circuit; and calculating a predicted critical path delay for the at least one critical path delay based on a delay of components of the critical path at a corner condition, a wire delay of the at least one critical path, a delay of the at least one ring oscillator at a corner condition, and the determined delay of the at least one ring oscillator.

The illustrative aspects of the present invention are designed to solve the problems herein described and other problems not discussed, which are discoverable by a skilled artisan.

DETAILED DESCRIPTION OF THE INVENTION

Turning now to the drawings,FIG. 1shows an illustrative plot of the delay (in nanoseconds) associated with various critical path components as a function of drain voltage (Vdd). As can be seen inFIG. 1, at drain voltages less than about 1.0, high-voltage threshold (HVT) components6exhibit a greater delay than medium-voltage threshold (SVT) components4or low-voltage threshold (UVT) components2. At drain voltages greater than about 1.0, however, UVT components2exhibit a greater delay than SVT components4or HVT components6. One difficulty in predicting performance of a critical path, then, and particularly in predicting a delay of a critical path, is the differences in delays attributable to HVT, SVT, and UVT components as drain voltage changes. That is, any predicted delay of a critical path should remain below an upper bound10of the delays of all components in order to be useful in maximizing chip efficiency, particularly the efficiencies afforded by adaptive voltage scaling (AVS).

In one embodiment of the invention, performance of a critical path can be predicted, and chip efficiency improved, using static timing analysis data and real-time estimation of critical path performance using on-board ring oscillators.FIG. 2shows a schematic of a critical path clock and ring oscillator frequency at a corner condition. As can be seen inFIG. 2, the N cycles of the critical path clock during the period shown correspond to M cycles of the ring oscillator. Using this correspondence, the ring oscillator frequency may be used to estimate a delay in the critical path, the components of which are sensitive to chip parameters, such as process, voltage, and temperature. In other words, once the critical path clock to ring oscillator frequency is known at a corner condition, the ring oscillator frequency under other conditions can be used to predict a critical path delay under those other conditions.

A predicted critical path delay can be calculated, in general, according to Equation 1 below.

In Equation 1, Dcpis the predicted critical path delay, DCccis a delay of components of the at least one critical path at a corner condition, DROis the determined delay of the at least one ring oscillator, DROccis a nominal delay of the at least one ring oscillator at a corner condition, and DWis a delay through wiring of the at least one critical path at a corner condition. Other than the DROvalue, which is determined in real-time, all other variables of Equation 1 may be derived from static timing analyses, such as an end point timing report.

Typically, the components of a critical path will be segregated according to their voltage thresholds or some other characteristic relevant to the delay attributable to a component. Equation 2 below shows such an embodiment, in which components of the critical path are grouped into HVT, SVT, and UVT components. Other groupings of critical path components are possible, of course, and are within the scope of the present invention.

In Equation 2, Dcpis the predicted critical path delay, DHVTCccis the delay of HVT components of the critical path at a corner condition, DHVTROis the measured delay of HVT ring oscillators, DHVTROccis the delay of the HVT ring oscillators at a corner condition, DSVTCccis the delay of SVT components of the critical path at a corner condition, DSVTROis the measured delay of SVT ring oscillators, DSVTROccis the delay of the SVT ring oscillators at a corner condition, DUVTCccis the delay of UVT components of the critical path at a corner condition, DUVTROis the measured delay of UVT ring oscillators, DUVTROccis the delay of the UVT ring oscillators at a corner condition, and DW is the wire delay of the critical path. Other than the calculated Dcp and the measured delays of the HVT, SVT, and UVT ring oscillators, all other values may be derived from static timing analysis. Thus, by monitoring on-board ring oscillator frequency, a critical path delay can be predicted in real-time without the need to monitor the critical path itself. In addition, because the predicted critical path delay is calculated in real-time, its value will change with changes in chip parameters, such as process, voltage, and temperature. This is particularly useful in improving chip performance and efficiency using AVS.

In addition to the wire delay shown in Equation 2, other variables not directly attributable to critical path components may be accounted for in the predicted critical path delays calculated according to the various embodiments of the invention. For example, it may be necessary or desirable to add a timing margin to account for known or expected inaccuracies in the measurements of delays, whether at a corner condition or during real-time monitoring of ring oscillator frequencies. In other cases, it may be necessary or desirable to add a technology margin account, for example, for known or expected differences between expected and actual voltages applied to a chip. Each of these variables is shown in Equation 3, below, wherein α is a timing margin and β is a technology margin.

As will be understood by one skilled in the art, in most cases, a predicted delay will be desired for not one, but many critical paths on a chip. As a consequence, what is most appropriate for purposes of AVS will typically be the longest predicted critical path delay. For example, the critical path slack (Scp) can be calculated using the longest predicted critical path delay according to Equation 4 below, in which Fsysis the system frequency.

In addition, the critical path slack (Scp) can be multiplied by the maximum delay to voltage coefficient (DVC) for the technology to yield the control feedback voltage adjust (CFV), as in Equation 5 below.
CFV=Scp×DVC  Equation 5

FIG. 3shows a flow diagram of a method according to an embodiment of the invention. At S1, component delay(s), wire delay, and ring oscillator delay(s) at a corner condition are obtained from static timing analyses. As noted above, these values can be obtained, for example, from an end point timing report.

At S2, on-board ring oscillator delay(s) is/are determined in real-time. As noted above, this real-time determination accounts for chip parameters affecting critical path delay, such as process, voltage, and temperature. Using the values obtained at S1and the delay(s) determined at S2, a predicted critical path delay can be calculated at S3.

While S1thorough S3are shown relative to a single critical path, as noted above, predicted critical path delays will typically be calculated for a plurality of critical paths using ring oscillator delays determined simultaneously or substantially simultaneously at S2. The critical path delay(s) calculated at S3may be calculated, for example, according to Equation 2 above. At S4, a timing margin and/or technology margin may optionally be added to the critical path delay(s) calculated at S3. For example, a timing margin and technology margin may be included in the calculated critical path delay(s) using Equation 3 above.

Additional steps may be taken where the calculated critical path delay(s) will be used in AVS. At S5, the longest critical path calculated at S3(and/or S4) is determined. At S6and S7, a critical path slack and control feedback voltage adjust, respectively, may be calculated, as described above.

FIG. 4shows an illustrative environment116for predicting a critical path delay according to an embodiment of the invention. Environment116includes a computer system120that can perform a process described herein in order to predict a critical path delay. In particular, computer system120is shown including a critical path delay prediction program130, which makes computer system120operable to predict a critical path delay by performing a process described herein.

Computer system120is shown including a processing component122(e.g., one or more processors), a storage component124(e.g., a storage hierarchy), an input/output (I/O) component126(e.g., one or more I/O interfaces and/or devices), and a communications pathway128. In general, processing component122executes program code, such as critical path delay prediction program130, which is at least partially fixed in storage component124. While executing program code, processing component122can process data, which can result in reading and/or writing transformed data from/to storage component124and/or I/O component126for further processing. Communications pathway128provides a communications link between each of the components in computer system120. I/O component126can comprise one or more human I/O devices, which enable a human user118to interact with computer system120and/or one or more communications devices to enable a system user118to communicate with computer system120using any type of communications link. To this extent, critical path delay prediction program130can manage a set of interfaces (e.g., graphical user interface(s), application program interface, and/or the like) that enable human and/or system users118to interact with critical path delay prediction program130. Further, critical path delay prediction program130can manage (e.g., store, retrieve, create, manipulate, organize, present, etc.) the data, such as static timing analysis data140and/or ring oscillator delay data142using any solution.

In any event, computer system120can comprise one or more general purpose computing articles of manufacture (e.g., computing devices) capable of executing program code, such as critical path delay predicition program130, installed thereon. As used herein, it is understood that “program code” means any collection of instructions, in any language, code or notation, that cause a computing device having an information processing capability to perform a particular action either directly or after any combination of the following: (a) conversion to another language, code or notation; (b) reproduction in a different material form; and/or (c) decompression. To this extent, critical path delay prediction program130can be embodied as any combination of system software and/or application software.

Further, critical path delay prediction program130can be implemented using a set of modules132. In this case, a module132can enable computer system120to perform a set of tasks used by critical path delay prediction program130, and can be separately developed and/or implemented apart from other portions of critical path delay prediction program130. As used herein, the term “component” means any configuration of hardware, with or without software, which implements the actions described in conjunction therewith using any solution, while the term “module” means program code that enables a computer system120, such as a general purpose computing device, to implement the actions described in conjunction therewith using any solution. When fixed in a storage component124of a computer system120that includes a processing component122, a module is a substantial portion of a component that implements the actions. Regardless, it is understood that two or more components, modules, and/or systems may share some/all of their respective hardware and/or software. Further, it is understood that some of the functionality discussed herein may not be implemented or additional functionality may be included as part of computer system120.

When computer system120comprises multiple computing devices, each computing device can have only a portion of critical path delay prediction program130fixed thereon (e.g., one or more modules132). However, it is understood that computer system120and critical path delay prediction program130are only representative of various possible equivalent computer systems that may perform a process described herein. To this extent, in other embodiments, the functionality provided by computer system120and critical path delay prediction program130can be at least partially implemented by one or more computing devices that include any combination of general and/or specific purpose hardware with or without program code. In each embodiment, the hardware and program code, if included, can be created using standard engineering and programming techniques, respectively.

Regardless, when computer system120includes multiple computing devices, the computing devices can communicate over any type of communications link. Further, while performing a process described herein, computer system120can communicate with one or more other computer systems, such as a system user118, using any type of communications link. In either case, the communications link can comprise any combination of various types of wired and/or wireless links; comprise any combination of one or more types of networks; and/or utilize any combination of various types of transmission techniques and protocols.

As discussed herein, critical path delay prediction program130enables computer system120to predict a delay of a critical path. To this extent, critical path delay prediction program130is configured to enable computer system120to manage static timing analysis data140and ring oscillator delay data142, which computer system120can process to predict a critical path delay. In an embodiment of the invention, static timing analysis data140comprises a set of data representing the results of a static timing analysis of a critical path for which a delay will be predicted.

In another embodiment, the invention provides a method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider could offer to predict a delay of a critical path, as described above. In this case, the service provider can create, maintain, support, etc., a computer infrastructure, such as computer system120, that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising space to one or more third parties.

In still another embodiment, the invention provides a method of generating a system for predicting a delay of a critical path. In this case, a computer infrastructure, such as computer system120, can be obtained (e.g., created, maintained, having made available to, etc.) and one or more systems for performing the process steps of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of each system can comprise one or more of (1) installing program code on a computer system, such as computer system120, from a computer-readable medium; (2) adding one or more computer systems to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure, to enable the computer infrastructure to perform the process steps of the invention.