US20130326132A1 - Memory system and method having unidirectional data buses - Google Patents
Memory system and method having unidirectional data buses Download PDFInfo
- Publication number
- US20130326132A1 US20130326132A1 US13/961,996 US201313961996A US2013326132A1 US 20130326132 A1 US20130326132 A1 US 20130326132A1 US 201313961996 A US201313961996 A US 201313961996A US 2013326132 A1 US2013326132 A1 US 2013326132A1
- Authority
- US
- United States
- Prior art keywords
- memory
- memory device
- bus
- data
- coupled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
Definitions
- the present invention relates to memory systems, and more particularly, to systems and methods for coupling command, address and data signals between a memory controller and one or more memory devices.
- DRAM dynamic random access memory
- the processor communicates with the system memory through a processor bus and a memory controller.
- the system memory is typically arranged in memory modules each having multiple memory devices, and the memory modules are coupled through a memory bus to the memory controller.
- the processor issues a memory request, which includes a memory command, such as a read command, and an address designating the location from which data or instructions are to be read or to which data or instructions are to be written.
- the memory controller uses the command and address to generate appropriate command signals as well as row and column addresses, which are applied to the system memory through the memory bus. In response to the commands and addresses, data are transferred between the system memory and the processor.
- the memory controller is often part of a system controller, which also includes bus bridge circuitry for coupling the processor bus to an expansion bus, such as a PCI bus.
- a high data bandwidth is a desirable capability of memory systems.
- bandwidth limitations are not related to the memory controllers since the memory controllers sequence data to and from the system memory as fast as the memory devices allow.
- One approach to increasing bandwidth is to increase the speed of the memory data bus coupling the memory controller to the memory devices.
- memory devices have not been able to keep up with increases in the data bandwidth of memory controllers and memory data buses.
- 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.
- 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.
- SDRAM synchronous DRAM
- the memory latency problem is greatly exacerbated by read accesses alternating with write accesses, a situation known as “read/write turnarounds.”
- the memory device 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 commands 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.
- 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.
- a memory system is able to achieve a high bandwidth and low latency through the use of two separate data buses coupling a memory controller to one or more memory devices.
- a downstream bus couples write data from the memory controller to each memory device, and an upstream bus couples read data from each memory device to the memory controller.
- read data can be coupled from each memory device to the memory controller at the same time that write data can be coupled from the memory controller to each memory device.
- a single downstream memory bus may be used to couple memory commands and memory addresses to each memory device along with write data.
- Each memory device can include a write buffer that allows memory commands and addresses and write data for several write access to be accumulated while read requests are processed. After a number of write accesses have been accumulated, they can be processed in a burst manner without any intervening read accesses.
- FIG. 1 is a block diagram of a memory system according to one embodiment of the invention.
- FIG. 2 is a block diagram of a dynamic random access memory devices used in the memory system of FIG. 1 .
- FIG. 3 is a block diagram of a computer system using the memory system of FIG. 1 .
- FIG. 1 A memory system 10 according to one embodiment of the invention is illustrated in FIG. 1 .
- the memory system 10 includes a memory controller 14 coupled to the four dynamic random access memory (“DRAM”) devices 20 , 22 , 24 , 26 .
- the memory controller 14 is coupled to each of the DRAM devices 20 - 26 by an 8-bit write data bus 30 and an 8-bit read data bus 32 .
- the memory controller 14 couples memory commands and memory addresses “downstream” to the DRAM devices 20 - 26 through either the write data bus 30 , a separate command/address bus (not shown) or separate command and address buses (not shown). If the memory commands and memory addresses are coupled through the downstream bus, the commands and addresses may be in the form of a packet, which, for write commands, may also include write data.
- the memory controller 14 couples write data “downstream” to the DRAM devices 20 - 26 through the write data bus 30 , and the DRAM devices 20 - 26 couple read data “upstream” to the memory controller 14 through the read data bus 32 .
- the bandwidth of the write data bus 30 may be the same as the bandwidth of the read data bus 32 .
- the write data bus 30 and the read data bus 32 may have different bandwidths to accommodate different data rates though the buses 30 , 32 .
- the memory controller 14 also couples a clock signal to each of the DRAM devices 20 - 26 .
- the memory controller 14 can couple write data to the DRAM devices 20 - 26 at the same time that the memory devices 20 - 26 are coupling read data to the memory controller 14 .
- the DRAM devices 20 - 26 are shown in greater detail in FIG. 2 .
- Each of the DRAM devices 20 - 26 includes eight memory banks 40 a - h each of which are coupled to a common write data bus 42 and a common read data bus 44 .
- the write data bus 42 receives write data from a write buffer 46
- the read data bus 44 couples read data to a read latch 50 .
- Write data is coupled to the write buffer 46 through a write data bus 52 and is latched into the buffer 46 by a clock signal coupled through line 54 .
- Memory commands and addresses are also coupled through the write data bus 52 , and they are stored in a command/address register 58 .
- the read latch 50 outputs read data on an 8-bit read data bus 60 in synchronism with a clock signal that is also coupled from the read latch 50 on line 62 .
- the memory devices 20 - 26 include a large number of other conventional memory device components, but these have been omitted from FIG. 2 in the interest of brevity and clarity.
- memory commands such as write commands and read commands, as well as memory addresses are coupled through the write data bus 52 .
- the memory commands and addresses are stored in the command/address register 58 .
- the write data also coupled through the write data bus 52 and stored in the write buffer 46 .
- the memory devices 20 - 26 output read data, which are coupled to the read latch 50 .
- the read latch 50 stores the read data until the read data bus 60 and memory controller 14 ( FIG. 1 ) are able to receive the read data. The read data are then clocked out of the read latch 50 through the read data bus 60 .
- the read memory accesses are preferably given priority over write memory accesses so that a number of write commands and associated addresses are stored in the command/address register 58 while the write data are accumulated in the write buffer 46 .
- a sufficient number of write accesses have been accumulated, they are processed sequentially without any intervening read accesses. As a result, the latency penalties inherent in read/write turnarounds are avoided.
- write data it is not possible for write data to be coupled to one of the banks 40 a - h at the same time read data is being coupled from the same bank, it is possible for write data to be coupled to one of the banks 40 a - h at the same time read data is being coupled from another of the banks 40 a - h .
- the memory controller 14 can couple write data to each of the DRAM devices 20 - 26 at the same time that the respective memory device 20 - 26 is coupling read data to the memory controller 14 .
- read commands can be coupled to the memory devices 20 - 26 during write or read operation. As a result, the latency for read operations is minimized. Otherwise, it would be necessary to wait for a write operation to be completed before a read command could be sent.
- the memory controller 14 ( FIG. 1 ) simply issues read and write memory commands and addresses to the memory devices 20 - 26 .
- the memory commands are stored in the command/address register 58 until the memory devices 20 - 26 are able to process them.
- the commands are then processed by each of the memory devices 20 - 26 , and this processing includes coupling a read response or a write response to the controller through the read data bus 60 .
- the read responses and write responses indicate to the memory controller that processing of a corresponding memory request has been completed.
- the responses uniquely identify the memory request corresponding to the response so that it is not necessary for the memory controller 14 to keep track of the memory requests, and the memory requests may be processed out-of-order.
- the read response may also include the read data resulting from the corresponding read request.
- the computer system 100 includes a processor 102 for performing various computing functions, such as executing specific software for performing specific calculations or tasks.
- the processor 102 includes a processor bus 104 that normally includes an address bus, a control bus, and a data bus.
- the processor bus is coupled to an expansion bus 108 , such as a peripheral component interconnect (“PCI”) bus, through a system controller 110 .
- the computer system 100 includes one or more input devices 114 , such as a keyboard or a mouse, coupled to the processor 102 through the expansion bus 108 , system controller 110 and processor bus 104 to allow an operator to interface with the computer system 100 .
- the computer system 100 also includes one or more output devices 116 coupled to the expansion bus 108 , such output devices typically being a printer or a video terminal.
- One or more mass data storage devices 118 are also typically coupled to the expansion bus 108 to store data or retrieve data from external storage media (not shown). Examples of typical mass data storage devices 118 include hard and floppy disks, tape cassettes, and compact disk read-only memories (CD-ROMs).
- the processor 102 is also typically coupled to a cache memory 126 , which is usually static random access memory (“SRAM”).
- SRAM static random access memory
- the computer system 100 also includes the memory system 10 of FIG. 1 .
- the system controller 110 includes the memory controller 14 , which, as explained above with reference to FIG. 1 , is coupled to several DRAM devices 20 - 26 .
- the memory controller 14 is coupled to each of the DRAM devices 20 - 26 through the write data bus 30 and the read data bus 32 as well as a command bus 130 and an address bus 134 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
A memory system and method includes a unidirectional downstream bus coupling write data from a memory controller to several memory devices, and a unidirectional upstream bus coupling read data from the memory devices to the memory controller. The memory devices each include a write buffer for storing the write data until the respective memory device is no longer busy processing read memory requests. The downstream bus may also be used for coupling memory commands and/or row and column addresses from the memory controller to the memory devices.
Description
- This application is a continuation, of U.S. application Ser. No. 11/594,355, filed on Nov. 6, 2006, which is scheduled to issue as U.S. Pat. No. 8,510,480 on Aug. 13, 2013, which is a continuation of U.S. application Ser. No. 10/928,411, which was filed on Aug. 27, 2004 and issued as U.S. Pat. No. 7,200,693 on Apr. 3, 2007 the disclosures of which are incorporated herein by reference.
- The present invention relates to memory systems, and more particularly, to systems and methods for coupling command, address and data signals between a memory controller and one or more memory devices.
- Computer systems use memory devices, such as dynamic random access memory (“DRAM”) devices, to store data that are accessed by a processor. These DRAM devices are normally used as system memory in a computer system. In a typical computer system, the processor communicates with the system memory through a processor bus and a memory controller. The system memory is typically arranged in memory modules each having multiple memory devices, and the memory modules are coupled through a memory bus to the memory controller. The processor issues a memory request, which includes a memory command, such as a read command, and an address designating the location from which data or instructions are to be read or to which data or instructions are to be written. The memory controller uses the command and address to generate appropriate command signals as well as row and column addresses, which are applied to the system memory through the memory bus. In response to the commands and addresses, data are transferred between the system memory and the processor. The memory controller is often part of a system controller, which also includes bus bridge circuitry for coupling the processor bus to an expansion bus, such as a PCI bus.
- A high data bandwidth is a desirable capability of memory systems. Generally, bandwidth limitations are not related to the memory controllers since the memory controllers sequence data to and from the system memory as fast as the memory devices allow. One approach to increasing bandwidth is to increase the speed of the memory data bus coupling the memory controller to the memory devices. 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 commands 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.
- There is therefore a need for a memory device and memory system that allows a higher data bandwidth to be achieved particularly in the presence of alternating read and write accesses.
- A memory system is able to achieve a high bandwidth and low latency through the use of two separate data buses coupling a memory controller to one or more memory devices. A downstream bus couples write data from the memory controller to each memory device, and an upstream bus couples read data from each memory device to the memory controller. As a result, read data can be coupled from each memory device to the memory controller at the same time that write data can be coupled from the memory controller to each memory device. A single downstream memory bus may be used to couple memory commands and memory addresses to each memory device along with write data. Each memory device can include a write buffer that allows memory commands and addresses and write data for several write access to be accumulated while read requests are processed. After a number of write accesses have been accumulated, they can be processed in a burst manner without any intervening read accesses.
-
FIG. 1 is a block diagram of a memory system according to one embodiment of the invention. -
FIG. 2 is a block diagram of a dynamic random access memory devices used in the memory system ofFIG. 1 . -
FIG. 3 is a block diagram of a computer system using the memory system ofFIG. 1 . - A
memory system 10 according to one embodiment of the invention is illustrated inFIG. 1 . Thememory system 10 includes amemory controller 14 coupled to the four dynamic random access memory (“DRAM”)devices memory controller 14 is coupled to each of the DRAM devices 20-26 by an 8-bit writedata bus 30 and an 8-bit readdata bus 32. Thememory controller 14 couples memory commands and memory addresses “downstream” to the DRAM devices 20-26 through either thewrite data bus 30, a separate command/address bus (not shown) or separate command and address buses (not shown). If the memory commands and memory addresses are coupled through the downstream bus, the commands and addresses may be in the form of a packet, which, for write commands, may also include write data. - In operation, the
memory controller 14 couples write data “downstream” to the DRAM devices 20-26 through thewrite data bus 30, and the DRAM devices 20-26 couple read data “upstream” to thememory controller 14 through theread data bus 32. The bandwidth of thewrite data bus 30 may be the same as the bandwidth of the readdata bus 32. Alternatively, the writedata bus 30 and the readdata bus 32 may have different bandwidths to accommodate different data rates though thebuses memory controller 14 also couples a clock signal to each of the DRAM devices 20-26. By using separate write and readdata buses memory controller 14 can couple write data to the DRAM devices 20-26 at the same time that the memory devices 20-26 are coupling read data to thememory controller 14. - The DRAM devices 20-26 are shown in greater detail in
FIG. 2 . Each of the DRAM devices 20-26 includes eight memory banks 40 a-h each of which are coupled to a commonwrite data bus 42 and a commonread data bus 44. Thewrite data bus 42 receives write data from awrite buffer 46, and the readdata bus 44 couples read data to aread latch 50. Write data is coupled to thewrite buffer 46 through awrite data bus 52 and is latched into thebuffer 46 by a clock signal coupled throughline 54. Memory commands and addresses are also coupled through thewrite data bus 52, and they are stored in a command/address register 58. - The
read latch 50 outputs read data on an 8-bit readdata bus 60 in synchronism with a clock signal that is also coupled from the readlatch 50 online 62. The memory devices 20-26 include a large number of other conventional memory device components, but these have been omitted fromFIG. 2 in the interest of brevity and clarity. - In operation, memory commands, such as write commands and read commands, as well as memory addresses are coupled through the
write data bus 52. The memory commands and addresses are stored in the command/address register 58. The write data also coupled through thewrite data bus 52 and stored in thewrite buffer 46. In response to a read command coupled to the command/address register 58, the memory devices 20-26 output read data, which are coupled to theread latch 50. Theread latch 50 stores the read data until the readdata bus 60 and memory controller 14 (FIG. 1 ) are able to receive the read data. The read data are then clocked out of the readlatch 50 through the readdata bus 60. The read memory accesses are preferably given priority over write memory accesses so that a number of write commands and associated addresses are stored in the command/address register 58 while the write data are accumulated in thewrite buffer 46. When a sufficient number of write accesses have been accumulated, they are processed sequentially without any intervening read accesses. As a result, the latency penalties inherent in read/write turnarounds are avoided. Although it is not possible for write data to be coupled to one of the banks 40 a-h at the same time read data is being coupled from the same bank, it is possible for write data to be coupled to one of the banks 40 a-h at the same time read data is being coupled from another of the banks 40 a-h. Thus, by using separate write and readdata buses memory controller 14 can couple write data to each of the DRAM devices 20-26 at the same time that the respective memory device 20-26 is coupling read data to thememory controller 14. By allowing a read command to be coupled through thewrite data bus 52 and stored in the command/address register 58, read commands can be coupled to the memory devices 20-26 during write or read operation. As a result, the latency for read operations is minimized. Otherwise, it would be necessary to wait for a write operation to be completed before a read command could be sent. - In one embodiment of the invention, the memory controller 14 (
FIG. 1 ) simply issues read and write memory commands and addresses to the memory devices 20-26. The memory commands are stored in the command/address register 58 until the memory devices 20-26 are able to process them. The commands are then processed by each of the memory devices 20-26, and this processing includes coupling a read response or a write response to the controller through the readdata bus 60. The read responses and write responses indicate to the memory controller that processing of a corresponding memory request has been completed. The responses uniquely identify the memory request corresponding to the response so that it is not necessary for thememory controller 14 to keep track of the memory requests, and the memory requests may be processed out-of-order. In the case of a read response, the read response may also include the read data resulting from the corresponding read request. - A
computer system 100 using thememory system 10 ofFIG. 1 is shown inFIG. 3 . Thecomputer system 100 includes aprocessor 102 for performing various computing functions, such as executing specific software for performing specific calculations or tasks. Theprocessor 102 includes aprocessor bus 104 that normally includes an address bus, a control bus, and a data bus. The processor bus is coupled to anexpansion bus 108, such as a peripheral component interconnect (“PCI”) bus, through asystem controller 110. Thecomputer system 100 includes one ormore input devices 114, such as a keyboard or a mouse, coupled to theprocessor 102 through theexpansion bus 108,system controller 110 andprocessor bus 104 to allow an operator to interface with thecomputer system 100. Typically, thecomputer system 100 also includes one ormore output devices 116 coupled to theexpansion bus 108, such output devices typically being a printer or a video terminal. One or more massdata storage devices 118 are also typically coupled to theexpansion bus 108 to store data or retrieve data from external storage media (not shown). Examples of typical massdata storage devices 118 include hard and floppy disks, tape cassettes, and compact disk read-only memories (CD-ROMs). Theprocessor 102 is also typically coupled to acache memory 126, which is usually static random access memory (“SRAM”). As mentioned above, thecomputer system 100 also includes thememory system 10 ofFIG. 1 . Specifically, thesystem controller 110 includes thememory controller 14, which, as explained above with reference toFIG. 1 , is coupled to several DRAM devices 20-26. Thememory controller 14 is coupled to each of the DRAM devices 20-26 through thewrite data bus 30 and the readdata bus 32 as well as acommand bus 130 and anaddress bus 134. - Although the invention herein has been described with reference to particular embodiments, it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims.
Claims (9)
1. A computer system, comprising:
a processor having a processor bus;
an input device coupled to the processor through the processor bus to allow data to be entered into the computer system;
an output device coupled to the processor through the processor bus to allow data to be output from the computer system;
a mass data storage device coupled to the processor through the processor bus to allow data to be read from the mass storage device;
a system controller coupled to the processor through the processor bus, the system controller comprising a memory controller having a first plurality of memory device output terminals and a second plurality of memory device data input terminals;
at plurality of memory devices each having at least one output terminal and at least one input terminal;
a unidirectional downstream bus coupling the memory device output terminals of the memory controller to the at least one input terminal of the memory device, the downstream bus being isolated from the memory device data input terminals of the memory controller and the at least one data output terminal of the memory device; and
a unidirectional upstream bus coupling the at least one data output terminals of the memory device to the memory device data input terminals of the memory controller, the upstream bus being isolated from the memory device output terminals of the memory controller and the input terminals of the memory device.
2. The computer system of claim 1 wherein the memory device comprises a plurality of memory banks, each memory bank having an input terminal coupled to the unidirectional downstream bus and an output terminal coupled to the unidirectional upstream bus.
3. The computer system of claim 1 wherein the memory device further comprises a write buffer coupled to the input terminal of the memory device, the write buffer being operable to store write data from at least one write request and to couple the write data from the write buffer for storage in the memory device when the memory device is not processing a read request.
4. The computer system of claim 3 wherein the memory controller is operable to output a predetermined memory command when the memory device is not processing a read request, the predetermined memory command being coupled to the input terminal of the memory device through the downstream bus, and wherein the memory device is operable to couple the write data from the write buffer for storage in the memory device responsive to the predetermined memory command.
5. The computer system of claim 4 wherein the predetermined command comprises a column address strobe command.
6. The computer system of claim 1 wherein the memory controller is further operable to couple memory commands and row and column addresses to the output terminals of the memory controller, the memory commands and row and column addresses being coupled to the memory device through the downstream bus.
7. The computer system of claim 6 wherein the memory device further comprises a command/address register coupled to the input terminal of the memory device, the command/address register being operable to store the memory commands and the row and column addresses coupled to the memory device through the downstream bus.
8. The computer system of claim 1 wherein the memory device comprises a dynamic random access memory device.
9. The computer system of claim 7 wherein the memory controller is further operable to output a clock signal, and the memory device comprises a synchronous dynamic random access memory device and includes a clock input terminal, the memory system further comprising a clock signal line coupling the clock signal from the memory controller to the clock input of the memory device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/961,996 US20130326132A1 (en) | 2004-08-27 | 2013-08-08 | Memory system and method having unidirectional data buses |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/928,411 US7200693B2 (en) | 2004-08-27 | 2004-08-27 | Memory system and method having unidirectional data buses |
US11/594,355 US8510480B2 (en) | 2004-08-27 | 2006-11-06 | Memory system and method having uni-directional data buses |
US13/961,996 US20130326132A1 (en) | 2004-08-27 | 2013-08-08 | Memory system and method having unidirectional data buses |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/594,355 Continuation US8510480B2 (en) | 2004-08-27 | 2006-11-06 | Memory system and method having uni-directional data buses |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130326132A1 true US20130326132A1 (en) | 2013-12-05 |
Family
ID=35944800
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/928,411 Expired - Fee Related US7200693B2 (en) | 2004-08-27 | 2004-08-27 | Memory system and method having unidirectional data buses |
US11/594,355 Expired - Fee Related US8510480B2 (en) | 2004-08-27 | 2006-11-06 | Memory system and method having uni-directional data buses |
US13/961,996 Abandoned US20130326132A1 (en) | 2004-08-27 | 2013-08-08 | Memory system and method having unidirectional data buses |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/928,411 Expired - Fee Related US7200693B2 (en) | 2004-08-27 | 2004-08-27 | Memory system and method having unidirectional data buses |
US11/594,355 Expired - Fee Related US8510480B2 (en) | 2004-08-27 | 2006-11-06 | Memory system and method having uni-directional data buses |
Country Status (6)
Country | Link |
---|---|
US (3) | US7200693B2 (en) |
EP (1) | EP1782219A4 (en) |
JP (1) | JP2008511904A (en) |
KR (1) | KR100873829B1 (en) |
TW (1) | TW200630799A (en) |
WO (1) | WO2006026017A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140244780A1 (en) * | 2007-01-16 | 2014-08-28 | Waterfall Security Solutions Ltd. | Secure Archive |
US11379157B2 (en) | 2020-07-10 | 2022-07-05 | Samsung Electronics Co., Ltd. | Dynamic random access memory (DRAM) bandwidth increase without per pin bandwidth increase |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082075B2 (en) * | 2004-03-18 | 2006-07-25 | Micron Technology, Inc. | Memory device and method having banks of different sizes |
US7209405B2 (en) * | 2005-02-23 | 2007-04-24 | Micron Technology, Inc. | Memory device and method having multiple internal data buses and memory bank interleaving |
US7414917B2 (en) * | 2005-07-29 | 2008-08-19 | Infineon Technologies | Re-driving CAwD and rD signal lines |
US7646837B2 (en) * | 2006-04-28 | 2010-01-12 | International Business Machines Corporation | Implementing bandwidth control in a communications link |
EP2035948B1 (en) | 2006-06-27 | 2016-04-13 | Waterfall Security Solutions Ltd. | Unidirectional secure links from and to a security engine |
IL177756A (en) * | 2006-08-29 | 2014-11-30 | Lior Frenkel | Encryption-based attack prevention |
IL180020A (en) | 2006-12-12 | 2013-03-24 | Waterfall Security Solutions Ltd | Encryption -and decryption-enabled interfaces |
US8223205B2 (en) * | 2007-10-24 | 2012-07-17 | Waterfall Solutions Ltd. | Secure implementation of network-based sensors |
JP5237731B2 (en) * | 2008-09-10 | 2013-07-17 | スパンション エルエルシー | Memory system, memory device, and memory access method |
US9635037B2 (en) | 2012-09-06 | 2017-04-25 | Waterfall Security Solutions Ltd. | Remote control of secure installations |
US9419975B2 (en) | 2013-04-22 | 2016-08-16 | Waterfall Security Solutions Ltd. | Bi-directional communication over a one-way link |
US20150095551A1 (en) * | 2013-09-30 | 2015-04-02 | Micron Technology, Inc. | Volatile memory architecutre in non-volatile memory devices and related controllers |
US9218282B2 (en) * | 2013-10-31 | 2015-12-22 | Micron Technology, Inc. | Memory system data management |
IL235175A (en) | 2014-10-19 | 2017-08-31 | Frenkel Lior | Secure remote desktop |
IL250010B (en) | 2016-02-14 | 2020-04-30 | Waterfall Security Solutions Ltd | Secure connection with protected facilities |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4598362A (en) * | 1982-06-24 | 1986-07-01 | Tokyo Shibaura Denki Kabushiki Kaisha | Buffer apparatus for controlling access requests among plural memories and plural accessing devices |
US5778419A (en) * | 1995-08-16 | 1998-07-07 | Microunity Systems Engineering, Inc. | DRAM with high bandwidth interface that uses packets and arbitration |
US6484244B1 (en) * | 1997-06-17 | 2002-11-19 | Micron Technology, Inc. | Method and system for storing and processing multiple memory commands |
US6510474B1 (en) * | 1998-11-16 | 2003-01-21 | Infineon Technologies Ag | Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53121441A (en) | 1977-03-31 | 1978-10-23 | Toshiba Corp | Duplicated information processor |
US4503497A (en) | 1982-05-27 | 1985-03-05 | International Business Machines Corporation | System for independent cache-to-cache transfer |
US4831522A (en) | 1987-02-17 | 1989-05-16 | Microlytics, Inc. | Circuit and method for page addressing read only memory |
US4954992A (en) | 1987-12-24 | 1990-09-04 | Mitsubishi Denki Kabushiki Kaisha | Random access memory having separate read out and write in bus lines for reduced access time and operating method therefor |
US5086388A (en) | 1988-03-18 | 1992-02-04 | Hitachi Maxell, Ltd. | Semiconductor serial/parallel-parallel/serial file memory and storage system |
JPH0225958A (en) * | 1988-07-15 | 1990-01-29 | Fuji Electric Co Ltd | High-speed data transfer system |
US5003485A (en) | 1988-12-30 | 1991-03-26 | Pitney Bowes Inc. | Asynchronous, peer to peer, multiple module control and communication protocol |
US5202856A (en) | 1990-04-05 | 1993-04-13 | Micro Technology, Inc. | Method and apparatus for simultaneous, interleaved access of multiple memories by multiple ports |
JP2519593B2 (en) | 1990-10-24 | 1996-07-31 | 三菱電機株式会社 | Semiconductor memory device |
US5278957A (en) | 1991-04-16 | 1994-01-11 | Zilog, Inc. | Data transfer circuit for interfacing two bus systems that operate asynchronously with respect to each other |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
JP2729423B2 (en) | 1991-10-29 | 1998-03-18 | 三菱電機株式会社 | Semiconductor storage device |
US5384745A (en) | 1992-04-27 | 1995-01-24 | Mitsubishi Denki Kabushiki Kaisha | Synchronous semiconductor memory device |
EP0852381B1 (en) | 1992-11-12 | 2005-11-16 | ProMOS Technologies, Inc. | Sense amplifier with local write drivers |
JP3476231B2 (en) | 1993-01-29 | 2003-12-10 | 三菱電機エンジニアリング株式会社 | Synchronous semiconductor memory device and semiconductor memory device |
US5848432A (en) | 1993-08-05 | 1998-12-08 | Hitachi, Ltd. | Data processor with variable types of cache memories |
US5375089A (en) * | 1993-10-05 | 1994-12-20 | Advanced Micro Devices, Inc. | Plural port memory system utilizing a memory having a read port and a write port |
US5446691A (en) | 1994-03-15 | 1995-08-29 | Shablamm! Computer Inc. | Interleave technique for accessing digital memory |
JPH087573A (en) | 1994-06-14 | 1996-01-12 | Mitsubishi Electric Corp | Semiconductor storage device and its data reading and writing method |
US5680573A (en) | 1994-07-12 | 1997-10-21 | Sybase, Inc. | Method of buffering data objects in a database |
US5745732A (en) * | 1994-11-15 | 1998-04-28 | Cherukuri; Ravikrishna V. | Computer system including system controller with a write buffer and plural read buffers for decoupled busses |
US5597084A (en) | 1995-02-17 | 1997-01-28 | Canadian Plywood Association | Collapsible pallet bin |
US5619471A (en) | 1995-06-06 | 1997-04-08 | Apple Computer, Inc. | Memory controller for both interleaved and non-interleaved memory |
US6031842A (en) | 1996-09-11 | 2000-02-29 | Mcdata Corporation | Low latency shared memory switch architecture |
US5925118A (en) | 1996-10-11 | 1999-07-20 | International Business Machines Corporation | Methods and architectures for overlapped read and write operations |
US5847998A (en) | 1996-12-20 | 1998-12-08 | Advanced Micro Devices, Inc. | Non-volatile memory array that enables simultaneous read and write operations |
EP0869430B1 (en) | 1997-04-02 | 2005-11-30 | Matsushita Electric Industrial Co., Ltd. | Fifo memory device |
JP3189727B2 (en) * | 1997-04-15 | 2001-07-16 | 日本電気株式会社 | Packet-type memory LSI with built-in coprocessor, memory system using the same, and control method therefor |
JP3602293B2 (en) | 1997-04-22 | 2004-12-15 | 株式会社ソニー・コンピュータエンタテインメント | Data transfer method and device |
JPH113588A (en) | 1997-06-12 | 1999-01-06 | Nec Corp | Semiconductor memory device |
US6618775B1 (en) | 1997-08-15 | 2003-09-09 | Micron Technology, Inc. | DSP bus monitoring apparatus and method |
US5856947A (en) | 1997-08-27 | 1999-01-05 | S3 Incorporated | Integrated DRAM with high speed interleaving |
JPH11162174A (en) | 1997-11-25 | 1999-06-18 | Mitsubishi Electric Corp | Synchronous semiconductor memory |
US6038630A (en) | 1998-03-24 | 2000-03-14 | International Business Machines Corporation | Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses |
TW430815B (en) | 1998-06-03 | 2001-04-21 | Fujitsu Ltd | Semiconductor integrated circuit memory and, bus control method |
US6167475A (en) | 1998-07-06 | 2000-12-26 | International Business Machines Corporation | Data transfer method/engine for pipelining shared memory bus accesses |
US6215497B1 (en) | 1998-08-12 | 2001-04-10 | Monolithic System Technology, Inc. | Method and apparatus for maximizing the random access bandwidth of a multi-bank DRAM in a computer graphics system |
US6081458A (en) | 1998-08-26 | 2000-06-27 | International Business Machines Corp. | Memory system having a unidirectional bus and method for communicating therewith |
US6269413B1 (en) | 1998-10-30 | 2001-07-31 | Hewlett Packard Company | System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections |
JP4424770B2 (en) | 1998-12-25 | 2010-03-03 | 株式会社ルネサステクノロジ | Semiconductor memory device |
JP3881477B2 (en) | 1999-09-06 | 2007-02-14 | 沖電気工業株式会社 | Serial access memory |
US6144604A (en) * | 1999-11-12 | 2000-11-07 | Haller; Haggai Haim | Simultaneous addressing using single-port RAMs |
JP4090165B2 (en) | 1999-11-22 | 2008-05-28 | 富士通株式会社 | Semiconductor memory device |
US6452864B1 (en) | 2000-01-31 | 2002-09-17 | Stmicroelectonics S.R.L. | Interleaved memory device for sequential access synchronous reading with simplified address counters |
US6396749B2 (en) | 2000-05-31 | 2002-05-28 | Advanced Micro Devices, Inc. | Dual-ported CAMs for a simultaneous operation flash memory |
US6587905B1 (en) | 2000-06-29 | 2003-07-01 | International Business Machines Corporation | Dynamic data bus allocation |
JP2002063791A (en) * | 2000-08-21 | 2002-02-28 | Mitsubishi Electric Corp | Semiconductor memory and memory system |
US6518787B1 (en) | 2000-09-21 | 2003-02-11 | Triscend Corporation | Input/output architecture for efficient configuration of programmable input/output cells |
JP2002101376A (en) | 2000-09-22 | 2002-04-05 | Mitsubishi Electric Corp | Line memory |
US6662285B1 (en) | 2001-01-09 | 2003-12-09 | Xilinx, Inc. | User configurable memory system having local and global memory blocks |
US6522167B1 (en) | 2001-01-09 | 2003-02-18 | Xilinx, Inc. | User configurable on-chip memory system |
US6718439B1 (en) | 2001-06-01 | 2004-04-06 | Advanced Micro Devices, Inc. | Cache memory and method of operation |
JP4540889B2 (en) | 2001-07-09 | 2010-09-08 | 富士通セミコンダクター株式会社 | Semiconductor memory |
JP2003249097A (en) | 2002-02-21 | 2003-09-05 | Mitsubishi Electric Corp | Semiconductor memory device |
JP4041358B2 (en) | 2002-07-04 | 2008-01-30 | 富士通株式会社 | Semiconductor memory |
US7149874B2 (en) | 2002-08-16 | 2006-12-12 | Micron Technology, Inc. | Memory hub bypass circuit and method |
US6938142B2 (en) | 2002-08-28 | 2005-08-30 | Micron Technology, Inc. | Multi-bank memory accesses using posted writes |
US7209405B2 (en) | 2005-02-23 | 2007-04-24 | Micron Technology, Inc. | Memory device and method having multiple internal data buses and memory bank interleaving |
US20070028027A1 (en) | 2005-07-26 | 2007-02-01 | Micron Technology, Inc. | Memory device and method having separate write data and read data buses |
-
2004
- 2004-08-27 US US10/928,411 patent/US7200693B2/en not_active Expired - Fee Related
-
2005
- 2005-07-29 WO PCT/US2005/027167 patent/WO2006026017A2/en active Application Filing
- 2005-07-29 EP EP05778400A patent/EP1782219A4/en not_active Withdrawn
- 2005-07-29 JP JP2007529881A patent/JP2008511904A/en active Pending
- 2005-07-29 KR KR1020077006972A patent/KR100873829B1/en not_active IP Right Cessation
- 2005-08-26 TW TW094129382A patent/TW200630799A/en unknown
-
2006
- 2006-11-06 US US11/594,355 patent/US8510480B2/en not_active Expired - Fee Related
-
2013
- 2013-08-08 US US13/961,996 patent/US20130326132A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4598362A (en) * | 1982-06-24 | 1986-07-01 | Tokyo Shibaura Denki Kabushiki Kaisha | Buffer apparatus for controlling access requests among plural memories and plural accessing devices |
US5778419A (en) * | 1995-08-16 | 1998-07-07 | Microunity Systems Engineering, Inc. | DRAM with high bandwidth interface that uses packets and arbitration |
US6484244B1 (en) * | 1997-06-17 | 2002-11-19 | Micron Technology, Inc. | Method and system for storing and processing multiple memory commands |
US6510474B1 (en) * | 1998-11-16 | 2003-01-21 | Infineon Technologies Ag | Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140244780A1 (en) * | 2007-01-16 | 2014-08-28 | Waterfall Security Solutions Ltd. | Secure Archive |
US9116857B2 (en) * | 2007-01-16 | 2015-08-25 | Waterfall Security Solutions Ltd. | Secure archive |
US20150326546A1 (en) * | 2007-01-16 | 2015-11-12 | Waterfall Security Solutions Ltd. | Secure Archive |
US9519616B2 (en) * | 2007-01-16 | 2016-12-13 | Waterfall Security Solution Ltd. | Secure archive |
US11379157B2 (en) | 2020-07-10 | 2022-07-05 | Samsung Electronics Co., Ltd. | Dynamic random access memory (DRAM) bandwidth increase without per pin bandwidth increase |
Also Published As
Publication number | Publication date |
---|---|
JP2008511904A (en) | 2008-04-17 |
EP1782219A4 (en) | 2007-12-05 |
KR100873829B1 (en) | 2008-12-15 |
US20060047887A1 (en) | 2006-03-02 |
KR20070047364A (en) | 2007-05-04 |
US8510480B2 (en) | 2013-08-13 |
US20070055814A1 (en) | 2007-03-08 |
TW200630799A (en) | 2006-09-01 |
WO2006026017A3 (en) | 2006-06-08 |
EP1782219A2 (en) | 2007-05-09 |
WO2006026017A2 (en) | 2006-03-09 |
US7200693B2 (en) | 2007-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8510480B2 (en) | Memory system and method having uni-directional data buses | |
US7260015B2 (en) | Memory device and method having multiple internal data buses and memory bank interleaving | |
US8499127B2 (en) | Memory hub with internal cache and/or memory access prediction | |
US8694735B2 (en) | Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system | |
KR100973629B1 (en) | Memory device, method and system having multiple address, data and command buses | |
US20060168407A1 (en) | Memory hub system and method having large virtual page size | |
US20060212655A1 (en) | Posted write buffers and method of posting write requests in memory modules | |
US11474959B2 (en) | Memory module with reduced read/write turnaround overhead | |
US20060036828A1 (en) | Memory device sequencer and method supporting multiple memory device clock speeds | |
US7069409B2 (en) | System for addressing a data storage unit used in a computer | |
US6002632A (en) | Circuits, systems, and methods with a memory interface for augmenting precharge control | |
US12130757B2 (en) | Memory module with reduced read/write turnaround overhead | |
JP2642087B2 (en) | Data transfer processing mechanism between main storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |