This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-191113, filed on Aug. 31, 2012, the entire contents of which are incorporated herein by reference.
This invention relates to a memory control.
In order to ensure data that is stored in a memory that is connected to an arithmetic unit, an arithmetic unit that has a patrol function for the memory is known. The patrol function is a function that periodically reads data that is stored in the memory, and detects errors and performs error correction. For example, by checking the consistency of a parity bit that is given to the data, 1 bit error is detected. Furthermore, when 1 bit error is detected, the data is corrected then rewritten to the memory to remove intermittent trouble.
In order to reduce the power consumed by the operation of the memory, a memory is also known that has a power-down function. According to the power-down function, power consumption is suppressed by stopping part of the circuits inside the memory.
On the other hand, in the power-down state, the power consumption increases temporarily when the memory is accessed by the patrol function and data is read from the memory. However, while the memory is not being accessed by the patrol function, the power consumption is suppressed, and thus overall power saving is possible by using the power-down function.
In any of the normal power state and power-down state, the arithmetic unit periodically performs an operation for refreshing the memory.
However, it is desired that the power consumption relating to the operation of the memory be further reduced.
An information processing apparatus relating to one mode of this invention includes: (A) one or plural memories, each of which includes a self-refresh function; and (B) a memory control unit that stops a patrol that includes reading and error correction with respect to a memory among the one or plural memories, upon starting self-refresh of the one or plural memories, and that restarts the patrol, upon stopping the self-refresh of the one or plural memories.
The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
In the present embodiment, the power consumption is suppressed by using a memory having a self-refresh function. A server apparatus will be explained as an example of an information processing apparatus that uses the memory having the self-refresh function. However, other computer apparatuses may employ the memory having the self-refresh function. Self-refresh is one refresh operation of a dynamic Random Access Memory (RAM), and is a refresh operation that is automatically executed in the RAM. During the self-refresh, it is possible to reduce the power consumption of the RAM by refreshing memory cells inside the RAM using a clock signal that is generated inside the RAM.
The system boards 203 will be explained.
Returning to the explanation of
The configuration inside the physical partition 207 will be explained.
In the example in
Logical domain 405 is formed in a range managed by the operating system 407. One or plural applications 409 operate inside the logical domain 405. In
Next, the configuration of the CPU units 301 and the memories 303 will be explained.
The memory access control circuit 505 connects with the memory 303 that is the object of control, and accesses the memory 303 that is the object of control in response to a request. The memory access control circuit 505 instructs the memory 303 to change the memory state, and performs operations for stably saving data. In this example, the memory access control circuit 505 is connected to one memory, however, may also be connected to plural memories.
In the example in
The memories 303 are volatile memories. The memories 303, for example, are Dynamic Random Access Memories (DRAM). The memory states of the memories 303 can be divided into a normal power state, a power-down state, and a self-refresh state. The power-down state is a state in which part of the memory circuit is stopped, however, reading and writing can be performed. The self-refresh state is a state in which the input clock to the memory is inactive, and self-refresh is performed. In the self-refresh state, reading from and writing to the memory are not performed.
Records 601 and 603 represents two states in the normal mode. As illustrated in the record 601, when there is an assignment to a logical domain, the patrol is performed so that the memory state is the normal power state (N). As illustrated in the record 603, when there is no assignment to any logical domain, the patrol is performed so that the memory state is the power-down state (P1). In the following, in order to distinguish and explain each state, reference symbols such as (P1) will be used.
Record 605, record 607 and record 609 illustrate three states in the power-saving mode. As illustrated in the record 605, when there is an assignment to a logical domain, and the memory access frequency is high, the patrol is performed so that the memory state is the power-down state (P2). As illustrated in the record 607, when there is an assignment to a logical domain, and the memory access frequency is low, control is carried out not to perform the patrol, so that the memory state is the self-refresh state (S1). As illustrated in the record 609, when there is no assignment to a logical domain, control is carried out not to perform the patrol, so that the memory state is the self-refresh state (S2).
In the figure, an item including an expression “(no effect)” represents that the item does not affect identification of the memory state.
The power consumption in the normal mode is as illustrated in
Here, for comparison, a case where the patrol operation is not stopped is also explained.
Here, the configuration of the memory access control circuits 505 will be explained.
As commands, the power-management register 1105 receives a power-down start request, power-down stop request, self-refresh start request and self-refresh stop request. When a command is received, the command controller 1101 starts a power-down function, stops a power-down function, starts a self-refresh function, or stops a self-refresh function for the memory 303 by way of the unit 1107. Moreover, the power-management register 1105 is also used for making available the power-down operation state and the self-refresh operation state.
The data controller 1109 receives data operation requests (i.e. request data representing data concerning a request) from the core 501 by way of the cache unit 503, and performs data operations. More specifically, the data controller 1109 reads and writes data. In order to receive the data operation requests, the data controller 1109 has a request queue 1111.
The data controller 1109 stores request data in the request queue 1111, and then reads data from or writes data to the memory 303 by way of the IO unit 1107 according to the contents of the request data.
Moreover, the data controller 1109 has a patrol unit 1113 that performs a patrol operation. When the start of the patrol operation is instructed from the command controller 1101, the patrol unit 1113 reads data in sequence from the memory 303, and outputs the read data to the patrol data check unit 1115. The patrol data check unit 1115 performs a parity check for the data received from the patrol unit 1113. The patrol data check unit 1115 then returns the check result to the patrol unit 1113. When an error is detected, the patrol data check unit 1115 further returns correction data to the patrol unit 1113. The patrol unit 1113 writes back the correction data in the original address by way of the IO unit 1107. When the stop of the patrol operation is instructed from the command controller 1101, the data controller 1109 terminates the parity check and data correction operations.
Next, the operation in the command controller 1101 will be explained. First, power-down control will be explained.
When it is determined that the power-down start request has been set in the power management register 1105, the command controller 1101 activates the power-down function of the memory 303 (S1203). Then, the command controller 1101 determines whether or not a power-down stop request has been set in the power management register 1105 (S1205). When it is determined that the power-down stop request has not been set in the power management register 1105, the processing returns to S1205 through a path 1253. In other words, the power-down function is being performed while the power-down stop request is not set. When it is determined that the power-down stop request has been set in the power management register 1105, the command controller 1101 cancels the power-down function of the memory 303 (S1207). Canceling the function means stopping the operation. Then, the processing returns to S1201.
Next, self-refresh control will be explained.
When it is determined that the self-refresh start request has been set in the power management register 1105, the command controller 1101 determines whether or not there is request data in the request queue 1111 (S1303). When it is determined that there is request data in the request queue 1111, data operation is being performed, so the command controller 1101 waits until there is no request data in the request queue 1111. When it is determined that there is no request data in the request queue 1111, the command controller 1101 activates the self-refresh function of the memory 303 (S1305). In other words, the command controller 1101 cause the memory 303 to starts the self-refresh. The command controller 1101 further stops the patrol operation by the data controller 1109 (S1307). The command controller 1101 then determines whether or not a self-refresh stop request has been set in the power management register 1105 (S1309). When it is determined that the self-refresh stop request has not been set in the power management register 1105, the command controller 1101 further determines whether there is request data in the request queue 1111 (1311). When it is determined that there is no request data in the request queue 1111, the processing returns to the S1309 through a path 1353. In other words, the self-refresh is being executed while the self-refresh stop request is not set and no request data exists.
When it is determined at the S1309 that the self-refresh stop request has been set in the power management register 1105, or when it is determined at the S1311 that there is request data in the request queue 1111, the command controller 1101 cancels the self-refresh function in the memory 303 (S1313). In other words, the command controller 1101 stops the self-refresh of the memory 303. Furthermore, the command controller 1101 causes the data controller 1109 to start the patrol operation (S1315). In other words, the command controller 1101 restarts the stopped patrol operation. Then, the processing returns to the S1301.
In the self-refresh control routine, the patrol operation is linked with the self-refresh. In so doing, when the memory 303 returns from the waiting state, it is possible to automatically restart the patrol operation.
Next, the hypervisor 403 will be explained.
The core 501 loads data of the hypervisor 403 from the memory 307 for firmware to anyone of memories 303. Alternatively, the core 501 may read data of the hypervisor 403 directly from the memory 307 for firmware, which is connected to the CPU unit 301. By reading and operating instruction codes of the hypervisor 403 in sequence, the core 501 executes a processing for the hypervisor 403.
Next, a main processing by the hypervisor 403 will be explained.
Next, the first initialization unit 1431 activates the normal mode processing (S1503). In the normal mode processing, a transition processing in the normal mode is performed. In this embodiment, the first initialization unit 1431 activates a normal mode processing (A1). The normal mode processing (A1) will be described later using
The receiving unit 1401 determines whether or not the switching to the power-saving mode was made (S1505). When it is determined that the switching to the power-saving mode is not made, the processing returns to the S1505 through a path 1551. In other words, the mode is still the normal mode while the switching to the power-saving mode is not made.
When it is determined that the switching to the power-saving mode was made, the second initialization unit 1451 ends the normal mode processing (S1507). The second initialization unit 1451 then performs an initialization processing in the power-saving mode (S1509). In this embodiment, the second initialization unit 1451 performs an initialization processing (A) in the power-saving mode. As a result of this processing, the state moves to the initial state of the power-saving mode. The initialization processing (A) in the power-saving mode will be described later using
The second initialization unit 1451 activates a power-saving mode processing (S1511). In the power-saving mode processing, a transition processing in the power-saving mode is performed. In this embodiment, the second initialization unit 1451 activates a power-saving mode processing (A). The power-saving mode processing (A) will be described later using
The receiving unit 1401 determines whether or not the switching to the normal mode was made (S1513). When it is determined that the switching to the normal mode is not made, the processing returns to S1513 through a path 1553. In other words, the mode is still the power-saving mode while the switching to the normal mode is not made.
When it is determined that the switching to the normal mode was made, the first initialization unit 1431 terminates the power-saving mode processing (S1515). Then, the processing returns to the initialization processing in the normal mode at the S1501.
Here, the initialization processing (A) in the normal mode at S1501 will be explained.
The first initialization unit 1431 reads a power-down operation state from the power management register 1105, and determines whether the power-down operation state represents “in progress”, or “stopped” (S1601). When it is determined that the power-down operation state represents “in progress”, the first initialization unit 1431 sets a power-down stop request in the power management register 1105 (S1603). As a result, the power-down function is stopped. When it is determined that the power-down operation state represents “stopped”, the processing moves to S1605 without performing any operation for the power management register 1105.
The first initialization unit 1431 reads a self-refresh operation state from the power management register 1105, and determines whether the self-refresh operation state represents “in progress” or “stopped” (S1605). When it is determined that the self-refresh operation state represents “in progress”, the first initialization unit 1431 sets a self-refresh stop request in the power management register 1105 (S1607). As a result, the self-refresh function is stopped. When it is determined that the self-refresh operation state represents “stopped”, the processing ends without performing any operation on the power management register 1105. After the processing ends, the processing then returns to S1503 in
Next, the normal-mode processing (A1) that is performed at S1503 will be explained.
The first determination unit 1433 determines whether or not the memory 303, which is the object of control by the memory access control circuit 505, is assigned to a logical domain 405 (S1701). When it is determined that the memory 303, which is the object of control by the memory access control circuit 505, is assigned to the logical domain 405, the processing returns to S1701 through a path 1751. While the state that is illustrated in the record 601 in
When it is determined that the memory 303, which is the object of control by the memory access control circuit 505, is not assigned to any logical domain 405, the first request unit 1435 sets a power-down start request in the power management register 1105 (S1703). As a result, the power-down function is started. The first determination unit 1433 determines whether or not the memory 303 that is the object of control is assigned to a logical domain 405 (S1705). When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is not assigned to any logical domain 405, the processing returns to S1705 through a path 1753. While the state illustrated in the record 603 in
When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is assigned to a logical domain 405, the first request unit 1435 sets a power-down stop request in the power management register 1105 (S1707). As a result, the power-down function is stopped. The processing then returns to the S1701. Such a processing is repeated until the processing ends in the S1507 in
Next, the initialization processing (A) in the power-saving mode at S1509 will be explained.
The second initialization unit 1451 reads a power-down operation state from the power management register 1105, and determines whether the power-down operation state represents “in progress”, or “stopped” (S1801). When it is determined that the power-down operation state represents “stopped”, the first initialization unit 1431 sets a power-down start request in the power management register 1105 (S1803). As a result, the power-down function is started. When it is determined that the power-down operation state represents “in progress”, no operation is performed on the power management register 1105.
The first initialization unit 1431 reads a self-refresh operation state from the power management register 1105, and determines whether the self-refresh operation state represents “in progress” or “stopped” (S1805). When it is determined that the self-refresh operation state represents “in progress”, the first initialization unit 1431 sets a self-refresh stop request in the power management register 1105 (S1807). As a result, the self-refresh function is stopped. When it is determined that the self-refresh operation state represents “stopped”, the processing ends without performing any operation on the power management register 1105. After the processing has ended, the processing returns to the S1511 in
Next, the power-saving mode processing (A) that is performed at the S1511 will be explained.
The second determination unit 1453 determines whether or not the entire memory 303 that is the object of control by the memory access control circuit 505 is unused during a predetermined period (S1901). When part or all of the memory 303 that is the object of control by the memory access control circuit 505 is being used during the predetermined period, this state corresponds to a state in which the memory access frequency is high. On the other hand, when the entire memory 303 that is the object of control by the memory access control circuit 505 is unused during the predetermined period, this state corresponds to a state in which the memory access frequency is low.
When it is determined that part or all of the memory 303 that is the object of control by the memory access control circuit 505 is being used during the predetermined period, the second determination unit 1453 determines whether or not the memory 303 that is the object of control is assigned to a logical domain 405 (S1903). When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is assigned to any logical domain 405, the processing returns to S1901. In this way, while the state illustrated in the record 605 in
Next, transition from the power-down state (P2) to the self-refresh state (S1) will be explained. When it was determined at the S1901 that the entire memory 303 that is the object of control by the memory access control circuit 505 is unused during the predetermined period, the second request unit 1455 sets a self-refresh start request in the power management register 1105 (S1905). As a result, the self-refresh function is started. The second determination unit 1453 determines whether or not the entire memory 303 that is the object of control by the memory access control circuit 505 is unused during the predetermined period (S1907). When it is determined that the entire memory 303 that is an object of control by the memory access control circuit 505 is unused during the predetermined period, the second determination unit 1453 determines whether or not the memory 303 that is the object of control is assigned to a logical domain 405 (S1909). When it is determined that the memory 303 that is the object of control is assigned to any logical domain 405, the processing returns to the S1907 through a path 1953. In this way, while the state illustrated in the record 607 in
Next, the transition from the self-refresh state (S1) to the power-down state (P2) will be explained. When it is determined at the S1907 that part or all of the memory 303 that is the object of control by the memory access control circuit 505 is used during the predetermined period, the processing moves to the S1901. At that time, the self-refresh is stopped by the memory access control circuit 505, so the hypervisor 403 does not perform any processing for stopping the self-refresh. More specifically, in the self-refresh control routine illustrated in
Next, the transition from the power-down state (P2) to the self-refresh state (S2) will be explained. When it is determined at the S1903 that the memory 303 that is the object of control by the memory access control circuit 505 is not assigned to any logical domain 405, the second request unit 1455 sets a self-refresh start request in the power management register 1105 (S1911). As a result, the self-refresh function is started. The second determination unit 1453 further determines whether or not the memory 303 that is the object of control is assigned to a logical domain 405 (S1913). When it is determined that the memory 303 that is the object of control is not assigned to the logical domain 405, the determination processing of the S1913 is repeated. In this way, while the state illustrated in the record 609 in
Next, the transition from the self-refresh state (S1) to the self-refresh state (S2) will be explained. When it is determined at the S1909 in the self-refresh state (S1) that the memory 303 that is the object of control is not assigned to any logical domain 405, the second determination unit 1453 determines whether or not the memory 303 that is the object of control is assigned to a logical domain 405 (S1913). When it is determined that the memory 303 that is the object of control is not assigned to any logical domain 405, the determination process of the S1913 is repeated. As described above, while the state illustrated in record 609 in
Next, the transition from the self-refresh state (S2) to the power-down state (P2) or the self-refresh state (S1) will be explained. When it is determined at the S1913 in the self-refresh state (S2) that the memory 303 that is the object of control is assigned to a logical domain 405, the second request unit 1455 sets a self-refresh stop request in the power management register 1105 (S1915). As a result, the self-refresh function is stopped. Then, the second determination unit 1453 determines at the S1901 whether or not the entire memory 303 that is the object of control by the memory access control circuit 505 is unused during the predetermined period.
When it is determined that part or all of the memory 303 that is the object of control by the memory access control circuit 505 is used during the predetermined period, the processing moves to the S1901 through the path 1951 in the power-down state (P2).
When it is determined that the entire memory 303 that is the object of control by the memory access control circuit 505 is unused during the predetermined period, the processing moves to the S1907 through the path 1953 in the self-refresh state (S1).
According to this embodiment, when the self-refresh of the memory 303 is started, the patrol of the memory 303 is stopped, and when the self-refresh is stopped, the patrol is restarted, so it is possible to perform the self-refresh of the memory 303 and reduce the power consumption in the waiting state. Furthermore, it is possible to suppress the power consumption of an entire computer device such as a server device.
Moreover, when the memory 303 is not assigned to any logical domain 405, the self-refresh of the memory 303 is started, and when the memory 303 is assigned to any logical domain 405, the self-refresh of the memory 303 is stopped, so it is possible to suppress the power consumption when the memory 303 is not being used.
Furthermore, in case where the access frequency of the memory 303 is low even when the memory 303 is assigned to a logical domain 405, the self-refresh of the memory 303 is started, so it is possible to suppress the power consumption when the memory 303 is not actually being used.
As illustrated in
In this second embodiment, as in the first embodiment, an example is explained that the state transitions illustrated in
Next, the operation of the memory access control circuit 505 will be explained. The power-down control routine (
In the second embodiment, instead of the self-refresh control routine (A) illustrated in
Steps S1301 to S1305 are the same as in
At S2101, instead of the processing of the S1307 in
The steps S1309 to S1313 are the same as in
At S2103, instead of the processing of the step S1315 in
Next, the patrol control routine that is newly provided in this second embodiment will be explained.
The command controller 1101 determines whether or not a patrol stop request has been set in the patrol control register 2001 (S2201). When it is determined that any patrol stop request has not been set in the patrol control register 2001, the processing returns to the S2201 through a path 2251. In other words, the patrol operation is being executed while the S2201 is repeated through the path 2251.
When it is determined that the patrol stop request has been set in the patrol control register 2001, the command controller 1101 stops the patrol operation by the patrol unit 1113 (S2203).
The command controller 1101 then determines whether or not a patrol start request has been set in the patrol control register 2001 (S2205). When it is determined that any patrol start request has not been set in the patrol control register 2001, the processing returns to S2205 through a path 2253. In other words, the patrol operation is being stopped while the processing of S2205 is repeated through the path 2253.
When it is determined that the patrol start request has been set in the patrol control register 2001, the command controller 1101 starts the patrol operation by the patrol unit 1113 (S2207). The command controller 1101 then returns to S2201.
The explanation of the memory access control circuit 505 in this second embodiment is finished. Next, a processing of the hypervisor 403 in this second embodiment will be explained. A main processing flow of the hypervisor 403 in this second embodiment is as illustrated in
In this second embodiment, instead of the initialization processing (A) in the normal mode, which was illustrated in FIG. 16 in the first embodiment, an initialization processing (B) in the normal mode is performed.
The steps S1601 to S1607 are the same as in the case of the initialization processing (A) in the normal mode, which is illustrated in
In this second embodiment, the initialization processing (B) in the power-saving mode is performed instead of the initialization processing (A) in the power-saving mode, which is illustrated in
The steps S1801 to S1807 are the same as in the case of the initialization processing (A) in the power-saving mode, which is illustrated in
The normal mode processing is the same as the processing illustrated in
In this second embodiment, instead of the power-saving mode processing (A), which is illustrated in
Moreover, the processing at the S1905 for setting a self-refresh start request in the power management register 1105 when shifting from the power-down state (P2) to the self-refresh state (S1), the processing at the S1911 for setting a self-refresh start request in the power-management register 1105 when shifting from the power-down state (P2) to the self-refresh state (S2), and the processing at the S1915 for setting a self-refresh stop request in the power-management register 1105 when shifting from the self-refresh state (S2) to the power-down state (P2) or self-refresh state (S1) are the same as in the case of the power-saving mode processing (A) illustrated in
In this second embodiment, after the self-refresh start request has been set in the power management register 1105 at S1905, the second determination unit 1453 determines whether or not the self-refresh operation state represented by the power management register 1105 has become “in progress” (S2501). When the self-refresh operation state represented by the power management register 1105 is “stopped”, the processing of the step S2501 is repeated, and when the self-refresh operation state represented by the power management register 1105 has become “in progress”, the second request unit 1455 sets the patrol stop request in the patrol control register 2001 (S2503).
Similarly, after the self-refresh start request has been set in the power management register 1105 at the S1911, the second determination unit 1453 determines whether or not the self-refresh operation state represented by the power management register 1105 has become “in progress” (S2507). When the self-refresh operation state represented by the power management register 1105 is “stopped”, the processing of the S2507 is repeated, and when the self-refresh operation state represented by the power management register 1105 has become “in progress”, the second request unit 1455 sets a patrol stop request in the patrol control register 2001 (S2509).
Furthermore, after a self-refresh stop request has been set in the power management register 1105 at the S1915, the second determination unit 1453 determines whether or not the self-refresh operation state represented by the power management register 1105 has become “stopped” (S2511). When the self-refresh operation state represented by the power management register 1105 is “in progress”, the processing of the S2511 is repeated, and when the self-refresh operation state represented by the power management register 1105 has become “stopped”, the second request unit 1455 sets a patrol start request in the patrol control register 2001 (S2513).
Moreover, when it is determined at the S1907 that part or all of the memory 303 that is the object of control by the memory access control circuit 505 is being used, as was explained for the first embodiment, the self refresh by the memory access control circuit 505 is stopped. Therefore, in response to this, the second request unit 1455 sets a patrol start request in the patrol control register 2001 (S2505).
After the processing at the S1913 illustrated in
In this way, when the hypervisor 403 of this second embodiment performs an operation for the self-refresh function, the hypervisor 403 checks the transition of the self-refresh operation state, and then also performs control of the patrol operation. Therefore, it is possible to control the patrol operation in connection with the self-refresh by the program.
Inheriting the role of the memory access control circuit 505 and hypervisor 403 in the second embodiment, an example of achieving the state transition that differs from that in the first and second embodiments will be explained. Only the points that differ from the second embodiment will be explained. The other aspects are the same as in the second embodiment.
The normal power state (N) illustrated in record 2601, the power-down state (P1) illustrated in record 2603, the power-down state (P2) illustrated in record 2605 and the self-refresh state (S2) illustrated in record 2609 are the same as in the records 601 to 605 and 609 illustrated in
In this third embodiment, instead of the power-saving mode processing (B1) that is illustrated in
However, when shifting from the self-refresh state (S3) to the self-refresh state (S2), the patrol operation is stopped. Therefore, when it is determined, at the S1909, that the memory 303 that is the object of control is not assigned to any logical domain 405, the second request unit 1455 sets a patrol stop request in the patrol control register 2001 (S2701).
After the processing at the S1913 illustrated in
When the memory 303 is assigned to any logical domain 405 and the memory access frequency is low, it is possible to ensure the data stored in the memory 303 even when waiting due to the self-refresh.
In embodiments 1 to 3, mainly examples of state transitions between the self-refresh state and the power-down state as the initial state were explained, however, in fourth and fifth embodiments, examples of state transitions between the self-refresh state and the normal power state being the initial state, will explained.
Moreover, in the embodiments 1 to 3, examples handling the two modes of the normal mode and power-saving mode, were given, however, the power mode may include one mode. In addition, the power mode may include three or more modes. In the embodiments 4 and 5, examples using one power mode are explained.
As explained in the first embodiment, this explanation presumes that in the self-refresh control routine by the memory access control circuit 505, the activation of the self-refresh function and the stop of the patrol operation are linked, and cancellation of the self-refresh function and start of the patrol operation are linked.
Here, for comparison, a case in which the patrol operation is not stopped is also explained.
This fourth embodiment uses the configuration of the memory access control circuit 505 illustrated in
Next, the first initialization unit 1431 starts the normal-mode processing (S3203). More specifically, the first initialization unit 1431 performs a normal mode processing (A2), instead of the normal-mode processing (A1) illustrated in
The first determination unit 1433 determines whether or not the memory 303 that is the object of control by the memory access control circuit 505 is assigned to a logical domain 405 (S3301). When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is assigned to any logical domain 405, the processing of the S3301 is repeated through a path 3351. In this way, while the state illustrated in the record 2801 in
When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is not assigned to any logical domain 405, the first request unit 1435 sets a self-refresh start request in the power management register 1105 (S3302). As a result, the self-refresh function is activated. The first determination unit 1433 determines whether or not the memory 303 that is the object of control is assigned to a logical domain 405 (S3305). When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is not assigned to any logical domain 405, the processing of the S3305 is repeated through a path 3353. In this way, while the state illustrated in record 2803 in
When it is determined that the memory 303 that is the object of control by the memory access control circuit 505 is assigned to a logical domain 405, the first request unit 1435 sets a self-refresh stop request in the power management register 1105 (S3307), which results in the self-refresh function being stopped. The processing then returns to the S3301.
According to this fourth embodiment, it is possible to omit the patrol operation by the memory access control circuit 505 in the self-refresh state and to reduce the power consumption even when switching between the normal power state and the self-refresh state.
As described in the embodiments 2 and 3, an example is explained in which, in the processing by the hypervisor 403, the state transition illustrated in the fourth embodiment is achieved by linking the activation of the self-refresh function and the stop of the patrol operation, and by linking the cancellation of the self-refresh function and the starting of the patrol operation.
The fifth embodiment uses the configuration of the memory access control circuit 505 that is illustrated in
In the fifth embodiment, the normal-mode processing (B) is performed instead of the normal-mode processing (A2) illustrated in
Steps S3301 and S3303 are the same as in
Furthermore, after the self-refresh stop request has been set in the power management register 1105 at the S3307, the second determination unit 1453 determines whether or not the self-refresh operation state represented by the power management register 1105 is “stopped” (S3405), and when the self-refresh operation state represented by the power management register 1105 is not “stopped”, the S3405 is repeated. When the self-refresh operation state represented by the power management register 1105 has become “stopped”, the second request unit 1455 sets a patrol start request in the patrol control register 2001 (S3407).
In this way, it is possible to omit the patrol operation by control of the hypervisor 403 that is executed by the core 501 in the self-refresh state, and to further reduce the power consumption even when switching the states between the normal power state and the self-refresh state.
Although the embodiments of this invention were explained above, this invention is not limited to those embodiments. For example, the aforementioned functional block configurations do not always correspond to a program module configuration.
Moreover, the aforementioned configurations of the storage areas are mere examples, and may be changed appropriately. Furthermore, as for the processing flows, as long as the processing results do not change, the order of the steps may be changed, and may be executed in parallel.
In addition, the aforementioned server 201 is a computer devices as illustrated in
The aforementioned embodiments are outlined as follows:
An information processing apparatus relating to the embodiments includes: (A) one or plural memories, each of which includes a self-refresh function; and (B) a memory control unit that stops a patrol that includes reading and error correction with respect to a memory among the one or plural memories, upon starting self-refresh of the one or plural memories, and that restarts the patrol, upon stopping the self-refresh of the one or plural memories.
According to this configuration, it is possible to reduce the power consumption in a waiting state by executing, by the memory, the self-refresh, and to also reduce the power consumption as the entire information processing apparatus.
Moreover, the aforementioned memory control unit may stop the self-refresh of the one or plural memories and restarts the patrol, in response to an access request to the one or plural memories.
In such a case, when returning from the waiting state of the memory, the patrol can be restarted automatically.
Moreover, the aforementioned memory control unit may start the self-refresh of the one or plural memories, upon detecting that a memory among the one or plural memories is not assigned to any logical domain, and may stop the self-refresh of the one or plural memories, upon detecting that the memory among the one or plural memories is assigned to a logical domain.
Thus, it is possible to suppress the power consumption in a state in which the memory is not used.
Furthermore, the aforementioned memory control unit may start the self-refresh of the one or plural memories, upon detecting that a memory among the one or plural memories is assigned to a logical domain and an access frequency to the memory among the one or plural memories is equal to or less than a threshold.
According to this configuration, it is possible to suppress the power consumption in a state in which the memory is not actually used.
Moreover, the aforementioned memory control unit may start the self-refresh of the one or plural memories, and continues the patrol, upon detecting that a memory among the one or plural memories is assigned to a logical domain, and an access frequency to the memory among the one or plural memories is equal to or less than a threshold.
Thus, it is possible to suppress the power consumption in a state in which the memory is not actually used, and ensure data stored in the memory, when returning from the waiting state.
A memory control unit relating to the embodiments includes: (A) a patrol unit that performs a patrol including reading and error correction with respect to a memory among one or plural memories that has a self-refresh function; and (B) a controller that stops the patrol, upon starting self-refresh of the one or plural memories, and that restarts the patrol, upon stopping the self-refresh of the one or plural memories.
By doing so, it is possible to reduce the power consumption caused by the patrol in a waiting state.
In addition, the aforementioned controller may stop the self-refresh of the one or plural memories and restarts the patrol, in response to an access request to the one or plural memories.
Thus, when returning from the waiting state of the memory, it is possible to automatically restart the patrol.
Moreover, the aforementioned controller may include one or plural memory access control circuits to be connected to the one or plural memories.
Thus, it is possible to control the patrol together with the self-refresh using circuits.
Furthermore, the aforementioned controller may include an arithmetic unit that performs arithmetic operations. In such a case, the arithmetic unit may execute a processing according to a control program for stopping the patrol, upon starting self-refresh of the one or plural memories, and for restarting the patrol, upon stopping the self-refresh of the one or plural memories.
According to this configuration, it is possible to control the patrol together with the self-refresh using the control program.
Incidentally, it is possible to create a program causing a computer to execute the aforementioned processing, and such a program is stored in a computer readable storage medium or storage device such as a flexible disk, CD-ROM, DVD-ROM, magneto-optic disk, a semiconductor memory, and hard disk. In addition, the intermediate processing result is temporarily stored in a storage device such as a main memory or the like.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2012-191113 | Aug 2012 | JP | national |