Memory Data Transfer
In one aspect, there is provided a method for controlling data output by a memory device. The method may include receiving a first clock signal having a first frequency. Moreover, a second and third clock signals may be produced from the first clock signal. The second and third clock signals may have second and third frequencies, respectively, that are about equal to the first frequency. The second and third frequencies may be out of phase relative to each other. A controller may output a first data in response to a rising edge of the second clock signal and output a second data in response to another rising edge of the third clock signal.
Latest ADVANCED MICRO DEVICES, INC. Patents:
- SYSTEMS AND METHODS FOR DISABLING FAULTY CORES USING PROXY VIRTUAL MACHINES
- Gang scheduling with an onboard graphics processing unit and user-based queues
- Method and apparatus of data compression
- Stateful microcode branching
- Approach for enabling concurrent execution of host memory commands and near-memory processing commands
This application claims the benefit under 35 U.S.C. Section 119(e) of the following: U.S. Provisional Patent Application No. 60/841,389, entitled “MEMORY DATA TRANSFER,” Attorney Docket No. 33609-018, filed Aug. 30, 2006, which is incorporated by reference herein.
BACKGROUNDInteractions between computer processing units and computer memories are regulated by triggering events. The triggering events may be the rising edge, the falling edge, and the rising and falling edges of a clock. For example, double data rate (DDR) dynamic random access memory (DRAM) chips have been made using both rising and falling edges of a delay lock loop (DLL) clock signal to trigger data transfers from the DRAM.
SUMMARYThe subject matter disclosed herein provides systems and methods for controlling a memory data transfer from a memory device, such as DDR DRAM, to another device.
In one aspect, there is provided a method for controlling data output by a memory device. The method may include receiving a first clock signal having a first frequency. Moreover, second and third clock signals may be produced from the first clock signal. The second and third clock signals may have second and third frequencies, respectively, that are about equal to the first frequency. The second and third clock signals may be out of phase relative to each other. A controller may output, in response to a rising edge of the second clock signal, a first data and output, in response to a rising edge of the third clock signal, a second data.
Various aspects of embodiments of the invention may provide one or more of the following capabilities. A delay lock loop clock generator may be coupled to the controller and produce the second and third clock signals. Moreover, the second and third clock signals may be generated, such that they are out of phase relative to each other by about 180°. The first clock signal may be received from the memory device. The data may be received from a memory device. The first data may be saved, based on a rising edge of the second clock signal, using a D-type flip-flop. The second data may be saved, based on a rising edge of a third clock signal, using a D-type flip-flop. A Double Data Rate (DDR) Dynamic Random Access Memory (DRAM) may be used as the memory device.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive. Further features and/or variations may be provided in addition to those set forth herein. For example, the implementations described herein may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed below in the detailed description.
In the drawings:
The DLL clock generator 22, coupled to storage area 18, receives clock 30 and generates a first clock signal 32 and a second clock signal 34, both of which are depicted at
The DLL clock generator 22 is configured to provide clock signals, such as clock signals 32 and 34, to controller 24. Referring again to
The controller 24 is configured to receive data from the storage area 18. The controller 24 also provides, in response to the rising edges 36-46, output data 17. In some implementations, controller 24 is implemented as a memory controller for a DDR DRAM, although controller 24 may be used as a controller for any other memory device as well. Moreover, although controller 24 is depicted as separate from the other components of system 100, in some implementations, controller 24 may be implemented at other locations as well.
In some implementations, controller 24 includes a D-type flip-flop device to latch (i.e., save) data 4, when the rising edges 36-46 trigger the D-type flip-flop to save a sample value of data 4. The controller 24 may also include command lines and address lines (not shown) to access and thus receive data 4 from storage area 18.
The storage device 18 may be implemented as any type of memory including, DRAM, DDR DRAM, SDRAM (synchronous dynamic random access memory), and the like. In some implementations, storage area 18 includes a clock generator for providing clock 30; while in other implementations, that clock generator is external to storage area 18. Although not shown, storage area 18 may be coupled to address lines and/or command lines from controller 24 to enable specific portions of storage area 18 to be addressed and provided (e.g., as data 4).
At stage 112, clock signal 30 is converted into the two clock signals 32, 34. The DLL clock generator 24 may receive clock signal 30, which in some cases is produced by a clock generator (not shown) associated with storage area 18. The DLL clock generator 22 uses clock signal 30 to produce clock signals 32, 34. In some implementations, DLL clock generator 22 uses clock signal 30 to produce clock signals 32, 34, with clock signal 32 phase shifted about 90° relative to clock signal 30, and clock signal 34 phase shifted about 180° relative to clock signal 32. The DLL clock generator 22 provides clock signals 32, 34 to controller 24.
At stage 114, controller 24 uses clock signals 32, 34 to control the triggering of data transfers. The controller 24 controls, based on rising edges 36-46 (which triggers D-type flip-flops to sample data 4), the output data 17. The controller 24 thus controls the data transfer from storage area 18 to another device, which may be coupled to output 17. In some implementations, the output data 17 is transferred (from storage device 18) at twice the rate, when compared to using only the rising edges of the clock signal 30.
The foregoing description is intended to illustrate but not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims. For example, phase shifts other than 180° between the signals 32, 34 may be used as well. Moreover, although controller 24 and storage area 18 are depicted as separate, in some implementations storage area 18 and controller 24 may be implemented on the same device. In addition, the lines linking the components of
Claims
1. A method for controlling data output by a memory device, the method comprising:
- receiving, at a clock generator coupled to a controller, a first clock signal having a first frequency;
- producing, at the clock generator, a second and third clock signals from the first clock signal, the second and third clock signals having second and third frequencies, respectively, that are substantially equal to the first frequency, the second and third clock signals being out of phase relative to each other; and
- outputting, at the controller, a first data in response to a rising edge of the second clock signal and a second data in response to another rising edge of the third clock signal.
2-17. (canceled)
Type: Application
Filed: Jun 15, 2009
Publication Date: Oct 8, 2009
Applicant: ADVANCED MICRO DEVICES, INC. (Sunnyvale, CA)
Inventor: Joseph D. Macri (San Francisco, CA)
Application Number: 12/484,580
International Classification: G11C 8/18 (20060101);