The present invention pertains to the field of computer systems. More particularly, this invention pertains to the field of power management of devices within computer systems.
In many semiconductor devices such as embedded processors, systems-on-a-chip (SOC), or other computer systems or consumer electronic devices, on-chip busses are becoming faster and wider with many associated register queues and related logic in attached unit interfaces. Split transaction capabilities on these busses have added significant depth to these queues. This is leading to a situation where on-chip busses and their associated interfaces will become a significant portion of overall system power, particularly in SOC designs.
Previous efforts to reduce power consumption on busses and their associated attached units have included powering down individual units when they are not in use and reducing bus frequencies. In embedded processors and SOC designs, there may be large variances in work loads depending on the applications currently executing, time of day, type of traffic, etc. The variations in workload are often under the control of various independent software drivers. These drivers typically control their particular units but do not control system resources such as busses.
In prior systems, in order to control system resources such as busses, additional communication with software that manages system resources is typically used. The overhead and latency involved with using software to power manage system resources such as busses can be significant. This latency reduces the value of power managing system resources such as busses that need to be able to quickly change speeds based on current workload.
The invention will be understood more fully from the detailed description given below and from the accompanying drawings of embodiments of the invention which, however, should not be taken to limit the invention to the specific embodiments described, but are for explanation and understanding only.
In general, one embodiment of the invention involves throttling a bus frequency based upon incoming arbitration requests from units or devices coupled to the bus. Arbitration circuitry monitors request rates from each requestor and increases or decreases the bus frequency in order to meet the bandwidth levels requested. When the bandwidth requirements increase, the bus frequency increases. When the bandwidth requirements are reduced, the bus frequency is reduced, thereby reducing power consumption.
The embodiments described herein may be implemented such that there is no software intervention required to adjust the bus bandwidth once initially configured. Software can be used to control power consumption of individual units or devices attached to the bus. In the described embodiments, the bus frequency is independently adjusted based on request rates, the requesting device characteristics, and bandwidth requirements.
Each of the units 110, 120, and 130 are coupled to the bus 155 via bus interface logic units 112, 122, and 132, respectively. The bus interface logic units 112, 122, and 132 are further coupled to the arbitration and bus clock control unit 150. Whenever one of the units 110, 120, and 130 desires to access the bus 155, a request is made to the arbitration and bus clock control unit 150. The arbitration and bus clock control unit 150 not only performs typical arbitration functions, but also tracks how often each of the units 110, 120, and 130 requests access to the bus 155. The arbitration and bus clock control unit 150 instructs the clock throttling logic 140 to adjust the frequency of the bus 155 according to the bandwidth requirements of the units 110, 120, and 130 based on the request rates of the units 110, 120, and 130. The clock throttling logic 140 derives the clock for the bus 155 from a system clock 175.
The units 110, 120, and 130 may be any of a wide variety of functional units, including, but not limited to, host processor units, video processor units, hard disk drive controller units, IEEE (Institute of Electrical and Electronic Engineers, Inc.) 1394 controller units, Peripheral Component Interconnect (PCI) bridge units, management processor units, and input/output controller units for slower peripheral devices.
Although system 100 is shown with only three functional units coupled to the bus 155, other embodiments are possible with a wide range of possible numbers of units coupled to the bus. Further, although system 100 is shown to be implemented on a single integrated circuit die, other embodiments are possible where the bus 155 is used to couple together discrete devices.
An example of some of the possible functions of system 100 will now be described. For this example, the bus 155 achieves a throughput of 100 MB/s for every 10 MHz of clock speed. The system 100 is initialized with the bus 155 at full speed, which for this example is 100 MHz which corresponds to 1 GB/s peak bandwidth on the bus 155. Also, for this example, the unit 110 is a host processor, unit 120 is a video processor, and unit 130 is an IEEE 1394 controller.
After initialization, the arbitration and bus clock control unit 150 recognizes that there are no incoming requests from the IEEE 1394 controller, and that less than 70% of the arbitration slots are utilized. The arbitration and bus clock control unit 150 will then direct the clock throttling unit 140 to throttle the bus clock frequency down to 70 MHz. The recognition interval is implementation dependent and may be based upon a reasonably finite number of sequential arbitration slots. For this example, the recognition interval is 128 arbitration slots. Each arbitration slot for this example may consist of 200 bytes, which for this example would provide 500 k arbitration slots per second.
For the current example, assume that at some later time the arbitration and bus clock control unit 150 recognizes that the host processor unit 110 is only sustaining 10% of the arbitration slots and that the video processor 120 is using 43% of all slots. The units 110 and 120 together are using 53% of the arbitration slots with the bus running at 70 MHz. The arbitration and bus clock control unit 150 then directs the clock throttling unit 140 to reduce the bus clock frequency to 40 MHz, staying just ahead of the bandwidth requirements.
The arbitration and bus clock control unit 150 can use average utilization over time or use other statistical methods to determine sustained bandwidth needs. The recognition interval may be short enough (perhaps 1–10 us) to handle short bursts of activity such as that from a hard disk drive controller.
Additionally, the arbitration and bus clock control unit 150 may recognize a request from an isochronous data transfer controller, such as the IEEE 1394 controller 130. In this case, the arbitration and bus clock control unit 150 bumps up the bus clock frequency to ensure that there is adequate bandwidth to satisfy the isochronous data transfer. The arbitration and bus clock control unit 150 will also cause the bus clock frequency to be reduced if the isochronous data transfer unit returns to an idle state.
If the system 100 is put into an idle state, where perhaps only a management processor is active and minor peripheral traffic and host processor traffic are ongoing, the bus frequency can be reduced to a minimal level (perhaps 20 MHz).
The previous example described the system 100 as having the bus 155 starting out at a maximum clock frequency upon system initialization. Other embodiments are possible where the variable speed bus 155 is set at other frequencies upon system initialization. For example, in one embodiment the bus frequency is set at a frequency sufficient to only service access to a boot ROM (perhaps 2 MHz). As other units become active the arbitration and bus clock control unit 150 can increase the bus frequency to accommodate the increased bandwidth needs.
As seen in the discussion above, the embodiments described provide improved energy efficiency and reduce overall power requirements potentially saving other system costs associated with heat (fans, heat sinks, etc.).
In the foregoing specification the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.
Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the invention. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
Number | Name | Date | Kind |
---|---|---|---|
5237676 | Arimilli et al. | Aug 1993 | A |
5509126 | Oprescu et al. | Apr 1996 | A |
5546567 | Nakamura | Aug 1996 | A |
5559967 | Oprescu et al. | Sep 1996 | A |
5581729 | Nishtala et al. | Dec 1996 | A |
5625826 | Atkinson | Apr 1997 | A |
5627744 | Baker et al. | May 1997 | A |
5628019 | O'Brien | May 1997 | A |
5630163 | Fung et al. | May 1997 | A |
5666422 | Harrison et al. | Sep 1997 | A |
5809291 | Munoz-Bustamante et al. | Sep 1998 | A |
5815734 | Lee et al. | Sep 1998 | A |
5825854 | Larson et al. | Oct 1998 | A |
5844794 | Keeley | Dec 1998 | A |
5949891 | Wagner et al. | Sep 1999 | A |
5978869 | Guthrie et al. | Nov 1999 | A |
6006303 | Barnaby et al. | Dec 1999 | A |
6073244 | Iwazaki | Jun 2000 | A |
6079022 | Young | Jun 2000 | A |
6134621 | Kelley et al. | Oct 2000 | A |
6185692 | Wolford | Feb 2001 | B1 |
8185892 | Watford el al. | Feb 2001 | |
6304645 | Holland et al. | Oct 2001 | B1 |
6404883 | Hartmeier | Jun 2002 | B1 |
6418201 | Holland et al. | Jul 2002 | B1 |
6484222 | Olson et al. | Nov 2002 | B1 |
6510473 | Voit | Jan 2003 | B1 |
6556672 | Holland et al. | Apr 2003 | B1 |
6564329 | Cheung et al. | May 2003 | B1 |
6611893 | Lee et al. | Aug 2003 | B1 |
6642942 | Crook | Nov 2003 | B1 |
6741791 | Wymore et al. | May 2004 | B1 |
6792102 | Shires | Sep 2004 | B2 |
6820209 | Culbert et al. | Nov 2004 | B1 |
6853720 | Ramachandran | Feb 2005 | B2 |
6920216 | Finnie et al. | Jul 2005 | B2 |
7281148 | Munguia, Peter R. | Oct 2007 | B2 |
7370221 | Tang et al. | May 2008 | B2 |
20020083241 | Moller | Jun 2002 | A1 |
20030149826 | Kadota | Aug 2003 | A1 |
20040017234 | Tam et al. | Jan 2004 | A1 |
20050044442 | Barr et al. | Feb 2005 | A1 |
20070271405 | Moore | Nov 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20050216643 A1 | Sep 2005 | US |