USPatent applicationPatented

Memory subsystem and computer system

Granted 20 Sep 2016 · 1 office action

Life of the application

9 dated events
⤢ drag to zoom20142016201820202022202420262028203020322034ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

The present invention provides a computer system including a CPU and a memory subsystem connected via a system bus to communicate with each other. The computer system 100 includes a bus monitor 50 connected to the system bus 10 to monitor the frequency of access requests from the CPU 20 to the memory subsystem 30 , and a latency changing means 60 for sending a control signal to the memory subsystem to change the latency of the access requests in response to the frequency of the access requests received from the bus monitor.

Description

7 parts
›CLAIM OF PRIORITY

The present application claims the benefit of priority of JP patent application 2012-160933, entitled “MEMORY SUBSYSTEM AND COMPUTER SYSTEM”, filed Jul. 19, 2012, with the Japanese Patent and Trademark Office, the content of which is incorporated herein by reference in its entirety.

›TECHNICAL FIELD

The present invention relates to a computer system and, more specifically, to saving power in a computer system including a memory subsystem.

›BACKGROUND

In a computer system including a PC or server system equipped with a memory subsystem, saving power is an important factor in reducing the load on, for example, a power source, air conditioner or cooling device. In order to do so, as shown, for example, in U.S. Pat. No. 8,103,884 and Japanese Patent Publication No. 2008-041089, conditions such as the load, capacity utilization rate, and temperature (generated heat) of, for example, a CPU/GPU are monitored, and power saving actively realized in accordance with these conditions.

›SUMMARY OF INVENTION

A purpose of the present invention is to realize power savings in a computer system, not by monitoring the operating state of a CPU/GPU or OS, but rather by monitoring the operating state of a memory subsystem via a bus.

Another purpose of the present invention is to realize power savings via memory subsystem hardware without the required intervention of software.

The present invention provides a computer system including a CPU and a memory subsystem connected via a system bus to communicate with each other. This computer system includes a bus monitor connected to the system bus to monitor the frequency of access requests from the CPU to the memory subsystem, and a latency changing means for sending a control signal to the memory subsystem to change the latency of the access requests in response to the frequency of the access requests received from the bus monitor.

The computer system of the present invention is able to monitor the operating state (load) of the memory subsystem by monitoring the frequency of access requests from the CPU in the system bus to the memory subsystem, and can change the latency of access requests according to this operating state (load). As a result, the computer system of the present invention can save power by lengthening the latency of access requests and reducing the processing speed of the system when the operating state (load) of the memory subsystem is low.

The present invention also provides a memory subsystem connected to a CPU via a system bus to communicate with each other. This memory subsystem includes a memory controller connected to the system bus, a DDR memory connected to the memory controller via a DDR-PHY interface (DFI), a bus monitor connected to the system bus to monitor the frequency of access requests from the CPU to the memory subsystem, and a latency changing means for sending a control signal to the memory controller or the DDR memory to change the latency of the access requests in response to the frequency of the access requests received from the bus monitor.

The memory subsystem of the present invention is able to monitor the operating state (load) of the memory subsystem by monitoring the frequency of access requests from the CPU in the system bus to the memory subsystem, and can change the latency of access requests according to this operating state (load). As a result, the memory subsystem of the present invention can save power by lengthening the latency of access requests and reducing the processing speed of the system when the operating state (load) of the memory subsystem is low.

›BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram showing a configuration example of a computer system including a memory subsystem of an embodiment of the present invention.

FIG. 2 is a diagram showing a configuration example of a bus monitor and latency changing means of an embodiment of the present invention.

FIG. 3 is a diagram showing an operation flow example of a bus monitor of an embodiment of the present invention.

›DETAILED DESCRIPTION · 1 of 2

The following is an explanation of an embodiment of the present invention with reference to the drawings. FIG. 1 is a diagram showing a configuration example of a computer system 100 including a memory subsystem of the present invention. The computer system 100 includes a CPU 20 , a memory subsystem 30 and a bus master device 40 connected to a system bus 10 via buses 12 , 14 and 16 , respectively. The computer system 100 also includes a bus monitor 50 and a latency changing means 60 . The configuration 55 including the bus monitor 50 and the latency changing means 60 can also be configured as a portion of the memory subsystem 30 .

The system bus 10 is composed of a front side bus connected exclusively to the CPU 20 , and a memory bus connected to the memory subsystem 30 . The CPU 20 can include a graphics processing unit (GPU) or may be a multicore. The bus master device 40 is a device that is able to access the memory subsystem 30 directly, not via the CPU 20 .

The memory subsystem 30 includes a memory controller 310 , DDR-PHY 320 and a DDR memory 330 . The DDR-PHY 320 is one interface specification for a memory controller called a DDR PHY Interface (DFI). The DDR memory 330 means double data rate memory (DRAM) such as DDR 2 and DDR 3 , and is arranged on a plurality of boards depending on the memory capacity. The bus monitor 50 monitors the frequency of access requests from the CPU 20 to the memory subsystem 30 . The latency changing means 60 sends control signals to the memory subsystem 30 to change the latency of the access requests in response to the frequency of the access requests received from the bus monitor 50 .

FIG. 2 is a diagram showing a configuration example of a bus monitor 50 and latency changing means 60 of the present invention. The area 55 surrounded by the dashed lines indicates the configuration example of both. As mentioned above, this area 55 can be a portion of the memory subsystem 30 . The up/down counter 510 monitors each access request (request signal) to the memory subsystem 30 in the system bus 10 . More specifically, the up/down counter 510 counts an access request from the CPU as plus one (+1) and a request other than an access request from the CPU and a system bus 10 idle state as minus one (−1) after a cycle end signal (data transfer end signal) has been received from the system bus 10 . The following is a detailed explanation of the counting operation with reference to FIG. 3 .

