The embodiments discussed herein are related to memory system and a memory interface device.
With a high-speed and a large-scale of the information processing apparatus, using existing interface signal, an increase in the storage capacity of memory is demanded. As depicted in
For example, the memory circuits 100A and 100B are composed of DIMM (Dual Inline Memory Module). The interface circuit 102 converts the received address, and outputs converted address to the memory circuits 100A and 100B. Thus, it is possible to virtually increase the capacity of the memory circuits (DIMM) which are connected to the system using the existing memory interface. Here, the system (the memory controller 110) can access two memory circuits (DIMM) 100A and 100B by the existing memory interface, so memory capacity is doubled.
As the method of address conversion, a method that uses a portion of the address has been proposed. As depicted in
By specifications such as memory (DIMM) capacity and the number of banks, in the row address (RA) and the column address (CA), there are unused bits which are not utilized for memory access (indicated by the shaded area in
A plurality of memory circuits (DIMM) 100A and 100B connect to the memory controller 110 via the interface circuit 102. Thus, it is possible that the memory controller 110 virtually recognizes to connect single memory (DIMM) even though connecting to two memories actually. The memory system is called to virtual memory system.
[Patent Document 1] United States Laid-open Patent Publication No. 2007-0192563;
[Patent Document 2] Japanese Laid-open Patent Publication No. 2008-077635;
[Patent Document 3] Japanese Laid-open Patent Publication No. Sho 62-252591;
[Patent Document 4] Japanese Laid-open Patent Publication No. 2001-167077.
The memory which has a large capacity uses full of the memory address according to the large capacity. For example, when using a large capacity memory such as DIMM of 4 Gb (Giga byte)=512 Mb (Mega byte)×8 bits, the unused bits are not present in the row address RA. For this reason, the address is converted to an address of the virtual memory system by using the unused bits [11:13] of the column address.
For example, when configuring the virtual DIMM of 8 Gb by using two DIMM of 4 Gb (512 Mb×8 bit), it is determined which DIMM access by using the bit 11 of the column address CA. According, when constituting a large capacity memory circuit, by using a plurality of DIMM of which the capacity is more than 4 Gb, for example, it is necessary to use the unused bits of the column address.
On the other hand, in memory of DDR/DDR2/DDR3 specification, the memory controller sends the row address (RA) and the column address (CA) in time division to the memory. As illustrated in
The memory access operation in the time division transmission as illustrated in
Then, the memory controller 110 sends the read/write command and the column address CA and the interface circuit 102 receives the column address CA (S3 in
Then, the interface circuit 102 outputs the read/write command and the column address CA to the DIMM 100A (S5 in
As described above, in the system which identify the real DIMM by using the column address CA of the virtual DIMM, it is not possible to specify the DIMM of access target at the time when receives the row address RA. In other words, when the interface circuit has received the row address RA, the interface circuit can not issue the ACT command to the real DIMM. Therefore, it necessary that the interface circuit waits for the receipt of the column address CA in order to issue the ACT command. Therefore, the memory access latency is increased, the memory access performance becomes reduced.
According to an aspect of the embodiments, memory system includes a plurality of memory circuits and an access control circuit that receives row address and first command, then receives column address and second command from a memory access source, identifies a designated one memory circuit among the plurality of memory circuits from the column address, and controls an access of the designated one memory circuit, and the access control circuit performs a speculative access to the plurality of memory circuits when receiving the row address and the first command, and sends the second command to the designated one memory circuits and sends a third command that cancel the speculative access to other memory circuits that is not designated by the column address when receiving the column address and the second command.
Further, according to another aspect of the embodiments, memory system includes a plurality of memory circuits and an access control circuit that receives row address and first command, then receives column address and second command from a memory access source, identifies a designated one memory circuit among the plurality of memory circuits from the column address, and controls an access of the designated one memory circuit, and the access control circuit performs a speculative access to the plurality of memory circuits when receiving the row address and the first command, and sends the second command to the plurality of memory circuits when receiving the column address and the second command and discards read data from the memory circuits which is not designated by the column address.
In addition, according to an aspect of the embodiments, an memory interface circuit includes an access control circuit that receives row address and first command, then receives column address and second command from a memory access source, identifies a designated one memory circuit among a plurality of memory circuits from the column address, and controls an access of the designated one memory circuit, and the access control circuit performs a speculative access to the plurality of memory circuits when receiving the row address and the first command, and sends the second command to the designated one memory circuits and sends a third command that cancel the speculative access to other memory circuits that is not designated by the column address when receiving the column address and the second command.
In addition, according to another aspect of the embodiments, a memory interface circuit includes an access control circuit that receives row address and first command, then receives column address and second command from a memory access source, identifies a designated one memory circuit among the plurality of memory circuits from the column address, and controls an access of the designated one memory circuit, and the access control circuit performs a speculative access to the plurality of memory circuits when receiving the row address and the first command, and sends the second command to the plurality of memory circuits when receiving the column address and the second command and discards read data from the memory circuits which is not designated by the column address.
The object and advantages of the invention will be realized and attained by means of the elements and combinations part 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 invention.
Hereinafter, the embodiments will be described in the order of a first embodiment of the memory system, a second embodiment of the memory system and the other embodiments, but the disclosed memory system and the memory are not limited to these embodiments.
Each of two memory modules DIMM0 and DIMM1 has a plurality of banks #0 to #3 (also referred to as rank). And two memory modules DIMM0 and DIMM1 connect in daisy chain by address lines LA. The interface circuit 2 includes an access control circuit 20. The access control circuit 20 connects to a memory controller 3 and two memory modules DIMM0 and DIMM1. The access control circuit 20 receives real address, command Cmd and data Data from the memory controller 3.
The access control circuit 20 sends received the real address to the memory module DIMM0 via the address lines LA. Further, the access control circuit 20 connects to a first memory module DIMM0 through a command line LC0 and data line LC0 of a first channel Ch#0 and connects to a second memory module DIMM1 through a command line LC1 and data line LC of a second channel Ch#1.
Each of the memory modules will be explained by using
Each of the bank control circuits 10-0˜10-3 receives memory bank address BA and commands from the access control circuit 20 through the command line LC0(1) and allows an access of a memory bank 12-0˜12-3 which is designated by the bank address.
The memory banks receive a row address and a column address from the access control circuit 20 through the address line LA and select the memory address in the memory bank. Then, the memory banks 12-0˜12-3 performs read/write of contents in selected address depending on the bank select signal and the command from the bank control circuit 10-0˜10-3. Each of the memory banks 12-0˜12-3 outputs the read data and inputs the write data through the data lines LD0(1).
In the embodiment, the access control circuit 20 is composed of a microcontroller, for example. This access control circuit 20 performs a speculative access to all memory modules which has a possibility to be accessed. The access control circuit 20 performs the access to the memory module which is specified after receiving the column address. And the access control circuit 20 sends a command which outsets the speculative access to the memory circuit which is out of access target after receiving the column address. Therefore, the memory circuit out of the access is controlled that was not accessed from the beginning.
Even though the memory system identifies the real memory module by the column address CA, it is possible to reduce the delay (latency) of memory access.
(S10) As described in
(S12) The access control circuit 20 transmits the ACT command to all memory modules DIMM0, DIMM 1 which has a possibility to be accessed through the command lines LC0 and LC1 when arriving the row address RA (referring A2 in
(S14) As described in
(S16) And the access control circuit 20 sends the read or write command to determined memory module DIMM 0 (referring to A4 in
(S18) Further, the access control circuit 20 sends NOP (Not Operation) command or PRE (Preparation) command to the memory module DIMM1 which was determined to not be accessed by the access control circuit 20 (referring to A4 in
Further, the access control circuit sends the NOP command to the memory module when sending a command including a existence of auto-precharge in step S12, and sends the PRE command to the memory module when sending a command including nothing of the auto-precharge.
(S20) The access control circuit 20 receives the write data from the memory controller 3 when the command from the memory controller 3 is a write command (referring to A5 in
(S22) On the other hand, the access control circuit 20 receives the read data from the memory module DIMM0 to be accessed, when the command from the memory controller 3 is a read command (referring to A7 in
As illustrated in the case of transmission example of the interface circuit 2 and reception example of the memory module DIMM0 in the prior art of
On the other hand, in the embodiment, the interface circuit 20 performs a speculative access to all memory modules which has a possibility to be accessed. Thus, the interface circuit 20 sends the command of the row address to the memory module before arrival of the column address. Then, the interface circuit 20 issue the column address of the read or write command to the target memory module, after arriving the column address CA and determining the specified memory module.
In addition, the interface circuit 20 issues a command of the column address of NOP or PRE to the memory module of out of target. By the NOP or PRE command, the memory module of out of target is controlled so that there is no access from the beginning. By issuing the speculative access, even in the case that determination of selection of the memory module is made using the column address, it is possible to access the memory module without increase in the latency of the memory module. In other words, in the virtual memory system, it is possible to reduce the latency between the memory controller and memory modules and to prevent performance degradation.
(S30) As described in
(S32) The access control circuit 20 transmits the ACT command to all memory modules DIMM0, DIMM 1 which has a possibility to be accessed through the command lines LC0 and LC1 when arriving the row address RA (referring A2 in
(S34) As described in
(S36) And the access control circuit 20 sends the read command all memory modules DIMM 0 and DIMM 1 which has a possibility to be accessed (referring to A4 in
The access control circuit 20 receives the read data from the memory modules DIMM0 and DIMM1 which are sent the read command (referring to A9 in
In the second embodiment, the access control circuit 20 performs the speculative access for all memory modules which has a possibility of access, and receives the column address CA, then receives the read data from the memory module identified and sends the read data to the memory controller 3.
In this way, Even though identifying a real memory module by the column address CA, it is possible to reduce the delay (latency) of memory access. In addition, since the interface circuit 20 which is provided separately from the memory controller 3 performs the operation, it is possible to achieve the operation without changing the memory controller having a complex function.
In the embodiment described above, the access control circuit 20 in the interface circuit 2 has been described to implemented by a micro-controller, however, the access control circuit 20 may be applied to compose of a discrete circuit having an address conversion circuit and a command control circuit, for example. And the memory circuit has been described in the DIMM, the memory circuit may be applied to a memory module circuit of other configurations. In addition, the DIMM may be applied to any memory circuits of the buffer type in which at least address line connects in a daisy chain.
In addition, the time-division address/command transmission method has been described in cases of DDR3, however the time-division address/command transmission method may be applied to other time-division address/command transmission method such as DDR, DDR2. Moreover, the number of memory circuits in the memory system is two, however the number of memory circuits in the memory system may be applied to three or more.
The foregoing has described the embodiments of the present invention, but within the scope of the spirit of the present invention, the present invention is able to various modifications, and it is not intended to exclude them from the scope of the present invention.
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 invention has 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.
This application is a continuation application of International Application PCT/JP2010/058974 filed on May 27, 2010 and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2010/058974 | May 2010 | US |
Child | 13686165 | US |