This Utility Patent Application claims priority to German Patent Application No. DE 10 2005 043 547.5, filed on Sep. 13, 2005, which is incorporated herein by reference.
In the case of write/read memories, such as random access memory (RAM) for computer systems, it is currently common practice to use memory devices which comprise one or more memory modules and which communicate with the other components of the computer system via a memory controller. For example, dual-in-line memory modules (DIMM) of the fully-buffered type may be used. In this case, each memory module comprises, in addition to a memory core, a advanced memory buffer (AMB). The AMB establishes a connection to a memory controller. From a serial data stream between the memory controller and the memory module, the AMB decodes commands and write data and forwards the commands and write data to the memory core via a memory interface. Conversely, the AMB can convert data from the memory core into serial data packets. Furthermore, the AMB comprises passthrough logic, via which write or command data that are intended for another memory module can be passed through the memory module. Moreover, in the case of read commands, read data from the memory core of the memory module can be combined into data packets with merging logic.
Data transmission is effected using a special protocol which is based on two different types of data frame: data frames having write or command data reach the memory modules via a 10-bit wide southbound link; and the memory controller receives response data frames from the memory modules via a 14-bit wide northbound link. Special input and output interfaces are respectively provided for this purpose on the memory controller and on the memory modules. The southbound link transmits data in a forward direction from the memory controller to the memory module, while the northbound link transmits data in a reverse direction from the memory modules to the memory controller.
If the memory device comprises a plurality of memory modules, the modules are typically strung together in a chain, an input interface and an output interface of adjacent memory modules being respectively interconnected for both the southbound link and the northbound link. In this way, write or command data can be transmitted in the forward direction, via the southbound link, from one memory module to the next, while read data is transmitted, via the northbound link, from one memory module to the next, but in the direction opposite to that for the southbound link (i.e., in the reverse direction).
A memory device having memory modules chained together is extremely susceptible to malfunctioning of the AMB of one of the memory modules. In particular, a failed AMB causes, not only failure of the data transmission to the memory module, but also failure of the data transmission to all memory modules located in the forward direction relative to this memory module. Data stored in these memory modules is no longer accessible and, in effect, is lost as a consequence.
Moreover, in typical known chain-type arrangements, there is a long latency time for those memory modules at the greatest distance from the memory controller. Thus, for a memory module disposed at the nth place in the chain, the latency time includes all of the latency times of n point-to-point links. Furthermore, the bandwidth for the data transmission is limited. In order to ensure a certain bandwidth for the data transmission, an example memory device having n memory modules has n high-speed links active. Data frames transmitted in the forward direction are transmitted through the entire chain, even if their destination is the first memory module of the chain. This results in a high power consumption.
Moreover, typical known memory devices having fully-buffered DIMM memory modules, it is only possible to a limited extent to remove or replace a memory module during operation of the memory device. If, for example, the first memory module of the chain (i.e., the memory module nearest to the memory controller) is to be replaced, all memory modules of the chain-type arrangement are deactivated and the data is stored elsewhere.
For these and other reasons there is a need for the present invention.
One embodiment provides a memory module including a memory core configured to read and write data. The memory module includes a first input interface configured to receive write or command data from a forward direction and to receive read data from the forward direction. The memory module includes a first output interface configured to send read data in a reverse direction and to send write or command data in the reverse direction. The memory module includes a second input interface configured to receive read data from the reverse direction and to receive write or command data from the reverse direction. The memory module includes a second output interface configured to send write or command data in the forward direction and to send read data in the forward direction.
The accompanying drawings are included to provide a further understanding of the present invention and are incorporated in and constitute a part of this specification. The drawings illustrate the embodiments of the present invention and together with the description serve to explain the principles of the invention. Other embodiments of the present invention and many of the intended advantages of the present invention will be readily appreciated as they become better understood by reference to the following detailed description. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts.
In the following Detailed Description, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. In this regard, directional terminology, such as “top,” “bottom,” “front,” “back,” “leading,” “trailing,” etc., is used with reference to the orientation of the Figure(s) being described. Because components of embodiments of the present invention can be positioned in a number of different orientations, the directional terminology is used for purposes of illustration and is in no way limiting. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
Embodiments include a memory module, a memory device and a method for operating a memory device. Example embodiments include memory devices of the write/read type that are used, for example, in computer systems as RAM.
One embodiment of memory topology includes a memory controller and at least one memory module configured in a closed ring arrangement in which data can be transmitted in both a forward direction and in a reverse direction.
One embodiment of a memory module comprises a memory core configured to read and write of data, a first input interface configured to receive write or command data from a forward direction, a first output interface configured to send read data in a reverse direction, a second input interface configured to receive read data from the reverse direction, and a second output interface configured to send write or command data in the forward direction. One embodiment of a memory module is capable of receiving, from the forward direction, write or command data from a memory controller, and of sending read data in the reverse direction to the memory controller.
One embodiment of a memory module is configured to receive read data from the forward direction via the first input interface, to send write or command data in the reverse direction via the first output interface, to receive write or command from the reverse direction via the second input interface, and to send read data in the forward direction via the second output interface. In this embodiment, it is possible to transmit write or command data and read data to and from the memory module, in both the forward and reverse directions.
Since both write or command data and read data are transmitted via the input and output interfaces, the two input interfaces and the two output interfaces can be of identical design. Furthermore, a frame-base data transmission, having a single identical frame format, can be used for the write or command data and for the read data.
In one embodiment of a memory module, two different types of read command may be provided. A read command is received in the memory module either from the forward direction or from the reverse direction. The memory module then, in dependence on memory contents of its memory core, generates read data which can be inserted into a data frame received by the data module, with data that is no longer required being able to be overwritten in this data frame. A received data frame may thus contain, for example, write data that has already been stored in another memory module and can therefore be overwritten with read data. The data frame with the inserted read data is then sent in the direction from which it was received.
In an example first type of read command, the read data is sent in the same direction from which the read command was received in the memory module. In an example second type of read command, the read data is sent in the direction other than that from which the read command was received. Whereas the example second type of read command has a variable latency time, which increases with the distance of the memory module from the memory controller (i.e., with the number of further memory modules disposed between the memory module and the memory controller), the example first type of read command offers a latency time that is independent of the position of the memory module.
One embodiment of a memory module is configured to deactivate, upon receipt of a corresponding configuration command, either the first input interface and the first output interface or the second input interface and the second output interface, such that the transmission of write or command data is possible only in either the forward or the reverse direction and the transmission of read data is possible only in either the reverse or the forward direction. This operating mode is provided if the ring arrangement is interrupted, for example in the case of failure of a memory module or in the case of removal or replacement of a memory module.
One embodiment of a memory device includes at least one memory module and one memory controller coupled to each other in a closed ring arrangement, such that write or command data and read data can be transmitted in both the forward direction and in the reverse direction. The reliability can thereby be increased since, in the event of a malfunction or interruption of the transmission, a transmission via the other direction remains possible for one of the directions. Moreover, an increased bandwidth can be assured, since there are respectively two different transmission paths available for both the write or command data and for read data.
In one embodiment, the memory device comprises a plurality of the memory modules that are coupled in as series arrangement. In one embodiment, the closed ring arrangement of memory controller and memory modules can ensure that, in normal operation, each of the memory modules is accessible for write or command data and for read data, both from the forward direction and from the reverse direction. Thus, if, for one of the memory modules, one of the input interfaces or one of the output interfaces fails, or if all input and output interfaces fail, of if the entire memory module fails, the remaining memory modules remain accessible for read and write accesses. Furthermore, it is possible for one of the memory modules in the series arrangement to be removed during operation of the memory device, for example in order to replace the memory module, or to insert a memory module into the series arrangement, without interrupting the operation of the other memory modules.
One embodiment of a memory device has a lower power consumption for a given bandwidth. If, for example, a conventional memory device comprises eight memory modules, each point-to-point link between adjacent memory modules giving rise to a certain power consumption, the total power consumption for the conventional memory device is eight times that power consumption. In example embodiments disclosed herein only one additional point-to-point link (comprising a link for the forward direction and a link for the reverse direction) is employed to close the ring arrangement. In this example embodiment, the power consumption would thus be nine times the power consumption for one point-to-point link. Since, however, as already mentioned, the bandwidth is doubled at the same time with this example embodiment, a substantially lesser power consumption, relative to bandwidth, can be achieved over a conventional memory device. In the case of the example described above, with eight memory modules, the reduction of the power consumption relative to bandwidth would be approximately 44%.
There is described in the following a memory device which can be used, for example in a computer system, as a write/read memory (e.g., RAM).
The example memory device embodiment illustrated in
In the following, the structure of the memory modules 100a, 100b, 100c, 100d is explained by describing the structure of memory module 100a, as memory modules 100b, 100c and 100d can be substantially identical in structure to memory module 100a.
One embodiment of the memory module 100a comprises a memory core 120 for the reading and writing of data. Memory core 120 may be, for example, one or more memory components of the double-data-rate (DDR) type. In particular, memory components of the DDR2 type or DDR3 type, or comparable memory components, may be used. Data may be repeatedly stored and read-out in the memory core 120 (e.g., the memory could be RAM).
Furthermore, memory module 100a comprises an interface block 110, which provides a first input interface 111, a first output interface 112, a second input interface 114, and a second output interface 115. The first input interface 111 receives write or command data from the memory controller 200, from a forward direction. The first output interface 112 sends read data, in a reverse direction, to the memory controller 200. The second input interface 114 receives read data from the reverse direction, and the second output interface 115 sends write or command data in the forward direction.
The input and output interfaces 111, 112, 114, 115 are not limited to a specific data type, however, but can be used both for write or command data and for read data. Thus, read data from a memory module that is adjacent in the reverse direction can also be received via the first input interface 111, and write or command data can be sent via the first output interface 112 to a memory module that is adjacent in the reverse direction. Likewise, write and command data can be received via the second input interface 114 from a memory module that is adjacent in the forward direction or from the memory controller 200, and read data can be sent via the second output interface 115 to a memory module that is adjacent in the forward direction or to the memory controller 200.
In one embodiment, the first output interface and the second output interface each comprise a line driver 113 and 116 respectively, which outputs data (e.g., the write or command data or the read data) in a frame-based transmission format. In this case, data frames having the same frame format are used for the write or command data and for the read data. Apart from the direction of the data transmission, the first input interface 111 and the second input interface 114, and the first output interface 112 and the second output interface 115, can be substantially identical in design.
Via a multiplexer 118, either write or command data from the first input interface 111, or write or command data from the second input interface 114, can be forwarded to the memory core 120. Furthermore, data frames received via the first input interface 111 are forwarded to the second output interface 116, and data frames received via the second input interface 114 are forwarded to the first output interface 112. In the line drivers 113 and 116, read data generated dependent on memory contents of the memory core 120 are inserted into the data frames before the data frames are sent in the reverse direction and in the forward direction. In one embodiment, it is ensured that no data that is still required is inadvertently overwritten.
In the example memory device embodiment illustrated in
In the illustrated embodiment, the first input interface 111 of the first memory module 100a is coupled to the first output interface 202 of the memory controller 200, in order to transmit data in the forward direction. The first output interface 112 of the first memory module 100a is coupled to the first input interface of the memory controller 200, in order to transmit data in the reverse direction. The memory module 100d is the last memory module of the series arrangement of memory modules. The second input interface of the last memory module 100d is coupled to the second output interface 205 of the memory controller 200, in order to transmit data in the reverse direction. The second output interface of the last memory module 100d is coupled to the second input interface 204 of the memory controller 200, in order to transmit data in the forward direction. With regard to the other memory modules 100b, 100c, the first input interface 111 is coupled to the second output interface 115 of a memory module 100a, 100b that is adjacent in the reverse direction, in order to transmit data in the forward direction, the first output interface 112 is coupled to the second input interface 114 of the memory module 100a, 100b that is adjacent in the reverse direction, in order to transmit data in the reverse direction, the second input interface 114 is coupled to the first output interface 112 of a memory module 100c, 100d that is adjacent in the forward direction, in order to transmit data in the reverse direction, and the second output interface 115 is coupled to the first input interface 111 of the memory module 100c, 100d that is adjacent in the forward direction, in order to transmit data in the forward direction. The memory controller 200 and the memory modules 100a, 100b, 100c, 100d thus are configured in a closed ring arrangement in which write or command data and read data can be transmitted, both in the forward direction and in the reverse direction, between the memory controller 200 and each of the memory modules 100a, 100b, 100c, 100d.
In the closed ring arrangement structure of the memory modules 100a, 100b, 100c, 100d and memory controller 200 of the example memory device embodiment illustrated in
Furthermore, in comparison with a conventional chain-type arrangement of memory modules, the latency time of the example memory device embodiment illustrated in
In comparison with a conventional chain-type arrangement, the number of point-to-point links for the closed ring arrangement embodiment illustrated in
Furthermore, it is possible for one of the memory modules 100a, 100b, 100c, 100d to be removed during the operation of the memory device without interrupting the operation of the other memory modules for this purpose. In order to replace one of the memory modules 100a, 100b, 100c, 100d, it is thus not necessary to deactivate the entire memory device. It is sufficient to provide a single replacement memory module to take over, during the replacement operation, the function of the memory module that is to be replaced, such that the capacity of the memory device is not impaired. For example, the data of the memory module that is to be replaced can be temporarily stored in the other memory modules of the memory device. A complete replacement memory device is not required. In some embodiments, the costs of the system, the power consumption and the space requirement on a system board are thereby reduced.
The main processes in example operations of the example memory device embodiment illustrated in
In the case of the example first type of read command, the generated read data RD is inserted as rapidly as possible into a data frame which is transmitted through the memory module 100a in the same direction as the data frame in which the read command was received. The memory controller 200 can ensure in this case that no data transmitted in this data frame is inadvertently overwritten. The possibility of overwriting data in the data frame can also be used, however, to transmit the read data RD with a higher priority.
In the case of the example second type of read operation, the memory controller 200 sends a second type of read command to the memory module designated for the read operation (e.g., the memory module 100d in the example illustrated in
Upon receipt of the example second type of read command, the interface block 110 inserts the generated read data RD as rapidly as possible into a data frame which was received by the memory module 100d from the direction other than the direction of the data frame with which the read command was transmitted. Here again, the memory controller 200 can ensure that no data is inadvertently overwritten in the data frame. The possibility of overwriting data can also be used, however, to transmit the read data RD with a higher priority.
The read operations illustrated in
In the case of the example second type of read command illustrated in
In the case of the example first type of read command illustrated in
As soon as the data frame with the write data WRT reaches the interface block 110 of the memory module 100b designated for the write operation, the write data is forwarded out of the data frame to the memory core 120 and stored therein. The data frame is forwarded to the next memory module in the ring arrangement and can be overwritten there with read data.
For the example write operation illustrated in
In this case, a corresponding configuration command that is sent in the forward direction from the memory controller 200 to the memory module 100b commands the memory module 100b into an alternative operating mode in which the input interface and output interface adjacent to the memory module 100c that is to be removed or replaced are deactivated. This is represented in
Accordingly, the memory module 100d, which is adjacent in the forward direction to the memory module 100c that is to be removed or replaced, is put by the memory controller 200, via a corresponding configuration command, into an alternative operating mode in which the input interface and the output interface adjacent to the memory module 100c that is to be removed or replaced are likewise deactivated. This is again represented by broken-line structures within the memory module 100d.
In this state, the memory module 100c can then be removed or replaced. As illustrated by
In the case of memory devices of the type described above, for computer systems, it is usual for corresponding slots to be provided for the memory modules 100a, 100b, 100c, 100d on a system board of the computer system. The memory controller 200 is usually provided as a component of the system board. The links, described with reference to
If, as explained with reference to
There has thus been described above a memory device and a method for operating the memory device, in which memory device and method a high reliability can be assured through use of a closed ring arrangement in which data can be transmitted both in the forward direction and in the reverse direction. In particular, the memory device can continue to be operated even if the interface block 110 fails at one of the memory modules. In the case of a failure, or for maintenance purposes, the ring arrangement can be divided into two chain-type arrangements, and it is possible to replace each of the individual memory modules while the other memory modules remain in operation.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
10 2005 043 547.5 | Sep 2005 | DE | national |