SINGLE CYCLE REFRESH OF MULTI-PORT DYNAMIC RANDOM ACCESS MEMORY (DRAM)
A multi-port DRAM having refresh cycles interleaved with normal read and write operations implements a single cycle refresh sequence by deferring the write portion of the sequence until the next refresh cycle. During a single clock cycle, the system writes stored data from a refresh buffer into a row in the memory array and then reads data from one row of the memory array into the buffer.
Latest IBM Patents:
The field of the invention is that of multi-port dynamic random access memory.
BACKGROUND OF THE INVENTION
The NMOS transistor 24 couples the storage node 22 to the write bitline WBL for a write operation, when the write wordline WWL goes high. The storage node 22 may preferably have a capacitor 25 to keep the data bit. The data bit stored in a storage node 22 can be read out to the read bitline RBL when the read wordline RWL goes high. If the storage node 22 keeps a high data, two NMOS transistors 21 and 23 are both on, discharging the RBL. If the storage node keeps a low voltage, the NMOS transistor 23 is off, keeping the RBL at the precharged voltage.
The 3T gain cell can simultaneously realize a read operation by using RWL and RBL, and a write operation by using WWL and WBL, thereby providing a solution for a high performance memory system. It does, however, require a refresh to maintain the data. Unlike a conventional 1T cell in
The art could benefit from a 3T1C cell that has a single cycle refresh mode that improves the memory availability for normal read and write operations.
SUMMARY OF THE INVENTIONThe invention relates to a single cycle refresh management for a 3T1C gain cell dual-port memory that defers the write back portion of the sequence until the next refresh cycle, thereby taking only one clock cycle by performing the write operation of the kth refresh during the same clock cycle as the read operation of the (k+1)th refresh.
BRIEF DESCRIPTION OF THE DRAWINGS
On the top row, the CLK signals 50-1, - - - 50-5 mark off a sample of clock pulses that illustrate the operations of the system. Lines 2 and 3 show the timing of normal read and write operations to the memory. Read operations (READ), denoted with numerals 1, 3 and 5 representing read row addresses, and write operations (WE), denoted with 2, 4, 6, representing write row addresses, may both take place during the same clock cycle. Arrows extending from lines 2 and 3 to lines 5 and 6, respectively, denote that RWL and WWL are each activated within the same clock cycle as the corresponding read and write enable signals.
It is apparent on lines 5 and 6 that the refresh cycles are inserted among, the normal read and write cycles. It is also evident that the refresh cycle R1, which starts on clock cycle 50-2 is half completed within the same clock cycle, but is not fully completed until clock cycle 50-4, when the second half of refresh cycle R1 takes place.
Within clock cycle 50-2, WWL is activated to write the contents of the RPBUF (Read Page Buffer, stores the read data temporarily) to the memory row flagged during the preceding refresh cycle R0 preceding the row flagged in cycle R1. A slight skew, not shown in the figure, separates the write and read operations in time, so that the contents of RPBUF are read out into the appropriate row and the circuits have stabilized before the read operation loads the contents of the next row into RPBUF, thus avoiding contamination of the read-in data.
A single cycle refresh is realized by delaying a write function till the next cycle. A refresh row address counter (RAC) shown in
When a write command is received for the data in the RPBUF, write data will be written for the corresponding row in the array and RPBUF avoiding the possible complexities when a read after write operation for the data held in RPBUF is performed. The data path from write data pad to RPBUF is controlled by the Hit signal in block 350 of
Referring now to
Unit 370 is a reference cell which provides a reference voltage level to the RBLB, which are the inputs to sense amplifier together with RBL. The reference cell consists of the same memory cell as normal 3T1C cell by skipping the write access transistor. The read head transistor (designated ZVT) gate is tied to VREF, which is an external voltage supply. The VREF is the average value of GND and VDD.
Unit 330 contains the Data Conversion Logic (DCL) and stores the data from the memory cell in question as part of RPBUF It manages the write back data polarity when we read and write back to the cells. Because the read bitline and write bitlines are twisted one and twice respectively, the read data in RPBUF needs to keep track of the data and address scramble to correctly maintain the data in the cells.
At the bottom of the Figure, unit 340 contains a conventional latch DOUT that stores and sends out the data that is read out in normal operation, and keeps the data to be fetched even after RBL and RBLB go back to the precharge state “High”.
On the left side of
As discussed above, unit 350 maintains the data consistency between array and RPBUF by simultaneously writing the new write data in both array and RPBUF when the Hit signal is active. Ordinarily, the bitline driver will be fed by data from the Data pad when the WE signal is high and fed from unit 330 when the REF signal is high.
Those skilled in the art will appreciate that the ratio of refresh cycles to ordinary read and write operations will vary with different products and as the technology changes. In particular, the retention time of charge in a cell will determine the overall frequency of the interval between refresh operations.
While the invention has been described in terms of a single preferred embodiment, those skilled in the art will recognize that the invention can be practiced in various versions within the spirit and scope of the following claims.
Claims
1. A random access memory system comprising: p1 an array of dual-port dynamic memory cells having a storage node connected to a first pass transistor that is controlled by a write word line and further connected to a write bitline, said storage node further being connected to the gate of a first read transistor that is connected in series between a voltage supply and a read pass transistor, said read pass transistor being further connected to a read bitline and having a gate controlled by a read word line; and
- support circuits for said array, including refresh means for refreshing cells in said array comprising a counter for specifying the next row to be refreshed and a storage buffer for storing the contents of the last row to be read, in which the stored contents of an (n-l )th row of the array are written back from the storage buffer into the cells of the (n-l )th row of the array after a refresh latency period and during the same clock cycle that the contents of the nth row are written into the storage buffer.
2. A memory according to claim 1, in which said refresh means reads data from a selected row into said storage buffer in a first clock cycle of a refresh cycle and writes back said data from said storage buffer to said selected row in a second clock cycle of the refresh cycle, said first and second clock cycles of a refresh cycle being separated in time by a refresh latency period.
3. A memory according to claim 2, in which said first and second clock cycles of a refresh cycle are interspersed among a set of normal read and write cycles.
4. A memory according to claim 1, in which said stored contents of an (n-1)th row are written from said storage buffer into said array before the contents of the nth row of said array are read into said storage buffer.
5. A memory according to claim 2, in which said stored contents of an (n-1)th row are written from said storage buffer into said array before the contents of the nth row of said array are read into said storage buffer.
6. A memory according to claim 3, in which said stored contents of an (n-1)th row are written from said storage buffer into said array before the contents of the nth row of said array are read into said storage buffer.
7. A memory according to claim 1, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
8. A memory according to claim 2, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
9. A memory according to claim 3, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
10. A memory according to claim 4, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
11. A memory according to claim 5, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
12. A memory according to claim 6, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written Into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
13. A method of refreshing a random access memory system having an array of dual-port dynamic memory cells having a storage node connected to a write bitline, said storage node further being connected to the gate of a first read transistor that is connected in series to a read bitline; and
- support circuits for said array, including refresh means for refreshing cells in said array comprising a counter for specifying the next row to be refreshed and a storage buffer for storing the contents of the last row to be read, comprising the steps of:
- writing back stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array after a refresh latency period and during the same clock cycle that the contents of the nth row are written into the storage buffer; and
- suppressing in a write suppress means the writing of at least the contents of those cells of said storage buffer that correspond to memory cells that have been written Into after said (n-1)th row has been read.
14. A method according to claim 13, in which said refresh means reads data from a selected row into said storage buffer in a first clock cycle of a refresh cycle and writes back said data from said storage buffer to said selected row in a second clock cycle of the refresh cycle, said first and second clock cycles of a refresh cycle being separated in time by a refresh latency period.
15. A method according to claim 14, in which said first and second clock cycles of a refresh cycle are interspersed among a set of normal read and write cycles.
16. A method according to claim 13, in which said stored contents of an (n-1)th row are written from said storage buffer into said array before the contents of the nth row of said array are read into said storage buffer.
17. A method according to claim 14, in which said stored contents of an (n-1)th row are written from said storage buffer into said array before the contents of the nth row of said array are read into said storage buffer.
18. A method according to claim 15, in which said stored contents of an (n-1)th row are written from said storage buffer into said array before the contents of the nth row of said array are read into said storage buffer.
19. A method according to claim 13, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
20. A method according to claim 14, in which the row address of the (n-1)th row in the storage buffer is compared with the row address of data written into the array during the refresh latency period and the operation of writing back the stored contents of an (n-1)th row of the array from the storage buffer into the cells of the (n-1)th row of the array is suppressed when a write operation has taken place writing data into the (n-1)th row of the array during the latency period.
Type: Application
Filed: Jun 16, 2005
Publication Date: Dec 21, 2006
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION (Armonk, NY)
Inventors: Hoki Kim (Hopewell Junction, NY), Toshiaki Kirihata (Poughkeepsie, NY)
Application Number: 11/160,273
International Classification: G11C 7/00 (20060101);