1. Technical Field
The present disclosure relates to power consumption in computer systems and, in particular, to controlling the refresh rate of solid state memory banks.
2. Related Art
As the temperature of a solid state RAM (random access memory) increases, the memory loses charge at a faster rate. If the memory loses charge, then it loses the data that was stored in its memory cells. RAM chips have self-refresh circuitry that restores the lost charge at periodic intervals. The interval is chosen to be short enough that there is virtually no risk that data is lost or corrupted.
The temperature of RAM is largely determined by its activity level (rate of reads and writes into the memory cells) and its environment. The increased rate of charge loss generates more heat, and the increased heat increases the rate at which the charge is lost. In addition, each self-refresh cycle requires power. For a computer in a standby state, the power required to self-refresh the memory may be a significant portion of total consumed power. As the amount of system memory in computer systems increases, the self-refresh power may become an increasingly larger share of the total system power consumption. For battery-powered systems, such as notebook computers, PDAs (Personal Digital Assistants), tablet computers, music players and portable telephones, the memory refresh cycle may have a significant effect on battery life. For systems plugged into mains current, the refresh cycle increases the operating cost of the system.
In addition newer memory chip designs require even shorter self-refresh intervals. For DDR2 and DDR3 (Double Data Rate) chips, a doubled self-refresh rate is required at higher memory chip temperatures (e.g. temperatures over 85C). The 2× self-refresh rate is defined as twice the self-refresh rate for DDRAM (Double Data Rate Synchronous Dynamic RAM). This puts further demands on the power reserves of the computing system.
In order to reduce the refresh rates of a memory chip or bank, system or subsystem, some information about its temperature must be known. The more accurate the temperature information, the more the refresh rate may be reduced. If the temperature information is not reliable or accurate, then the memory will be run at a faster refresh rate then necessary in order to provide some margin for error.
To be effective, the temperature information should be provided to some system that can apply it to adjust the self-refresh rate. In a separate effort to reduce power consumption, many systems offer various suspend, standby and hibernation states. One such state is known as STR (Suspend to RAM). In STR, the current state of the system is stored in system RAM, while most of the system hardware is powered down. As a result, the RAM becomes the most significant power user and also the only source of information for waking the system from STR.
If a system enters STR or another low-power state when the memory is hot and operating at a high refresh rate, then it is likely that after some time in the low-power mode, the memory will cool down. The self-refresh rate may then be reduced, saving power and allowing the memory to cool still faster. However, many low-power states power off the circuitry that otherwise would be able to adjust the self-refresh rate, such as processors, memory controllers, and input/output hubs, while the system is in the low-power state.
The various advantages of the embodiments of the present invention will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
A temperature measurement module 14 measures an internal temperature of one or more of the memory devices 12 either directly or indirectly. The temperature measurement module may use thermal sensors in one or more of a variety of different locations. The memory unit includes several SDRAM devices 12a, 12b, 12c, 12d. While four SDRAM devices have been shown, a greater or smaller number of memory devices may be used. A serial presence detect (SPD) device 18 in the memory unit is coupled to the thermal sensor to drive the sensor and receive a temperature measurement.
The memory unit 10 is coupled to an MCH (memory controller hub) 22, though a memory bus 24, and the SPD of the memory unit is coupled to an ICH (Input/Output Controller Hub) 34 through a SMBus 28. In addition to storing configuration information (e.g., module size, data width, speed and voltage) used by the basic input/output system (BIOS, not shown) at system start-up, the SPD device 18 is able to transfer internal temperatures of the SDRAM devices 12 to a system management interface 26. The system management interface 26 can generate interrupts and control signals on interrupt lines 30 if the memory unit temperatures exceed temperature thresholds, and to wake aspects of the system from a low-power state.
In particular, the illustrated system management interface 26 includes a system management bus 28 coupled to the SPD device 18. The system management interface 26 receives the internal temperatures from the SPD device 18 over the system management bus 28, and compares the internal temperatures to the temperature threshold.
In one example, the system management bus 28 is an I2C (inter integrated circuit) bus (e.g., I2C Specification, Version 2.1, Phillips Semiconductors, January 2000), which can physically consist of two active wires and a ground connection. The active wires, termed serial data line (SDA) and serial clock line (SCL) are both bidirectional.
The system management bus 28 can also operate under a SMBus framework (e.g., SMBus Specification, Version 2.0, SBS Implementers Forum, August 2000). An SMBus interface uses I2C as its backbone, and enables components to pass messages back and forth rather than tripping individual control lines. Such an approach is particularly useful for a system memory in a personal computer architecture.
The ICH is coupled to the MCH and also to a CPU (Central Processing Unit) 36 which sends data to and fetches data from the system memory 10. In the illustrated embodiment, the system memory sends and receives memory data to and from the MCH and the MCH controls the memory's refresh rate. The ICH communicates stored data from the system memory to other devices (not shown). Any one or more of these three devices may be consolidated into a single unit. The MCH may be incorporated into the CPU or the ICH and the functions of all three devices may be combined into a single chip. While in a wake state, the sensed temperature from the ICH can be sent to the MCH or the CPU which may then adjust the refresh rate. In a low-power state the MCH and the CPU may be powered down. The ICH, typically coupled to a keyboard, network interface, and other devices, waits for interrupts that will wake the system.
The temperature sensor is coupled on an event bus 31, such as I2C or SMBus to the self-refresh management circuit in order to send temperature information to the self-refresh management circuit. Since both components remain powered during STR mode, they can communicate even when other components are inactive. The temperature sensor and the self-refresh management unit are able to perform self-refresh management functions while the system is in a low-power state, such as STR. In contrast to the example of
As shown in
If the computer system is set to a low-power state, such as STR, then the CPU, MCH and portions of the ICH will be powered down or placed in a suspend mode. This may prevent the CPU from programming the MCH and may prevent the MCH from receiving a command to change the self-refresh rate. It also shuts down communications on the buses used to control the self-refresh rate, such as the memory bus and the bus between the MCH and CPU. As shown in
If the temperature is below the threshold, then at block 345, the current self-refresh rate may be checked. If it is already set to 1×, then the process may return to check the temperature again later. If the self-refresh rate is set to 2×, then the system management interface may generate an interrupt to the ICH at block 347. At block 349, the ICH receives the interrupt and wakes the CPU. The CPU may then command the MCH to set the self-refresh rate to 1× at block 351. This may require that aspects of the MCH be waked or the MCH may be in a partially or full wake state already. At block 353, any components that were waked may return to the standby or low-power state, such as STR.
The process of
Additional operations may also be performed after the system is commanded to enter STR mode. The MCH, SPD, or system management interface may check the self-refresh rate. If the self-refresh rate is already at 1×, then the
At block 509, the self-refresh management unit selects a self-refresh rate based on the temperature comparison and at block 511, it resets the self-refresh rate within the MCH. If the self-refresh management circuit is resident on the MCH, then it may be provided with direct access to the self-refresh circuitry of the MCH independent of the CPU or any other components. Alternatively, it may be provided with circuitry to wake the MCH for purposes of resetting the self-refresh rate. It may alternatively send a command that emulates a command from the CPU to reset the self-refresh rate.
In the example of
The MCH also has an interface, such as a PCI (peripheral component interconnect) Express, or AGP (accelerated graphics port) interface to couple with a graphics controller 641 which, in turn provides graphics and possible audio to a display 637. The PCI Express interface may also be used to couple to other high speed devices. In the example of
The ICH 665 offers possible connectivity to a wide range of different devices. Well-established conventions and protocols may be used for these connections. The connections may include a LAN (Local Area Network) port 669, a USB hub 671, and a local BIOS (Basic Input/Output System) flash memory 673. A SIO (Super Input/Output) port 675 may provide connectivity for a front panel 677 with buttons and a display, a keyboard 679, a mouse 681, and infrared devices 685, such as IR blasters or remote control sensors. The I/O port may also support floppy disk, parallel port, and serial port connections. Alternatively, any one or more of these devices may be supported from a USB, PCI or any other type of bus or interconnect.
The ICH may also provide an IDE (Integrated Device Electronics) bus or SATA (serial advanced technology attachment) bus for connections to disk drives 687, 689 or other large memory devices. The mass storage may include hard disk drives and optical drives. So, for example, software programs, parameters or user data, may be stored on a hard disk drive or other drive. A PCI (Peripheral Component Interconnect) bus 691 is coupled to the ICH and allows a wide range of devices and ports to be coupled to the ICH. The examples in
The particular nature of any attached devices may be adapted to the intended use of the device. Any one or more of the devices, buses, or interconnects may be eliminated from this system and other may be added. For example, video may be provided on the PCI bus, on an AGP bus, through the PCI Express bus or through an integrated graphics portion of the host controller.
It is to be appreciated that a lesser or more equipped memory unit, memory module, thermal sensor, thermal management, or computer system than the example described above may be preferred for certain implementations. Therefore, the configuration of the examples provided above may vary from implementation to implementation depending upon numerous factors, such as price constraints, performance requirements, technological improvements, or other circumstances. Embodiments of the present invention may also be adapted to other types of memory systems and to other thermal environments than the examples described herein. The particular types of standby and power modes described herein may also be adapted to suit different applications.
Embodiments of the present invention may be provided as a computer program product which may include a machine-readable medium having stored thereon instructions which may be used to program a general purpose computer, mode distribution logic, memory controller or other electronic devices to perform a process. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnet or optical cards, flash memory, or other types of media or machine-readable medium suitable for storing electronic instructions. Moreover, embodiments of the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer or controller to a requesting computer or controller by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
In the description above, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. For example, well-known equivalent materials may be substituted in place of those described herein, and similarly, well-known equivalent techniques may be substituted in place of the particular processing techniques disclosed. In other instances, well-known circuits, structures and techniques have not been shown in detail to avoid obscuring the understanding of this description.
While the embodiments of the invention have been described in terms of several examples, those skilled in the art may recognize that the invention is not limited to the embodiments described, but may be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.