PROTOCOL FOR REFRESH BETWEEN A MEMORY CONTROLLER AND A MEMORY DEVICE
The present embodiments provide a system that supports self-refreshing operations in a memory device. During operation, the system transitions the memory device from an auto-refresh state, wherein a memory controller controls refreshing operations for the memory device, to a self-refresh state, wherein the memory device controls the refreshing operations. While the memory device is in the self-refresh state, the system sends progress information for the refreshing operations from the memory device to the memory controller. Next, upon returning from the self-refresh state to the auto-refresh state, the system uses the progress information received from the memory device to control the sequencing of subsequent operations by the memory controller.
Latest RAMBUS INC. Patents:
- Single error correct double error detect (SECDED) error coding with burst error detection capability
- Remedial action indication
- Memory controller with staggered request signal output
- On-die termination of address and command signals
- Crosstalk cancelation structures having metal layers between signal lines semiconductor packages
1. Field
The present embodiments generally relate to integrated circuit memory devices, controller devices and memory systems. More specifically, the present embodiments relate to the design of a protocol for refresh operations between an integrated circuit controller device and an integrated circuit memory device.
The disclosed embodiments provide a memory system that facilitates efficient self-refreshing operations, wherein the system may be configured to shut off power and/or shut down clocking to a high-speed interface, but leaves circuitry operating to self-time refreshing operations to maintain the contents of memory cells. In several embodiments, protocols for operating in this self-refresh state may decrease power consumption, which may be attractive in applications such as notebook computers or other portable computing devices for which battery life is important.
In some of the disclosed embodiments, progress information regarding the refresh operation is sent from the memory device to the memory controller during the self-refresh state through a (e.g., uncalibrated, low-power) sideband link. In this way, the uncertainty associated with the timing of the self-refresh operation may be eliminated. For example, in a conventional self-refresh operation, the self-refresh exit delay must account for the worst-case timing of an in-process internal refresh operation (controlled by an internally generated clock that may not be accurate) plus some margin. In contrast, in the disclosed embodiments, the controller can use the progress information received from the memory device to determine when the refresh operation actually completes and can immediately issue a new command to that bank. This enables the memory controller to more optimally control the sequencing of subsequent memory operations to significantly reduce the exit delay from the self-refresh state.
More specifically, referring to the exemplary embodiment depicted in
For example, the progress information can be used to determine whether a self-refreshing operation is in process or will occur in the near future. If not, the memory controller can immediately initiate one or more subsequent memory accesses without having to wait for a self-refreshing operation to complete. Additionally, the progress information can be used by the memory controller to determine that a given bank is presently being refreshed. This enables the memory controller to perform memory operations to other banks in the memory device while the self-refreshing operation completes for the given bank.
In one embodiment, the system enters a deep power-down state, wherein the system shuts off power and/or shuts down clocking to a high-speed interface. However, the memory device does not enter a self-refresh state. Instead, the memory controller continues to coordinate refreshing operations through a sideband link. This enables the memory controller to know whether a given bank is being refreshed and to schedule refreshing operations for other banks
More specifically, referring to
These operations are described in more detail below, but first we describe some details of the memory system.
Memory Controller and Memory DeviceDRAM 304 includes two sets of memory banks The first set includes Bank 0a, Bank 1a, Bank 2a, Bank 3a, Bank 4a, Bank 5a, Bank 6a and Bank 7a, and the second set includes Bank 0b,Bank 1b, Bank 2b, Bank 3b, Bank 4b, Bank 5b, Bank 6b and Bank 7b. During the self-refresh state, refreshing operations for the first set of memory banks are controlled by control circuitry 340 on DRAM 304, and refreshing operations for the second set of memory banks are controlled by control circuitry 350 on DRAM 304.
The memory controller logic on controller chip 302 communicates with the memory banks on DRAM 304 through a number of different interfaces and communications links. More specifically, communications take place between memory controller logic 310 on controller chip 302 and the first set of memory banks on DRAM 304 through (1) interfaces DQ 314, DM 315, CA0 316, CA1 317 and CK 318 on controller chip 302, (2) differential links 306, and (3) interfaces DQ 341, DM 342, CA0 343, CA1 344 and CK 345 on DRAM 304. Similarly, communications take place between memory controller logic 320 on controller chip 302 and the second set of memory banks on DRAM 304 through (1) interfaces DQ 324, DM 325, CA0 326, CA1 327 and CK 328 on controller chip 302, (2) differential links 308, and (3) interfaces DQ 351, DM 352, CA0 353, CA1 354 and CK 355 on DRAM 304.
In this embodiment, controller chip 302 and DRAM 304 additionally communicate refreshing information through an uncalibrated, low-power sideband link which comprises (1) interface SL 330 in controller chip 302, (2) uncalibrated links 370, and (3) interface SL 360 on DRAM 304.
This interface circuitry of
In an alternative embodiment which is illustrated in
Although the exemplary embodiment disclosed in
Next, at a time tPM-RAS after the PM transition, the memory device starts performing a self-refresh operation, which involves activating the row of memory cells located in the bank as specified by the {B,R} address. The memory device also asserts the refresh (RF) signal on signal line SL[0] to let the memory controller know that the memory device is performing the self-refresh operation (operation D). Next, at a time tRAS after the RF assertion, the memory device precharges the memory cells located in the row in the bank as specified by the {B,R} address, and increments the {B,R} address in bank-fast or row-fast order, depending upon the mode selected by the PR command. The memory device also deasserts the RF signal (operation E). Next, at a time tIREF (the refresh interval) after the previous RF assertion, the memory device starts performing a subsequent self-refresh operation. This involves incrementing the bank and row counters on the memory device to point to the next {B,R} address to be refreshed before commencing the next self-refresh operation. It also involves reasserting the RF signal (operation F).
In an alternative embodiment illustrated in
In the foregoing description and in the accompanying drawings, specific terminology and drawing symbols are set forth to provide a thorough understanding of the present invention. In some instances, the terminology and symbols may imply specific details that are not required to practice the invention. Consequently, these embodiments may include fewer components or additional components. Moreover, components may be combined into a single component and/or the position of one or more components may be changed.
While the preceding embodiments used a memory system implemented on separate integrated circuits or chips as an illustration, in other embodiments at least portions of either of these chips may be implemented on another integrated circuit. For example, controller chip 302 (
An output of a process for designing an integrated circuit, or a portion of an integrated circuit, comprising one or more of the circuits described herein may be a computer-readable medium such as, for example, a magnetic tape or an optical or magnetic disk. The computer-readable medium may be encoded with data structures or other information describing circuitry that may be physically instantiated as an integrated circuit or portion of an integrated circuit. Although various formats may be used for such encoding, these data structures are commonly written in Caltech Intermediate Form (CIF), Calma GDS II Stream Format (GDSII) or Electronic Design Interchange Format (EDIF). Those of skill in the art of integrated circuit design can develop such data structures from schematics of the type detailed above and the corresponding descriptions, and can encode the data structures on a computer-readable medium. Those of skill in the art of integrated circuit fabrication can use such encoded data to fabricate integrated circuits comprising one or more of the circuits described herein.
While the present invention has been described in connection with specific embodiments, the claims are not limited to what is shown. For example, in some embodiments the links between controller chip 302 and DRAM 304 in
Moreover, some components are shown directly connected to one another, while others are shown connected via intermediate components. In each instance, the method of communication establishes some desired electrical communication between two or more circuit nodes, or terminals. Such coupling may often be accomplished using a number of circuit configurations, as will be understood by those of skill in the art. For example, the foregoing embodiments support AC-coupled links, DC-coupled links, or both. Therefore, the spirit and scope of the appended claims should not be limited to the foregoing description. Only those claims specifically reciting “means for” or “step for” should be construed in the manner required under the sixth paragraph of 35 U.S.C. §112.
Claims
1. A method for performing refresh operations in a memory device, the method comprising:
- transitioning the memory device from a first refresh state in which a memory controller controls refreshing for the memory device, to a second refresh state in which the memory device controls the refreshing;
- while the memory device is in the second refresh state, sending progress information for the refreshing operations from the memory device to the memory controller; and
- while returning from the first refresh state to the second refresh state, using the progress information received from the memory device to control the sequencing of subsequent operations by the memory controller.
2. The method of claim 1, wherein the subsequent operations can include read operations, write operations, activate operations, precharge operations and refreshing operations.
3. The method of claim 2, wherein controlling the sequencing of the subsequent operations involves determining from the progress information whether a self-refreshing operation is in process or will occur in the near future, and if not, initiating one or more subsequent memory accesses without having to wait for a self-refreshing operation to complete.
4. The method of claim 2, wherein controlling the sequencing of the subsequent operations involves performing memory operations to other banks in the memory device while a self-refreshing operation completes for a given bank in the memory device.
5. The method of claim 1, wherein transitioning from the first refresh state to the second refresh state involves entering a power-down state, wherein a high-speed interface between the memory controller and the memory device is powered down.
6. The method of claim 1, wherein sending the progress information from the memory device to the memory controller involves using a sideband link to send the progress information.
7. The method of claim 1, wherein transitioning from the first refresh state to the second state involves sending information from the memory controller to the memory device which can be used to determine which rows and banks are to be refreshed next.
8. The method of claim 1, wherein during the first refresh state, a frequency of the refreshing operations is dynamically adjusted to account for changes in junction temperature on the memory device.
9. The method of claim 1, wherein while controlling the sequencing of subsequent operations, the memory controller uses the progress information received from the memory device to determine when an in-procress self-refresh operation actually completes.
10. A method for supporting refreshing operations during a power-down state in a memory device, the method comprising:
- transitioning the memory device from a normal operating state to a power-down state, wherein a high-speed interface on the memory device is powered down during the power-down state;
- wherein transitioning to the power-down state involves receiving row/bank information at the memory device from a memory controller, wherein the row/bank information can be used by the memory device to determine which row/bank is to be refreshed next;
- while the memory device is in the power-down state, sending commands to control refreshing operations from the memory controller to the memory device; and
- while returning from the power-down state to the normal operating state, if a given bank in the memory device is performing a refreshing operation, initiating memory operations to other banks in the memory device while the refreshing operation for the given bank completes.
11. A memory system comprising:
- a memory controller to control refreshing operations for the memory device during a first refresh mode;
- the memory device coupled to the memory controller, the memory device;
- to control refreshing operations internally during a second refresh mode, wherein the memory device includes an interface to send progress information for refreshing operations during the second refresh mode to the memory controller; and
- wherein upon returning from the first refresh mode to the second refresh mode, the memory controller is configured to use the progress information received from the memory device to control the sequencing of subsequent operations for the memory device.
12. The memory system of claim 11, wherein the subsequent operations can include read operations, write operations, activate operations, precharge operations and refreshing operations.
13. The memory system of claim 12, wherein while controlling the sequencing of the subsequent operations, the memory controller is configured to determine from the progress information whether a self-refreshing operation is in process or will occur in the near future, and if not, to initiate one or more subsequent memory accesses without having to wait for a self-refreshing operation to complete.
14. The memory system of claim 12, wherein while controlling the sequencing of the subsequent operations, the memory controller is configured to perform memory operations to other banks in the memory device while a self-refreshing operation completes for a given bank in the memory device.
15. The memory system of claim 11, wherein the second refresh state is a low-power state, and wherein a high-speed interface between the memory controller and the memory device is powered down.
16. The memory system of claim 11, wherein the memory device is configured to use a low-power sideband link to send the progress information to the memory controller.
17. The memory system of claim 11, wherein while transitioning from the first refresh mode to the second refresh mode, the memory controller is configured to send information to the memory device, which can be used to determine which rows and banks are to be refreshed next.
18. The memory system of claim 11, wherein during the second refresh state, the memory device is configured to dynamically adjust a frequency of the self-refreshing operations to account for changes in junction temperature on the memory device.
19. The memory system of claim 11, wherein while controlling the sequencing of subsequent operations, the memory controller uses the progress information received from the memory device to determine when an in-procress self-refresh operation actually completes.
20. A memory device comprising:
- a memory array having a plurality of memory cells;
- a first interface to receive a first refresh command and a second refresh command, wherein: the first refresh command specifies that the memory device refresh a predetermined row of the plurality of memory cells in the memory array; and the second refresh command specifies that the memory device refresh a plurality of rows in the memory array by automatically incrementing an internal address corresponding to a row of the memory cells currently being refreshed; and
- a second interface to transmit information corresponding to the row of the memory cells currently being refreshed.
21. A memory controller comprising:
- an interface to communicate with a memory device; and
- a sequencing mechanism to sequence operations for the memory device;
- wherein during a first refresh state, the sequencing mechanism is configured to control refreshing operations for the memory device;
- wherein during a second refresh state, the sequencing mechanism is configured to allow the memory device to control refreshing operations for the memory device, and the memory controller is configured to receive progress information for such self-refreshing operations from the memory device; and
- wherein upon returning from the second refresh state to the first refresh state, the sequencing mechanism is configured to use the progress information received from the memory device to control the sequencing of subsequent operations for the memory device.
22. The memory controller of claim 21, wherein the subsequent operations can include read operations, write operations, activate operations, precharge operations and refreshing operations.
23. The memory controller of claim 22, wherein while controlling the sequencing of the subsequent operations, the sequencing mechanism is configured to determine from the progress information whether a self-refreshing operation is in process or will occur in the near future, and if not, to initiate one or more subsequent memory accesses without having to wait for a self-refreshing operation to complete.
24. The memory controller of claim 22, wherein while controlling the sequencing of the subsequent operations, the sequencing mechanism is configured to perform memory operations to other banks in the memory device while a self-refreshing operation completes for a given bank in the memory device.
25. The memory controller of claim 21, wherein the second refresh state is a low-power state, wherein a high-speed interface between the memory controller and the memory device is powered down.
26. The memory controller of claim 21, wherein the memory controller is configured to receive the progress information through a low-power sideband link between the memory device and the memory controller.
27. A memory controller comprising:
- a first interface on the memory controller that couples the memory controller to a memory device through a first link; and
- a second interface on the memory controller that couples the memory controller to the memory device through a second link;
- wherein during a power-down state, the first interface is powered down, and the memory controller is configured to send commands to control refreshing operations to the memory device through the second link;
- wherein while transitioning from a normal operating state to the power-down state, the memory controller is configured to send row/bank information to the memory device, wherein the row/bank information can be used by the memory device to determine which rows/bank is to be refreshed next; and
- wherein while returning from the power-down state to a normal operating state, if a given bank in the memory device is performing a refreshing operation, the memory controller is configured to initiate memory operations to other banks in the memory device while the refreshing operation for the given bank completes.
28. A memory device comprising:
- one or more memory banks;
- an interface to communicate with a memory controller; and
- a self-refreshing mechanism;
- wherein during a first refresh state, the self-refreshing mechanism is configured to allow the memory controller to control refreshing operations for the memory device; and
- wherein during a second refresh state, the self-refreshing mechanism is configured to:
- control refreshing operations for the memory device; and
- send progress information for refreshing operations to the memory controller, so that when the memory device returns to the first refresh state, the memory controller can use the progress information to control the sequencing of subsequent operations for the memory device.
29. The memory device of claim 28, wherein the subsequent operations can include activate operations, precharge operations, read operations, write operations and refreshing operations.
30. The memory device of claim 28, wherein while controlling the sequencing of the subsequent operations, the memory controller is configured to determine from the progress information whether a self-refreshing operation is in process or will occur in the near future, and if not, to initiate one or more subsequent memory accesses without having to wait for a self-refreshing operation to complete.
31. The memory device of claim 28, wherein while controlling the sequencing of the subsequent operations, the memory controller is configured to perform memory operations to other banks in the memory device while a self-refreshing operation completes for a given bank in the memory device.
32. The memory device of claim 28, wherein the second refresh state is a low-power state, wherein a high-speed interface between the memory controller and the memory device is powered down.
33. The memory device of claim 28, wherein the memory device is configured to send the progress information to the memory controller through a low-power sideband link between the memory device and the memory controller.
34. The memory device of claim 28, wherein during the second refresh state, the self-refreshing mechanism is configured to dynamically adjust a frequency of the self-refreshing operations to account for changes in junction temperature on the memory device.
35. A memory controller device for controlling a memory device, the memory controller device comprising:
- an first interface to transmit a first refresh command and a second refresh command, wherein: the first refresh command specifies that the memory device refresh a predetermined row of the plurality of memory cells in the memory array; and the second refresh command specifies that the memory device refresh a plurality of rows in the memory array by automatically incrementing an internal address corresponding to a row of the memory cells currently being refreshed; and
- a second interface to receive information corresponding to the row of the memory cells currently being refreshed.
Type: Application
Filed: Apr 7, 2010
Publication Date: Feb 2, 2012
Applicant: RAMBUS INC. (Los Altos, CA)
Inventors: Frederick A. Ware (Los Altos Hills, CA), Brent Haukness (Monte Sereno, CA)
Application Number: 13/257,412
International Classification: G06F 12/00 (20060101);