Bringing up a system, such as an integrated circuit, in a hostile environment presents several challenges because, among other things, components of an IC chip typically operate at different conditions. For example, the PLL (phase-locked loop) and eDRAM components of a chip may require a warmer temperature range than other chip components in order to function adequately.
In one embodiment of the invention, a method for initializing one or more components of a system, the system comprising an integrated circuit that comprises at least one processor, is disclosed. The method comprises: initializing at least one component of the system; determining a temperature of the integrated circuit using a temperature sensing device embedded on the integrated circuit; comparing the determined temperature to a predetermined suitable temperature operating range of at least one additional component to yield a comparison result; and initializing the at least one additional component based on the comparison result.
In another embodiment of the invention, a system for initializing one or more components of an integrated circuit is disclosed. The system comprises: a temperature sensing device embedded on the integrated circuit that determines a temperature of the integrated circuit; and at least one processor. The at least one processor initializes at least one component of the integrated circuit; compares the determined temperature to a predetermined suitable temperature operating range of at least one additional component to yield a comparison result; and initializes the at least one additional component based on the comparison result.
In another embodiment of the invention, a computer-readable medium storing computer program code for causing a computer to perform a process, the computer comprising an integrated circuit, is disclosed. The process comprises instructions for: initializing at least one component of the integrated circuit; determining a temperature of the integrated circuit using a temperature sensing device embedded on the integrated circuit; comparing the determined temperature to a predetermined suitable temperature operating range of at least one additional component to yield a comparison result; and initializing the at least one additional component based on the comparison result.
These and other embodiments of the invention are described in detail with reference to the following drawings.
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. A computer readable storage medium may be a transitory or a non-transitory medium, 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 non-transitory computer readable storage media include the following: 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), 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. 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 user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer 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 user's computer 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 below 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, may 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.
Referring now to
The system 100 includes a central processing unit (CPU) 101 which may include one or more microprocessors, direct memory access 102, embedded dynamic random access memory (DRAM) 105, a memory controller 106, and various other components 103. One of ordinary skill in the art will appreciate that the other components 103 may include additional memory blocks in the form of ROM, RAM, EEPROM, and Flash memory, external interfaces including industry standards such as USB, Firewire, Ethernet, USART, or SPI, analog interfaces, voltage regulators, power management circuits, or any other suitable or desired component. The system 100 additionally includes a processor local bus 104 through which the CPU 101 may communicate with, read data from, or write data to at least the embedded DRAM 105, the memory controller 106, the direct memory access 102, and the other components 103. The system 100 further includes a clock and reset control module 107. The clock and reset control module 107 may include timing sources such as oscillators and phase-locked loops (PLLs). The clock and reset control module 107 may also include peripherals such as counter-times, real-time timers and power-on reset generators.
In addition, the clock and reset control module 107 may comprise a temperature or thermal sensing device. The temperature sensing device may alternatively be provided outside of the clock and reset control module 107. In either case, in accordance with one or more embodiments of the invention, the temperature sensing device is embedded on the system 100. As noted previously, in one or more embodiments of the invention, the system 100 may be a SOC or an ASIC. In these embodiments the temperature sensing device may be embedded on the integrated circuit.
Booting up an integrated circuit (IC) chip or system in a hostile environment such as an arctic environment in which average temperatures are significantly lower than typical temperatures at which the IC chip or system is generally designed to operate presents several challenges. Certain chip components may require different temperature ranges than those required by other components in order to function properly. For example, assuming that an IC chip is being booted up in a particularly cold environment, the phase-locked loop and eDRAM components of the IC chip may require warmer temperature ranges than what other components require in order to operate adequately. Certain components of the chip may be capable of being initialized or enabled during initial stages of the boot-up process at lower ambient temperatures, while other components (such as the PLL and the eDRAM components) may require the ambient temperature around the chip to rise to an appropriate level by, for example, the heat generated during the boot-up process before these components may be enabled or initialized. Similarly, in an environment in which temperatures exceed the typical temperatures at which components of an IC chip are designed to operate at, certain components may require the ambient temperature around the chip to cool to a certain level before these components may be enabled or initialized and expected to perform properly.
Conventional systems employ a thermal sensing device disposed externally to the IC chip to indicate when the temperature conditions are appropriate for the chip to be powered up. The use of an external temperature sensing device is costly as it must be separately manufactured and installed in the system. In addition, temperature measurements obtained from an external thermal sensing device are often inaccurate due to the inability of the external thermal sensing device to accurately measure the junction temperature of the chip. As such, the inherent inaccuracy of measurement of external thermal sensing devices results in longer chip boot-up times caused by the necessity to compensate for the measurement error.
Embedding the temperature sensing device within or on an IC chip (i.e. forming the temperature sensing device from the same wafer of semiconductor material as other components of the IC chip) provides distinct advantages over conventional systems that employ an external temperature sensing device. Embedded temperature sensing devices in accordance with one or more embodiments of the invention results in significant cost reductions as compared to external devices. An embedded temperature sensing device according to one or more embodiments of the invention is relatively small and generally will not require an increase in the die size of the IC chip. Further, embedded temperature sensing devices are capable of more accurately measuring the junction temperature of the IC chip, and thus do not suffer from the measurement inaccuracies of external thermal sensing devices and the resultant longer chip boot-up times.
In accordance with one or more embodiments of the invention, one or more reset sequences may be employed in conjunction with the system 100 of
According to an embodiment of the invention, in the method depicted in
In step S202, periodic temperature measurements are recorded by the temperature sensing device that is embedded on the chip. Then, in steps S203 and S204, the periodic temperature measurements are compared to a normal PLL temperature operating range and a normal DRAM temperature operating range, respectively, to yield comparison results. In one or more embodiments of the invention, the CPU may be provided with a set of software instructions that enables the CPU to perform the required comparisons of steps S203 and S204. If it is determined in step S203 that the measured temperature falls within the PLL temperature operating range, then in step S205, the PLL is enabled and the CPU clock signal is synchronized with the faster PLL clock signal. The PLL may be, for example, a clock generator PLL that multiplies a lower frequency reference clock up to the operating frequency of the CPU. Similarly, if it is determined in step S204 that the measured temperature is within the eDRAM temperature operating range, in step S206, the eDRAM is marked as available for use by the CPU. Thereafter, in step S207, the booting-up process of the chip is continued.
The enabling of the first set of components in step S201 may be thought of as occurring independently of the temperature measurements. That is, the first set of components includes those chip components that are capable of operating at the current chip temperature and do not require a change in the temperature to a specific temperature range in order to operate properly. Further, although the reset sequence or method depicted in
The implementation 300 depicted in
An embedded temperature sensor 302 such as that previously described is provided. The temperature sensor 302 obtains periodic temperature measurements of the chip temperature. At decision block 304, a comparator (which may be the CPU itself) compares the temperature measurements obtained by the temperature sensor 302 with the suitable temperature operating range for the PLL 303. If it is determined that the measured temperature does not fall within the suitable temperature operating range for the PLL, then the comparator continues to perform comparisons of the periodic temperature measurements to the suitable temperature operating range of the PLL.
If it is determined that the measured temperature does fall within the suitable temperature operating range for the PLL, then an input 306A to the S-R latch 306 is toggled. As part of the initial booting-up of the chip, an additional input 306B is also provided to the S-R latch 306. As such, until the input 306A is toggled when the measured temperature is within the suitable temperature operating range for the PLL, the S-R latch provides a control signal to the multiplexer 307 that results in a mapping of the input representative of the reference clock signal to the CPU clock signal. In other words, as long as the measured temperature is not within the suitable temperature operating range for the PLL, the CPU clock signal is synchronized to the reference clock signal.
However, when the input 306A is toggled based on the measured temperature being within the suitable temperature operating range for the PLL, the S-R latch 306 provides a control signal to the multiplexer 307 that results in a mapping of the faster PLL clock to the CPU clock. That is, the CPU clock signal is synchronized with the faster PLL clock. In one or more embodiments of the invention, the multiplexer 307 may be a glitchless multiplexer.
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 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.
This application is a continuation-in-part of U.S. application Ser. No. 12/851,602 filed on Aug. 6, 2010.
Number | Name | Date | Kind |
---|---|---|---|
5085526 | Sawtell et al. | Feb 1992 | A |
5154514 | Gambino et al. | Oct 1992 | A |
5639163 | Davidson et al. | Jun 1997 | A |
5890100 | Crayford | Mar 1999 | A |
6002991 | Conn, Jr. | Dec 1999 | A |
6091255 | Godfrey | Jul 2000 | A |
6393374 | Rankin et al. | May 2002 | B1 |
6694282 | Perner | Feb 2004 | B2 |
7006943 | Mitchell et al. | Feb 2006 | B1 |
7034507 | Lovett | Apr 2006 | B2 |
7098715 | Severson | Aug 2006 | B2 |
7187053 | Boerstler et al. | Mar 2007 | B2 |
7197420 | Johns et al. | Mar 2007 | B2 |
7255476 | Franch et al. | Aug 2007 | B2 |
7340366 | Aas et al. | Mar 2008 | B2 |
7410293 | Santurkar et al. | Aug 2008 | B1 |
7452128 | Franch et al. | Nov 2008 | B2 |
7563023 | Kuo et al. | Jul 2009 | B2 |
7645071 | Franch et al. | Jan 2010 | B2 |
7661878 | Lall et al. | Feb 2010 | B1 |
7760569 | Ruf et al. | Jul 2010 | B2 |
8033720 | Chu | Oct 2011 | B2 |
20010021217 | Gunther et al. | Sep 2001 | A1 |
20040037346 | Rusu et al. | Feb 2004 | A1 |
20040204899 | Gunther et al. | Oct 2004 | A1 |
20060220707 | Kang et al. | Oct 2006 | A1 |
20060242447 | Radhakrishnan et al. | Oct 2006 | A1 |
20070010963 | Gaskins | Jan 2007 | A1 |
20070210756 | Choi et al. | Sep 2007 | A1 |
20120201273 | Mukherjee | Aug 2012 | A1 |
20130235903 | Wong et al. | Sep 2013 | A1 |
Entry |
---|
Chiueh, Herming; Choma, Jr., John; Draper, Jeffrey; Luh, Louis; “A High Speed CMOS On-Chip Temperature Sensor;” 4 pages; University of Southern California, Los Angeles, CA, USA. |
Hwu, Jenn-Gwo; Shih, Yen-Hao; “An On-Chip Temperature Sensor by Utilizing a MOS Tunneling Diode;” IEEE Electron Device Letters, vol. 22, No. 6, Jun. 2001; pp. 299-301; Department of Electrical Engineering, Graduate Institute of Electronics Engineering, National Taiwan University, Taipei 106, Taiwan, R.O.C. |
Abshire, Pamela A.; Cohen, Marc H.; Prakesh, Somashekar B.; Zhai, Yiming; “Detection of On-chip Temperature Gradient Using a 1.5V Low Power CMOS Temperature Sensor;” 2006 IEEE; pps. 1171-1174; Department of Electrical and Computer Engineering, University of Maryland, College Park, MD, USA. |
Maxim Integrated Products; “The MAX1464's On-Chip Temperature Sensor;” Dec. 19, 2005; pp. 1-5. |
Lapedus, Mark; “NEC Develops On-Chip Temperature Sensor Tech;” Global Sources, EE Times India; Jun. 19, 2008; pp. 1-3. |
Co-pending U.S. Appl. No. 12/851,602, filed Aug. 6, 2010. |
Number | Date | Country | |
---|---|---|---|
20120032716 A1 | Feb 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12851602 | Aug 2010 | US |
Child | 13236340 | US |