US7254727B2 - Information processor with suppressed cache coherence in low power mode - Google Patents

Information processor with suppressed cache coherence in low power mode Download PDF

Info

Publication number
US7254727B2
US7254727B2 US10/730,672 US73067203A US7254727B2 US 7254727 B2 US7254727 B2 US 7254727B2 US 73067203 A US73067203 A US 73067203A US 7254727 B2 US7254727 B2 US 7254727B2
Authority
US
United States
Prior art keywords
operation mode
input
output device
information processor
power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US10/730,672
Other versions
US20050060591A1 (en
Inventor
Noritoshi Yoshiyama
Seiichi Kawano
Hirohide Komiyama
Tetsuji Nakamura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo PC International Ltd
Original Assignee
Lenovo Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KAWANO, SEIICHI, KOMIYAMA, HIROHIDE, NAKAMURA, TETSUJI, YOSHIYAMA, NORITOSHI
Publication of US20050060591A1 publication Critical patent/US20050060591A1/en
Assigned to LENOVO (SINGAPORE) PTE LTD. reassignment LENOVO (SINGAPORE) PTE LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application granted granted Critical
Publication of US7254727B2 publication Critical patent/US7254727B2/en
Assigned to LENOVO PC INTERNATIONAL reassignment LENOVO PC INTERNATIONAL NUNC PRO TUNC ASSIGNMENT (SEE DOCUMENT FOR DETAILS). Assignors: LENOVO (SINGAPORE) PTE LTD.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Definitions

  • the present invention relates to an information processor, program, storage medium, and control circuit and, in particular, to an information processor, program, storage medium, and control circuit that provides a power saving function.
  • a conventional information processing terminal including ACPI capabilities has a normal-operation mode in which coherence control is performed for making data in a processor cache memory identical to data in a main memory and a power-saving mode in which the coherence control is suppressed to lower power consumption from power consumption in normal-operation mode.
  • the information processing terminal cannot be placed in the power-saving mode because coherence between the cache memory and the main memory would be lost.
  • an information processor has been proposed that always operates in normal-operation mode.
  • such an information processor has the problem of consuming a large amount of power.
  • Another approach has been proposed that flashes a cache memory immediately before the information processor enters power-saving mode.
  • this approach has the problem that the cache memory flashing takes long time (for example, a processor requires 80 to 400 microseconds).
  • an information processor a program for causing the information processor to operate, a storage medium on which the program is stored, and a control circuit for controlling the information processor.
  • the information processor has a normal-operation mode in which coherence control is performed for making data in a processor cache memory identical to data in a main memory and a power-saving mode in which coherence control is suppressed to lower power consumption from power consumption in the normal-operation mode and enters the normal-operation mode when an input/output device accesses the main memory in the power-saving mode.
  • the information processor comprises an attribute setting module for setting a device area of said main memory that is accessed by the input/output device of the information processor to the non-cacheable attribute for exempting the device area from coherence control even in the normal-operation mode, and an operation mode setting module for allowing the input/output device to access the device area while keeping the operation mode of the information processor in said power-saving mode when the input/output device requests access to the device area in the power-saving mode.
  • FIG. 1 shows a functional block diagram of an information processor 10 ;
  • FIG. 2 shows a block diagram of a bus arbiter 135 ;
  • FIG. 3 shows a flowchart of a process performed by a device driver 300 ;
  • FIG. 4 shows a flowchart of a process performed by an operating system 200 ;
  • FIG. 5 shows a flowchart of a process performed by a device driver 300 according to a variation
  • FIG. 6 shows a flowchart of a process performed by an operating system 200 according to the variation.
  • FIG. 1 shows a functional block diagram of an information processor 10 .
  • the information processor 10 has a number of operation modes that provide different amounts of power consumption in order to maintain a low-power-consumption mode even when a device accesses a memory.
  • the information processor 10 comprises a processor 110 , a main memory 120 , a system controller 130 , a bus arbiter 135 , PCI bus master devices 140 a to 140 c , each of which is an exemplary input/output device, a communication interface 150 , a hard disk drive 160 , a floppy disk drive 170 , and a CD-ROM drive 180 .
  • the information processor 10 further comprises a device driver 300 and an operating system 200 stored in the main memory 120 and executed by the processor 110 .
  • the processor 110 controls the components of the information processor 10 according to programs stored in the main memory 120 .
  • the processor 110 has a cache memory 350 for storing data read from the main memory 120 and performs coherence control for making data in cache memory 350 identical to data in the main memory 120 .
  • the main memory 120 outputs data it stores to the processor 110 or one of the PCI bus master devices 140 a to 140 c .
  • the main memory 120 stores data received from the processor 110 or one of the PCI bus master devices 140 a to 140 c .
  • the main memory 120 receives and stores a program or data from the hard disk drive 160 , floppy disk drive 170 , or the CD-ROM drive 180 through the processor 110 .
  • the system controller 130 interconnects a host bus onto which the processor 110 and the main memory 120 are connected, a PCI bus onto which the PCI bus master devices 140 a to 140 c and communication interface 150 are connected, the hard disk drive 160 , the floppy disk drive 170 , and the CD-ROM drive 180 .
  • the system controller 130 has the bus arbiter 135 .
  • the bus arbiter 135 receives a memory access request signal that is provided from each of a number of input/output devices, for example PCI bus master devices 140 a to 140 c in order to access the main memory 120 .
  • the bus arbiter 135 allows one of the PCI bus master devices 140 a to 140 c to access the main memory 120 .
  • the PCI bus master device 140 a is a device that controls inputs from and outputs to external devices. It may be a device for controlling a USB mouse, for example.
  • the PCI bus master device 140 a controls the inputs and outputs according to instructions from the device driver 300 .
  • the PCI bus master device 140 a accesses the main memory 120 as necessary.
  • the PCI bus master devices 140 b and 140 c are similar to the PCI bus master device 140 a and the description of which will be omitted.
  • the communication interface 150 communicates with other devices over a network.
  • the hard disk drive 160 stores programs and data used by the information processor 10 .
  • the CD-ROM drive 180 reads a program or data from a CD-ROM 195 and provides it to the main memory 120 through the system controller 130 .
  • the floppy disk drive 170 reads a program or data from a floppy disk 190 and provides it to the main memory 120 through the system controller 130 .
  • the operating system 200 has an idle handler 220 that changes the operation mode of the information processor 10 according to the state of the information processor 10 and a memory manager 210 that manages the main memory 120 .
  • the information processor 10 has a normal-operation mode in which coherence control is performed for making data in the cache memory 350 identical to data in the main memory 120 and a power-saving mode in which the coherence control is suppressed to lower power consumption from that in the normal-operation mode.
  • the idle handler 220 causes the information processor 10 to switch one mode to the other.
  • the idle handler 220 when the idle handler 220 receives in the power-saving mode an access request signal provided from one of the PCI bus master devices 140 a to 140 c attempting to access the main memory 120 , the idle handler 220 places the information processor 10 in the normal-operation mode. On the other hand, the idle handler 220 places the information processor 10 in the power-saving mode after the processor 110 is idle for a predetermined period of time in the normal-operation mode. Furthermore, the idle handler 220 changes conditions for switching the operation mode by changing the value of a register in the bus arbiter 135 according to an instruction from an operation mode setting module 320 .
  • the normal-operation mode herein may be an operation mode such as the C0 processor power state, C1 processor power state, or C2 processor power state described in non-patent literature 1 in which coherence control is performed.
  • the power-saving mode herein may be an operation mode such as the C3 processor power state or C4 processor power state described in non-patent literature 1 in which coherence control is suppressed.
  • the memory manager 210 When the memory manager 210 receives an area reservation instruction for reserving a device area that is accessed by the PCI bus master device 140 a from the attribute setting module 310 , the memory manager 210 associates and allocates an area in the main memory 120 with and to the PCI bus master device 140 a .
  • the memory manager 210 receives from the attribute setting module 310 an attribute setting instruction for setting the device area to the non-cacheable attribute that exempts the device area from coherence control even in said normal-operation mode
  • the memory manager 210 sets the area in the main memory 120 to the non-cacheable attribute. For example, the memory manager 210 sets the device area to the non-cacheable attribute by overriding a cache attribute in a page table entry of the device area.
  • the memory manager 210 may set the area in the main memory 120 to the cacheable attribute.
  • the device driver 300 which is an example of a program according to the present invention, has the attribute setting module 310 and the operation mode setting module 320 .
  • the attribute setting module 310 sends an area reservation instruction to the memory manager 210 in response to a command from a user when a new PCI bus master device 140 a , for example, is connected to the information processor 10 .
  • the attribute setting module 310 sends an attribute setting instruction for setting a device area to the non-cacheable attribute to the memory manager 210 to set the device area to the non-cacheable attribute.
  • the operation mode setting module 320 sends to the idle handler 220 a condition change instruction for changing the condition for switching between the operation modes, in particular, an instruction for retaining the power-saving mode even if the PCI bus master device 140 a requests access to the device area. Consequently, the operation mode setting module 320 can allow the PCI bus master device 140 a to access the device area while maintaining the power-saving mode.
  • the information processor 10 sets a device area of the main memory 120 which the PCI bus master device 140 a accesses to the non-cacheable attribute to avoid the need for cache coherence control.
  • the information processor 10 maintains the power-saving mode.
  • the information processor 10 can reduce power consumption while maintaining coherence between data in the main memory 120 and the cache memory 350 .
  • the program to be provided to the information processor 10 is stored on a storage medium such as a floppy disk 190 , a CD-ROM 195 , an optical storage medium such as a DVD and PD, a magneto-optical storage medium such as an MD, a tape, or a semiconductor memory such as an IC card, and provided by a user to the information processor 10 .
  • a storage device such as a hard disk or a RAM provided in a server system connected to a private communication network or the Internet may be used as a storage medium to provide the program to the information processor 10 through the network and the communication interface 150 .
  • the program described above has an attribute setting module, an operation mode setting module, a memory manager module, and an idle handler module. These modules cause the information processor 10 to perform the same operations that are performed by their corresponding components of the information processor 10 , which will be described with reference to FIGS. 1 to 6 . The description of these program modules therefore will be omitted herein.
  • FIG. 2 shows a block diagram of the bus arbiter 135 .
  • the bus arbiter 135 has an arbitration circuit 400 that performs host bus arbitration among the PCI bus master devices 140 a to 140 c , a control circuit 410 that controls operation mode switching, and an OR circuit 420 that receives an access request signal from any of the PCI bus master devices 140 a to 140 c and outputs it to the processor 110 .
  • the arbitration circuit 400 When the arbitration circuit 400 receives a request signal, which is an example of an access request signal, from each of the PCI bus master devices 140 a to 140 c , the arbitration circuit 400 provides a grant signal for granting communication over the host bus to one of the PCI bus master devices 140 a to 140 c . As a result, the PCI bus master device 140 that receives the grant signal can access the main memory 120 .
  • the arbitration circuit 400 provides the request signal received from the PCI bus master device 140 to which it has granted the host bus communication to one of masking modules 440 a to 440 c .
  • the OR circuit 420 provides the logical OR of requests signal received from the control circuit 410 to the processor 110 through a control LSI as a bus master status, for example.
  • the control circuit 410 has register modules 430 a to 430 c for storing a plurality of pieces of mask data associated with the respective PCI bus master devices 140 a to 140 c , masking modules 440 a to 440 c for masking access request signals, and input modules 450 a to 450 c for inputting the masked signals to the processor 110 .
  • the register module 430 a is associated with the PCI bus master device 140 a and stores mask data for specifying whether or not an access signal request from the PCI bus master device 140 a is disabled.
  • the register modules 430 b and 430 c are substantially the same as the register module 430 a , except that the register module 430 b and the register module 430 c are associated with the PCI bus master devices 140 b and 140 c , respectively, and therefore the description of which will be omitted.
  • the masking modules 440 a to 440 c obtain an access request signal from each input/output device from the arbitration circuit 400 , masks the access request signal, and outputs it to the input modules 450 a to 450 c .
  • the masking module 440 a obtains an access request signal from the arbitration circuit 400 that is issued by the PCI bus master device 140 a , masks the access request signal with mask data associated with the PCI bus master device 140 a and stored in the register module 430 a , and provides the masked access request signal to the input module 450 a .
  • the masking modules 440 b and 440 c are substantially the same as the masking module 440 a , except that the masking modules 440 b and 440 c are associated with the PCI bus master devices 140 b and 140 b , the register modules 430 b and 430 c , and the input modules 450 b and 450 c , respectively, and therefore the description of which will be omitted.
  • the input modules 450 a to 450 c input the signals masked by the masking modules 440 a to 440 c into the idle handler 220 running on the processor 110 to change the operation mode of the information processor 10 .
  • the operation mode setting module 320 can associate mask data disabling the access request signal with the PCI bus master device 140 a , which is an input/output device accessing the device area and store it in the register module 430 a to maintain the information processor 10 in the power-saving mode.
  • the operation mode setting module 320 associates and stores mask data that enables an access request signal with the PCI bus master device 140 b and in the register module 430 b .
  • the operation mode setting module 320 can change the operation mode of the information processor 10 to the normal-operation mode.
  • a cacheable attribute is set on a memory area and indicates that the processor 110 should apply coherence control to that area in the normal-operation mode. For example, when the PCI bus master device 140 b writes to an area for which the cacheable attribute is set, the processor 110 first determines whether or not the data in that area is stored in the cache memory 350 . If the data in that area is stored in the cache memory 350 , the processor 110 performs coherence control so as to invalidate the data in the cache memory 350 .
  • the cacheable attribute is set on a memory area and indicates that the data in that area is stored in the cache memory 350 , and, when a change is made to that data, the processor 110 performs coherence control.
  • the arbitration circuit 400 may receive access request signals from input/output devices sequentially through a serial input.
  • the masking modules 440 a to 440 c may sequentially mask the received access request signals and send them to the OR circuit 420 through the input modules 450 a to 450 c.
  • FIG. 3 shows a flowchart of a process performed by the device driver 300 .
  • the attribute setting module 310 sends an area reservation instruction to the memory manager 210 to reserve a device area to be accessed by the PCI bus master device 140 a (S 300 ).
  • the attribute setting module 310 then sends an attribute setting instruction to the memory manager 210 to set the device area to the non-cacheable attribute (S 310 ).
  • the operation mode setting module 320 sends a condition change instruction to the idle handler 220 to disable an access request signal provided from the PCI bus master device 140 a to the processor 110 (S 320 ).
  • the operation mode setting module 320 then causes the PCI bus master device 140 a to perform bus master transfer. That is, it allows the PCI bus master device 140 a to access the device area (S 330 ).
  • the attribute setting module 310 sends an attribute setting instruction to the memory manager 210 to set the device area to the cacheable attribute (S 340 ).
  • FIG. 4 shows a flowchart of a process performed by the operating system 200 .
  • the idle handler 220 performs the process shown in FIG. 4 if, for example, the processor 110 is idle for a predetermined period of time. If bus master transfer that is access to from the PCI bus master device 140 a to the main memory 120 is being performed (S 400 : YES), the idle handler 220 ends the process. On the other hand, if the bus master transfer is not performed (S 400 : NO), the idle handler 220 disables host bus arbitration (S 410 ). As a result, only the processor 110 can use the host bus for communication and the idle handler 220 can prevent the PCI bus master devices 140 a to 140 c from using the host bus for communication. For example, the idle handler 220 sets the ARB_DIS bit in a system based on the ACPI (Advanced Configuration and Power Interface) specification. Alternatively, the idle handler 220 may call the API of the operating system 20 to disable host bus arbitration.
  • the idle handler 220 In response to a condition change instruction from the operation mode setting module 320 , the idle handler 220 then sets an interrupt signal input into the processor 110 and an access request (bus master request, for example) from the PCI bus master devices 140 a to 140 c for accessing the main memory 120 as the conditions for changing from the C3 processor power state to the C0 processor power state (S 420 ). For example, the idle handler 220 sets the BM_RLD bit in an ACPI-based system to set an event for changing the processor power state. Then the idle handler 220 changes the operation mode to the C3 processor power state (S 430 ).
  • bus master request for example
  • the idle handler 220 When the idle handler 220 receives an interrupt or a bus master request, it changes the operation mode to the C0 processor power state (S 440 ). Then, the idle handler 220 enables the host bus arbitration (S 450 ).
  • the information processor 10 allows a preset device, the PCI bus master device 140 a for example, to access a device area, while maintaining the power-saving mode. This allows the information processor 10 to reduce the power consumption.
  • the operation mode setting module 320 can change the operation mode to the normal-operation mode. This allows the information processor 10 to control coherence between data in the main memory 120 that is accessed by the PCI bus master device 140 b and data in the cache memory 350 .
  • FIG. 5 shows a flowchart of a process performed by the device driver 300 according to a variation of the embodiment.
  • a bus arbiter 135 of an information processor 10 in this embodiment does not have to include a control circuit 410 .
  • the configuration of the information processor 10 in the embodiment is substantially the same as that of the information processor 10 shown in FIGS. 1 and 2 . Therefore only differences will be described.
  • An attribute setting module 310 sends an area reservation instruction to a memory manager 210 to reserve a device area to be accessed by PCI bus master devices 140 a to 140 c (S 500 ). The attribute setting module 310 then sends an attribute setting instruction to a memory manager 210 to set the device area to the non-cacheable attribute (S 510 ).
  • the operation mode setting module 320 causes the PCI bus master devices 140 a to 140 c to perform bus master transfer, namely access to the device area (S 520 ).
  • the attribute setting module 310 can send an attribute setting instruction to the memory manager 210 to set the device area to the cacheable attribute (S 530 ).
  • FIG. 6 shows a flowchart of a process performed by an operating system 200 according to the variation.
  • An idle handler 220 performs the process shown in FIG. 6 if a processor 110 is idle for a predetermined period of time.
  • the idle handler 220 enables host bus arbitration (S 600 ). If host bus arbitration has already been enabled, the idle handler 220 does not perform any process at step S 600 .
  • the idle handler 220 enables host bus arbitration by clearing the ARB_DIS bit in an ACPI-based system, for example.
  • the idle handler 220 sets an interrupt signal input into the processor 110 as a condition for switching from the C3 processor power state to the C0 processor power state (S 610 ). For example, the idle handler 220 sets only an interrupt signal input as the event for changing from the C3 processor power state to the C0 processor power state by clearing the BM_RLD bit in the ACPI-based system. This allows the operation mode setting module 320 to disable an access request signal from any of the PCI bus master devices 140 a to 140 c .
  • the idle handler 220 changes the operation mode to the C3 processor power state (S 620 ). When the idle handler 220 subsequently receives an interrupt, it changes the operation mode to the C0 processor power state (S 630 ).
  • the operation mode setting module 320 can disable an access request signal from any of the PCI bus master devices 140 a to 140 c to allow all input/output devices to access device areas, while maintaining the power-saving mode of the information processor 10 .
  • the information processor 10 causes almost no loss in the efficiency of memory access if the frequency with which the processor 120 accesses the device area is low. Furthermore, the information processor 10 can maintain the power-saving mode regardless of access from the input/output devices. Consequently, power consumption can be reduced.
  • the information processor 10 may switch between the process described in the embodiment and the process in the variation, according to a policy set by a user.
  • the information processor 10 may perform the process described in the variation when a policy that attempts to minimize power consumption is set, and perform the process described in the embodiment when a policy that attempts to provide balance between processing speed and power consumption is set.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

An information processor having a normal-operation mode in which coherence control is performed for making data in a cache memory of a processor identical to data in a main memory and a power-saving mode in which the coherence control is suppressed to lower the power consumption from power consumption in the normal-operation mode and entering the normal-operation mode when an input/output device accesses the main memory in the power-saving mode includes an attribute setting module for setting a device area of the main memory, accessed by the input/output device of the information processor to a non-cacheable attribute for exempting said device area from said coherence control even in the normal-operation mode; an operation mode setting module for allowing the input/output device to access the device area while keeping the operation mode of the information processor in the power-saving mode when the input/output device requests access to the device area in the power-saving mode.

Description

FIELD AND BACKGROUND OF INVENTION
The present invention relates to an information processor, program, storage medium, and control circuit and, in particular, to an information processor, program, storage medium, and control circuit that provides a power saving function.
In recent years, power saving technology for increasing battery-powered operating time of portable information processing terminals has been receiving attention. For instance, a technology that changes power consumption according to the amount of computation has been used. This is shown, for example, in the “Advanced Configuration and Power Interface Specification Revision 2.0a” (Mar. 31, 2002; Compaq Computer Corporation and four other companies).
A conventional information processing terminal including ACPI capabilities has a normal-operation mode in which coherence control is performed for making data in a processor cache memory identical to data in a main memory and a power-saving mode in which the coherence control is suppressed to lower power consumption from power consumption in normal-operation mode. However, when an input/output device accesses the main memory to perform bus master transfer, the information processing terminal cannot be placed in the power-saving mode because coherence between the cache memory and the main memory would be lost. To solve this problem, an information processor has been proposed that always operates in normal-operation mode. However, such an information processor has the problem of consuming a large amount of power. Another approach has been proposed that flashes a cache memory immediately before the information processor enters power-saving mode. However, this approach has the problem that the cache memory flashing takes long time (for example, a processor requires 80 to 400 microseconds).
It is, therefore, a purpose of the present invention to provide an information processor, program, storage medium, and control circuit that can solve these problems. The purpose is achieved by the combination of features set forth in the independent claims herein. The dependent claims define preferable, specific embodiments of the present invention.
SUMMARY OF THE INVENTION
According to a first embodiment of the present invention, there are provided an information processor, a program for causing the information processor to operate, a storage medium on which the program is stored, and a control circuit for controlling the information processor. The information processor has a normal-operation mode in which coherence control is performed for making data in a processor cache memory identical to data in a main memory and a power-saving mode in which coherence control is suppressed to lower power consumption from power consumption in the normal-operation mode and enters the normal-operation mode when an input/output device accesses the main memory in the power-saving mode. The information processor comprises an attribute setting module for setting a device area of said main memory that is accessed by the input/output device of the information processor to the non-cacheable attribute for exempting the device area from coherence control even in the normal-operation mode, and an operation mode setting module for allowing the input/output device to access the device area while keeping the operation mode of the information processor in said power-saving mode when the input/output device requests access to the device area in the power-saving mode.
The summary of the present invention provided above is not a complete list of the essential features of the present invention. Sub-combinations of the features are also included in the present invention.
BRIEF DESCRIPTION OF DRAWINGS
Some of the purposes of the invention having been stated, others will appear as the description proceeds, when taken in connection with the accompanying drawings, in which:
FIG. 1 shows a functional block diagram of an information processor 10;
FIG. 2 shows a block diagram of a bus arbiter 135;
FIG. 3 shows a flowchart of a process performed by a device driver 300;
FIG. 4 shows a flowchart of a process performed by an operating system 200;
FIG. 5 shows a flowchart of a process performed by a device driver 300 according to a variation; and
FIG. 6 shows a flowchart of a process performed by an operating system 200 according to the variation.
DETAILED DESCRIPTION OF INVENTION
While the present invention will be described more fully hereinafter with reference to the accompanying drawings, in which a preferred embodiment of the present invention is shown, it is to be understood at the outset of the description which follows that persons of skill in the appropriate arts may modify the invention here described while still achieving the favorable results of the invention. Accordingly, the description which follows is to be understood as being a broad, teaching disclosure directed to persons of skill in the appropriate arts, and not as limiting upon the present invention.
FIG. 1 shows a functional block diagram of an information processor 10. The information processor 10 has a number of operation modes that provide different amounts of power consumption in order to maintain a low-power-consumption mode even when a device accesses a memory. The information processor 10 comprises a processor 110, a main memory 120, a system controller 130, a bus arbiter 135, PCI bus master devices 140 a to 140 c, each of which is an exemplary input/output device, a communication interface 150, a hard disk drive 160, a floppy disk drive 170, and a CD-ROM drive 180. The information processor 10 further comprises a device driver 300 and an operating system 200 stored in the main memory 120 and executed by the processor 110.
The processor 110 controls the components of the information processor 10 according to programs stored in the main memory 120. The processor 110 has a cache memory 350 for storing data read from the main memory 120 and performs coherence control for making data in cache memory 350 identical to data in the main memory 120.
The main memory 120 outputs data it stores to the processor 110 or one of the PCI bus master devices 140 a to 140 c. The main memory 120 stores data received from the processor 110 or one of the PCI bus master devices 140 a to 140 c. Furthermore, the main memory 120 receives and stores a program or data from the hard disk drive 160, floppy disk drive 170, or the CD-ROM drive 180 through the processor 110.
The system controller 130 interconnects a host bus onto which the processor 110 and the main memory 120 are connected, a PCI bus onto which the PCI bus master devices 140 a to 140 c and communication interface 150 are connected, the hard disk drive 160, the floppy disk drive 170, and the CD-ROM drive 180. The system controller 130 has the bus arbiter 135. The bus arbiter 135 receives a memory access request signal that is provided from each of a number of input/output devices, for example PCI bus master devices 140 a to 140 c in order to access the main memory 120. The bus arbiter 135 allows one of the PCI bus master devices 140 a to 140 c to access the main memory 120.
The PCI bus master device 140 a is a device that controls inputs from and outputs to external devices. It may be a device for controlling a USB mouse, for example. The PCI bus master device 140 a controls the inputs and outputs according to instructions from the device driver 300. The PCI bus master device 140 a accesses the main memory 120 as necessary. The PCI bus master devices 140 b and 140 c are similar to the PCI bus master device 140 a and the description of which will be omitted.
The communication interface 150 communicates with other devices over a network. The hard disk drive 160 stores programs and data used by the information processor 10. The CD-ROM drive 180 reads a program or data from a CD-ROM 195 and provides it to the main memory 120 through the system controller 130. The floppy disk drive 170 reads a program or data from a floppy disk 190 and provides it to the main memory 120 through the system controller 130.
The operating system 200 has an idle handler 220 that changes the operation mode of the information processor 10 according to the state of the information processor 10 and a memory manager 210 that manages the main memory 120. In particular, the information processor 10 has a normal-operation mode in which coherence control is performed for making data in the cache memory 350 identical to data in the main memory 120 and a power-saving mode in which the coherence control is suppressed to lower power consumption from that in the normal-operation mode. The idle handler 220 causes the information processor 10 to switch one mode to the other. For example, when the idle handler 220 receives in the power-saving mode an access request signal provided from one of the PCI bus master devices 140 a to 140 c attempting to access the main memory 120, the idle handler 220 places the information processor 10 in the normal-operation mode. On the other hand, the idle handler 220 places the information processor 10 in the power-saving mode after the processor 110 is idle for a predetermined period of time in the normal-operation mode. Furthermore, the idle handler 220 changes conditions for switching the operation mode by changing the value of a register in the bus arbiter 135 according to an instruction from an operation mode setting module 320.
The normal-operation mode herein may be an operation mode such as the C0 processor power state, C1 processor power state, or C2 processor power state described in non-patent literature 1 in which coherence control is performed. The power-saving mode herein may be an operation mode such as the C3 processor power state or C4 processor power state described in non-patent literature 1 in which coherence control is suppressed.
When the memory manager 210 receives an area reservation instruction for reserving a device area that is accessed by the PCI bus master device 140 a from the attribute setting module 310, the memory manager 210 associates and allocates an area in the main memory 120 with and to the PCI bus master device 140 a. When the memory manager 210 receives from the attribute setting module 310 an attribute setting instruction for setting the device area to the non-cacheable attribute that exempts the device area from coherence control even in said normal-operation mode, the memory manager 210 sets the area in the main memory 120 to the non-cacheable attribute. For example, the memory manager 210 sets the device area to the non-cacheable attribute by overriding a cache attribute in a page table entry of the device area. Furthermore, when the memory manager 210 receives an attribute setting instruction for setting a cacheable attribute that requires coherence control in the normal-operation mode, the memory manager 210 may set the area in the main memory 120 to the cacheable attribute.
The device driver 300, which is an example of a program according to the present invention, has the attribute setting module 310 and the operation mode setting module 320. The attribute setting module 310 sends an area reservation instruction to the memory manager 210 in response to a command from a user when a new PCI bus master device 140 a, for example, is connected to the information processor 10. The attribute setting module 310 sends an attribute setting instruction for setting a device area to the non-cacheable attribute to the memory manager 210 to set the device area to the non-cacheable attribute. In response to this, the operation mode setting module 320 sends to the idle handler 220 a condition change instruction for changing the condition for switching between the operation modes, in particular, an instruction for retaining the power-saving mode even if the PCI bus master device 140 a requests access to the device area. Consequently, the operation mode setting module 320 can allow the PCI bus master device 140 a to access the device area while maintaining the power-saving mode.
In this way, the information processor 10 sets a device area of the main memory 120 which the PCI bus master device 140 a accesses to the non-cacheable attribute to avoid the need for cache coherence control. When the PCI bus master device 140 a requests access to that device area, the information processor 10 maintains the power-saving mode. Thus, the information processor 10 can reduce power consumption while maintaining coherence between data in the main memory 120 and the cache memory 350.
The program to be provided to the information processor 10 is stored on a storage medium such as a floppy disk 190, a CD-ROM 195, an optical storage medium such as a DVD and PD, a magneto-optical storage medium such as an MD, a tape, or a semiconductor memory such as an IC card, and provided by a user to the information processor 10. Alternatively, a storage device such as a hard disk or a RAM provided in a server system connected to a private communication network or the Internet may be used as a storage medium to provide the program to the information processor 10 through the network and the communication interface 150.
The program described above has an attribute setting module, an operation mode setting module, a memory manager module, and an idle handler module. These modules cause the information processor 10 to perform the same operations that are performed by their corresponding components of the information processor 10, which will be described with reference to FIGS. 1 to 6. The description of these program modules therefore will be omitted herein.
FIG. 2 shows a block diagram of the bus arbiter 135. With reference to FIG. 2, a method performed by the bus arbiter 135 for setting an operation mode switching condition for each input/output device will be described. The bus arbiter 135 has an arbitration circuit 400 that performs host bus arbitration among the PCI bus master devices 140 a to 140 c, a control circuit 410 that controls operation mode switching, and an OR circuit 420 that receives an access request signal from any of the PCI bus master devices 140 a to 140 c and outputs it to the processor 110. When the arbitration circuit 400 receives a request signal, which is an example of an access request signal, from each of the PCI bus master devices 140 a to 140 c, the arbitration circuit 400 provides a grant signal for granting communication over the host bus to one of the PCI bus master devices 140 a to 140 c. As a result, the PCI bus master device 140 that receives the grant signal can access the main memory 120. The arbitration circuit 400 provides the request signal received from the PCI bus master device 140 to which it has granted the host bus communication to one of masking modules 440 a to 440 c. The OR circuit 420 provides the logical OR of requests signal received from the control circuit 410 to the processor 110 through a control LSI as a bus master status, for example.
The control circuit 410 has register modules 430 a to 430 c for storing a plurality of pieces of mask data associated with the respective PCI bus master devices 140 a to 140 c, masking modules 440 a to 440 c for masking access request signals, and input modules 450 a to 450 c for inputting the masked signals to the processor 110. The register module 430 a is associated with the PCI bus master device 140 a and stores mask data for specifying whether or not an access signal request from the PCI bus master device 140 a is disabled. The register modules 430 b and 430 c are substantially the same as the register module 430 a, except that the register module 430 b and the register module 430 c are associated with the PCI bus master devices 140 b and 140 c, respectively, and therefore the description of which will be omitted.
The masking modules 440 a to 440 c obtain an access request signal from each input/output device from the arbitration circuit 400, masks the access request signal, and outputs it to the input modules 450 a to 450 c. In particular, the masking module 440 a obtains an access request signal from the arbitration circuit 400 that is issued by the PCI bus master device 140 a, masks the access request signal with mask data associated with the PCI bus master device 140 a and stored in the register module 430 a, and provides the masked access request signal to the input module 450 a. The masking modules 440 b and 440 c are substantially the same as the masking module 440 a, except that the masking modules 440 b and 440 c are associated with the PCI bus master devices 140 b and 140 b, the register modules 430 b and 430 c, and the input modules 450 b and 450 c, respectively, and therefore the description of which will be omitted.
The input modules 450 a to 450 c input the signals masked by the masking modules 440 a to 440 c into the idle handler 220 running on the processor 110 to change the operation mode of the information processor 10.
Consequently, the operation mode setting module 320 can associate mask data disabling the access request signal with the PCI bus master device 140 a, which is an input/output device accessing the device area and store it in the register module 430 a to maintain the information processor 10 in the power-saving mode.
On the other hand, the operation mode setting module 320 associates and stores mask data that enables an access request signal with the PCI bus master device 140 b and in the register module 430 b. Thus, when a device other than the PCI bus master device 140 a, the PCI bus master device 140 b in this example, attempts to access an area in the main memory 120 with the cacheable attribute which requires coherence control in the normal mode, the operation mode setting module 320 can change the operation mode of the information processor 10 to the normal-operation mode.
A cacheable attribute is set on a memory area and indicates that the processor 110 should apply coherence control to that area in the normal-operation mode. For example, when the PCI bus master device 140 b writes to an area for which the cacheable attribute is set, the processor 110 first determines whether or not the data in that area is stored in the cache memory 350. If the data in that area is stored in the cache memory 350, the processor 110 performs coherence control so as to invalidate the data in the cache memory 350. In short, the cacheable attribute is set on a memory area and indicates that the data in that area is stored in the cache memory 350, and, when a change is made to that data, the processor 110 performs coherence control.
In an alternative configuration to the one shown in FIG. 2, the arbitration circuit 400 may receive access request signals from input/output devices sequentially through a serial input. In that case the masking modules 440 a to 440 c may sequentially mask the received access request signals and send them to the OR circuit 420 through the input modules 450 a to 450 c.
FIG. 3 shows a flowchart of a process performed by the device driver 300. The attribute setting module 310 sends an area reservation instruction to the memory manager 210 to reserve a device area to be accessed by the PCI bus master device 140 a (S300). The attribute setting module 310 then sends an attribute setting instruction to the memory manager 210 to set the device area to the non-cacheable attribute (S310). Then, the operation mode setting module 320 sends a condition change instruction to the idle handler 220 to disable an access request signal provided from the PCI bus master device 140 a to the processor 110 (S320).
The operation mode setting module 320 then causes the PCI bus master device 140 a to perform bus master transfer. That is, it allows the PCI bus master device 140 a to access the device area (S330). On the completion of the bus master transfer, the attribute setting module 310 sends an attribute setting instruction to the memory manager 210 to set the device area to the cacheable attribute (S340).
FIG. 4 shows a flowchart of a process performed by the operating system 200. The idle handler 220 performs the process shown in FIG. 4 if, for example, the processor 110 is idle for a predetermined period of time. If bus master transfer that is access to from the PCI bus master device 140 a to the main memory 120 is being performed (S400: YES), the idle handler 220 ends the process. On the other hand, if the bus master transfer is not performed (S400: NO), the idle handler 220 disables host bus arbitration (S410). As a result, only the processor 110 can use the host bus for communication and the idle handler 220 can prevent the PCI bus master devices 140 a to 140 c from using the host bus for communication. For example, the idle handler 220 sets the ARB_DIS bit in a system based on the ACPI (Advanced Configuration and Power Interface) specification. Alternatively, the idle handler 220 may call the API of the operating system 20 to disable host bus arbitration.
In response to a condition change instruction from the operation mode setting module 320, the idle handler 220 then sets an interrupt signal input into the processor 110 and an access request (bus master request, for example) from the PCI bus master devices 140 a to 140 c for accessing the main memory 120 as the conditions for changing from the C3 processor power state to the C0 processor power state (S420). For example, the idle handler 220 sets the BM_RLD bit in an ACPI-based system to set an event for changing the processor power state. Then the idle handler 220 changes the operation mode to the C3 processor power state (S430).
When the idle handler 220 receives an interrupt or a bus master request, it changes the operation mode to the C0 processor power state (S440). Then, the idle handler 220 enables the host bus arbitration (S450).
In this way, according to the present embodiment, the information processor 10 allows a preset device, the PCI bus master device 140 a for example, to access a device area, while maintaining the power-saving mode. This allows the information processor 10 to reduce the power consumption.
On the other hand, when a device other than the PCI bus master device 140 a, for example the PCI bus master device 140 b accesses an area in the main memory 120 with the cacheable attribute requiring coherence control in the normal-operation mode, the operation mode setting module 320 can change the operation mode to the normal-operation mode. This allows the information processor 10 to control coherence between data in the main memory 120 that is accessed by the PCI bus master device 140 b and data in the cache memory 350.
FIG. 5 shows a flowchart of a process performed by the device driver 300 according to a variation of the embodiment. Unlike the bus arbiter 135 in FIG. 2, a bus arbiter 135 of an information processor 10 in this embodiment does not have to include a control circuit 410. The configuration of the information processor 10 in the embodiment is substantially the same as that of the information processor 10 shown in FIGS. 1 and 2. Therefore only differences will be described.
An attribute setting module 310 sends an area reservation instruction to a memory manager 210 to reserve a device area to be accessed by PCI bus master devices 140 a to 140 c (S500). The attribute setting module 310 then sends an attribute setting instruction to a memory manager 210 to set the device area to the non-cacheable attribute (S510).
Then the operation mode setting module 320 causes the PCI bus master devices 140 a to 140 c to perform bus master transfer, namely access to the device area (S520). On the completion of the bus master transfer, the attribute setting module 310 can send an attribute setting instruction to the memory manager 210 to set the device area to the cacheable attribute (S530).
FIG. 6 shows a flowchart of a process performed by an operating system 200 according to the variation. An idle handler 220 performs the process shown in FIG. 6 if a processor 110 is idle for a predetermined period of time. The idle handler 220 enables host bus arbitration (S600). If host bus arbitration has already been enabled, the idle handler 220 does not perform any process at step S600. The idle handler 220 enables host bus arbitration by clearing the ARB_DIS bit in an ACPI-based system, for example.
In response to a condition change instruction from an operation mode setting module 320, the idle handler 220 sets an interrupt signal input into the processor 110 as a condition for switching from the C3 processor power state to the C0 processor power state (S610). For example, the idle handler 220 sets only an interrupt signal input as the event for changing from the C3 processor power state to the C0 processor power state by clearing the BM_RLD bit in the ACPI-based system. This allows the operation mode setting module 320 to disable an access request signal from any of the PCI bus master devices 140 a to 140 c. The idle handler 220 changes the operation mode to the C3 processor power state (S620). When the idle handler 220 subsequently receives an interrupt, it changes the operation mode to the C0 processor power state (S630).
In this way, according to this embodiment, the operation mode setting module 320 can disable an access request signal from any of the PCI bus master devices 140 a to 140 c to allow all input/output devices to access device areas, while maintaining the power-saving mode of the information processor 10. The information processor 10 causes almost no loss in the efficiency of memory access if the frequency with which the processor 120 accesses the device area is low. Furthermore, the information processor 10 can maintain the power-saving mode regardless of access from the input/output devices. Consequently, power consumption can be reduced.
The present invention has been described with respect to embodiments thereof, the technical scope of the present invention is not limited to the embodiments. Various changes or improvements can be made to the embodiments. It will be appreciated from the claims that embodiments to which such changes or improvements are made also fall in to the technical scope of the present invention. For example, the information processor 10 may switch between the process described in the embodiment and the process in the variation, according to a policy set by a user. In particular, the information processor 10 may perform the process described in the variation when a policy that attempts to minimize power consumption is set, and perform the process described in the embodiment when a policy that attempts to provide balance between processing speed and power consumption is set.
In the drawings and specifications there has been set forth a preferred embodiment of the invention and, although specific terms are used, the description thus given uses terminology in a generic and descriptive sense only and not for purposes of limitation.

Claims (9)

1. An information processor comprising:
a main memory;
an processor operatively coupled to said main memory and having (a) a normal-operation mode in which coherence control is performed for making data in a cache memory of said processor identical to data in a main memory and (b) a power-saving mode in which coherence control is suppressed to lower the power consumption from the power consumption of the processor when in said normal-operation mode, said processor entering said normal-operation mode when an input/output device accesses main memory while said processor is in said power-saving mode;
an attribute setting module for setting a device area of said main memory to a non-cacheable attribute for exempting said device area from coherence control even in said normal-operation mode, said device area being an area of said main memory accessed by the input/output device; and
an operation mode setting module for allowing said input/output device to access said device area while keeping the operation mode of said information processor in said power-saving mode when said input/output device requests access to said device area in said power-saving mode.
2. The information processor according to claim 1, wherein if a device different from said input/output device accesses an area in said memory that is set to a cacheable attribute requiring said coherence control in said normal-operation mode, said operation mode setting module changes the operation mode of said information processor to the normal-operation mode.
3. The information processor according to claim 1, wherein said input/output device comprises a first input/output device and wherein when said processor receives in said power-saving mode an access request signal provided from a second input/output device to access an area of said main memory other than said device area, said processor changes the operation mode of said information processor to said normal-operation mode.
4. The information processor according to claim 3, further comprising:
a register module for associating each of a plurality of pieces of mask data with each of a plurality of input/output devices and storing said mask data, said mask data specifying whether or not said access request signal received from each of said input/output device is invalidated;
a masking module for obtaining said access request signal for each input/output device and masking said access request signal with said mask data being associated with said input/output device and stored in said register module; and
an input module for inputting the input signal masked by said masking module into a processor to change the operation mode of said information processor;
wherein said operation mode setting module associates mask data invalidating said access request signal with said input/output device accessing said device area and stores said mask data in said register module to allow said input/output device to access said device area while keeping the operation mode of said information processor in said power-saving mode.
5. The information processor according to claim 3, wherein said operation mode setting module invalidates an access request signal from said first input/output device to allow said first input/output device to access said device area while keeping the operation mode of said information processor in said power-saving mode.
6. A computer program product comprising computer executable instructions, stored on a computer readable medium, for signaling an information processor having a normal-operation mode in which coherence control is performed for making data in a cache memory of a processor identical to data in a main memory and a power-saving mode in which said coherence control is suppressed to lower the power consumption from power consumption in said normal-operation mode, the computer program product comprising:
instructions for causing the information processor to enter said normal-operation mode when an input/output device accesses said main memory in said power-saving mode;
attribute setting instructions for setting a device area of said main memory to a non-cacheable attribute for exempting said device area from said coherence control even in said normal-operation mode, said device area being an area of the main memory accessed by the input/output device; and
operation mode setting instructions for allowing said input/output device to access said device area while keeping the operation mode of said information processor in said power-saving mode when said input/output device requests access to said device area in said power-saving mode.
7. The program product according to claim 6, wherein said input/output device comprises a first input/output device, said program product further comprising instructions for changing the operation mode of said information processor to said normal-operation mode when said processor receives in said power-saving mode an access request signal provided from a second input/output device to access an area of said main memory other than said device area.
8. The computer program product of claim 7, further comprising operation mode setting instructions to invalidate said access request signal to allow said first input/output device to access said device area while keeping the operation mode of said information processor in said power-saving mode.
9. A control circuit for controlling mode selection in an information processor having a normal-operation mode in which coherence control is performed for making data in a cache memory identical to data in a main memory and a power-saving mode in which said coherence control is suppressed to lower the power consumption from power consumption in said normal-operation mode and entering said normal-operation mode when an input/output device accesses said main memory in said power-saving mode, comprising:
a register module for storing mask data for each input/output device, said mask data indicating whether or not an access request signal provided by each of a plurality of input/output devices for accessing said main memory is invalidated;
a masking module for obtaining said access request signal for each input/output device and masking said access request signal with mask data associated with said input/output device and stored in said register module; and
an input module for entering a signal masked by said masking module into a processor to selectively switch the operation mode of said information processor.
US10/730,672 2003-03-13 2003-12-08 Information processor with suppressed cache coherence in low power mode Active 2025-01-14 US7254727B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003-068272 2003-03-13
JP2003068272A JP3857661B2 (en) 2003-03-13 2003-03-13 Information processing apparatus, program, and recording medium

Publications (2)

Publication Number Publication Date
US20050060591A1 US20050060591A1 (en) 2005-03-17
US7254727B2 true US7254727B2 (en) 2007-08-07

Family

ID=33285662

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/730,672 Active 2025-01-14 US7254727B2 (en) 2003-03-13 2003-12-08 Information processor with suppressed cache coherence in low power mode

Country Status (3)

Country Link
US (1) US7254727B2 (en)
JP (1) JP3857661B2 (en)
CN (1) CN1251052C (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198429A1 (en) * 2004-03-02 2005-09-08 Nec Electronics Corporation Multilayer system and clock control method
US20050254433A1 (en) * 2004-05-11 2005-11-17 International Business Machines Corporation Recording media, information processing apparatus, control method and program
US20080307239A1 (en) * 2007-06-07 2008-12-11 Kabushiki Kaisha Toshiba Electronic device and power supply method

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250035A1 (en) * 2003-06-06 2004-12-09 Atkinson Lee W. Method and apparatus for affecting computer system
NL1026846C2 (en) * 2004-08-17 2006-02-20 Jakob Roelof Van Den Berg Desktop PC.
US7523327B2 (en) * 2005-03-05 2009-04-21 Intel Corporation System and method of coherent data transfer during processor idle states
US20070050549A1 (en) * 2005-08-31 2007-03-01 Verdun Gary J Method and system for managing cacheability of data blocks to improve processor power management
CN101356511B (en) * 2005-11-15 2012-01-11 太阳微系统有限公司 Power conservation via DRAM access
TW200732905A (en) * 2006-02-24 2007-09-01 Via Tech Inc Power-saving method and system of the central processing unit
US7941683B2 (en) * 2007-05-02 2011-05-10 Advanced Micro Devices, Inc. Data processing device with low-power cache access mode
CN101068276B (en) * 2007-06-25 2012-12-19 中兴通讯股份有限公司 Method and system for lowering energy consumption
JP4967087B2 (en) * 2007-11-01 2012-07-04 エヌイーシーコンピュータテクノ株式会社 Node controller, distributed shared memory type information processing apparatus, and cache coherency control method
US8166326B2 (en) * 2007-11-08 2012-04-24 International Business Machines Corporation Managing power consumption in a computer
US20090132842A1 (en) * 2007-11-15 2009-05-21 International Business Machines Corporation Managing Computer Power Consumption In A Computer Equipment Rack
US8041521B2 (en) * 2007-11-28 2011-10-18 International Business Machines Corporation Estimating power consumption of computing components configured in a computing system
TWI484328B (en) * 2008-05-30 2015-05-11 Via Tech Inc Method for operating an advanced configuration and power interface and a computer system using the same
US8103884B2 (en) 2008-06-25 2012-01-24 International Business Machines Corporation Managing power consumption of a computer
US8041976B2 (en) * 2008-10-01 2011-10-18 International Business Machines Corporation Power management for clusters of computers
US8514215B2 (en) * 2008-11-12 2013-08-20 International Business Machines Corporation Dynamically managing power consumption of a computer with graphics adapter configurations
US20100332877A1 (en) * 2009-06-30 2010-12-30 Yarch Mark A Method and apparatus for reducing power consumption
US8787155B2 (en) 2011-06-01 2014-07-22 International Business Machines Corporation Sideband error signaling
US8880956B2 (en) * 2011-06-01 2014-11-04 International Business Machines Corporation Facilitating processing in a communications environment using stop signaling
CN103873540B (en) * 2012-12-15 2018-04-06 李祥明 The remote storage system and its design method of a kind of low energy consumption
US10152421B2 (en) * 2015-11-23 2018-12-11 Intel Corporation Instruction and logic for cache control operations
US9940159B1 (en) * 2016-06-09 2018-04-10 Parallels IP Holdings GmbH Facilitating hibernation mode transitions for virtual machines
CN106293534A (en) * 2016-08-12 2017-01-04 深圳市金泰克半导体有限公司 A kind of solid state hard disc with multiple-working mode and its implementation
JP7010070B2 (en) * 2018-03-08 2022-01-26 富士フイルムビジネスイノベーション株式会社 Information processing equipment and semiconductor equipment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680730A (en) * 1983-07-08 1987-07-14 Hitachi, Ltd. Storage control apparatus
US5125084A (en) * 1988-05-26 1992-06-23 Ibm Corporation Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
US5157774A (en) * 1987-09-28 1992-10-20 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
US5210850A (en) * 1990-06-15 1993-05-11 Compaq Computer Corporation Memory address space determination using programmable limit registers with single-ended comparators
US5481731A (en) * 1991-10-17 1996-01-02 Intel Corporation Method and apparatus for invalidating a cache while in a low power state
US6014751A (en) * 1997-05-05 2000-01-11 Intel Corporation Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680730A (en) * 1983-07-08 1987-07-14 Hitachi, Ltd. Storage control apparatus
US5157774A (en) * 1987-09-28 1992-10-20 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
US5125084A (en) * 1988-05-26 1992-06-23 Ibm Corporation Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
US5210850A (en) * 1990-06-15 1993-05-11 Compaq Computer Corporation Memory address space determination using programmable limit registers with single-ended comparators
US5481731A (en) * 1991-10-17 1996-01-02 Intel Corporation Method and apparatus for invalidating a cache while in a low power state
US6014751A (en) * 1997-05-05 2000-01-11 Intel Corporation Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198429A1 (en) * 2004-03-02 2005-09-08 Nec Electronics Corporation Multilayer system and clock control method
US20050254433A1 (en) * 2004-05-11 2005-11-17 International Business Machines Corporation Recording media, information processing apparatus, control method and program
US7710868B2 (en) * 2004-05-11 2010-05-04 International Business Machines Corporation Recording media, information processing apparatus, control method and program
US20080307239A1 (en) * 2007-06-07 2008-12-11 Kabushiki Kaisha Toshiba Electronic device and power supply method
US8296586B2 (en) * 2007-06-07 2012-10-23 Kabushiki Kaisha Toshiba Electronic device having efficient power supply capability

Also Published As

Publication number Publication date
JP3857661B2 (en) 2006-12-13
CN1251052C (en) 2006-04-12
JP2004280269A (en) 2004-10-07
CN1530797A (en) 2004-09-22
US20050060591A1 (en) 2005-03-17

Similar Documents

Publication Publication Date Title
US7254727B2 (en) Information processor with suppressed cache coherence in low power mode
US10705588B2 (en) Enabling a non-core domain to control memory bandwidth in a processor
US8527785B2 (en) Transitioning a computing platform to a low power system state
KR100998389B1 (en) Dynamic memory sizing for power reduction
US7155618B2 (en) Low power system and method for a data processing system
EP1304620A1 (en) Cache with selective write allocation
US20110055495A1 (en) Memory Controller Page Management Devices, Systems, and Methods
US9864687B2 (en) Cache coherent system including master-side filter and data processing system including same
US7376850B2 (en) Methods of computer power status management and computers utilizing the same
US20030097394A1 (en) Data transfer controlled by task attributes
US7761873B2 (en) User-space resource management
JP2017519294A (en) Multi-host power controller (MHPC) for flash memory-based storage devices
US6799278B2 (en) System and method for processing power management signals in a peer bus architecture
JP2013065296A (en) Memory management unit having region descriptor globalization controls and method of operation
KR100667999B1 (en) Method to reduce power in a computer system with bus master devices
US20050010706A1 (en) Dynamic bus arbitration method and bus arbiter
US20020124125A1 (en) Method and apparatus to permit a peripheral device to become the default system bus master
US7120748B2 (en) Software-controlled cache set management
US20040250035A1 (en) Method and apparatus for affecting computer system
TWI763089B (en) Direct memory access (dma) controller, electronic device using the dma controller and method of operating the dma controller
TWI774095B (en) Direct memory access (dma) controller, electronic device using the dma controller and method of operating the dma controller
CN114153303B (en) Power consumption control system, power consumption control method, device and medium
JP2002049580A (en) Bus managing device, bus use request transmitter, method of bus managing, and bus use request transmission method
JPH10133766A (en) Adaptive power-down clock control
JPH02307123A (en) Computer

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YOSHIYAMA, NORITOSHI;KAWANO, SEIICHI;KOMIYAMA, HIROHIDE;AND OTHERS;REEL/FRAME:014500/0339

Effective date: 20040322

AS Assignment

Owner name: LENOVO (SINGAPORE) PTE LTD.,SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:016891/0507

Effective date: 20050520

Owner name: LENOVO (SINGAPORE) PTE LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:016891/0507

Effective date: 20050520

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: LENOVO PC INTERNATIONAL, HONG KONG

Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:LENOVO (SINGAPORE) PTE LTD.;REEL/FRAME:037160/0001

Effective date: 20130401

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12