This invention relates to memory devices, and, more particularly, to a memory device having separate unidirectional write and read data buses.
Memory devices are commonly used in a wide variety of electronic devices, such as personal computers. A memory device 10, such as a dynamic random access memory (“DRAM”) device, a static random access memory (“SRAM”) device, a flash memory device, or another type of memory device, is shown in
In operation, command signals corresponding to a memory command, such as a read or a write command, are coupled through the command bus 16 to the command terminals 14. In response, the memory device 10 performs an operation corresponding to the memory command. Address signals corresponding to a storage location in the memory device 10 are coupled through the address bus 24 to the address terminals 20. The address signals are often in the form of two different groups of signals corresponding to row and column addresses. The address specifies the storage location in the memory device where the operation corresponding to the memory command used to occur. For example, in the case of a write command, data coupled to the data terminals 26 through the data bus 28 are written to the storage location in the memory device 10 corresponding to the address coupled through the address bus 24. In the case of a read command, data read from the storage location in the memory device 10 corresponding to the address are coupled from the data terminals 26 through the data bus 28.
A high data bandwidth is a desirable capability of memory systems. Generally, bandwidth limitations are not related by memory controllers typically coupled to memory devices since the memory controllers sequence data to and from the memory devices as fast as the memory devices allow. However, memory devices have not been able to keep up with increases in the data bandwidth of memory controllers and memory data buses. In particular, the memory controller must schedule all memory commands to the memory devices in a manner that allows the memory devices to respond to the commands. Although these hardware limitations can be reduced to some degree through the design of the memory device, a compromise must be made because reducing the hardware limitations typically adds cost, power, and/or size to the memory devices, all of which are undesirable alternatives. While memory devices can rapidly handle “well-behaved” accesses at ever increasing rates, for example, sequel traffic to the same page of a memory device, it is much more difficult for the memory devices to resolve “badly-behaved traffic,” such as accesses to different pages or banks of the memory device. As a result, the increase in memory data bus bandwidth does not result in a corresponding increase in the bandwidth of the memory system.
In addition to the limited bandwidth of memory devices, the performance of computer systems is also limited by latency problems that increase the time required to read data from memory devices. More specifically, when a memory device read command is coupled to a system memory device, such as a synchronous DRAM (“SDRAM”) device, the read data cannot be output from the SDRAM device until a delay of several clock periods has occurred. Although SDRAM devices can synchronously output burst data at a high data rate, the delay in initially providing the data can significantly slow the operating speed of a computer system using such SDRAM devices. These latency issues generally cannot by alleviated to any significant extent by simply increasing the memory data bus bandwidth.
The memory latency problem is greatly exacerbated by read accesses alternating with write accesses, a situation known as “read/write turnarounds.” When a memory controller issues a read command to a memory device, the memory device must couple read data from a memory array to external data bus terminals of the memory device. The read data must then be coupled through a data bus portion of the memory bus from the memory device to the memory controller. It is only then that the memory controller can couple write data to the memory device through the data bus to initiate a write memory access.
Latency problems also exist for sequentially read command directed to different pages of memory cells in memory devices. If a second read is directed to a different page, the page to which the read is directed will not be an “open” page, i.e., a row of memory cells from which data was read during the previous memory access. If the row to which the read access is directed is not already open, data cannot be coupled from a memory array to the data bus terminals of the memory device until the page has been opened. Opening the page requires the coupling of memory command and a row address and a column address from the memory controller to the memory device. In response to the read address, the memory device must equilibrate the corresponding row, turn on access transistors for that row, and allow a sense amplifier for each column to sense the voltage that a respective memory cells couples to the sense amplifier. All of this can take a considerable period of time. For this reason, read operations from a closed page and read/write turnarounds can prevent memory devices from even coming close to achieving the data bandwidths that are possible with high speed memory controllers and memory buses.
The above-described problems are to some extent the result of using a single bidirectional data bus 28 for coupling write data signals to and read data signals from the memory device 10. More specifically, since read data signals and write data signals cannot simultaneously be present on the data bus 28, the use of a single data bus 28 prevents data from being written to the memory device 10 at the same time that data are being read from the memory device 10. In fact, a memory controller (not shown) or other device coupled to the memory device 10 through the data bus 28 generally cannot apply write data to the data bus 28 during the period that the memory device 10 is processing a read command and is preparing to output read data from the memory device 10.
The limitations of conventional memory devices using a bidirectional data bus can be addressed in memory devices, such as the memory device 30 shown in
The use of a separate write data bus 38 to couple write data signals to the memory device 30 and a separate read data bus 42 to couple read data signals from the memory device 30 can provide significant performance advantages compared to the memory device 10 shown in
Although the use of separate write and read data buses 38, 42, respectively, does provide performance advantages, these advantages are accompanied by some disadvantages. In particular, the use of separate write and read data buses 38, 42 can undesirably increase the number of terminals in the memory device 30. As is well known the art, the area that can be occupied by terminals is limited by the size of the package containing the memory device 30. While the size of the package could be increased to accommodate a large number of data bus terminals, doing so would make electronic devices containing the memory device 30 less compact. Another disadvantage of using separate write and read data buses is the space occupied by the read data bus and write data bus conductors on a printed circuit board or other substrate on which the memory device 30 is mounted.
There is therefore a need for a memory device that can allow write data to be coupled to the memory device at the same time that read data can be coupled from the memory device without the disadvantages associated with memory devices using separate read and write data buses.
A memory device and method according to the present invention uses a write data bus and a separate read data bus having a width that is different from the width of the write data bus. The memory device and method preferably includes means for properly address mapping the write data to the read data so that the storage locations accessed in the memory device at an address for a read operation are the same as the storage locations accessed in the memory device at the address for a write operation. For example, the memory device may include a read data path that includes a relatively wide read latch that is loaded by parallel read data bits received from an array of memory cells. Groups of the read data bits are then output from the memory device in sequence in a burst manner. The memory device may also include a write data path that includes input registers that are sequentially loaded by groups of write data bits applied to the memory device in a burst manner. When the input registers have been loaded by the groups of write data bits, the data stored in the input registers may be applied to the array of memory cells in parallel. The product of the number of bits stored in the read latch and number of bits in each burst of read data is preferably the same as the product of the number of bits loaded into the input registers and number of bits in each burst of write data. As a result, the number of write data bits applied to the memory device with each burst of write data is equal to the number of read data bits output from the memory device with each burst of read data.
A memory device 50 according to one embodiment of the invention is shown in
In operation, data are transferred to and from the memory device 50 with 8-byte transfers, which equates to read data being coupled through the read data bus 58 with a burst length of 8, and write data being coupled through the write data bus 54 with a burst length of 16. As explained in greater detail below, means are provided for aligning the different read and write burst lengths so that the data written to the memory device 50 can be properly read. The memory device 50 preferably has an architecture that allows write data coupled through the write data bus 54 to be written to one bank of memory cells while read data read from a different bank of memory cells are being coupled through the read data bus 56. Although the frequency of the write data strobe signals is preferably the same as the frequency of the read data strobe signals, in some embodiments the frequency of the write data strobe signals may be twice the frequency of the read data strobe signals. Under these circumstances, the write data bandwidth is identical to the read data bandwidth. The rate at which write data and read data are internally coupled in the memory device 50 may also be varied as desired.
A synchronous dynamic random access (“SDRAM”) device 100 according to one embodiment of the invention is shown in
One of the latch & decoder circuits 120a-h is enabled by a control signal from the bank control logic 116 depending on which bank of memory cell arrays 122a-h is selected by the bank address. The selected latch & decoder circuit 120 applies various signals to its respective bank of memory cell arrays 122 as a function of the row address stored in the latch & decoder circuit 120. These signals include word line voltages that activate respective rows of memory cells in the arrays 122a-h.
The row address multiplexer 118 also couples row addresses to the row address latch & decoder circuits 120a-h for the purpose of refreshing the memory cells in the arrays 122a-h. The row addresses are generated for refresh purposes by a refresh counter 130. During operation, the refresh counter 130 periodically increments to output row addresses for rows in the array 122a-h.
After the bank and row addresses have been applied to the address register 112, a column address is applied to the address register 112. The address register 112 couples the column address to a column address counter/latch circuit 134. The counter/latch circuit 134 stores the column address, and, when operating in a burst mode, generates column addresses that increment from the received column address. In either case, either the stored column address or incrementally increasing column addresses are coupled to column address decoders 138a-h for the respective banks of memory cells arrays 122a-h. The column address decoders 138a-h apply various signals to respective sense amplifiers 140a-h through an I/O gating and mask logic circuit 144. The I/O gating and mask logic circuit 144 includes conventional I/O gating circuits, data mask logic, read data latches for storing read data from the memory cells in the arrays 122a-h and write drivers for coupling write data to the memory cells in the arrays 122a-h.
Data read from one of the banks of memory cell arrays 122a-h are sensed by a respective set of sense amplifiers 140a-h and then coupled through the I/O gating and mask logic circuit 144 to a read latch 148. In the SDRAM device 100 shown in
Data to be written to the banks of memory cell arrays 122a-h are coupled from a 4-bit write data bus 170 to a write data receiver circuit 174, which includes an on-die termination (“ODT”) circuit 176. The ODT circuit 176 controls the input impedance of the receiver circuit 174 responsive to the impedance control signal ZQ. The write data receiver circuit 174 also includes a data mask circuit 178 that can generate a mask data bit responsive to a data mask signal DQM. The 4 bits of write data being applied to the write data receiver circuit 174 from the bus 170 are applied to each of sixteen input registers 180a-p. One of the input registers 180a-p that is selected by the three least significant bits of the column address, COL0-COL2 stores the 4 write data bits from the receiver circuit 174 responsive to the complementary write data strobe signals DQS_W, DQS_W#, which are coupled through a pair of signal lines 186. Similarly, a mask data bit from the data mask circuit 178 is applied to each of eight data mask registers 188a-h. One of the registers 188a-p that is selected by the three least significant bits of the column address, COL0-COL2 stores the mask data bit from the data mask circuit 178 responsive to the complementary write data strobe signals DQS_W, DQS_W#.
After sixteen 4-bit groups of write data have been stored in the respective input registers 180a-p, the stored 64 bits of write data and the 8 mask bits stored in the data mask registers 188a-h are applied to a write FIFO and driver circuit 190 responsive to the complementary clock signals CK, CK#. The circuit 190 applies 64 bits of write data or a combination of 56 bits of write data and 8 mask bits to the I/O gating and mask logic circuit 144. These 64 bits are then written to memory cells in one of the banks of arrays 122a-h.
In reading data from and writing data to the SDRAM, it is important that the data be properly mapped so that memory addresses for read operations correspond to memory addresses for write operations. As shown in
Returning to
The operation of the SDRAM device 100 for a basic read operation is shown in
The operation of the SDRAM device 100 for a basic write operation is shown in
Another example of the operation of the SDRAM device 100 is shown in
The operation of the SDRAM device 100 for sequential writes and reads to the different banks of the memory cell arrays is shown in
At time T9, a READ command and an address for column “n” of bank “a” are registered, which is the bank of memory cells that was activated at time T0. Row “q” of bank “e” is then activated at time T10. At time T11, a WRITE command directed to column “q” of bank “e” is registered. Starting at time T11, sixteen 4-bit nibbles of write data directed to row “q” of bank “e” starting in column “q” are applied to the SDRAM device 100. This write data corresponds to the WRITE command registered at time T10. Another ACT command is registered along with an address for row “s” of bank “f” at time T12 followed by a READ command directed to column “o” of bank “c” at time T13. It was this bank “c” that was activated at time T4. Still another ACT command for row “c” of bank “g” is registered at time T16.
At time T17, a READ command directed to column “p” in row “p” of bank “d,” which was activated at time T8, is registered. At that same time T17, data read from row “n” of bank “a” starting at column “n” are output from the SDRAM in a burst of eight bytes responsive to the READ command registered at time T9. At time T18, row “u” of bank “h” is activated. At time T19, a WRITE command directed to row “c” of bank “g” starting at column “u” is registered. It will be recalled that this is the row and bank that was activated by the ACT command registered at time T16. Also at time T19, write data directed to row “c” of bank “g” starting in column “u” are applied to the SDRAM device 100. This write data corresponds to the WRITE command registered at time T11. At time T21, a READ command directed to row “s” of bank “f” starting at column “s” is registered, which is the row and bank that was activated responsive to the ACT command registered at time T12. Still another READ command is registered at time T25. This READ command is directed to row “c” of bank “g” starting at column “t,” which is the row and bank that was activated responsive to the ACT command registered at time T16. Read data directed from row “p” of bank “d” starting in column “p” are output from the SDRAM device 100 starting at time T25. This read data is responsive to the READ command that was registered at time T17. At time T27, write data directed to row “c” of bank “g” starting in column “u” are applied to the SDRAM device 100. This write data corresponds to the WRITE command registered at time T19. By having a write data bus 170 (
In the SDRAM device 100 of
A computer system 300 using the SDRAM device 100 of
From the foregoing it will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, it will be understood by one skilled in the art that various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims.