The present disclosure relates generally to the field of computer systems, and, more particularly, to a system and method for managing power consumption in a computer system.
As the value and use of information continues to increase, individuals and businesses continually seek additional ways to process and store information. One option available to users of information is an information handling system. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems may include a processor, sometimes referred to as a microprocessor, and an associated chip set. A chip set is a set of components that are designed to work with the processor and form a portion of the hardware architecture of the computer system or information handling system. Typically, the processor of a computer system will consume a large amount of power. In the case of a portable or laptop computer system, the power consumption by the processor will limit the effective use of the computer, as the power consumed by the processor will drain the local battery of the portable computer, limiting the ability to use the portable computer system without an external power source. One technique for limiting the amount of power consumed by a processor in a laptop computer system involves placing the processor in a reduced power state. A processor may have one or more reduced power states. While the computer system is in a particular reduced power state, the function of the processor of the computer system may be limited to reduce the power consumed by the computer system.
The processors of many computer systems include an internal cache. A cache memory subsystem improves the performance of a computer system. A cache memory is typically a smaller, higher performance memory system, as compared to the larger but slower system memory. Frequently accessed instructions and data can be stored in the cache, thereby allowing the processor to access this data from the cache while avoiding the more time-consuming task of accessing frequently used data from system memory.
Access to the local or CPU cache by the processor includes both writes and reads. In a write-back cache, a write to the local cache does not automatically result in a corresponding write to the memory location in system memory. Instead, when a cache line is removed from the cache, the content of that cache line is written to system memory if that cache line has been modified. It is also recognized that an access to system memory may be initiated by bus masters other than the processor of the computer system. A USB host controller, for example, may access system memory as a bus master. As part of an access to system memory by a bus master other than the processor, a snoop operation is performed by the processor to determine if the bus master is attempting to access an address line in system memory that exists in modified form in the internal processor cache. If this snoop cycle were not included as part the memory access by the bus master, the bus master would run the risk of accessing from system memory data that had been previously modified in the local or CPU cache.
In some reduced power states, however, the local or CPU cache is not in a snoopable state. As such, a snoop operation cannot be performed to determine if the bus master is attempting to access a memory address that exists in modified form in the cache. Under these conditions, at least two undesirable approaches exist for the computer system. First, the computer system and the processor could be transferred out of its reduced power state into a snoopable, higher power state that would permit a snoop operation. This approach is undesirable, however, in that it results in excessive power consumption and frequent and time-consuming switching between power states. As a second approach, the bus master could simply access the data in the system memory without the benefit of the snoop operation. Following this approach, however, the bus master may access a dirty memory address, i.e., a memory location that is associated with modified data in the processor's internal cache.
In accordance with the present disclosure, a system and method for managing power conservation and data integrity in a computer system or other information handling system is disclosed. The system disclosed herein includes a processor having an internal cache, a buffer, and a memory controller. When the processor enters a low power state, the memory controller records in the buffer the addresses of memory locations in system memory. When the processor exits the low power state, the processor invalidates in its internal cache those cache lines that correspond to the addresses recorded in the buffer. The process insures coherency between the processor's internal cache and the system memory of the computer system.
One technical advantage of the present disclosure is the processor is able to enter into a non-snoopable, low power state without compromising the data integrity of the computer system. Because the processor, upon exiting its low power state, invalidates in the cache those lines corresponding to modified data in system memory, the processor is able to return to a state in which the cache does not include any cache lines that are not current or updated as compared to the data in system memory.
Another technical advantage of the present disclosure is a computer system that provides for the ability of the processor to enter into a low power state, thereby preserving local battery power in the computer system, while also maintaining the cache coherency of the computer system. Even though the processor is able to enter a non-snoopable, low power state, the computer system is still able to support accesses by other bus masters to system memory. Modifications to data in system memory may be made without the necessity of causing the processor to enter a high power state for the purpose of snooping on the system memory access by the bus master. Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
The present disclosure concerns a system and method for managing power consumption and data coherency in a computer system. The present disclosure describes a system and method for managing the power states of the computer system such that the processor of the computer system can be placed in a non-snoopable power state without compromising the integrity of the data stored in the system memory of the computer system. The system and method provided herein permits a computer system to enter a low power state while maintaining the operational benefits of an internal processor cache.
The architecture of a computer system, which is indicated generally at 10, is shown in
Processor 12 is coupled to a memory controller hub (MCH) 18, which is coupled to a graphics controller 20 and system memory 22. Memory controller hub 18 is additionally coupled to an I/O controller hub (ICH) 24, which is coupled to a USB controller 25 and a PCI bus. 27. Like other I/O devices or gateways that may be coupled to ICH 24, USB controller 25 may act as a bus master that is independent of processor 12, allowing USB controller 25 to access system memory 22 without the involvement of the processor. Memory controller hub 18 includes a write tracking buffer 26.
When processor 12 enters a non-snoopable sleep state, write tracking buffer 26 stores a record of the addresses of the blocks of system memory that have been modified since the processor entered the non-snoopable sleep state. A flow diagram of a method for managing the power conservation and data integrity of the computer system having a write tracking buffer in a memory controller hub is shown in
During the period that processor 12 is in the non-snoopable, low power state, memory controller hub 18 records in write tracking buffer 26 the address of each modified memory block. System memory 22 may be accessed by bus masters of computer system 10, including, as just one example, USB host controller 25. With reference to
If memory controller hub 18 determines at step 38 that write tracking buffer 26 is full, processor 12 exits the non-snoopable low power state (step 42 shown on
As described with respect to
With reference to
The system and method disclosed herein permits the processor to enter a non-snoopable, low power state, while maintaining the data integrity of the system during the time that system memory may be accessed by a bus master other than the processor. Writes to system memory are recorded, allowing the processor to invalidate selected lines of its cache following its exit from the low power state, with the result being that the content of the cache is coherent with the content of system memory shortly after its exit from the low power state. In a computer system or other information handling system following the system and methodology disclosed herein, both at the time when the enters its low power state and at the time when the processor exits its low power state, the content of the cache is coherent with the content of system memory.
It should be understood that the system and method disclosed herein is not limited to the precise architecture disclosed in