FIG. 3 is a diagram showing an operation flow example of a bus monitor 50 (up/down counter 510 ) of the present invention. In Step S 1 , it is determined whether or not there has been an access request to the memory subsystem 30 in the system bus 10 . When there has not been an access request, that is, when the system bus 10 is in an idle state, the count in Step S 2 is minus one (−1) indicating non-use. When there has been an access request, it is determined in Step S 3 whether or not the access request is a CPU access request.

When there has been a CPU access request, the count in Step S 4 is plus one (+1) indicating use. In Step S 5 , it is determined whether or not the cycle has ended, that is, whether or not CPU access request has ended (data transmission has ended). When the cycle has ended, the process returns to Step S 1 where it is determined whether or not there has been an access request. When the cycle has not ended, a plus-one (+1) count is repeated in Step S 4 .

When there has not been a CPU access request in Step S 3 , the count in Step S 6 is minus one (−1) indicating an access request other than a CPU access request. In Step S 7 , it is determined in the same manner as Step S 5 whether or not the cycle has ended. When the cycle has ended, the process returns to Step S 1 where it is determined whether or not there has been an access request. When the cycle has not ended, a minus-one (−1) count is repeated in Step S 6 . The count value obtained in the flow described above is a value (criterion) for estimating the access request frequency from the CPU 20 in the system bus 10 to the memory subsystem 30 , or the occupancy.

Returning to FIG. 2 , the count value of the up/down counter 510 is compared by the comparator 620 to a predetermined threshold value stored in the register 610 . The count value of the up/down counter 510 serving as the count result is negative, a value of zero is inputted to the comparator 620 . The predetermined threshold value is set to the appropriate value experientially or experimentally as a reference value for extending the latency of access requests to the memory subsystem 30 , thereby reducing the impact on the performance of the system (CPU) and reducing power consumption. When the inputted count value is less than the predetermined threshold value, the comparator 620 outputs a high (H) signal as an output signal. It outputs a low (L) signal when the inputted count value is equal to or greater than the threshold value. A high (H) signal and a low (L) signal correspond, respectively, to a high and low access request frequency to the memory subsystem 30 , or the occupancy. In FIG. 2 , there is a plurality of registers 610 and comparators 620 . However, a single one of each can also be used.

Output signals from the comparator 620 are inputted to a clock gate circuit 630 , a WAIT insertion circuit 640 , and a CKE gate circuit 650 . The clock gate circuit 630 receives a high (H) signal from the comparator 620 , and outputs a gate signal to an AND gate 660 to decimate the operating clock of the memory controller 310 . The AND gate 660 receives a clock signal from the system bus 10 , and outputs a clock signal to the memory controller 310 only when the gate signal from the clock gate circuit 630 is high (H). In this way, the clock can be decimated while the gate signal is low (L).

The WAIT insertion circuit 640 receives a high (H) signal from the comparator 620 , and outputs dummy cycle signals to the memory controller 310 to delay the timing of the signal (data) output from the memory controller 310 to the system bus 10 . Dummy cycle signals are bit sequence signals with a predetermined cycle. The memory controller 310 delays signal (data) output to the system bus 10 only during the interval with dummy cycle signals.

›DETAILED DESCRIPTION · 2 of 2

The CKE gate circuit 650 receives high (H) signals from the comparator 620 , and outputs gate signals to the AND gate 670 to decimate the operating clock of the DDR memory 330 . The AND gate 670 receives clock enable (CKE) signals for the DDR memory 330 from the memory controller 310 , and outputs CKE signals (high) to the DDR memory 330 only when the CKE gate signals from the CKE gate circuit 650 are high (H). In this way, CKE signals can be forced low (L) and the operating clock of the DDR memory 330 decimated while the CKE gate signals are low (L).

The clock gate circuit 630 , the WAIT insertion circuit 640 , and the CKE gate circuit 650 can receive output signals from the comparator 620 , and all three can operate simultaneously. One or two of them can also be selectively operated. Selective operation can be realized by selectively outputting signal from the comparator 620 in a manner corresponding to the circuits to be operated, or by inputting output signals only to the circuits to be operated.

As described above, the present invention proposes a power saving mechanism in which the operating state of the memory subsystem is monitored instead of monitoring the operating state of the CPU/GPU. The idle state of the CPU can be estimated as high when the occupancy of the memory access from the CPU in the system bus is low. In this case, the impact on system performance is low even when the latency of memory access has been extended. Even when the CPU is not in an idle state, the occupancy of the memory bus is believed to be low due to the high cache hit rate. Because the process is internal to the CPU, there is very little impact on system performance, even when there is a decrease in non-CPU performance, such as memory subsystem performance.

Embodiments of the present invention were explained with reference to the drawings. However, the present invention is not limited to these embodiments. The present invention can be embodied in a manner that includes various improvements, modifications and variations based on the knowledge of those skilled in the art without departing from the scope of the invention.

Claims as granted

5 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

1 codes
IPC · International Patent Classification
Section G — Physics
  • G06F13/16

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2013Jan 2014Jul 2014Jan 2015Jul 2015Jan 2016Jul 2016USPTOApplicantNon-final rejectionResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
3.2 y
1,160 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
Tim T Vo
art unit 2185 · TC 2100
Citations: 10 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20142016201820202022202420262028203020322034Owner 1Owner 2
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock