The present invention relates to circuit analysis, and more particularly, to a statistical approach for estimating power consumption.
Power consumption is becoming an increasing concern in the design of integrated circuits (ICs), particularly for very large scale integration (VLSI) chip designs. To address this concern many design tools have been developed to measure or estimate power consumption in VLSI designs. The estimated power consumption is employed to help designers meet target power parameters and ultimately facilitate design convergence.
Techniques used to estimate switching activities associated with power consumption in VLSI chips include simulation-based techniques and statistics-based techniques. For both types of techniques, the dynamic power consumption of a circuit is computed based on estimated switching activities of a circuit or a defined part of a circuit. In particular, power consumption is proportional to the switching activities and the associated capacitance at respective nodes of the circuit.
Statistics-based approaches to power estimation can often achieve greater accuracy over simulation-based approaches because most simulation-based techniques focus on worst case performance of the electrical circuit. Worst case performance is determined by analytically selecting the worst combination of conditions that the circuit (or circuit design) can experience during its operational lifetime. In this way the worst case analysis produces an inaccurate estimate of power consumption, which may lead to increased cost and lower efficiency of the integrated circuit.
In an aspect of the invention, a method for predicting the power consumption of a semiconductor chip includes receiving a plurality of statistical distributions characterizing a plurality of power contributing parameters and their respective statistical correlation for a plurality of power consuming units included in the semiconductor chip. The method further includes determining a statistical distribution characterizing the power consumption based on the received plurality of statistical distributions and based on the correlation between the power contributing parameters.
In another aspect, a computer program product for predicting the power consumption of a semiconductor chip is provided. The computer program product includes one or more computer-readable storage devices and a plurality of program instructions stored on one or more computer-readable storage devices. The plurality of program instructions include program instructions to receive a plurality of statistical distributions characterizing a plurality of power contributing parameters and their respective statistical correlation for a plurality of power consuming units included in the semiconductor chip. The plurality of program instructions further include program instructions to determine a statistical distribution characterizing the power consumption based on the received plurality of statistical distributions and based on the correlation between the power contributing parameters.
In yet another aspect, a computer system for predicting the power consumption of a semiconductor chip is provided. The computer system includes one or more processors, one or more computer-readable storage devices, and a plurality of program instructions stored on one or more storage devices for execution by one or more processors. The plurality of program instructions include program instructions to receive a plurality of statistical distributions characterizing a plurality of power contributing parameters and their respective statistical correlation for a plurality of power consuming units included in the semiconductor chip. The plurality of program instructions further include program instructions to determine a statistical distribution characterizing the power consumption based on the received plurality of statistical distributions and based on the correlation between the power contributing parameters.
A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only, and should not be considered restrictive of the scope of the invention, as described and claimed. Further, features or variations may be provided in addition to those set forth herein. For example, embodiments of the invention may be directed to various combinations and sub-combinations of the features described in the detailed description.
The present invention is described in the detailed description which follows in reference to the noted plurality of drawings by way of non-limiting examples of exemplary embodiments of the present invention.
An embodiment of the present invention relates to a method for predicting the power consumption of a semiconductor chip. Power consumption from the complimentary metal oxide semiconductor (CMOS) integrated circuits commonly used to build electronic devices consists of two components: dynamic (active) power consumption and static (leakage) power consumption. Dynamic power consumption refers to the amount of power required to operate (i.e., switch) a device. Dynamic power consumption is a function of capacitance, voltage, and switching frequency. That is P=C*V2*F, where P is the dynamic power, C is the effective switch capacitance, V is the supply voltage and F is the switching frequency. Static power consumption refers to the amount of power consumed by the device when it is not operating (i.e., OFF) and is also an exponential function of the supply voltage. In the past static power consumption was an insignificant portion of overall power consumption. However, with device scaling the ratio of static to dynamic power making up overall power consumption has increased. Thus, optimizing not only dynamic power consumption but also static power consumption is now a major concern for designers of advanced integrated circuits (ICs).
In addressing the issue of static power consumption, designers have realized that manufacturing variations are a critical problem. Specifically, manufacturing variations may cause one or more parameters to vary between integrated circuits that are formed according to the same design. These variations can affect chip operating frequency (i.e., switching speed). For example, due to variations in the equipment, operators, positions on a wafer, etc., a specific parameter may vary between chips built on the same wafer, chips built on different wafers in the same lot and/or chips built on different wafers in different lots. If this parameter is, for example, line width, then the channel width of the transistors on each chip may be different such that the performance varies (e.g., faster or slower). Chips that are fabricated either at the “slow” end or the “fast” end of a process distribution (e.g., a process-temperature-variation (PVT) space) may not be desirable. For example, chips that are fabricated at the “slow” end of such a process distribution may not meet the desired performance specification (i.e., may not have a fast enough switching speed), whereas chips fabricated at the “fast” end of this process distribution may exhibit excessive power and leakage current.
In an aspect of the invention, a method for predicting the power consumption of a semiconductor chip includes receiving a plurality of statistical distributions characterizing a plurality of power contributing parameters for a plurality of power consuming units included in the semiconductor chip. The method further includes analyzing correlation between the power contributing parameters. The method further includes determining a statistical distribution characterizing the power consumption based on the received plurality of statistical distributions and based on the analyzed correlation between the power contributing parameters.
Thus, the illustrative embodiments may be utilized in many different types of data processing environments including a distributed data processing environment, a single data processing device, or the like. In order to provide a context for the description of the specific elements and functionality of the illustrative embodiments,
With reference now to the figures,
Network 102 represents a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages. Alternatively, the computers and other devices of distributed data processing environment 100 may be interconnected by different types of networks, such as an intranet, a local area network (LAN), or a wide area network (WAN). Network 102 may include communication connections, such as wire, wireless communication links, or fiber optic cables. Client computer 120 may be, for example, a mobile device, a telephone, a personal digital assistant, a netbook, a laptop computer, a tablet computer, a desktop computer, or any type of computing devices capable of hosting a user interface (UI) 126, such as an interface for gathering various power contributing parameters from a user, as described below. Typically, UI 126 displays information via a display device 920 (shown in
The UI 126 may preferably store collected information in the parameters repository 118. The parameters repository 118 may be kept in the internal storage 112 of the server computer 106 or in the storage unit 122, as shown in
The server computer 106 may include a power predictor application program 129. The power predictor application program 129, located in the distributed data processing environment 100, may comprise program instructions stored on one or more computer-readable tangible storage devices, which may include the internal storage 112 on the server computer 106. Various components of the power predictor application program 129 may communicate via local and/or remote processes, such as in accordance with a signal having one or more data packets (for example, but not limited to, data from one program interacting with another program in a local system, distributed system, and/or across the network 102 with other systems via the signal). Data gathered, generated, and maintained for use by the power predictor application program 129 may be kept in the internal storage 112 of the server computer 106 or in one or more parameter repositories 118 of the storage unit 122.
The power predictor application program 129 may include various programs or program components, such as the parameter collector program 130 and the statistical analyzer program 132. The parameter collector program 130 may be, for example, a computer program or program component for searching information stored in the parameters repository 118 based on a configuration of a unit for which the power consumption should be estimated, as discussed below in conjunction with
In the illustrated example, data is communicated between the server computer 106 and the client computers 120 using a standard protocol such as Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Object Access Protocol (SOAP) over HTTP, or the like. The distributed data processing environment 100 may include additional server computers, client computers, displays and other devices not shown.
A major element in the qualification of any new semiconductor technology, circuit element, or product is a model to hardware correlation (MHC). An MHC is an exhaustive process that involves comparing a software based simulation of several devices (e.g., circuits) with the hardware performance of the same device or circuit. This activity allows circuit designers, technology developers and EDA (Electronic Design Automation) tools developers to find any mismatch between the technology specifications and the end product delivered from the manufacturing facility. Any mismatch is addressed and a further MHC is pursued to verify the solution.
An MHC is fairly simple if all the process parameters are run at exactly nominal conditions. However, the manufacturing line only guarantees that each parametric parameter will be in a certain range. The overall range of all of these parameters is called the “Process Window”. Often qualification engineers wish to evaluate the MHC at corners of the Process Window that are artificially skewed away from nominal conditions. For example, several lots of test sites may be run with artificially long channel lengths to evaluate if the device model is still accurate in case the manufacturing line allows channel length to run a bit too long. In order to perform MHC on this hardware, the artificially long channel length must be accounted for in the software simulation.
One of the main conventional processes to evaluate MHC is a Best Case/Worst Case Analysis. This allows designers to see the overall margin in their designs by simulating best and worst case hardware, and comparing to the fastest and slowest hardware that the manufacturing line would deliver to a customer. The problem with this analysis is it simply reflects if the amount of bounding in simulation is adequate for the process variations in manufacturing. This type of analysis does not pinpoint individual process parameters and their effect on circuit performance.
Various embodiments of the invention described herein allow for the incorporation of individual power contributing parametric data into a circuit simulation. The simulation can be tailored to reflect the power consumption and behavior of a specific power consuming unit, by running several power-specific simulations of this type and comparing the results to the respective devices, one ordinarily skilled in the art can accurately pinpoint the circuit sensitivities to individual power affecting parameters (also referred to herein as power contributing parameters). The MHC attempts to match the behavior and performance of the specific devices, instead of bounding the timing with Best Case/Worst Case analysis.
As previously indicated, power consumption consists of two components: static (leakage) power consumption and dynamic (active) power consumption. Dynamic power consumption is a function of capacitance, voltage, switching frequency and various activity factors described below. Dynamic power consumption for an integrated circuit can be modeled by the following formula:
P=C×V
2
×F×AF (1)
where P=dynamic power consumption, C=switched capacitance, V=switching voltage, F=switching frequency, and AF=activity factor.
Therefore, the table of parameters 200 may include a Ceff distribution of MHC margin for each power consuming unit 206 (such as an IP block), where Ceff is the effective switching capacitance and MHC is model to hardware correlation. As used herein, an IP block is representative of a block or logical group of circuitry that typically serves one or more targeted functions (e.g. SRAM cell, DRAM cell, analog to digital converters, and the like). IP blocks are also referred to herein as functional blocks. The activity factor is a relationship of activity within an IP block. Thus, the activity factor concerns how often out of N cycles a certain portion of an IP block switches high/low or low/high. In an exemplary embodiment described herein, the statistical activity factors 208 may be included in the parameter table 200. Since both dynamic power consumption and static power consumption are greatly affected by voltage, another characteristic that may be included in the table of parameters 200 is power supply voltage tolerance, which refers to the accuracy of the voltage level provided by the power supply. At least in some embodiments two different parameters may characterize voltage, such as power supply AC voltage tolerance 210 and power supply DC voltage tolerance 212. Embodiments of the present invention contemplate that the table of parameters 200 may include any other parameter that affects power 218. Furthermore, embodiments of the present invention contemplate that for each of the power affecting parameters described above users may provide a few statistical characteristics, such as a mean value 220, a standard deviation value 222 and correlation factors 224 between the provided parameters. In one embodiment, the table of parameters 200 may be populated and updated by users via the UI 126 shown in
C
eff
=I/V×F (2)
where Ceff=switched capacitance, V=switching voltage, and F=switching frequency.
The histogram 300 shown in
Recognizing the importance of power estimation, inventors have investigated power estimation technique ranging from the circuit level up to the system level. Various embodiments of the present invention introduce advantageous simulation-based logic-level power estimation techniques for CMOS integrated circuits. One exemplary implementation of such simulation technique is described below in conjunction with
At 402, the parameter collector program 130 may obtain parameters affecting power for a given chip and/or system. The data may be any observed or user entered data about the environment behavior. In some cases, the raw data may be aggregated, summarized, synthesized, or otherwise processed prior to sending it to the statistical analyzer program 132. For example, in response to receiving the plurality of statistical distributions, the parameter collector program 130 may extract statistical characteristics of the respective statistical distributions, such as mean and standard deviation values of the respective statistical distributions. The collected data may be power related parameters, as well as other input parameters. In many cases, large amounts of raw data may be collected by the parameter collector program 130 and then analyzed to identify those parameters and/or parameter characteristics that may be related to power consumption metrics as well as too identify the correlation between the parameters if such correlations have not been provided by the collected data.
The parameter collector program 130 may use various mechanisms, including real time and delayed mechanisms to collect and store the power affecting parameters data. If real time mechanism is implemented, the parameter collector program 130 may receive data at or near the time the data is collected from a user by, for example, UI program 126 running on the client computer 120. In such cases, the parameter collector program 130 may optionally process the collected data and send it to the statistical analyzer program 132 (at 406) or, alternatively, may store the collected data, for example, in the parameters repository 118 kept in the storage unit 122. In an embodiment of the present invention, the collected parameters data may be stored in a table such as the parameters table 200 illustrated in
In another embodiment of the present invention, the parameter collector program 130 may be implemented using a delayed data collection mechanism. For example, the UI program 126 may write data directly to the parameters repository 118 (shown in
At 404, the parameter collector program 130 may collect information about a power consuming unit, such as, for example, but not limited to, a chip or a system to be analyzed depending on a level of analysis requested by a user. In an embodiment of the present invention, the data collected in this step may include, for example, but not limited to a number of distinct IP blocks in the analyzed chip and/or system, the number of boards in a system, the number of ICs on a board, their individual contributions to the total power, the characterization margins when MHC was closed, and the like. In an embodiment of the present invention, the number of distinct IP blocks in the analyzed power consuming unit may be provided by a user, while their individual contributions to the overall power consumption and the characterization margins when MHC was closed may be calculated by the parameter collector program 130.
At 406, the parameter collector program 130 may transfer collected data to the statistical analyzer program 132. In various embodiments of the present invention, the parameter collector program 130 may either retrieve the data from the parameters repository 118 or may receive the parameters data from the UI program 126.
At 408, the statistical analyzer program 132 may perform a numerical analysis (simulation) of the data received from the parameter collector program 130. In an embodiment of the present invention, the statistical analyzer program 132 may employ Monte Carlo simulations to analyze power affecting parameters in order to obtain improved power efficiency at a chip level and/or at a system level.
Simulation techniques called Monte Carlo methods are well known in the art which include a class of computational algorithms for simulating the behavior of various physical and mathematical systems. Such Monte Carlo methods are distinguished from other simulation methods by being stochastic, i.e., non-deterministic in some manner, usually by using random numbers or pseudo-random numbers, as opposed to deterministic algorithms. Because of the repetition of algorithms and the large number of calculations involved, Monte Carlo methods are suited to calculation using a computer, utilizing many techniques of computer simulation. It is recognized that the amount of uncertainty provides an avenue to explain an incorrect prediction. Quantification of the uncertainty boundaries by forward modeling utilizing Monte Carlo simulations overcomes these limitations. The main improvements of various embodiments of the present invention are that the uncertainties in all measurements and parameters are accounted for using numerical analysis, i.e. Monte Carlo simulation. In an embodiment of the present invention, the statistical analyzer program 132 may generate statistical distributions for total power consumption based on the power-affecting parameter values provided by the parameter collector program 130.
AC=Vdd2*Ceff*SWF*Freq (3) and
DC=Vdd*Leakage (4).
Third section 1006 generates random parameters based on the specified distributions and calculates AC power and DC power using equations (3) and (4). In an embodiment of the present invention, the statistical analyzer program 132 may run the Monte Carlo program 1000 for approximately 100,000 trials allowing each of the specified power affecting parameters to vary.
Referring back to
Various embodiments of the present invention contemplate modeling techniques according to which not all power affecting parameters will be subject to statistical variation in a given run of the Monte Carlo simulation.
Each set of internal components 800a,b also includes a R/W drive or interface 832 to read from and write to one or more portable computer-readable tangible storage devices 828 such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk or semiconductor storage device. The power predictor application program 129, which includes various components, such as the parameter collector program 130 and the statistical analyzer program 132, can be stored on one or more of the portable computer-readable tangible storage devices 936, read via R/W drive or interface 832 and loaded into one or more computer-readable tangible storage devices 830.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the large computer server, partly on the large computer server, as a stand-alone software package, partly on the large computer server and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the large computer server through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.