WO2001042929A1 - Memory system with channel multiplexing of multiple memory devices - Google Patents

Memory system with channel multiplexing of multiple memory devices Download PDF

Info

Publication number
WO2001042929A1
WO2001042929A1 PCT/US2000/032319 US0032319W WO0142929A1 WO 2001042929 A1 WO2001042929 A1 WO 2001042929A1 US 0032319 W US0032319 W US 0032319W WO 0142929 A1 WO0142929 A1 WO 0142929A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
memory devices
data
memory system
channel
Prior art date
Application number
PCT/US2000/032319
Other languages
French (fr)
Inventor
Billy Wayne Garrett, Jr.
Frederick Abbott Ware
Craig E. Hampel
Richard M. Barth
Donald C. Stark
Abhijit Mukund Abhyankar
Catherine Yuhjung Chen
Thomas J. Sheffler
Ely K. Tsern
Steven Cameron Woo
Original Assignee
Rambus Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US09/457,155 external-priority patent/US6708248B1/en
Application filed by Rambus Inc filed Critical Rambus Inc
Priority to AU18012/01A priority Critical patent/AU1801201A/en
Publication of WO2001042929A1 publication Critical patent/WO2001042929A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

Definitions

  • a memory system which is characterized by high speed data throughput on a channel, or on a number of channels, between a memory controller and associated memory devices.
  • DRAM Dynamic Random Access Memory
  • FIGs. 1 and 2 illustrate generic, conventional memory systems having a memory controller 10 connected to a number of memory devices 12 via a wide bus structure.
  • each memory device 12 is connected to memory controller 10 via sixteen (16) dedicated bus lines. (Not all bus lines are individually shown for the sake of clarity).
  • the data bus is 64 lines wide. This structure allows the memory controller to directly send and receive data from a specific memory device without interference from any other memory device. However, each data bit so sent and received requires the addition of another data line to the bus.
  • each memory device receives an individual set of control signals 14 from memory controller 10. These separately transmitted signals are required to regulate memory device access to the common data bus lines.
  • conventional memory systems use a large number of data lines, or a relatively wide bus.
  • a line is used to describe the physical means by which data bits are electronically communicated from one point to another in a system.
  • a line may take the form, alone or in combination, of a printed circuit board (PCB) strip, metal contact, pin and/or via, microstrip. semiconductor channel, etc.
  • a line may be single or may be associated with a bus.
  • a "bus” is a collection, fixed or variable, of lines, and may also be used to describe the drivers, laches, buffers, and other elements associated with an operative collection of lines.
  • a bus may communicate control information, address information, and/or data. In the foregoing examples of conventional memory systems, the bus was assumed to transmit data only. Address and control information is separately transmitted by additional lines or buses.
  • Such massively parallel, or wide buses are required in conventional memory systems due to the slow access speed of the individual memory devices.
  • Wide buses have long been associated with implementation and performance problems, such as excessive power consumption, slow speed, loss of expandability and design flexibility, etc.
  • bus multiplexing of control, address and/or data information has become commonplace. Multiplexing, in any of its varied forms, effectively "time-shares" a bus between a number of devices.
  • Multiplexing allows reduction in bus size. It also greatly increases system complexity. Such complexity often results in increased memory system rigidity. That is, once implemented in all its complexity, the integration of a new function into the bus- multiplexing memory system becomes extremely difficult. In particular, memory system designers continue to face enormous challenges in increasing data throughput while minimizing system complexity, and maintaining system reliability.
  • the present invention provides a high-speed memory system having enhanced modal functionality without a significant corresponding increase in system complexity.
  • the present invention provides a memory system operating in either a first mode or a second mode of operation and comprising; a memory controller connected to memory devices via at least one channel, the memory controller communicating at least one command to each one of memory devices via the at least one channel, such that while the memory system operates in the first mode, one of the memory devices responds to the at least one command to accomplish transfer of data between the one memory device and the memory controller during a first time period; and while the memory system operates in the second mode, a plurality of the memory devices responds to the at least one command to accomplish transfer of data between the plurality of memory devices and the memory controller during the first time period.
  • the present invention provides a memory system operating in either a first mode or a second mode of operation and comprising; a memory controller connected to memory devices via at least one channel, the memory controller communicating at least one command to each one of memory devices via the at least one channel; such that while the memory system operates in the first mode, one of the memory devices responds to the at least one command to change operating states, and while the memory system operates in the second mode, a plurality of the memory devices responds to the at least one command to change operating states.
  • the present invention in various configurations also allows a plurality of relatively low bandwidth memory devices to combine in operation to produce high bandwidth data output.
  • the present invention provides a memory system comprising; a memory controller connected to at least one channel, and memory devices connected to the at least one channel, wherein at least one of the memory devices is a low bandwidth device being individually incapable of communicating a first data block with the memory controller during a first time period, wherein the memory controller communicates control information to at least a first plurality of the memory devices via the at least one channel, and in response to the control information, the first plurality of memory devices, as a multiplexed group on the channel, communicates a first data block between the memory controller and the first plurality of the memory devices during a first time period.
  • the present invention provides a memory system comprising; a memory controller connected to at least one repeater via a main channel, wherein each repeater connects a first plurality of memory devices via at least one auxiliary channel, and wherein each one of the first plurality of memory devices is a low bandwidth device individually incapable of communicating a first data block with the memory controller during a first time period, and wherein the memory controller communicates control information to the first plurality of the memory devices via the at least the main channel, the at least one repeater, and the at least one auxiliary channel, and in response to the control information, the first plurality of memory devices, as a multiplexed group on the channel, communicates a first data block between the memory controller and the first plurality of the memory devices during a first time period.
  • the present invention provides a memory system capable of selectively operating in first and second modes comprising; a memory controller, memory devices, and a channel connecting the memory controller with the memory devices, wherein each one of the memory devices is capable of operating in at least a first and a second power state, the first power state consuming more power than the second power state, such that while the memory system is operating in the first mode, the memory controller generates a first power down device identification (ID) unique to one of the memory devices, whereby the one memory device upon receiving the first power down device ID will transition from the first power state to the second power state, and while the memory system is operating in the second mode, the memory controller generates a second power down device ID having the same structure as the first power down device ID, such that a plurality of memory devices upon receiving the second power down device ID transition from the first power state to a second power state.
  • ID power down device identification
  • the present invention provides a memory system comprising; a memory controller connected to a data bus comprising a plurality of lines and generating one or more command packets, a group of memory devices, wherein each memory device in the group is connected to at least one of the plurality of lines, each one of the memory devices in the group comprising a circuit responsive to the one or more command packets from the memory controller, such that the group of memory devices combine to output a first data packet during a first time period by multiplexing data onto the data bus during the first time period.
  • the present invention provides a method of reading data in a memory system during a first time period, the memory system comprising a memory controller connected to memory devices via a data bus having multiple data bus lines, the method comprising; communicating at least one command packet from the memory controller to a plurality of the memory devices, for each memory device in the plurality of memory devices, seizing at least one data bus line during the first time period and returning data to the memory' controller via the at least one data bus line in response to the at least one command packet.
  • the present invention provides a method of reading a first block of data in a memory system during a first time period, the memory system comprising a memory controller connected to memory devices via a data bus having multiple data bus lines, the first time period comprising sequence of second time periods, and the method comprising; communicating at least one command packet from the memory controller to a plurality of the memory devices, during each second time period, outputting a second block of data smaller than the first block of data from a selected memory device in the plurality of memory devices via the data bus, such that a combination of the second blocks output during the first time period comprises the first data block.
  • Figs. 1 and 2 illustrate conventional wide bus memory systems
  • Fig. 3 generally illustrates one embodiment of a high-speed memory system having a relatively narrow bus
  • Fig. 4 illustrates a single channel embodiment of a high-speed memory system having a relatively narrow bus
  • Figs. 5-12 illustrate various exemplary memory system configurations within the context of the present invention.
  • Fig. 13 illustrates an exemplary bit-line multiplex memory system according to the present invention.
  • FIGs 1 and 2 Very general differences between conventional memory systems and the assignee's memory systems can be seen by comparing Figs 1 and 2 with Fig. 3.
  • eight 16-bit memory devices 13 according to the assignees design are connected to a memory controller 22 by two 16 bit (1 byte) data buses.
  • the 16 bit data buses may be viewed as a channel either individually or taken together.
  • each one of the assignee's memory devices is capable, within the memory system architecture, of communicating control information, address information and/or data over each of two channels on both edges of a 400 MFIz clock which results in an effective transfer rate of 800 MHz across each of two channels that are 2 bytes to produce a total data throughput of 3.2 GB/sec.
  • memory device as used in this document broadly describes a range of devices capable of storing data, and receiving and/or transmitting data at the request of controlling device(s). All forms and configurations of DRAMs, SRAMs, ROM, EPROM, and E 2 PROM devices are contemplated by the term memory device.
  • One defining feature of the term memory device is the presence of electronically accessible data stored in the row and column structure typical in the foregoing devices. Rows within this structure may often be further designated into banks and/or pages.
  • a memory system according to the present invention is generally illustrated in Fig 4, wherein a memory controller 22 is connected to a plurality of memory devices 13 via a channel 26.
  • Memory controller 22 and memory devices 13 typically include an interface 24 to channel 26.
  • the memory devices are preferably 16 bit or 18 bit (2 byte) devices, but one of ordinary skill in the art will appreciate that the memory devices might be configured with any convenient number of bits and with any definition of byte size.
  • Memory devices 13 only respond to memory controller 22, and accordingly require a relatively low level of intelligence. As a result, memory device die size overhead is minimized to keep the memory devices affordable.
  • Memory controller 22 is the only device generating commands to memory devices 13. Data transfers occur only between memory controller 22 and memory devices 13. never between memory devices.
  • Memory controller 22 interfaces with a "requester," external to the memory system.
  • the requestor is any device requesting data be read/written from/to the memory system or performing memory device upkeep such as refresh, and may include, alone or in any combination, a conventional microprocessor, peripheral device, ASIC, conventional memory controller, or graphics chip.
  • Memory controller 22 receives a command from the requestor and translates the address, data, and control components of the command into a protocol common to memory controller 22 and memory devices 13.
  • Channel 26 connotes a system level specification defining a number of buses and signal lines, as well as their electrical and mechanical interfaces, including signaling levels and signal timing. A number of si mal types may be present on channel 26 at any given time.
  • channel 26 may include various clock signals 15.
  • bus lines in channel 26 are terminated at their characteristic impedance at one end.
  • the bus topology of channel 26 finds memory controller 22 at one end and terminators at the other end, with memory devices in between.
  • Channel 26 is synchronous, meaning that all command and data transfers are referenced to clock edges.
  • a memory device sends data to memory controller 22 synchronous with one clock signal, and memory controller 22 sends data to memory devices
  • Each packet is transferred via channel 26 during a defined period of time.
  • the period of time is four clock cycles, but any number of clock cycles might be conveniently used.
  • Control/address information may be multiplexed with data on a single bus structure, however as presently preferred, an independent control/address bus is used, and data is transferred via a separate data bus.
  • command packets There are at least two types of command packets: ROW and COL. These command packets have a predetermined structure or format, and include a number of bit fields. Some of these bit fields may be user definable.
  • ROW packets communicate an instruction from the memory controller 22 to memory devices 13 related to memory device row operations.
  • the ROW packet command is used to activate a memory device, or to precharge rows in a memory device.
  • the activate command acts like the falling edge of RAS in a conventional DRAM, and the precharge command acts like the rising edge of RAS.
  • An activate command can be sent to any DRAM bank whose sense-amplifiers have been precharged.
  • Other ROW packet commands include, for example, refresh, power state control, etc.
  • a ROW packet contains up to 24 bits of control information sent during a time period of four clock cycle over three lines of the control/address bus.
  • COL packets are also sent via the control/address bus.
  • COL packets carry column instructions, like read and write instructions from the memory controller to a memory device.
  • a COL packet contains up to 40 bits of control information sent during a time period of four clock cycle over five lines of the control/address bus.
  • the preferred COL packet is split into at least two fields. The first field specifies the primary operation, such as a Read or Write to be performed by an activated memory device(s). The second field may be used for masks or extended operation (XOP) commands like an explicit Precharge.
  • a data packet is sent from the memory controller to a memory device during a Write operation. In a Read operation, a data packet is "returned" to the memory controller from a memory device.
  • a data packet contains 16 bytes of data returned to the memory controller during a Read operation over dual 8-bit data buses, DQA and DQB, during the four clock cycle data transfer period.
  • One byte of data per data bus is read on each rising and falling edge of the clock.
  • data packets may be masked to allow as little as a single byte to be written in a memory device.
  • Both ROW and COL packets include a device identification (ID) field.
  • ID device identification
  • the ROW device ID field and the COL device ID designate a single memory device for each Read or Write operation.
  • the assignee's memory system allows a specific memory device to respond to a read/write command in accordance with the device ID fields specified in the ROW and COL packets. Relative to the conventional structure shown in Fig 2, this ability provides remarkable advantages. For example, no separate control signal path need be established between each memory device and the memory controller. Rather, the channel communicates all information be it data, control, or address.
  • the referenced application describes, in one aspect, an invention which uses one or more device IDs contained in ROW or COL packets to activate a plurality of memory devices in a memory system in order to Read/Write data from/to a plurality of memory devices while the memory system is operating in chip-kill mode.
  • the same one or more device IDs are interpreted to activate a single memory device in non-chip-kill mode.
  • memory system designers would benefit by a generic ability to transfer data to and from a plurality of memory devices connected to a memory controller via a common channel in response to a common command.
  • the common command would preferably have the same (or very similar) form or structure no matter the memory system mode of operation.
  • the common form or structure would be interpreted differently as between the different modes of operation. For example, taking a convenient example, a device ID field contained in a ROW or
  • COL packet would be interpreted in a first mode of memory system operation to activate and/or act upon a single memory device.
  • the single memory device might upon receiving the device ID field Read or Write data, perform some other memory device function such as precharge, or transition between operational states, such as power states.
  • the same device ID field would be interpreted to activate and/or act upon multiple memory devices.
  • the multiple memory devices might Read/Write data, precharge, refresh, transition power state, indicate operational status to the memory controller, or perform any number of other functions.
  • the memory devices recognize the current mode of memory system operation, and receive the device ID f ⁇ eld(s), they are able to respond as a single group of memory devices, or as a subset of selected memory devices.
  • the device ID fields used throughout are merely examples. Any reasonable portion of a control packet and/or an address packet might be interpreted differently, as between modes of operation. In one aspect of the invention, however, the form, structure and timing of the control/address packet need not significantly change between the two or more modes of operation. That is. a common command packet structure may be provided for all modes of operation, and portions of the common structure be interpreted differently between the modes of operation.
  • power state transitions within a memory system are efficiently made by grouping memory devices.
  • the size of the grouping may vary by mode of operation or particular design requirements.
  • power transitions may be made on a single memory device-by-single memory device basis.
  • power transitions might be best made on a group of memory devices-by-group of memory devices basis.
  • a plurality of relatively lower bandwidth memory devices responds to a single Read/Write command.
  • the memory system may transfer a first block of data during a first time period, where individually each memory device, responding singularly, could not transfer sufficient data to form the first data block in the first time period.
  • each memory device might be limited to a maximum data transfer rate equal to a second data block, smaller than the first data block. Only by accessing a group of such memory devices and combining their respective outputs can the memory system provide the required data throughput.
  • the group of memory devices can be accessed by a common set of commands using, for example, the device ID fields.
  • the data transferred from the group of memory devices may be combined using cycle multiplexing, bit multiplexing, or a combination of cycle/bit multiplexing.
  • cycle multiplexing each memory device in the group of responding memory devices will communicate data during a selected portion (a second time period) of the first time period.
  • bit multiplexing each memory device in the group of responding memory devices will seize a selected portion (a number of "dedicated" bit lines) of the data bus during the first time period.
  • the commonly assigned application incorporated by referenced above includes specific detailed examples of cycle multiplexing, bit multiplexing, and time/space multiplexing.
  • a single memory device in a memory system operating in a first mode transitions from a higher power state (such as Active or Standby) into a lower power state (such as Nap or Powerdown) according to a "power transition command" contained in a command packet.
  • a power transition command when the memory system is operating in a second mode, a power transition command will cause a similar transition in a group of memory devices receiving the common command packet.
  • memory devices may be grouped, physically and/or logically, in any reasonable configuration. Within such configurations, it may be desirable in some operating modes to transition memory devices on a group basis using a single command or single set of commands, e.g., a set of ROW and COL command packets.
  • the present invention enables this capability while preserving the common structure of the command packets.
  • COL packets This ability can be very useful for memory systems which map consecutive column addresses to different memory device groups. For example, when consecutive Read operations to adjacent column addresses map to different memory device groups, each group will require an Activate operation before the Read operation is performed. In systems in which the number of Column operations per Active operation is fixed and larger than one,
  • Row command bandwidth can be reduced by having multiple memory device groups respond to each Activate (Row) packet. For example, if it is known that two Column operations are performed for each Activate (Row) operation, and if it is the case that these two Column operations span two memory device groups, then Row command bandwidth can be saved by having both memory device groups respond to the same Activate packet. This saves Row command bandwidth so that it can be used for other purposes or operations.
  • memory systems can be designed in a vast number of specific configurations, all including a plurality of memory devices capable of operating in multiple modes. Several exemplary configurations are shown in Figs. 5 through 12. These configurations do not come close to exhausting the design possibilities, but do further explain how groups of memory devices might be effectively used in a memory system capable of operating in multiple modes.
  • exemplary configurations may be used to construct memory systems comprising "low bandwidth" memory devices logically arranged in groups, such that one or more groups may be accessed to provide relatively higher data throughput.
  • Figs 5 and 6 show possible memory system configurations comprising 9 channels, each channel including eight memory devices, and each memory device contributing 2 bytes of data per Read/Write operation.
  • each one of the 9 channels send/receives 16 bytes of data per Read/Write operation, for a maximum of 144 bytes of data across the 9 channels.
  • the 144 bytes of data may include 128 bytes of actual data and 16 bytes of syndrome, or any other desirable combination of 144 bytes of data.
  • Memory controller 22 sends the same command to each one of the 9 channels, and a group of eight memory devices, MD0-MD7. responds for each channel.
  • memory controller 24 sends one or more commands down a main channel 25 connecting a plurality of data replication repeaters "M" (hereafter
  • the repeater receives channel information, replicates the information, and directs the information to one or more other channels.
  • Main channel 25 may vary is size, for example from 2 bytes wide to 18 bytes wide.
  • the first repeater on main channel 25 creates a copy of the memory controller command, sends it to the next repeater on main channel 25, and also sends the command to at least one auxiliary channel 27.
  • Each auxiliary channel 27 communicates with eight memory devices, MD0-MD7, each of which contributes 2 bytes to per Read/Write operation, such that each auxiliary channel transfers 16 bytes of data per Read/Write operation. Assuming 9 auxiliary channels, as shown in Fig 6. up to 144 data bytes may be transferred by the memory system for each Read/Write operation issued by the memory controller over a plurality of clock cycles, as determined by the width of main channel 25.
  • each memory device contributes 1 byte of data per Read/Write operation.
  • channels 0 through 3 include sixteen memory devices, MD0-MD15 and channel 4 includes eight memory devices, MD0-MD7.
  • each Read/Write operation transfers up to 72 bytes of data.
  • the 72 bytes of data may include 64 bytes of actual data and 8 bytes of syndrome, or any other desirable combination of 72 bytes of data.
  • the memory system of Fig. 8 sends commands down a main channel 25 connecting a plurality of data replication repeaters M.
  • two repeaters control the four and a half channels described above via five auxiliary channels 27.
  • the system configurations shown in Figs 5-12 are particularly well suited for implementation with X8 or XI 6 memory devices.
  • the system configurations might incorporate X9 or XI 8 memory devices.
  • the present invention may be implemented for any reasonable system definition of bits/bytes per memory device, bits per byte, bytes per channel, and first and second data block sizes.
  • XI 6 and XI 8 memory devices are widely available and well known to memory system designers, the memory system configuration examples herein are given assuming such memory devices.
  • each memory device contributes two bytes of data per operation
  • MD0-MD7 may be connected to memory controller 24, as shown in Figs. 9 and 10.
  • each channel transfers up to 16 (9-bit) bytes of data per operation for a maximum total of 64 (9-bit) bytes of data. Since each byte is 9-bits long, the 64 total data bytes per operation may include 64 (8- bit) bytes of actual data and 8 (8-bit) bytes of syndrome, or any other desirable combination of data/ syndrome.
  • the memory system configurations shown in Figs 1 1 and 12 reduce the number of channels to two, but uses sixteen memory devices per channel to accomplish the same data transfer rate.
  • each example illustrates how a plurality of memory devices responding as a group to a single Read/Write operation can transfer high bandwidth data.
  • this high bandwidth data includes syndrome for error detection and correction.
  • the chip-kill mode/non-chip-kill mode of the above incorporated application is an excellent specific example of this more generally applicable capability. That is, despite an assumption that each memory device in a group of responding memory devices is individually incapable of transferring high bandwidth data, (i.e., assuming each memory device in the group is incapable of transferring a full channel of data during a defined data transfer period), any one of the foregoing memory system configurations might be used to effectively implement a memory system having a chip-kill mode of operation. Since by its nature chip-kill mode spreads a first data block across two or more memory devices, the 8 and 16 memory device groupings shown in Figs. 5-12 readily lend themselves to the implementation of a memory system having a chip-kill mode of operation.
  • High data throughput is a major goal of nearly every contemporary memory system design.
  • High data throughput for a memory system is a function of memory device bandwidth, i.e., how much data can be transferred from a memory device during a single operation.
  • high bandwidth memory devices are significantly more expensive and often consume much more power than low bandwidth memory devices.
  • Memory system configurations provided by the present invention operationally group 8 (or 16) memory devices together.
  • each memory device When operated in a group, each memory device provides only 1 /8th or 1/16th of the total maximum data bandwidth using, for example, cycle multiplexing or bit multiplexing.
  • cycle multiplexing or bit multiplexing For example, cycle multiplexing or bit multiplexing.
  • 8 memory devices with memory cores that operate at a maximum of 200MB/sec connected to the same channel so that the aggregate data bandwidth across the 8 memory devices is 1.6GB/sec.
  • the specific operating characteristics will vary according to the design of the memory device, and memory devices may be grouped in any convenient number, but the present invention allows relatively low data bandwidth memory devices to operate as a group in order to provide high data bandwidth during a defined data transfer period. This ibility provides several advantages including reduced die size for individual memory device:,. Memory devices with reduced die size are less costly, and consume less power.
  • memory devices supporting multiple operating speeds, or multiple modes of operation having different operating speeds may be grouped according to the present invention and operated at a lower speed/mode. Such operation results in a lower effective data bandwidth per memory device, but the grouping of such memory devices more than compensates for the lower individual memory device bandwidth. In other words, high channel bandwidth may be achieved with memory devices operating well below their maximum speed, or in a lower operating mode. Lower memory device operating speeds and operating modes reduces power consumption, and may extend the useful life of the memory devices.
  • the lines forming channel 26 of Fig. 4 are preferably terminated at their characteristic impedance at one end and at memory controller 22 at other end.
  • the terminators pull bus line signals up to a memory system supply voltage V lerm which corresponds to logic "0" in the memory system.
  • a memory device or memory controller 22 asserts a logic "1 " by sinking current from a line, preferably using an open-drain NMOS transistor structure.
  • power is principally dissipated on channel 26 only when a device drives a logic 1 on a line.
  • the data bus can thus be thought of as implementing a wired "OR" function.
  • This particular aspect of the present invention readily facilitates data bus multiplexing between multiple memory devices. Taking bit line multiplexing as an example and assuming a Read operation, all masked data bus lines at V l ⁇ ;rm are interpreted as providing a "0" data value, and all unmasked data bus lines at ground are interpreted as providing a "1 " data value. This is true regardless of the specific memory device responsible for the voltage apparent on each data bus line. To further illustrate this point, consider the example in Fig. 13 which shows part of a memory system. In the illustrated partial memory system, a plurality of memory devices (MDO, MDl , MD2, . .
  • each memory device contains nine data I/O pins respectively connected to one of the nine data bus lines (0 . . . 8) of DQA. However, because bit line multiplexing is used, each memory device is capable of effectively driving data onto less than all nine data bus lines during the data transfer period.
  • the "wired OR" nature of the data bus contemplated in this particular aspect of the present invention readily facilitates bit-line multiplexing by a number of memory devices.
  • MDO will drive "valid" data onto bits lines 7 and 8 during a particular cycle.
  • MDl drives valid data onto bit lines 1 and 2
  • MD2 drives bit line 2 and 3, etc.
  • the "valid" distinction is made above because each memory device actually drives all nine data bus lines during every cycle.
  • use of a current-mode I/O driver between each memory device and the data bus lines allow logical "0's" to be output for all data bus lines not validly driven by a particular memory device during the cycle. In effect, all "0-driving" I/O drivers do not electrically connect to the wired OR data bus.
  • MDO will output O's on data bus lines 0 through 6
  • MDl will output O's on data bus lines 2 through 8, etc.
  • the memory controller "sees" data on the bus from one or more memory devices which seize data bus lines on a time basis, a bit line basis, or a time/bit line basis as prescribed by memory controller generated command packet(s).
  • any one of these multiplexing techniques allows a group of memory devices to generate a single data packet in response to a single command packet or single set of command packets.

Abstract

A high-speed memory system is disclosed in which a single command effects control over either a single memory device or a plurality of memory devices depending on a present mode of operation. Such control may effect data transfer between the one or more memory devices and a memory controller, as well as operating state transitions or power mode transitions for the memory devices. Similarly, various configurations of relatively low bandwidth memory devices respond as a selectively controllable group to transmit or receive high bandwidth data.

Description

MEMORY SYSTEM WITH CHANNEL MULTIPLEXING OF MULTIPLE MEMORY DEVICES
FIELD OF THE INVENTION A memory system is disclosed which is characterized by high speed data throughput on a channel, or on a number of channels, between a memory controller and associated memory devices.
BACKGROUND OF THE INVENTION During the last several decades, memory technology has progressed dramatically. The density of commercial memory devices, taking Dynamic Random Access Memory (DRAM) as a convenient example, has increased from 1 Kbit to 64 Mbits per chip, a factor of 64,000.
Unfortunately, memory device performance has not kept pace with increasing memory device densities. In fact memory device access times during the same time period has only improved by about a factor of 5. By comparison, during the past twenty years, microprocessor performance has increased by several orders of magnitude. This growing disparity between the speed of microprocessors and that of memory devices has forced memory system designers to create a variety of complicated and expensive hierarchical memory techniques, such as Static Random Access Memory (SRAM) caches and parallel DRAM arrays. Further, now that computer system users increasingly demand high performance graphics and other memory hungry applications, memory systems often rely on expensive frame buffers to provide the necessary data bandwidth. Increasing memory device densities satisfy the overall quantitative demand for data with fewer chips, but the problem of effectively accessing data at peak microprocessor speeds remains.
Massively parallel DRAM arrays having relatively wide buses have been a typical response to the demand for more data bandwidth at higher access speeds. Figs. 1 and 2 illustrate generic, conventional memory systems having a memory controller 10 connected to a number of memory devices 12 via a wide bus structure. In Fig. 1 , each memory device 12 is connected to memory controller 10 via sixteen (16) dedicated bus lines. (Not all bus lines are individually shown for the sake of clarity). Assuming four memory devices in the system of Fig. 1 , the data bus is 64 lines wide. This structure allows the memory controller to directly send and receive data from a specific memory device without interference from any other memory device. However, each data bit so sent and received requires the addition of another data line to the bus.
In the memory system shown in Fig. 2, a single 64 line, data bus is shared by four 64- bit memory devices. In the example shown in Fig 1. accessing four 64-bit memory devices would require a 256 line wide data bus. Thus, the structure of the memory system shown in Fig 2 represents an advance over that of Fig. 1. However, the reduction in relative data bus width comes with some additional overhead. In the memory system of Fig. 2, each memory device receives an individual set of control signals 14 from memory controller 10. These separately transmitted signals are required to regulate memory device access to the common data bus lines. As can be seen from the foregoing examples, conventional memory systems use a large number of data lines, or a relatively wide bus. The term "line(s)'" is used to describe the physical means by which data bits are electronically communicated from one point to another in a system. A line may take the form, alone or in combination, of a printed circuit board (PCB) strip, metal contact, pin and/or via, microstrip. semiconductor channel, etc. A line may be single or may be associated with a bus. A "bus" is a collection, fixed or variable, of lines, and may also be used to describe the drivers, laches, buffers, and other elements associated with an operative collection of lines. In the description of the invention which follows, a bus may communicate control information, address information, and/or data. In the foregoing examples of conventional memory systems, the bus was assumed to transmit data only. Address and control information is separately transmitted by additional lines or buses.
Such massively parallel, or wide buses, are required in conventional memory systems due to the slow access speed of the individual memory devices. Wide buses have long been associated with implementation and performance problems, such as excessive power consumption, slow speed, loss of expandability and design flexibility, etc. As a result, bus multiplexing of control, address and/or data information has become commonplace. Multiplexing, in any of its varied forms, effectively "time-shares" a bus between a number of devices.
Multiplexing allows reduction in bus size. It also greatly increases system complexity. Such complexity often results in increased memory system rigidity. That is, once implemented in all its complexity, the integration of a new function into the bus- multiplexing memory system becomes extremely difficult. In particular, memory system designers continue to face enormous challenges in increasing data throughput while minimizing system complexity, and maintaining system reliability.
SUMMARY OF THE INVENTION The present invention provides a high-speed memory system having enhanced modal functionality without a significant corresponding increase in system complexity.
Thus, in one aspect, the present invention provides a memory system operating in either a first mode or a second mode of operation and comprising; a memory controller connected to memory devices via at least one channel, the memory controller communicating at least one command to each one of memory devices via the at least one channel, such that while the memory system operates in the first mode, one of the memory devices responds to the at least one command to accomplish transfer of data between the one memory device and the memory controller during a first time period; and while the memory system operates in the second mode, a plurality of the memory devices responds to the at least one command to accomplish transfer of data between the plurality of memory devices and the memory controller during the first time period.
In another aspect, the present invention provides a memory system operating in either a first mode or a second mode of operation and comprising; a memory controller connected to memory devices via at least one channel, the memory controller communicating at least one command to each one of memory devices via the at least one channel; such that while the memory system operates in the first mode, one of the memory devices responds to the at least one command to change operating states, and while the memory system operates in the second mode, a plurality of the memory devices responds to the at least one command to change operating states. The present invention in various configurations also allows a plurality of relatively low bandwidth memory devices to combine in operation to produce high bandwidth data output.
Thus, in one aspect, the present invention provides a memory system comprising; a memory controller connected to at least one channel, and memory devices connected to the at least one channel, wherein at least one of the memory devices is a low bandwidth device being individually incapable of communicating a first data block with the memory controller during a first time period, wherein the memory controller communicates control information to at least a first plurality of the memory devices via the at least one channel, and in response to the control information, the first plurality of memory devices, as a multiplexed group on the channel, communicates a first data block between the memory controller and the first plurality of the memory devices during a first time period.
In still another aspect, the present invention provides a memory system comprising; a memory controller connected to at least one repeater via a main channel, wherein each repeater connects a first plurality of memory devices via at least one auxiliary channel, and wherein each one of the first plurality of memory devices is a low bandwidth device individually incapable of communicating a first data block with the memory controller during a first time period, and wherein the memory controller communicates control information to the first plurality of the memory devices via the at least the main channel, the at least one repeater, and the at least one auxiliary channel, and in response to the control information, the first plurality of memory devices, as a multiplexed group on the channel, communicates a first data block between the memory controller and the first plurality of the memory devices during a first time period.
In a related aspect to the foregoing, the present invention provides a memory system capable of selectively operating in first and second modes comprising; a memory controller, memory devices, and a channel connecting the memory controller with the memory devices, wherein each one of the memory devices is capable of operating in at least a first and a second power state, the first power state consuming more power than the second power state, such that while the memory system is operating in the first mode, the memory controller generates a first power down device identification (ID) unique to one of the memory devices, whereby the one memory device upon receiving the first power down device ID will transition from the first power state to the second power state, and while the memory system is operating in the second mode, the memory controller generates a second power down device ID having the same structure as the first power down device ID, such that a plurality of memory devices upon receiving the second power down device ID transition from the first power state to a second power state.
In another related aspect, the present invention provides a memory system comprising; a memory controller connected to a data bus comprising a plurality of lines and generating one or more command packets, a group of memory devices, wherein each memory device in the group is connected to at least one of the plurality of lines, each one of the memory devices in the group comprising a circuit responsive to the one or more command packets from the memory controller, such that the group of memory devices combine to output a first data packet during a first time period by multiplexing data onto the data bus during the first time period.
In still another related aspect, the present invention provides a method of reading data in a memory system during a first time period, the memory system comprising a memory controller connected to memory devices via a data bus having multiple data bus lines, the method comprising; communicating at least one command packet from the memory controller to a plurality of the memory devices, for each memory device in the plurality of memory devices, seizing at least one data bus line during the first time period and returning data to the memory' controller via the at least one data bus line in response to the at least one command packet.
In still another related aspect, the present invention provides a method of reading a first block of data in a memory system during a first time period, the memory system comprising a memory controller connected to memory devices via a data bus having multiple data bus lines, the first time period comprising sequence of second time periods, and the method comprising; communicating at least one command packet from the memory controller to a plurality of the memory devices, during each second time period, outputting a second block of data smaller than the first block of data from a selected memory device in the plurality of memory devices via the data bus, such that a combination of the second blocks output during the first time period comprises the first data block.
BRIEF DESCRIPTION OF THE DRAWINGS Figs. 1 and 2 illustrate conventional wide bus memory systems; Fig. 3 generally illustrates one embodiment of a high-speed memory system having a relatively narrow bus; Fig. 4 illustrates a single channel embodiment of a high-speed memory system having a relatively narrow bus;
Figs. 5-12 illustrate various exemplary memory system configurations within the context of the present invention; and
Fig. 13 illustrates an exemplary bit-line multiplex memory system according to the present invention.
DETAILED DESCRIPTION The assignee of the present invention has pioneered the development of next generation memory systems having a relatively narrow, high speed bus(es) and associated memory devices, along with the interface technology required to provide high data throughput. See, U.S. Patent Nos. 5,319,755; 5,243,703; and 5,254,883, the disclosures of which are incorporated herein by reference.
Very general differences between conventional memory systems and the assignee's memory systems can be seen by comparing Figs 1 and 2 with Fig. 3. In Fig 3, eight 16-bit memory devices 13 according to the assignees design are connected to a memory controller 22 by two 16 bit (1 byte) data buses. The 16 bit data buses may be viewed as a channel either individually or taken together. Presently, each one of the assignee's memory devices is capable, within the memory system architecture, of communicating control information, address information and/or data over each of two channels on both edges of a 400 MFIz clock which results in an effective transfer rate of 800 MHz across each of two channels that are 2 bytes to produce a total data throughput of 3.2 GB/sec.
In effect, the assignee's solution replaces costly, conventional memory subsystems and interconnections with a single, standard chip-to-chip bus and improved memory devices. The term "memory device" as used in this document broadly describes a range of devices capable of storing data, and receiving and/or transmitting data at the request of controlling device(s). All forms and configurations of DRAMs, SRAMs, ROM, EPROM, and E2PROM devices are contemplated by the term memory device. One defining feature of the term memory device is the presence of electronically accessible data stored in the row and column structure typical in the foregoing devices. Rows within this structure may often be further designated into banks and/or pages. In addition to the referenced U.S. Patents, information describing the assignee's memory systems and memory devices may be had at Rambus™ Inc., Mountain View, California. See, for example, the Direct RDRAM™ 64/72-Mbit Data Sheet, the Direct RAC Data Sheet, the Direct RMC.dl Data Sheet, A Logical View of the Direct Rambus Architecture, Direct Rambus Technology Overview, Direct Rambus Clock Generator Source Sheet. Direct Rambus RIMM™ Module Data Sheet, the Direct Rambus Memory Controller
Summary, all 1998 documents and all incorporated herein by reference.
A memory system according to the present invention is generally illustrated in Fig 4, wherein a memory controller 22 is connected to a plurality of memory devices 13 via a channel 26. Memory controller 22 and memory devices 13 typically include an interface 24 to channel 26. The memory devices are preferably 16 bit or 18 bit (2 byte) devices, but one of ordinary skill in the art will appreciate that the memory devices might be configured with any convenient number of bits and with any definition of byte size. Memory devices 13 only respond to memory controller 22, and accordingly require a relatively low level of intelligence. As a result, memory device die size overhead is minimized to keep the memory devices affordable.
Memory controller 22 is the only device generating commands to memory devices 13. Data transfers occur only between memory controller 22 and memory devices 13. never between memory devices.
Memory controller 22 interfaces with a "requester," external to the memory system. The requestor is any device requesting data be read/written from/to the memory system or performing memory device upkeep such as refresh, and may include, alone or in any combination, a conventional microprocessor, peripheral device, ASIC, conventional memory controller, or graphics chip. Memory controller 22 receives a command from the requestor and translates the address, data, and control components of the command into a protocol common to memory controller 22 and memory devices 13.
Channel 26 connotes a system level specification defining a number of buses and signal lines, as well as their electrical and mechanical interfaces, including signaling levels and signal timing. A number of si mal types may be present on channel 26 at any given time. In addition to a data bus, preferably 2 bytes wide, an address/control bus, and reference voltage lines, channel 26 may include various clock signals 15. Preferably, bus lines in channel 26 are terminated at their characteristic impedance at one end. Thus, the bus topology of channel 26 finds memory controller 22 at one end and terminators at the other end, with memory devices in between.
Channel 26 is synchronous, meaning that all command and data transfers are referenced to clock edges. Preferably, a memory device sends data to memory controller 22 synchronous with one clock signal, and memory controller 22 sends data to memory devices
13 synchronous with another clock signal. Because the lines in channel 26 are impedance matched, the clock and data signals remain synchronized as they are transferred from device to device. Data transfers may be transferred effectively on both edges of the memory system clock. On channel 26, control information, address information, and data move in packets.
Each packet is transferred via channel 26 during a defined period of time. In one presently preferred embodiment, the period of time is four clock cycles, but any number of clock cycles might be conveniently used. Control/address information may be multiplexed with data on a single bus structure, however as presently preferred, an independent control/address bus is used, and data is transferred via a separate data bus.
There are at least two types of command packets: ROW and COL. These command packets have a predetermined structure or format, and include a number of bit fields. Some of these bit fields may be user definable.
ROW packets communicate an instruction from the memory controller 22 to memory devices 13 related to memory device row operations. Assuming as an example that memory devices 13 are DRAMs, the ROW packet command is used to activate a memory device, or to precharge rows in a memory device. The activate command acts like the falling edge of RAS in a conventional DRAM, and the precharge command acts like the rising edge of RAS. An activate command can be sent to any DRAM bank whose sense-amplifiers have been precharged. Other ROW packet commands include, for example, refresh, power state control, etc. As presently preferred, a ROW packet contains up to 24 bits of control information sent during a time period of four clock cycle over three lines of the control/address bus.
Column (COL) packets are also sent via the control/address bus. COL packets carry column instructions, like read and write instructions from the memory controller to a memory device. As presently preferred, a COL packet contains up to 40 bits of control information sent during a time period of four clock cycle over five lines of the control/address bus. The preferred COL packet is split into at least two fields. The first field specifies the primary operation, such as a Read or Write to be performed by an activated memory device(s). The second field may be used for masks or extended operation (XOP) commands like an explicit Precharge. A data packet is sent from the memory controller to a memory device during a Write operation. In a Read operation, a data packet is "returned" to the memory controller from a memory device. The term "returned" is used in reference to the fact that all Read operations begin for a memory device with a Read command issued from the memory controller, and to avoid potential confusion by use of a generic term such as "transmit" or "sent" which might also apply to a Write data packet from the memory controller.
As presently preferred, a data packet contains 16 bytes of data returned to the memory controller during a Read operation over dual 8-bit data buses, DQA and DQB, during the four clock cycle data transfer period. One byte of data per data bus is read on each rising and falling edge of the clock. During a Write operation, data packets may be masked to allow as little as a single byte to be written in a memory device.
Both ROW and COL packets include a device identification (ID) field. As typically configured, the ROW device ID field and the COL device ID designate a single memory device for each Read or Write operation. Thus, the assignee's memory system allows a specific memory device to respond to a read/write command in accordance with the device ID fields specified in the ROW and COL packets. Relative to the conventional structure shown in Fig 2, this ability provides remarkable advantages. For example, no separate control signal path need be established between each memory device and the memory controller. Rather, the channel communicates all information be it data, control, or address.
Applications have recently been identified in which memory system operations would be enhanced by the response of more than one memory device to a single set or combination of command packets. More particularly, the device ID fields of the ROW and COL packets have been identified as one vehicle by which a plurality of memory devices may be enabled in the context of a single read/write operation. Further, the use or interpretation of the device ID fields of the ROW and COL packets may vary according to the operating mode of the memory system. U.S. Patent Application No. 09/395,160 filed September 14, 1999 discloses these features in the specific context of chip-kill verses non-chip-kill modes of operation. The disclosure of this commonly assigned application is incorporated herein by reference. The referenced application describes, in one aspect, an invention which uses one or more device IDs contained in ROW or COL packets to activate a plurality of memory devices in a memory system in order to Read/Write data from/to a plurality of memory devices while the memory system is operating in chip-kill mode. In contrast, the same one or more device IDs are interpreted to activate a single memory device in non-chip-kill mode.
Like the chip-kill and non-chip-kill modes of operation described in the foregoing application, memory system designers would benefit by a generic ability to transfer data to and from a plurality of memory devices connected to a memory controller via a common channel in response to a common command. The common command would preferably have the same (or very similar) form or structure no matter the memory system mode of operation. The common form or structure would be interpreted differently as between the different modes of operation. For example, taking a convenient example, a device ID field contained in a ROW or
COL packet would be interpreted in a first mode of memory system operation to activate and/or act upon a single memory device. The single memory device might upon receiving the device ID field Read or Write data, perform some other memory device function such as precharge, or transition between operational states, such as power states. In contrast, during a second mode of operation, the same device ID field would be interpreted to activate and/or act upon multiple memory devices. Like the single memory device in the first mode of operation, the multiple memory devices might Read/Write data, precharge, refresh, transition power state, indicate operational status to the memory controller, or perform any number of other functions. So long as the memory devices recognize the current mode of memory system operation, and receive the device ID fιeld(s), they are able to respond as a single group of memory devices, or as a subset of selected memory devices. One of ordinary skill will recognize that the device ID fields used throughout are merely examples. Any reasonable portion of a control packet and/or an address packet might be interpreted differently, as between modes of operation. In one aspect of the invention, however, the form, structure and timing of the control/address packet need not significantly change between the two or more modes of operation. That is. a common command packet structure may be provided for all modes of operation, and portions of the common structure be interpreted differently between the modes of operation.
For example, many power state transitions within a memory system are efficiently made by grouping memory devices. The size of the grouping may vary by mode of operation or particular design requirements. Thus, in one mode of memory system operation, power transitions may be made on a single memory device-by-single memory device basis. In another mode of operation, however, power transitions might be best made on a group of memory devices-by-group of memory devices basis.
In another example, a plurality of relatively lower bandwidth memory devices responds to a single Read/Write command. By having a group of the lower bandwidth memory devices respond, the memory system may transfer a first block of data during a first time period, where individually each memory device, responding singularly, could not transfer sufficient data to form the first data block in the first time period. In other words, during the first time period, each memory device might be limited to a maximum data transfer rate equal to a second data block, smaller than the first data block. Only by accessing a group of such memory devices and combining their respective outputs can the memory system provide the required data throughput.
The group of memory devices can be accessed by a common set of commands using, for example, the device ID fields. The data transferred from the group of memory devices may be combined using cycle multiplexing, bit multiplexing, or a combination of cycle/bit multiplexing. In cycle multiplexing, each memory device in the group of responding memory devices will communicate data during a selected portion (a second time period) of the first time period. In bit multiplexing, each memory device in the group of responding memory devices will seize a selected portion (a number of "dedicated" bit lines) of the data bus during the first time period. The commonly assigned application incorporated by referenced above includes specific detailed examples of cycle multiplexing, bit multiplexing, and time/space multiplexing.
In one embodiment of the present invention, a single memory device in a memory system operating in a first mode transitions from a higher power state (such as Active or Standby) into a lower power state (such as Nap or Powerdown) according to a "power transition command" contained in a command packet. In contrast, when the memory system is operating in a second mode, a power transition command will cause a similar transition in a group of memory devices receiving the common command packet.
Any number of memory system design and use considerations may drive the definition of multiple memory system operating modes. Expected cyclical variations in data access, initiation of particular applications, and user volume are ready examples of such considerations.
As will be seen hereafter, memory devices may be grouped, physically and/or logically, in any reasonable configuration. Within such configurations, it may be desirable in some operating modes to transition memory devices on a group basis using a single command or single set of commands, e.g., a set of ROW and COL command packets. The present invention enables this capability while preserving the common structure of the command packets.
In the example used throughout the commonly assigned application incorporated above, the same number of devices respond to ROW packets as respond to COL packets. However, it is possible to have a different number of devices respond to ROW packets that
COL packets. This ability can be very useful for memory systems which map consecutive column addresses to different memory device groups. For example, when consecutive Read operations to adjacent column addresses map to different memory device groups, each group will require an Activate operation before the Read operation is performed. In systems in which the number of Column operations per Active operation is fixed and larger than one,
Row command bandwidth can be reduced by having multiple memory device groups respond to each Activate (Row) packet. For example, if it is known that two Column operations are performed for each Activate (Row) operation, and if it is the case that these two Column operations span two memory device groups, then Row command bandwidth can be saved by having both memory device groups respond to the same Activate packet. This saves Row command bandwidth so that it can be used for other purposes or operations. With all of the foregoing in mind, memory systems can be designed in a vast number of specific configurations, all including a plurality of memory devices capable of operating in multiple modes. Several exemplary configurations are shown in Figs. 5 through 12. These configurations do not come close to exhausting the design possibilities, but do further explain how groups of memory devices might be effectively used in a memory system capable of operating in multiple modes.
Further, the exemplary configurations may be used to construct memory systems comprising "low bandwidth" memory devices logically arranged in groups, such that one or more groups may be accessed to provide relatively higher data throughput. Figs 5 and 6 show possible memory system configurations comprising 9 channels, each channel including eight memory devices, and each memory device contributing 2 bytes of data per Read/Write operation.
In the memory system shown in Fig. 5, each one of the 9 channels send/receives 16 bytes of data per Read/Write operation, for a maximum of 144 bytes of data across the 9 channels. The 144 bytes of data may include 128 bytes of actual data and 16 bytes of syndrome, or any other desirable combination of 144 bytes of data. Memory controller 22 sends the same command to each one of the 9 channels, and a group of eight memory devices, MD0-MD7. responds for each channel.
In the memory system of Fig. 6, memory controller 24 sends one or more commands down a main channel 25 connecting a plurality of data replication repeaters "M" (hereafter
"the repeater"). One of ordinary skill in the art will understand that any acceptable implementation of the repeater can be used to effect the benefits of the present invention. Functionally, the repeater receives channel information, replicates the information, and directs the information to one or more other channels. Main channel 25 may vary is size, for example from 2 bytes wide to 18 bytes wide. In operation, the first repeater on main channel 25 creates a copy of the memory controller command, sends it to the next repeater on main channel 25, and also sends the command to at least one auxiliary channel 27. Each auxiliary channel 27 communicates with eight memory devices, MD0-MD7, each of which contributes 2 bytes to per Read/Write operation, such that each auxiliary channel transfers 16 bytes of data per Read/Write operation. Assuming 9 auxiliary channels, as shown in Fig 6. up to 144 data bytes may be transferred by the memory system for each Read/Write operation issued by the memory controller over a plurality of clock cycles, as determined by the width of main channel 25.
Other memory system configurations might use four and half channels, each full channel including sixteen memory devices, the half channel including eight memory devices. In these configurations, each memory device contributes 1 byte of data per Read/Write operation.
Thus, in Fig. 7 channels 0 through 3 include sixteen memory devices, MD0-MD15 and channel 4 includes eight memory devices, MD0-MD7. With this configuration and assuming each memory device transfers 1 byte of data per operation, each Read/Write operation transfers up to 72 bytes of data. The 72 bytes of data may include 64 bytes of actual data and 8 bytes of syndrome, or any other desirable combination of 72 bytes of data.
Like the memory system of Fig. 6, the memory system of Fig. 8 sends commands down a main channel 25 connecting a plurality of data replication repeaters M. Here, two repeaters control the four and a half channels described above via five auxiliary channels 27. The system configurations shown in Figs 5-12 are particularly well suited for implementation with X8 or XI 6 memory devices. Alternatively, the system configurations might incorporate X9 or XI 8 memory devices. The present invention may be implemented for any reasonable system definition of bits/bytes per memory device, bits per byte, bytes per channel, and first and second data block sizes. However, since XI 6 and XI 8 memory devices are widely available and well known to memory system designers, the memory system configuration examples herein are given assuming such memory devices.
Thus, assuming each memory device contributes two bytes of data per operation, 4 channels of XI 8 memory device. MD0-MD7, may be connected to memory controller 24, as shown in Figs. 9 and 10. In each of these memory system configurations, each channel transfers up to 16 (9-bit) bytes of data per operation for a maximum total of 64 (9-bit) bytes of data. Since each byte is 9-bits long, the 64 total data bytes per operation may include 64 (8- bit) bytes of actual data and 8 (8-bit) bytes of syndrome, or any other desirable combination of data/ syndrome. Similarly, the memory system configurations shown in Figs 1 1 and 12 reduce the number of channels to two, but uses sixteen memory devices per channel to accomplish the same data transfer rate.
The foregoing examples are much more than simple design choices. Each example illustrates how a plurality of memory devices responding as a group to a single Read/Write operation can transfer high bandwidth data. In some memory system modes of operation, this high bandwidth data includes syndrome for error detection and correction. The chip-kill mode/non-chip-kill mode of the above incorporated application is an excellent specific example of this more generally applicable capability. That is, despite an assumption that each memory device in a group of responding memory devices is individually incapable of transferring high bandwidth data, (i.e., assuming each memory device in the group is incapable of transferring a full channel of data during a defined data transfer period), any one of the foregoing memory system configurations might be used to effectively implement a memory system having a chip-kill mode of operation. Since by its nature chip-kill mode spreads a first data block across two or more memory devices, the 8 and 16 memory device groupings shown in Figs. 5-12 readily lend themselves to the implementation of a memory system having a chip-kill mode of operation.
More importantly, the foregoing memory system configurations, and many similar memory system configurations consistent with the present invention, allow cost effective use of relatively low bandwidth memory devices. As discussed earlier, high data throughput is a major goal of nearly every contemporary memory system design. High data throughput for a memory system is a function of memory device bandwidth, i.e., how much data can be transferred from a memory device during a single operation. As a rule, however, high bandwidth memory devices are significantly more expensive and often consume much more power than low bandwidth memory devices.
Memory system configurations provided by the present invention, as illustrated by the examples in Figs 5-12, operationally group 8 (or 16) memory devices together. When operated in a group, each memory device provides only 1 /8th or 1/16th of the total maximum data bandwidth using, for example, cycle multiplexing or bit multiplexing. Thus, using a specific example, it is possible to have 8 memory devices with memory cores that operate at a maximum of 200MB/sec connected to the same channel so that the aggregate data bandwidth across the 8 memory devices is 1.6GB/sec. Obviously, the specific operating characteristics will vary according to the design of the memory device, and memory devices may be grouped in any convenient number, but the present invention allows relatively low data bandwidth memory devices to operate as a group in order to provide high data bandwidth during a defined data transfer period. This ibility provides several advantages including reduced die size for individual memory device:,. Memory devices with reduced die size are less costly, and consume less power.
Alternatively, memory devices supporting multiple operating speeds, or multiple modes of operation having different operating speeds, may be grouped according to the present invention and operated at a lower speed/mode. Such operation results in a lower effective data bandwidth per memory device, but the grouping of such memory devices more than compensates for the lower individual memory device bandwidth. In other words, high channel bandwidth may be achieved with memory devices operating well below their maximum speed, or in a lower operating mode. Lower memory device operating speeds and operating modes reduces power consumption, and may extend the useful life of the memory devices.
The present invention has been described in relation to several embodiments and exemplary configurations. Such are given by way of example, not restriction to the present invention which is defined by the attached claims. Operating characteristics for several contemporary memory devices have been assumed in these examples, e.g., 8-bit, XI 6 and 9=bit, XI 8 devices, etc. Such memory device specific assumptions do not limit the attached claims, absent express corresponding limitations. Similarly, operating speeds, clock speeds, data transfer periods, and data transfer schemes are given above as examples. The present invention contemplates the use of any convenient clocking arrangement, timing parameters, and data/control information transfer periods and schemes.
One of ordinary skill will recognize the difference between low bandwidth memory devices and high bandwidth memory devices. The specific example above wherein a low bandwidth memory device operates in a range of 200 MB/sec and a high bandwidth memory device operates in a range of 1.6 MB/sec is illustrative, but does not strictly limit the terms
"low bandwidth" and "high bandwidth" as used in the claims. Obviously, the operating speed of memory devices will change over time and by design. However, it will remain apparent to one of ordinary skill that some memory devices are by their nature and operating characteristics capable of transferring relatively lower data bandwidth during a defined data transfer period than other memory devices capable of transferring relatively higher data bandwidth in the same data transfer period. As described above, the lines forming channel 26 of Fig. 4 are preferably terminated at their characteristic impedance at one end and at memory controller 22 at other end. The terminators pull bus line signals up to a memory system supply voltage Vlerm which corresponds to logic "0" in the memory system. A memory device or memory controller 22 asserts a logic "1 " by sinking current from a line, preferably using an open-drain NMOS transistor structure. Thus, power is principally dissipated on channel 26 only when a device drives a logic 1 on a line. The data bus can thus be thought of as implementing a wired "OR" function.
This particular aspect of the present invention readily facilitates data bus multiplexing between multiple memory devices. Taking bit line multiplexing as an example and assuming a Read operation, all masked data bus lines at Vlι;rm are interpreted as providing a "0" data value, and all unmasked data bus lines at ground are interpreted as providing a "1 " data value. This is true regardless of the specific memory device responsible for the voltage apparent on each data bus line. To further illustrate this point, consider the example in Fig. 13 which shows part of a memory system. In the illustrated partial memory system, a plurality of memory devices (MDO, MDl , MD2, . . .) combine during a data transfer period using bit line multiplexing to return a data packet to memory controller 24 via an 9-bit data bus DQA. Each memory device contains nine data I/O pins respectively connected to one of the nine data bus lines (0 . . . 8) of DQA. However, because bit line multiplexing is used, each memory device is capable of effectively driving data onto less than all nine data bus lines during the data transfer period.
The "wired OR" nature of the data bus contemplated in this particular aspect of the present invention readily facilitates bit-line multiplexing by a number of memory devices. In the illustrated example, it is assumed that MDO will drive "valid" data onto bits lines 7 and 8 during a particular cycle. Similarly, MDl drives valid data onto bit lines 1 and 2, MD2 drives bit line 2 and 3, etc. The "valid" distinction is made above because each memory device actually drives all nine data bus lines during every cycle. However, use of a current-mode I/O driver between each memory device and the data bus lines allow logical "0's" to be output for all data bus lines not validly driven by a particular memory device during the cycle. In effect, all "0-driving" I/O drivers do not electrically connect to the wired OR data bus. Thus, MDO will output O's on data bus lines 0 through 6, MDl will output O's on data bus lines 2 through 8, etc.
As a result of the foregoing, only one memory device per cycle is actually able to drive a logical 1 onto any one data bus line. All other memory devices during the cycle are unable to effect the signal voltage level of the data bus line.
In this manner, the wired OR nature of the data bus and the particular current-mode I/O driver contemplated by this aspect of the present invention allow effective multiplexing.
The same result occurs for memory devices using time-multiplexing or time/space- multiplexing of the data bus. During defined data transfer periods, the memory controller "sees" data on the bus from one or more memory devices which seize data bus lines on a time basis, a bit line basis, or a time/bit line basis as prescribed by memory controller generated command packet(s). Using the wired "OR" nature of the data bus, any one of these multiplexing techniques allows a group of memory devices to generate a single data packet in response to a single command packet or single set of command packets.

Claims

What is claimed is: 1. A memory system operating in either a first mode or a second mode of operation and comprising: a memory controller connected to memory devices via at least one channel, the memory controller communicating at least one command to each one of memory devices via the at least one channel; such that, while the memory system operates in the first mode, one of the memory devices responds to the at least one command to accomplish transfer of data between the one memory device and the memory controller during a first time period; and, while the memory system operates in the second mode, a plurality of the memory devices responds to the at least one command to accomplish transfer of data between the plurality of rnemo ' devices and the memory controller during the first time period.
2. The memory system of claim 1. wherein the at least one command comprises a ROW packet.
3. The memory system of claim 2. wherein the ROW packet comprises a first device identification (ID) field; wherein the first device ID field is interpreted as a device activation code unique to one memory device while the memory system operates in the first mode; and, wherein the first device ID field is interpreted as a device activation code common to the plurality of memory devices while the memory system operates in the second mode.
4. The memory system of claim 2, wherein the at least one command further comprises a COL packet.
5. The memory system of claim 4, wherein the COL packet comprises a second device ID field; wherein the second device ID field is interpreted to transfer data between the one memory device and the memory controller while the memory system operates in the first mode; and, wherein the second device ID field is interpreted to transfer data between the plurality of memory devices and the memory controller while the memory system operates in the second mode.
6. The memory system of claim 1 , further comprising a circuit for determining whether the memory system is operating in the first mode or the second mode and generating an indication signal in response to the determination; and wherein each one of the memory devices comprises a circuit responsive to the indication signal.
7. The memory system of claim 6, wherein each one of the memory devices further comprises a device identification (ID) register storing the first and second ID fields.
8. A memory system operating in either a first mode or a second mode of operation and comprising: a memory controller connected to memory devices via at least one channel, the memory controller communicating at least one command to each one of memory devices via the at least one channel; such that, while the memory system operates in the first mode, one of the memory devices responds to the at least one command to change operating states; and, while the memory system operates in the second mode, a plurality of the memory devices responds to the at least one command to change operating states.
9. A memory system comprising: a memory controller connected to at least one channel; memory devices connected to the at least one channel, wherein at least one of the memory devices is a low bandwidth device being individually incapable of communicating a first data block with the memory controller during a first time period; wherein the memory controller communicates control information to at least a first plurality of the memory devices via the at least one channel, and in response to the control information, the first plurality of memory devices, as a multiplexed group on the channel, communicates a first data block between the memory controller and the first plurality of the memory devices during a first time period.
10. The memory system of claim 9, wherein each one of the first plurality of memory devices contributes a second data block, less than the first data block, to the first data block communicated during the first time period.
1 1 . The memory system of claim 10. wherein the at least one channel comprises two channels, each one of the two channels connecting a second plurality of memory devices to the memory controller.
12. The memory system of claim 1 1 wherein the second plurality of memory devices comprises sixteen memory devices.
13. The memory system of claim 10. wherein the at least one channel comprises four full channels and one half channel, each one of the full channels connecting a second plurality of memory devices, and the one half channel connecting half the second plurality of memory devices.
14. The memory system of claim 13, wherein the second plurality of memory devices comprises sixteen memory devices.
15. The memory system of claim 10, wherein the at least one channel comprises eight channels, each channel connecting a second plurality of memory devices.
16. The memory system of claim 15, wherein the second plurality of memory devices comprises eight memory devices.
17. The memory system of claim 10, wherein the at least one channel comprises four channels, each channel connecting a second plurality of memory devices.
18. The memory system of claim 17, wherein the second plurality of memory devices comprises eight memory devices.
19. A memory system comprising: a memory controller connected to at least one repeater via a main channel; wherein each repeater connects a first plurality of memory devices via at least one auxiliary channel, and wherein each one of the first plurality of memory devices is a low bandwidth device individually incapable of communicating a first data block with the memory controller during a first time period; wherein the memory controller communicates control information to the first plurality of the memory devices via the at least the main channel, the at least one repeater, and the at least one auxiliary channel, and in response to the control information, the first plurality of memory devices, as a multiplexed group on the channel, communicates a first data block between the memory controller and the first plurality of the memory devices during a first time period.
20. The memory system of claim 19, wherein each memory device in the first plurality of memory devices contributes a second data block, less than the first data block, to the first data block transferred during the first time period.
21. The memory system of claim 19, wherein the at least one repeater connects a second plurality of memory devices via a first auxiliary channel, and connects a third plurality of memory devices via a second auxiliary channel.
22. The memory system of claim 21 , wherein each one of the second and third pluralities of memory devices comprises eight memory devices.
23. A memory system capable of selectively operating in first and second modes, comprising: a memory controller, memory devices, and a channel connecting the memory controller with the memory devices; wherein each one of the memory devices is capable of operating in at least a first and a second power state, the first power state consuming more power than the second power state; such that while the memory system is operating in the first mode, the memory controller generates a first power down device identification (ID) unique to one of the memory devices, whereby the one memory device upon receiving the first power down device ID will transition from the first power state to the second power state; and while the memory system is operating in the second mode, the memory controller generates a second power down device ID having the same structure as the first power down device ID, such that a plurality of memory devices upon receiving the second power down device ID transition from the first power state to a second power state.
1 24. A memory system comprising:
2 a memory controller connected to a data bus comprising a plurality of lines and
3 generating one or more command pεckets:
4 a group of memory devices, wherein each memory device in the group is connected to
5 at least one of the plurality of lines;
6 each one of the memory devices in the group comprising a circuit responsive to the
7 one or more command packets from the memory controller, such that the group of memory
8 devices combine to transmit or receive a first data packet during a first time period by
9 multiplexing data onto the data bus during the first time period.
1 25. The memory system of claim 24, wherein the multiplexing comprises at least one i of time multiplexing and line multiplexing.
26. The memory system of claim 25. wherein the data bus implements a wired OR function.
1 27. A method of reading data in a memory system during a first time period, the
2 memory system comprising a memory controller connected to memory devices via a data bus
3 having multiple data bus lines, the method comprising:
4 communicating at least one command packet from the memory controller to a
5 plurality of the memory devices;
6 for each memory device in the plurality of memory devices, seizing at least one data
7 bus line during the first time period and returning data to the memory controller via the at
8 least one data bus line in response to the at least one command packet.
1 28. The method of claim 27. wherein the first time period comprises a sequence of
2 second time periods, and wherein each memory device in the plurality of memory devices
3 seizes at least one data bus line during each one of the second time period.
29. The method of claim 28, wherein the data bus implements a wired OR function.
30. A method of reading a first block of data in a memory system during a first time period, the memory system comprising a memory controller connected to memory devices via a data bus having multiple data bus lines, the first time period comprising sequence of second time periods, and the method comprising: communicating at least one command packet from the memory controller to a plurality of the memory devices; during each second time period, outputting a second block of data smaller than the first block of data from a selected memory device in the plurality of memory devices via the data bus. such that a combination of the second blocks output during the first time period comprises the first data block.
PCT/US2000/032319 1999-12-08 2000-11-24 Memory system with channel multiplexing of multiple memory devices WO2001042929A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU18012/01A AU1801201A (en) 1999-12-08 2000-11-24 Memory system with channel multiplexing of multiple memory devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/457,155 US6708248B1 (en) 1999-07-23 1999-12-08 Memory system with channel multiplexing of multiple memory devices
US09/457,155 1999-12-08

Publications (1)

Publication Number Publication Date
WO2001042929A1 true WO2001042929A1 (en) 2001-06-14

Family

ID=23815663

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/032319 WO2001042929A1 (en) 1999-12-08 2000-11-24 Memory system with channel multiplexing of multiple memory devices

Country Status (2)

Country Link
AU (1) AU1801201A (en)
WO (1) WO2001042929A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467013B1 (en) 1999-09-30 2002-10-15 Intel Corporation Memory transceiver to couple an additional memory channel to an existing memory channel
EP1513070A2 (en) * 2003-09-02 2005-03-09 Samsung Electronics Co., Ltd. System having insertable and removable storage and a control method thereof
WO2006050983A1 (en) * 2004-11-12 2006-05-18 Qimonda Ag Memory access using multiple sets of address/data lines
WO2006109201A2 (en) * 2005-04-12 2006-10-19 Nokia Corporation Memory interface for volatile and non-volatile memory devices
US7436708B2 (en) 2006-03-01 2008-10-14 Micron Technology, Inc. NAND memory device column charging
WO2008127698A3 (en) * 2007-04-12 2009-03-26 Rambus Inc Memory system with point-to-point request interconnect

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966723A (en) * 1997-05-16 1999-10-12 Intel Corporation Serial programming mode for non-volatile memory
US6049856A (en) * 1997-05-27 2000-04-11 Unisys Corporation System for simultaneously accessing two portions of a shared memory
US6055615A (en) * 1996-02-02 2000-04-25 Fujitsu Limited Pipeline memory access using DRAM with multiple independent banks
US6065092A (en) * 1994-11-30 2000-05-16 Hitachi Micro Systems, Inc. Independent and cooperative multichannel memory architecture for use with master device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065092A (en) * 1994-11-30 2000-05-16 Hitachi Micro Systems, Inc. Independent and cooperative multichannel memory architecture for use with master device
US6055615A (en) * 1996-02-02 2000-04-25 Fujitsu Limited Pipeline memory access using DRAM with multiple independent banks
US5966723A (en) * 1997-05-16 1999-10-12 Intel Corporation Serial programming mode for non-volatile memory
US6049856A (en) * 1997-05-27 2000-04-11 Unisys Corporation System for simultaneously accessing two portions of a shared memory

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467013B1 (en) 1999-09-30 2002-10-15 Intel Corporation Memory transceiver to couple an additional memory channel to an existing memory channel
EP1513070A2 (en) * 2003-09-02 2005-03-09 Samsung Electronics Co., Ltd. System having insertable and removable storage and a control method thereof
EP1513070A3 (en) * 2003-09-02 2005-04-13 Samsung Electronics Co., Ltd. System having insertable and removable storage and a control method thereof
US7617335B2 (en) 2003-09-02 2009-11-10 Samsung Electronics Co., Ltd. System having insertable and removable storage and a control method thereof
WO2006050983A1 (en) * 2004-11-12 2006-05-18 Qimonda Ag Memory access using multiple sets of address/data lines
US7266667B2 (en) 2004-11-12 2007-09-04 Infineon Technologies Ag Memory access using multiple sets of address/data lines
US7702839B2 (en) 2005-04-12 2010-04-20 Nokia Corporation Memory interface for volatile and non-volatile memory devices
WO2006109201A2 (en) * 2005-04-12 2006-10-19 Nokia Corporation Memory interface for volatile and non-volatile memory devices
WO2006109201A3 (en) * 2005-04-12 2007-02-08 Nokia Corp Memory interface for volatile and non-volatile memory devices
US8635394B2 (en) 2005-04-12 2014-01-21 Nokia Corporation Method, an interface for volatile and non-volatile memory devices as well as a related computer program product, and a device
US8040732B2 (en) 2006-03-01 2011-10-18 Micron Technology, Inc. NAND memory device column charging
US7436708B2 (en) 2006-03-01 2008-10-14 Micron Technology, Inc. NAND memory device column charging
US7782677B2 (en) 2006-03-01 2010-08-24 Micron Technology, Inc. NAND memory device column charging
US9378787B2 (en) 2007-04-12 2016-06-28 Rambus Inc. Memory controllers, systems, and methods supporting multiple request modes
US8261039B2 (en) 2007-04-12 2012-09-04 Rambus Inc. Memory controllers, methods, and systems supporting multiple memory modes
US8069379B2 (en) 2007-04-12 2011-11-29 Rambus Inc. Memory system with point-to-point request interconnect
US8924680B2 (en) 2007-04-12 2014-12-30 Rambus Inc. Memory controllers, systems, and methods supporting multiple request modes
WO2008127698A3 (en) * 2007-04-12 2009-03-26 Rambus Inc Memory system with point-to-point request interconnect
EP3200189A1 (en) * 2007-04-12 2017-08-02 Rambus Inc. Memory system with point-to-point request interconnect
US9959914B2 (en) 2007-04-12 2018-05-01 Rambus Inc. Memory controller integrated circuit with multiple request ports and link calibration support
US10600455B2 (en) 2007-04-12 2020-03-24 Rambus Inc. Memory controllers, systems, and methods supporting multiple request modes
EP3923287A1 (en) * 2007-04-12 2021-12-15 Rambus Inc. Memory system with point-to-point request interconnect
US11276440B2 (en) 2007-04-12 2022-03-15 Rambus Inc. Memory controllers, systems, and methods supporting multiple request modes
EP4198751A1 (en) * 2007-04-12 2023-06-21 Rambus Inc. Memory system with point-to point request interconnect
US11727966B2 (en) 2007-04-12 2023-08-15 Rambus Inc. Memory controllers, systems, and methods supporting multiple request modes

Also Published As

Publication number Publication date
AU1801201A (en) 2001-06-18

Similar Documents

Publication Publication Date Title
US7039782B2 (en) Memory system with channel multiplexing of multiple memory devices
US6839266B1 (en) Memory module with offset data lines and bit line swizzle configuration
EP1036362B1 (en) Memory system including a memory module having a memory module controller
KR100201057B1 (en) Integrated circuit i/o using a high performance bus interface
US6418495B1 (en) Pipelined packet-oriented memory system having a unidirectional command and address bus and a bidirectional data bus
US6889284B1 (en) Method and apparatus for supporting SDRAM memory
US6658509B1 (en) Multi-tier point-to-point ring memory interface
US6226723B1 (en) Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
JP2002230963A (en) Synchronous memory module and memory system having selectable clock terminal
US7007130B1 (en) Memory system including a memory module having a memory module controller interfacing between a system memory controller and memory devices of the memory module
EP2767908A1 (en) Method and system for improving serial port memory communication latency and reliability
US20030126338A1 (en) Memory bus termination with memory unit having termination control
EP1474749B1 (en) Method and apparatus for supplementary command bus in a computer system
WO1999041667A1 (en) Memory module including a memory module controller
EP2539898A1 (en) Semiconductor memory device with plural memory die and controller die
KR20020025798A (en) System and method for providing concurrent row and column commands
WO2007078632A2 (en) Multiported memory with ports mapped to bank sets
US6757789B2 (en) Apparatus and method for maximizing information transfers over limited interconnect resources
WO2001042929A1 (en) Memory system with channel multiplexing of multiple memory devices
US20080155187A1 (en) System including memory buffer configured to decouple data rates
US20040230759A1 (en) Synchronous memory system and also method and protocol for communication in a synchronous memory system
US6516396B1 (en) Means to extend tTR range of RDRAMS via the RDRAM memory controller
WO2003003224A2 (en) A method, apparatus and system for efficient memory access
US6597690B1 (en) Method and apparatus employing associative memories to implement limited switching
US20020085572A1 (en) Method and apparatus employing associative memories to implement message passing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase