1. Technical Field
This disclosure relates to memory systems, and more particularly to memory interface calibration.
2. Description of the Related Art
Power consumption by electronic devices has been a growing concern for some time. However with the proliferation of mobile devices like mobile phones, tablets, computers and the like, reducing power consumption has become a key design metric. As such, designers are constantly looking for ways to reduce the amount of power consumed by the devices they develop.
There are many ways to reduce power consumption of a device. One mechanism to reduce power consumption is referred to as clock gating in which one or more clock signals that are provided to a device or a portion of a device are stopped when that device or portion isn't being used. The stopped clock reduces the device transistor transitions, and thus reduces the power consumed. Another mechanism is referred to as power gating in which the supply voltage provided to a device or a portion of a device is removed when that device or portion isn't being used. In some cases combinations of clock and power gating may be used for even greater reductions.
While these power reduction mechanisms work well, there can be drawbacks. For example, depending on the type of device it may take several clock cycles or some amount of time for the device to return to full operation after a clock or power gate operation. In some cases, the amount of time to return to full operation may be unacceptable, but there may still be a requirement to reduce power.
Various embodiments of a system and method of calibrating a memory interface while reducing power are disclosed. Broadly speaking, a memory system includes a memory interface unit that controls read and write access to a memory unit by controlling the timing signals to the memory unit. The memory interface unit may also calibrate the timing signals at predetermined intervals to compensate, for example, process, voltage and temperature drift. The memory interface may also operate in a low power mode. In response to an occurrence of a given predetermined interval while the memory interface unit is in the low power mode, the memory interface unit may be configured to transition to the normal mode, and then calibrate the timing unit.
In one embodiment, a system includes memory unit having one or more storage arrays, and a memory interface unit that may be coupled between a memory controller and the memory unit. The memory interface unit may include a timing unit that may generate timing signals for controlling read and write access to the memory unit, and a control unit that may calibrate the timing unit at predetermined intervals. The memory interface unit may be configured to operate in a normal mode and a low power mode. However, in response to an occurrence of a given predetermined interval while the memory interface unit is in the low power mode, the memory interface unit may be configured to calibrate the timing unit subsequent to transitioning to the normal mode.
In one particular implementation, the memory interface unit may also return to the low power mode subsequent to completion of calibration of the timing unit and in response to continuing to receive an asserted idle signal from the memory controller. In one embodiment, the memory controller may assert the idle signal dependent upon memory traffic between the memory controller and the memory unit.
Specific embodiments are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description are not intended to limit the claims to the particular embodiments disclosed, even where only a single embodiment is described with respect to a particular feature. On the contrary, the intention is to cover all modifications, equivalents and alternatives that would be apparent to a person skilled in the art having the benefit of this disclosure. Examples of features provided in the disclosure are intended to be illustrative rather than restrictive unless stated otherwise.
As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.
Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112, paragraph (f), interpretation for that unit/circuit/component.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.
Turning now to
In various embodiments, the processing unit 12 may include one or more processor cores and one or more cache memories (not shown). The processor cores may execute application software as well as operating system (OS) software. The OS may control various features and functions of the integrated circuit.
The memory unit 35 may be representative of any type of memory. In one embodiment, the memory device 35 may be representative of one or more random access memory (RAM) memory devices in the dynamic RAM (DRAM) family of devices as described below in conjunction with the description of
In one embodiment, the memory interface unit 20 may serve as a memory control and configuration interface. As such the memory interface unit 20 of
In one embodiment, the control unit 22 may be configured to calibrate and control the operation of DLL unit 30. In one embodiment, control unit 22 may use control registers and a calibration timer (both shown in
More particularly, as described in greater detail below in conjunction with the description of
It is possible that the memory interface unit 20 or at least portions of it may be placed in a low power mode of operation during which portions of the memory interface unit 20 may be powered down using power gating techniques. Alternatively, during the lower power mode various system clocks that feed portions of the memory interface unit 20 may be stopped using clock gating techniques. In some embodiments, the memory interface unit 20 may be placed in the low power mode due to inactivity of the memory controller 18, for example. However, regardless of whether the memory interface 20 is in the low power mode or a normal mode of operation, it may still be necessary to calibrate the timing unit 29. More particularly, as mentioned above voltage and temperature drift may cause the timing unit signals to shift such that the memory device cannot be read from or written to. Thus, the timing unit 29 may be calibrated at predetermined intervals. Because it is possible that the memory interface 20 may stay in the low power mode for extended periods, the resulting drift upon awakening could make the memory interconnect 33 unusable without a full calibration and initialization. A full calibration may take an unacceptable amount of time. Accordingly, as described in greater detail below, the memory interface unit 20 may be forced out of the low power mode to perform a calibration sequence at certain intervals, and once the calibration is complete, if the low power mode is still warranted, the memory interface unit 20 may be placed back into the low power mode. Doing so may ensure that the memory interface unit 20 is capable of memory operations as soon as possible upon awakening from the low power mode.
Referring to
As described above, the control unit 22 may control the calibration sequence of the timing unit 29. During operation of the IC 10, the calibration timer 223 may be programmed to a particular value. The calibration timer may be any type of timer such as a count up or count down timer as desired. As such, the calibration timer may be configured to count up to or down to the programmed count value, and to notify the control unit 22. In response to the calibration timer 223 notification, the control unit 22 may send a calibration request to the memory controller 18. The memory controller 18 may be configured to determine whether the memory interface is too busy to perform a calibration at the time it receives a calibration request. The memory controller 18 may either grant the request with a calibration acknowledgement (Ack) or hold off the control unit 20 for some predetermined time interval.
If the calibration request is granted, the control unit 22 may initiate the calibration by signaling the MDLL 32 to initiate a training sequence to re-lock onto the Mem Ref Clk so that the control unit 20 may obtain new SDLL phase offsets for generation of data strobes. In addition, the control unit 20 may also initiate reads and writes to the memory unit 35 while adjusting various delay elements including SDLLs. Once the calibration timing values are obtained, the control unit 20 may write the calibration values to the control registers 22.
As mentioned above, the memory interface unit 20 may be placed in a low power mode for various reasons. For example, in one embodiment the memory controller 18 may detect inactivity on the memory interconnect 33 and responsively power down all or a portion of the memory interface unit 20. In one embodiment, the memory controller 18 may send an Idle signal to the memory interface unit 20. In response to the Idle signal, the memory interface unit 20 may be configured to enter a low power mode in which portions are power gated or powered down. However, during operation in the low power mode various circuits in the memory interface unit 20 may still be operating. For example, in one embodiment, the calibration timer 223 may continue to operate normally in the low power mode. Accordingly, when the calibration timer 223 elapses it may be configured to send a notification to the control unit 22. In response, at least portions of the control unit 22 may be powered up to send a calibration request to the memory controller 18, and to await a calibration Ack signal. When a calibration Ack is received, the control unit 22 may be configured to power up the remaining portions of the control unit 22 to perform the calibration of the timing unit 29.
If the control unit 22 does not receive a Cal Ack from the memory controller 18, the control unit 22 waits (block 309). However, if the control unit 22 receives the Cal Ack from the memory controller 18, the control unit 22 may power up any remaining powered down circuits within the memory interface unit 20, and initiate calibration of the timing unit 29 as described above. Once the new calibration values have been received, the control unit 22 may save the values by writing them to the control registers 225 (block 311).
If the memory controller 18 is still providing the Idle signal to the memory interface unit 20 (block 313), the memory interface unit 20 may return to the low power mode of operation (block 315). Operation continues as described above in conjunction with the description of block 303. Otherwise, the memory interface unit 20 may continue to operate in the normal mode of operation (block 317). Operation continues as described above in conjunction with the description of block 305.
Turning to
The peripherals 407 may include any desired circuitry, depending on the type of system. For example, in one embodiment, the system 400 may be included in a mobile device (e.g., personal digital assistant (PDA), smart phone, etc.) and the peripherals 407 may include devices for various types of wireless communication, such as WiFi, Bluetooth, cellular, global positioning system, etc. The peripherals 407 may also include additional storage, including RAM storage, solid-state storage, or disk storage. The peripherals 407 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc. In other embodiments, the system 400 may be included in any type of computing system (e.g. desktop personal computer, laptop, workstation, net top etc.).
The system memory 405 may include any type of memory. For example, as described above in conjunction with
Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.