1. Technical Field
The disclosure relates generally to integrated circuit (IC) chip fabrication and design, and more particularly, to a method, system, IC and design structure for meeting a performance requirement using redundant critical path circuits.
2. Background Art
In the integrated circuit (IC) fabrication industry, miniaturization of circuitry continues. As this occurs, process variability has become increasingly troublesome. For example, at smaller geometries (e.g., 90 nm, 65 nm or 45 nm technology nodes) absolute errors in oxide thickness, length and other dimensions present a larger percentage of errors. Further, worst case performance is not scaling at the same rate as circuit density, and significant variation can be observed within a single IC. Currently, most IC fabricators focus on maximizing performance of a given critical path, e.g., by increasing voltage, maintaining temperature, etc.
Method, system, IC and design structure for meeting a performance requirement using redundant critical path circuits, are disclosed. In one embodiment, the IC includes a plurality of redundant critical path circuits, wherein at least one of the plurality of redundant critical path circuits meeting a performance requirement is operational and the others are non-operational.
A first aspect of the disclosure provides an integrated circuit (IC) comprising: a plurality of redundant critical path circuits, wherein at least one of the plurality of redundant critical path circuits meeting a performance requirement is operational and the others are non-operational.
A second aspect of the disclosure provides a design structure embodied in a machine readable medium used in a design process, the design structure comprising: a circuit including a plurality of redundant critical path circuits, wherein at least one of the plurality of redundant critical path circuits meeting a performance requirement is operational and the others are non operational.
A third aspect of the disclosure provides a method comprising: identifying a critical path in an integrated circuit (IC) design structure that presents a challenge to a performance requirement; modifying the IC design structure to have a plurality of redundant circuits of the identified critical path, each circuit constrained to an island in design hierarchy; forming an integrated circuit (IC) having the plurality of redundant circuits of the identified critical path; testing the IC to determine which of the plurality of redundant circuits meet the performance requirement; and activating at least one of the plurality of redundant circuits that meets the performance requirement while leaving at least one other of the plurality of redundant circuits de-activated.
A fourth aspect of the disclosure provides a system comprising: means for identifying a critical path in an integrated circuit (IC) design structure that presents a challenge to a performance requirement; means for modifying the IC design structure to have a plurality of redundant circuits of the identified critical path, each circuit constrained to an island in design hierarchy; means for forming an integrated circuit (IC) having the plurality of redundant circuits of the identified critical path; means for testing the IC to determine which of the plurality of redundant circuits meet the performance requirement; and means for activating at least one of the plurality of redundant circuits that meets the performance requirement while leaving at least one other of the plurality of redundant circuits de-activated.
A fifth aspect of the disclosure provides a program product stored on a computer-readable medium, which when executed, aids in meeting a performance requirement for an IC using redundant critical path circuits, the program product comprising program code configured for: identifying a critical path in an integrated circuit (IC) design structure that presents a challenge to a performance requirement; modifying the IC design structure to have a plurality of redundant circuits of the identified critical path, each circuit constrained to an island in design hierarchy; forming an integrated circuit (IC) having the plurality of redundant circuits of the identified critical path; testing the IC to determine which of the plurality of redundant circuits meet the performance requirement; and activating at least one of the plurality of redundant circuits that meets the performance requirement while leaving at least one other of the plurality of redundant circuits de-activated.
A sixth aspect of the disclosure provides a computer-readable medium that includes computer program code to enable a computer infrastructure to meet a performance requirement using redundant critical path circuits, the computer-readable medium comprising computer program code for performing the method steps of the disclosure.
A seventh aspect of the disclosure provides a business method for meeting a performance requirement using redundant critical path circuits, the business method comprising managing a computer infrastructure that performs each of the steps of the disclosure; and receiving payment based on the managing step.
An eighth aspect of the disclosure provides a method of generating a system for meeting a performance requirement using redundant critical path circuits, the method comprising: obtaining a computer infrastructure; and deploying means for performing each of the steps of the disclosure to the computer infrastructure.
The illustrative aspects of the present disclosure are designed to solve the problems herein described and/or other problems not discussed.
These and other features of this disclosure will be more readily understood from the following detailed description of the various aspects of the disclosure taken in conjunction with the accompanying drawings that depict various embodiments of the disclosure, in which:
It is noted that the drawings of the disclosure are not to scale. The drawings are intended to depict only typical aspects of the disclosure, and therefore should not be considered as limiting the scope of the disclosure. In the drawings, like numbering represents like elements between the drawings.
Referring to
Computer system 300 can comprise any general purpose computing article of manufacture capable of executing computer program code installed by a user (e.g., a personal computer, server, handheld device, etc.). However, it is understood that computer system 300 is only representative of various possible equivalent computing devices that may perform the various processes of the disclosure. To this extent, in other embodiments, computer system 300 can comprise any specific purpose computing article of manufacture comprising hardware and/or computer program code for performing specific functions, any computing article of manufacture that comprises a combination of specific purpose and general purpose hardware/software, or the like. In each case, the program code and hardware can be created using standard programming and engineering techniques, respectively.
Similarly, computer system 300 is only illustrative of various types of computer infrastructures for implementing the disclosure. For example, in one embodiment, computer system 300 comprises two or more computing devices (e.g., a server cluster) that communicate over any type of interconnected and/or interconnectless communications link, such as a network, a shared memory, or the like, to perform the various process steps of the disclosure. When the communications link comprises a network, the network can comprise any combination of one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.). Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters. Regardless, communications between the computing devices may utilize any combination of various types of transmission techniques.
A machine readable computer program may be created by one of skill in the art and stored in computer system 300 and/or any one or more of machine readable media 308 to simplify the practicing of this disclosure. In operation, information for the computer program created to run the present disclosure is loaded on the appropriate removable data and/or program storage device 314, fed through data port 342 or entered using keyboard 334. A user controls the program by manipulating functions performed by the computer program and providing other data inputs via any of the above mentioned data input means. Display device 346 provides a means for the user to accurately control the computer program and perform the desired tasks described herein.
Design process 410 includes using a variety of inputs; for example, inputs from library elements 430 which may house a set of commonly used elements, circuits, and devices, including models, layouts, and symbolic representations, for a given manufacturing technology (e.g., different technology nodes, 32 nm, 45 nm, 40 nm, etc.), design specifications 440, characterization data 450, verification data 460, design rules 470, and test data files 480, which may include test patterns and other testing information. Design process 410 further includes, for example, standard circuit design processes such as timing analysis, verification tools, design rule checkers, place and route tools, etc. One of ordinary skill in the art of integrated circuit design can appreciate the extent of possible electronic design automation tools and applications used in design process 410 without deviating from the scope and spirit of the disclosure.
Ultimately, design process 410 translates IC 100, along with the rest of the integrated circuit design (if applicable), into a final design structure 490 (e.g., information stored in a GDS storage medium). Final design structure 490 may comprise information such as, for example, test data files, design content files, manufacturing data, layout parameters, interconnects, levels of metal, vias, shapes, test data, data for routing through the manufacturing line, and any other data required by a semiconductor manufacturer to produce IC 100. Final design structure 490 may then proceed to a stage 492 of design flow 400, where stage 492 is, for example, where final design structure 490 proceeds to tape-out, is released to manufacturing, is sent to another design house or is sent back to the customer.
Turning to
Turning to
Layout 150 (
The methods, system, program product, design structure and design flow as described above are used in the fabrication of integrated circuit chips. The resulting integrated circuit chips can be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections). In any case the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product can be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
As discussed herein, various systems may be described as “obtaining” data. It is understood that the corresponding data can be obtained using any solution. For example, the corresponding system/component can generate and/or be used to generate the data, retrieve the data from one or more data stores (e.g., a database), receive the data from another system/component, and/or the like. When the data is not generated by the particular system/component, it is understood that another system/component can be implemented apart from the system/component shown, which generates the data and provides it to the system/component and/or stores the data for access by the system/component.
The disclosure can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the disclosure is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. In one embodiment, the disclosure can take the form of a computer program product accessible from a computer-usable, computer-readable medium or machine readable medium providing program code for use by or in connection with a computer system or any instruction execution system, which when executed, enables a computer system to perform the processes described herein.
In another embodiment, the disclosure provides a method of generating a system for performing the processes described herein. In this case, a computer system 300, can be obtained (e.g., created, maintained, having made available to, etc.) and one or more systems for performing the process described herein 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 computing device, such as computer system 300, from a machine readable medium; (2) adding one or more computing devices 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 disclosure.
In still another embodiment, the disclosure provides a business method that performs the process described herein on a subscription, advertising, and/or fee basis. That is, a service provider, such as an application service provider (ASP), could offer to perform the processes as described herein. In this case, the service provider can manage (e.g., create, maintain, support, etc.) a computer infrastructure, such as computer system 300, that performs the process described herein for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement, receive payment from the sale of advertising to one or more third parties, and/or the like.
As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions that cause a computing device having an information processing capability to perform a particular function 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, program code can be embodied as one or more types of program products, such as an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like.
The foregoing description of various aspects of the disclosure has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the disclosure as defined by the accompanying claims.
Number | Name | Date | Kind |
---|---|---|---|
5638290 | Ginetti et al. | Jun 1997 | A |
5872717 | Yu et al. | Feb 1999 | A |
5953745 | Lattimore et al. | Sep 1999 | A |
6201744 | Takahashi | Mar 2001 | B1 |
6385071 | Chai et al. | May 2002 | B1 |
6714902 | Chao et al. | Mar 2004 | B1 |
6732229 | Leung et al. | May 2004 | B1 |
7093216 | Nozuyama | Aug 2006 | B2 |
7117417 | Sharpe et al. | Oct 2006 | B2 |
7437580 | Henderson et al. | Oct 2008 | B2 |
20040230928 | Nozuyama | Nov 2004 | A1 |
20060187001 | Pessolano et al. | Aug 2006 | A1 |
20070006117 | Chang et al. | Jan 2007 | A1 |
20070260823 | Dickinson | Nov 2007 | A1 |
20080077348 | Hildebrand et al. | Mar 2008 | A1 |
20090031261 | Smith et al. | Jan 2009 | A1 |
20090144673 | Goodnow et al. | Jun 2009 | A1 |
20090289696 | Lewis et al. | Nov 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20090058457 A1 | Mar 2009 | US |