This invention relates generally to memory devices, and more particularly to dynamic memory.
Memory circuits are vital components in computer and electronic systems which require permanent or temporary data storage. The memory circuits, such as dynamic random access memory (DRAM), are used in computer systems such as a processor system.
In processor based systems and electronic systems, the system operates at a certain frequency. Ideally, memory devices would operate at the same frequency as the system. However, memory devices do not generally operate at the same speed as the system. This is due to the high cost involved in manufacturing and operating memory devices that can operate at very high frequencies. Memory devices generally operate at a fraction of the speed of the processor and cause the system to run slower.
Memory devices have been unable to operate at the speed of microprocessors because of how they operate. Memory devices have to be very compact to hold and access the large amounts of data they are required to hold. For these devices to operate faster, a significant cost must be incurred to design and produce these devices. Generally, the cost prohibits the inclusion of faster memory devices in these systems.
In these computer and electronic systems, operational speeds of dynamic random access memories used as main memories have been increased, but are still low compared with operation speeds of microprocessors. This relatively low speed increases a wait time of the microprocessor, and impedes fast processing, as an access time and a cycle time of the DRAM form a bottleneck in a whole system performance.
One way that memory circuits can be made to write and read data faster is to build the memory circuits so they operate at a higher clock frequency. This has been done in microprocessors as can be seen by the increase in operating frequency in microprocessors. For example, a microprocessor running at 200 Mhz is generally much faster than a microprocessor running at 50 Mhz. However, by operating circuits at higher operating frequency, additional problems are encountered. For example, the amount of heat produced and power used by a circuit operating at a higher frequency can be greatly increased. This corresponds to high cost solutions to handle the heat and power problems. Furthermore, the increased use of portable devices, such as laptop computers, requires that power use by circuits be reduced. Also, the higher operating frequency can cause integrated circuit die to be more expensive.
Since memory devices are used in many different systems, increasing the speed of memory devices without significantly increasing the cost of memory devices can allow everything from wordprocessors to automatic teller machines to perform their tasks quicker.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for double data rate device and methods of reading data at double data rates.
In the following detailed description of the preferred embodiments, 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 inventions may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that process or mechanical changes may be made without departing from the scope of the present invention. The terms wafer and substrate used in the following description include any base semiconductor structure. Both are to be understood as including silicon-on-sapphire (SOS) technology, silicon-on-insulator (SOI) technology, thin film transistor (TFT) technology, doped and undoped semiconductors, epitaxial layers of a silicon supported by a base semiconductor, as well as other semiconductor support structures well known to one skilled in the art. Furthermore, when reference is made to a wafer or substrate in the following description, previous process steps may have been utilized to form regions/junctions in the base semiconductor structure. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
The various embodiments include self-timing, latency programmable pipeline design for the double data rate (DDR) output path. This invention allows a memory device to utilize a single data rate (SDR) dynamic random access memory (DRAM) design. The output data is transformed from an external clock domain to the delay lock loop (DLL) clock domain.
One embodiment of the present invention is a double data rate memory device. The double data rate memory device includes a storage element, a first pipeline, and a second pipeline. The pipelines are connected to the storage unit to output data from the storage unit on rising and falling edges of an external clock signal. Another embodiment is a memory device. The memory device includes a storage element and a plurality of pipelines. Each of the plurality of pipelines passes data on a plurality of events.
A double data rate device can output data at twice the rate of a single data rate device operating at the same frequency. For example, a double data rate device may output 20 bits of data in 10 cycles whereas a single data rate device may only output 10 bits of data in 10 cycles. Also, the double data rate device will have similar heat producing characteristics as the single data rate device. A single data rate device would have to operate at twice the speed of a double data rate device to output the same amount of data. By operating at twice the speed, significant heat is produced.
Although the data outputs are on both rising and falling edges, all control signals remain the same frequency as the external clock. Two pipelines, in parallel, can be used to output data on the rising and falling edges of the external clock. By using the propagation time of the pipelines and compensating for it, the data can be output synchronous to the external clock. This approach provides a better design with margins in terms of clock cycle time and process variation.
Using the various embodiments which will be described, a chip can be created that provides data at double data rate and looks to a computer system like a single data rate memory chip.
In another embodiment, a plurality of pipelines are used to output data from a storage unit. The data can be output on events such as different portions of a clock cycle.
The storage unit 101 can be an array of memory cells or an array of memory locations. The storage unit 101 can be a single array or a first and second array. The storage unit 101 can include two or more subarrays located in the same physical array. The storage unit 101 can include two or more subarrays located in two or more physical arrays. Any number of arrays or subarrays may be used. The storage unit 101 stores data which can include first data and second data.
The pipelines, 102 and 103, are connected to the storage unit 101 and the data buffer 104. Data is passed simultaneously from the storage unit 101 to the first pipeline 102 and the second pipeline 103. In one embodiment, the first pipeline 102 is connected to a first array of the storage unit 101 and the second pipeline 103 is connected to a second array of storage unit 101. The first pipeline 102 is used for outputting data or first data on the rising edge of an external clock. The second pipeline 103 is used for outputting data or second data on the falling edge of the external clock. In other embodiments, the first pipeline 102 is used for outputting data on the falling edge of the external clock and the second pipeline 103 is used for outputting data on the rising edge. The pipelines can pass data from the pipelines to a data buffer 104 such that data is received at the data buffer 104 on the rising and falling edges of the external clock. The data buffer 104 can output data to other devices or systems such as a processor or disk drive. In an alternate embodiment, the pipelines pass data directly to other systems or devices, such as processors, memory devices, and hard drives, without passing the data to the data buffer 104. The first pipeline 102 may output data before the second pipeline 103 or the second pipeline 103 may output data before the first pipeline. Generally, this is determined from the latency and address of the data.
The storage unit 101 can be an array of memory cells or an array of memory locations. The storage unit 101 can be a single array or a first and second array. The storage unit 101 can include two or more subarrays located in the same physical array. The storage unit 101 can include two or more subarrays located in two or more physical arrays. Any number of arrays or subarrays may be used. Any number of arrays or subarrays may be used.
The first mux 215 is connected to the storage unit 101, mux control 211, and the at least one first latch 212. The first mux 215 directs data to the at least one first latch 212 from the storage unit 101. The at least one first latch 212 passes data on a first event. The first event can be a signal, a rising clock edge, or a falling clock edge. The data can be passed to an output buffer or to other system devices such as a processor or disk drive.
The second mux 213 is connected to the storage unit 101, mux control 211, and the at least one second latch 214. The second mux 213 directs data to the at least one second latch 214 from the storage unit 101 in response to a signal from mux control 211. The at least one second latch 214 passes data on a second event. The second event can be a signal, a rising clock edge, or a falling clock edge.
The first pipeline includes the first mux 203, the at least one first strobe latch 204, the first DLL latch 205, and the first output buffer 206. The first mux 203 is connected to the storage unit 101. In other embodiments, the first mux 203 can be connected to a first array of the storage unit 101. The first mux 203 directs incoming data from the storage unit 101 to the at least one first strobe latch 204 in response to a signal from mux control 211. The first mux 203 can be controlled by the mux control 211, wherein the mux control 211 controls how and when the first mux 203 directs incoming data from the storage unit 101 to be placed on the first pipeline 102.
The at least one first strobe latch 204 is connected to the first mux 203 and first DLL latch 205. The at least one first strobe latch 204 passes data from the storage unit 101 through the first mux 203 to the first DLL latch 205. If the at least one first strobe latch 204 includes more than one latch, the latches are connected to each other in series. The time to pass data from the storage unit 101 to the strobe latches can be longer than a cycle time. Cycle time is the time between rising edges of the external clock. This time to pass data is also referred to as the data access time (DAT). Each of the at least one strobe latch 204 pipes or passes data to the next latch on a rising edge of the external clock or a determined offset from the rising edge of the external clock. The offset is adjusted so that data is not passed to the next latch until the next latch has passed its data to a subsequent latch or device. In some embodiments, a signal may be connected to each latch to cause each latch to pass data.
The first DLL latch 205 is connected to the at least one first strobe latch 204 and the output buffer 206. The first DLL latch 205 passes data from the at least one first strobe latch 204 to the output buffer 206. The data is passed such that it can be output or read from the first output buffer 206 at an appropriate time. For example, the first DLL latch can pass data in advance of the rising edge of the external clock so that data can be output or read from the first output buffer 206 on the rising edge of the external clock.
The second pipeline 103 includes the second mux 207, the at least one second strobe latch 208, the second DLL latch 209, and the second output buffer 210. The second mux 207 is connected to the storage unit 101. In other embodiments, the second mux 207 can be connected to a second array of the storage unit 101. The second mux 207 directs incoming data from the storage unit 101 to the at least one second strobe latch 208 in response to a signal from mux control 211. The second mux 207 can be controlled by the mux control 211, wherein the mux control 211 controls how and when the second mux directs incoming data from the storage unit 101 to be placed on the second pipeline 103. The mux control 211 can also determine which pipeline data is passed to.
The at least one second strobe latch 208 is connected to the second mux 207 and second DLL latch 209. The at least one second strobe latch 208 passes data from the storage unit 101 through the second mux 207 to the second DLL latch 209. If the at least one second strobe latch 208 includes more than one latch, the latches are connected to each other in series. The time to pass data from the storage unit 101 to the strobe latches can be longer than a cycle time. Cycle time is the time between rising edges of the external clock. This time to pass data is also referred to as the data access time (DAT). Each of the at least one second strobe latch 208 pipes or passes data to the next latch on a rising edge of the external clock or at a determined offset from the rising edge of the external clock. The offset is adjusted so that data is not passed to the next latch until the next latch has passed its data to a subsequent latch or device. In some embodiments, a signal may be connected to each latch to cause each latch to pass data.
The second DLL latch 209 is connected to the at least one second strobe latch 208 and the second output buffer 210. The second DLL latch 205 passes data from the at least one second strobe latch 208 to the second output buffer 210. The data is passed such that it can be output or read from the second output buffer 210 at an appropriate time. For example, the second DLL latch can pass data in advance of the falling edge of the external clock so that data can be output or read from the second output buffer 210 on the falling edge of the external clock. In other embodiments, the first output buffer 206 and the second output buffer 210 are combined into one output buffer.
The mux control 211 is connected to the first 203 and second 207 muxes. The mux control 211 controls how data from the storage unit 101 is selected and placed on the pipelines. The mux control 211 can determine which pipeline data will be placed on first.
Referring to
The control unit 301 may generate a delay lock loop (DLL) clock or an internal clock. The DLL clock operates at the same frequency as the external clock but operates in advance of the external clock. The control unit 301 may determine the amount that the DLL clock operates in advance of the external clock. The DLL clock allows the last latches or stages of the pipeline to fire in advance of the external clock to compensate for delays in passing data on the pipeline so that data is passed from the pipelines such that it can be passed to an output buffer or read on the edges of the external clock. The DLL clock can be connected to the DLL latches 205 and 209. The control unit 301 is connected to the pipelines and the elements of the pipelines. The control unit 301 controls the various stages or latches so that data is output synchronous to the external clock. The control unit 301 may connect the external clock to the strobe latches 204 and 208.
In some embodiments, the control unit 301 sends one or more signals to individual latches of the pipelines to control the passing of data along the pipelines.
The control unit 301 can be programmable to adjust timing of outputting the data by factoring latency and clock cycle time. Latency may be provided externally to the device. Clock cycle time propagation delays can be detected by the control unit 301.
The DLL clock generator 403 generates a DLL clock. The DLL clock operates in advance of an external clock.
The DLL latch driver 402 is connected to the DLL latches. The DLL latch driver 401 is used to tell or signal the DLL latches when to pass data to the next latch or buffer. The DLL latch driver 401 factors in latency in controlling the DLL latches. The DLL latch driver 402 utilizes the DLL clock to adjust timing of passing of data so that data is output properly and is synchronous with the external clock. The DLL latch driver 402 can control the DLL latches so that data is output alternately from pipelines on rising and falling edges of the DLL clock so data can be available synchronous with the external clock. The DLL latch driver can produce signals for control of the DLL latches.
Referring to
A determination is made as to which pipeline data is placed on 501. In some cases, data will be placed on the first pipeline which can output data on rising edges of an external clock. In other cases, data will be placed on the second pipeline which can output data on falling edges of the external clock. This determination can be made by an address of data and latency. Data is passed from the storage unit to the pipelines 502. The data can be passed to the first and second pipelines simultaneously or alternatingly For example, if the first piece of data is placed on the first pipeline, the second piece of data is placed on the second pipeline and the third piece of data is again placed on the first pipeline. Data is passed by the pipelines to an output buffer 503 such that it can be read on rising and falling edges of the external clock. In alternative embodiments, the data is passed by the pipelines and cycle time and latency are used to adjust the timing of the outputting of the data. In other embodiments, data is passed by the pipelines to an output buffer 503 such that it can be read on first and second events.
Referring to
A read command is issued 601. For example, a processor may make a request to read the data of a certain memory location. The data can be located in a storage unit. The data, for example, may be a bit, a byte, or any amount of data. The storage unit could be an array or memory cell. Each piece of the data is passed through a mux to a strobe latch of a pipeline 602. The pipeline is one of a plurality of pipelines. Each piece of the data is passed from the strobe latch to a delay latch of the pipeline 603. The data can be passed on an edge of an external clock or some other event or signal. Each piece of the data is passed from the delay latch to a system device 604. The data can be passed on an edge of an external clock or a clock in advance of the external clock. The system device can be a processor or a memory device. Each piece of data is an amount of data that can be transferred. Examples of such pieces of data are a bit, byte, or a word.
In another embodiment, a DLL clock is used to pass data from the pipelines to compensate for delays in data being passed through the pipeline.
The first pipeline 102 includes a first mux 203, a first latch 705, a second latch 707, a third latch 709, and a first DLL latch 205 connected in series. STLAT and its complement STLATi, are strobe latch control signals used to time the passing of data through the first latch 705. When STLAT is high and STLATi is low, data passes through the first latch 705. STLAT1 and its complement STLAT1i, are control signals used to time the passing of data through the second latch 707. When STLAT1 is high and STLAT1i is low, data passes through the second latch 707. DLLAT and DLLATi, are DLL latch control signals used to time the passing of data through the third latch 709 to the first DLL latch 205. When DLLAT is high and DLLATi is low, data passes through the third latch 709. DLLR0 and its complement DLLR0i, are DLL latch control signals used to time the passing of data through the first DLL latch 205. When DLLR0 is high and DLLR0i is low, data passes through the first DLL latch 205 and makes the data available for output on a rising edge of a clock.
The second pipeline 103 includes a second mux 207, a first latch 706, a second latch 708, a third latch 710, and a second DLL latch 209 connected in series. When STLAT is high and STLATi is low, data passes through the first latch 706. When STLAT1 is high and STLAT1i is low, data passes through the second latch 708. When DLLAT is high and DLLATi is low, data passes through the third latch 710 to the second DLL latch 209. DLLF0 and its complement DLLF0i, are control signals used to time the passing of data through the second DLL latch 209 and makes the data available for output on a falling edge of a clock.
The STLAT and STLAT1 signals occur at fixed offsets to the rising edge of the clock. The latency, cycle time, and propagation delay of the memory circuit are taken into consideration. The signals occur such that data is passed to a next latch only after the next latch has passed its data to a subsequent latch or other device.
The DLLR0 signal and the DLLF0 signals are created from the rising and falling edges of a DLL clock, respectively. The DLL clock operates at the same frequency as the clock but operates in advance of the clock so that data is available on rising and falling edges of the clock. The DLLAT signal occurs on falling edges of the DLLR0 signal or the DLLF0 signals depending on the latency.
The invention includes double data rate memory devices and methods. These allow data to be transferred at dual rates or greater.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. Many adaptations of the invention will be apparent to those of ordinary skill in the art. Accordingly, this application is intended to cover any adaptations or variations of the invention. It is manifestly intended that this invention be limited only by the following claims and equivalents thereof.
This application is a Continuation of 10/731,276, filed Dec. 9, 2003, now U.S. Pat. No. 7,093,095, which is a Continuation of U.S. application No. 09/388,686, filed Sep. 2, 1999, now U.S. Pat. No. 6,694,416, which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4463443 | Frankel et al. | Jul 1984 | A |
5007012 | Dujari | Apr 1991 | A |
5402389 | Flannagan et al. | Mar 1995 | A |
5506814 | Hush et al. | Apr 1996 | A |
5592488 | Thomann et al. | Jan 1997 | A |
5657289 | Hush et al. | Aug 1997 | A |
5699314 | Hush et al. | Dec 1997 | A |
5703826 | Hush et al. | Dec 1997 | A |
5717647 | Hush et al. | Feb 1998 | A |
5778007 | Thomann et al. | Jul 1998 | A |
5815447 | Thomann | Sep 1998 | A |
5822266 | Kikinis | Oct 1998 | A |
5834813 | Ma et al. | Nov 1998 | A |
5854800 | Thomann et al. | Dec 1998 | A |
5875134 | Cloud | Feb 1999 | A |
5915128 | Bauman et al. | Jun 1999 | A |
5920511 | Lee et al. | Jul 1999 | A |
5923901 | Kawaura | Jul 1999 | A |
5953258 | Thomann | Sep 1999 | A |
5963469 | Forbes | Oct 1999 | A |
5986948 | Cloud | Nov 1999 | A |
6011751 | Hirabayashi | Jan 2000 | A |
6060916 | Park | May 2000 | A |
6067585 | Hoang | May 2000 | A |
6078546 | Lee | Jun 2000 | A |
6084802 | Shinozaki | Jul 2000 | A |
6094375 | Lee | Jul 2000 | A |
6112267 | McCormack et al. | Aug 2000 | A |
6118729 | Hirabayashi et al. | Sep 2000 | A |
6151271 | Lee | Nov 2000 | A |
6202139 | Witt et al. | Mar 2001 | B1 |
6282128 | Lee | Aug 2001 | B1 |
6314042 | Tomishima et al. | Nov 2001 | B1 |
6446180 | Li et al. | Sep 2002 | B2 |
6477107 | Lee | Nov 2002 | B1 |
6477592 | Chen et al. | Nov 2002 | B1 |
6516363 | Porter et al. | Feb 2003 | B1 |
6522599 | Ooishi et al. | Feb 2003 | B2 |
6694416 | Thomann et al. | Feb 2004 | B1 |
6823407 | Porter et al. | Nov 2004 | B2 |
Number | Date | Country |
---|---|---|
19821641 | Jul 1999 | DE |
19821641 | Jul 1999 | DE |
0778575 | Jun 1997 | EP |
11-066847 | Mar 1999 | JP |
11-191292 | Jul 1999 | JP |
11-195296 | Jul 1999 | JP |
11-213668 | Aug 1999 | JP |
WO-9950852 | Oct 1999 | WO |
Number | Date | Country | |
---|---|---|---|
20060198234 A1 | Sep 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10731276 | Dec 2003 | US |
Child | 11380617 | US | |
Parent | 09388686 | Sep 1999 | US |
Child | 10731276 | US |