US20020084458A1 - Multi-tier point-to-point buffered memory interface - Google Patents

Multi-tier point-to-point buffered memory interface Download PDF

Info

Publication number
US20020084458A1
US20020084458A1 US09/753,024 US75302400A US2002084458A1 US 20020084458 A1 US20020084458 A1 US 20020084458A1 US 75302400 A US75302400 A US 75302400A US 2002084458 A1 US2002084458 A1 US 2002084458A1
Authority
US
United States
Prior art keywords
memory
bus
data
port
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/753,024
Other versions
US6493250B2 (en
Inventor
John Halbert
James Dodd
Chung Lam
Randy Bonella
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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
Application filed by Intel Corp filed Critical Intel Corp
Priority to US09/753,024 priority Critical patent/US6493250B2/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LAM, CHUNG, DODD, JAMES M., BONELLA, RANDY M., HALBERT, JOHN B.
Publication of US20020084458A1 publication Critical patent/US20020084458A1/en
Application granted granted Critical
Publication of US6493250B2 publication Critical patent/US6493250B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol

Definitions

  • This present invention relates generally to digital memory devices and systems, and more particularly to bus architectures and bus communication methods for such devices and systems.
  • Microprocessors, digital signal processors, digital imaging devices, and many other types of digital data processing devices rely on an attached high-speed memory system to hold data and/or processor instructions needed by the processing device. As these processing devices become faster and more powerful, the increased demands placed on them generally translates to a need for larger and faster attached memory systems.
  • FIG. 1 depicts a typical memory system configuration.
  • One or more memory devices 26 AA, 26 AB, 26 BA, 26 BB, 26 CA, 26 CB interface with a memory controller 20 through a memory bus 22 .
  • a host e.g., a central processing unit (CPU), not shown
  • CPU central processing unit
  • the memory devices hold data in arrays of addressable memory cells.
  • Memory controller 20 controls the exchange of data between the host and the memory storage devices.
  • Memory bus 22 carries memory signals on a set of signal lines. Memory signals fall generally into one of several categories including clock and control signals, address signals, command signals, and data signals. Data signals carry the actual data that will be stored in, or retrieved from, a memory device. Address signals specify the location within a memory device where data is to be read from or written to, and may also select which of several memory devices is to be accessed. Command signals instruct a memory device as to what type of operation is to be performed, e.g., read, write, refresh, and possibly as to which of several access modes (such as a burst mode) should be used for a data transfer. Clock and control signals synchronize the other signals passing between controller 20 and the memory devices.
  • memory bus 22 may use a separate signal line for each memory signal (e.g., 32 address lines to transfer a 32-bit-wide address in one clock cycle and 32 data lines to transfer a 32-bit-wide data word in one clock cycle), various schemes also exist to re-use one or more signal lines for different memory signals during different clock cycles of a memory transaction.
  • memory bus 22 is a multi-drop memory bus.
  • bus 22 is arranged with a backbone of signal lines.
  • a signal line stub, or “drop”, connects each of the memory devices to the backbone.
  • memory bus 22 will comprise a collection of leads routed on a printed circuit board 21 known as the “main board” or “motherboard”.
  • Memory controller 20 mounts to motherboard 21 and connects to one end of the leads comprising memory bus 22 .
  • Each drop of memory bus 22 connects to an electrical terminator, or socket.
  • a typical main board contains multiple memory sockets, e.g., the three sockets 28 A, 28 B, and 28 C shown in FIG. 1.
  • Memory is added to the memory system by inserting memory modules (e.g., 24 A, 24 B, 24 C) into one or more of the sockets.
  • memory modules e.g., 24 A, 24 B, 24 C
  • One popular type of memory module is a Dual In-line Memory Module, or DIMM.
  • DIMM is a rectangular low-profile circuit board that has electrical contact points arranged on both sides along one long edge. The contact points form electrical connections to the main board's memory bus when the DIMM is inserted into a DIMM memory socket.
  • a DIMM generally has multiple individual memory devices mounted to it. The devices all work in parallel to perform memory functions. For instance, a DIMM may have eight memory devices, each of which receives the same memory address from the controller. If the size of a data word is 32 bits, each of the memory devices is responsible for four bits of the data word that is placed on the memory bus.
  • the DIMMs depicted in FIG. 1 are dual-bank DIMMs, i.e., an “A” bank and a “B” bank of memory devices reside on the DIMM. The A bank and the B bank occupy logically separate areas of memory space, such that each bank can be addressed separately.
  • FIG. 1 illustrates a prior art memory system
  • FIG. 2 illustrates a modular memory system using a two-tier point-to-point memory bus architecture according to an embodiment of the invention
  • FIG. 3 shows a binary-partitioned address space as it relates to a memory system such as the modular memory system
  • FIG. 4 shows generally how an embodiment of the invention can extend to multiple levels of tiers and buffers, with the possibility of flexible configuration at each branch;
  • FIG. 6 shows one general board layout for a memory system embodiment that accepts up to four memory modules
  • FIG. 7 shows an alternate board layout for a memory system embodiment that accepts up to four memory modules
  • FIG. 8 contains a timing diagram for two memory operations, for an embodiment using common clocking
  • FIG. 9 contains a timing diagram for two memory operations, for an embodiment using source-synchronous clocking
  • FIGS. 10A and 10B show two views of a common-clocked memory module according to an embodiment of the invention.
  • FIG. 11 shows a side view of a source-synchronous memory module according to an embodiment of the invention.
  • FIG. 12 contains a high-level block diagram for a memory device that includes buffer circuitry for attachment in a point-to-point arrangement of memory devices.
  • the multi-drop memory bus architecture has several characteristics that limit its expansion to greater numbers of memory devices and/or faster bus speeds.
  • the stubbed bus architecture can create undesirable reflections on the signal lines at high frequency.
  • Overall bus length can also cause timing problems that limit operational frequency, as at high frequency a significant skew will be observed between when a memory signal arrives at a closer device vs. when that signal arrives at a device further down the bus.
  • the length of the bus and the number of device inputs also determine the capacitance that a memory device (or the controller) sees when it drives the bus—at higher frequencies, this capacitance may make it infeasible to drive signals reliably on the bus.
  • memory bus communications in this architecture pass along point-to-point connections between a memory controller 30 and buffer circuits (e.g., 36 ).
  • buffer circuits e.g., 36
  • memory controller 30 when memory controller 30 is commanded to send memory signals to device 48 on module 34 C, it sends those signals along a first segment 32 A of first-tier memory bus 32 to buffer 36 on module 34 A.
  • Buffer 36 redrives the memory signals to buffer 42 along a physically separate segment 32 B of first-tier memory bus 32 .
  • Buffer 42 redrives the signals in turn to buffer 45 along a third physically separate segment 32 C of first-tier memory bus 32 .
  • Buffer 45 transfers the signals to memory device 47 on segment 46 A of a module memory bus.
  • memory device 47 redrives the signals to memory device 48 on segment 46 B of the module memory bus.
  • the bus architecture of FIG. 2 solves problems of the prior art.
  • the relatively short, point-to-point bus segments greatly simplify impedance matching and bus timing issues.
  • the capacitance seen by a bus driver can also be significantly reduced—on a given segment of bus 32 (or a segment of a module memory bus), only one buffer's input needs to be driven. And each memory device only sees one buffer input on its own module, no matter how many modules exist in the memory system or how many memory devices are connected in point-to-point fashion on the module.
  • the advantages of the point-to-point bus configuration can be extended to a module memory bus, for an application such as a dual-bank DIMM. This can allow memory density to increase for a given number of memory sockets. Furthermore, the two-tier configuration can result in a shorter average number of point-to-point hops for a given number of memory banks.
  • a bank of memory devices is a collection of one or more devices that store data for a particular partition of host-addressable memory space. Memory signals propagating towards a destination bank of memory devices propagate upstream; conversely, memory signals propagating towards a memory controller propagate downstream.
  • a splitting node is a bus repeater with one downstream bus path and at least two upstream bus paths—specific implementations of splitting nodes are also referred to herein as buffers or buffer circuitry.
  • a memory terminal node is a memory device bank that receives and transmits on a single downstream bus path.
  • a memory pass-through node is a memory device bank that can receive and transmit for itself on a downstream bus path, and that can also pass data through between the downstream bus path and an upstream bus path.
  • FIG. 3 shows generally how a memory system can be constructed using splitting nodes S, memory pass-through nodes P, and (optionally) memory terminal nodes T.
  • a primary memory controller 52 connects through an upstream port to a first memory bus segment 53 and a first splitting node 54 .
  • the splitting node 54 attaches to two upstream memory bus segments 55 and 56 .
  • a memory pass-through node 57 attaches to the upstream end of bus segment 55 .
  • Memory pass-through node also attaches to a memory terminal node 59 through another bus segment 58 .
  • the memory system can be expanded into a wide variety of configurations by attaching additional splitting nodes, memory pass-through nodes, and memory terminal nodes to bus segment 56 (some examples are shown).
  • Splitting nodes and memory pass-through nodes can be designed to function with an unconnected upstream node as well, such that memory terminal nodes are not required.
  • FIG. 4 a more specific implementation is shown.
  • An available memory space is partitioned among four splitting nodes.
  • the splitting nodes are numbered S 00 , S 01 , S 10 , S 11 , indicating the memory partitions that they serve.
  • Each splitting node Sx where x represents one of the memory partitions 00 , 01 , 10 , 11 , connects to a memory pass-through node Px 0 , which connects in turn to a memory terminal node Tx 1 .
  • memory space x is further partitioned into an x 0 space, served by a pass-through node, and an x 1 space, served by a terminal node.
  • the number of point-to-point memory segments required to reach a given memory node from the primary memory controller can be determined in this example from the partition address.
  • the desired splitting node is reached after x+1 bus segment hops, i.e., S 00 is reached from primary memory controller 62 after one hop, S 01 is reached after two hops, S 10 is reached after three hops, and S 11 is reached after four hops.
  • One additional hop is required to reach memory pass-through node Px 0 from splitting node Sx, and two additional hops are required to reach memory terminal node Tx 1 from splitting node Sx.
  • Memory controller 62 can use the address of the desired memory partition to calculate the number of hops required to reach a given memory location.
  • FIG. 5 illustrates a limited memory configuration according to an embodiment of the invention.
  • the memory accessible to primary memory controller 70 is contained in two memory units 74 and 78 , which may be, e.g., memory modules.
  • Each memory unit comprises a buffer (which may comprise buffer circuitry distributed in several components), capable of functioning as a splitting node, one memory pass-through subunit, and one memory terminal subunit.
  • Primary memory controller 70 communicates with the memory subunits via a collection of primary and secondary bus segments.
  • Primary memory controller 70 connects to memory unit 74 , and more specifically, to a buffer 80 on memory unit 74 , via a first primary memory bus segment 72 .
  • Memory units 74 and 78 and more specifically, buffer 80 and buffer 90 , connect via a second primary bus segment 76 .
  • buffer 80 facilitates the transfer of memory signals between memory controller 70 and memory unit 78 by forwarding signals received on one of bus segments 72 , 76 to the other of the two bus segments.
  • Buffer 80 also facilitates the transfer of memory signals between memory subunits 86 and 88 and primary memory controller 70 .
  • Buffer 80 electrically connects to memory subunit 86 through a secondary bus segment 82 .
  • Memory subunit 86 electrically connects to memory subunit 88 through an additional secondary bus segment 84 .
  • Buffer 80 transfers memory signals between bus segments 72 and 82 .
  • Memory subunit 86 receives and transmits memory signals for itself over secondary bus segment 82 .
  • memory subunit is capable of forwarding memory signals between secondary bus segments 82 and 84 .
  • the primary and secondary memory buses can be configured in several different ways. Address and command memory signals can be carried over a separate bus in a conventional multi-drop configuration, leaving only data signaling to be carried over the depicted buses. Alternately, address and command memory signals can be carried on one or both of the primary and secondary memory buses.
  • the timing diagrams of FIGS. 7 and 8 relate to an embodiment where address and command signals are carried on the primary and secondary memory bus segments.
  • FIG. 6 illustrates a timing diagram for two read operations-a first read operation directed at an already-active memory subunit 98 , an activating command for memory subunit 86 , and a second read operation directed at memory subunit 86 .
  • the address and command signals for the first read operation are labeled A 1
  • the subunit 86 -activating address and command signals are labeled ACT 86
  • the address and command signals for the second read operation are labeled A 2
  • the data signals returned by subunit 98 are labeled D 1
  • the data signals returned by subunit 86 are labeled D 2 .
  • the timing diagram of FIG. 6 is divided into 10 bus cycle times T 1 to T 10 .
  • the bus segments are each shown with two entries, an ADD entry representing the address and command signaling lines, and a DATA entry representing the data signaling lines.
  • FIG. 6 assumes that each bus-driving unit has access to a common clock reference, thus allowing transfers on each segment to conform to the timing of the common clock reference.
  • address and data conform to a common timing and bus cycle time, this is not a necessary constraint.
  • the data signaling rate may be a multiple of the address signaling rate.
  • memory subunit 86 and buffer 90 both redrive A 1 , respectively on bus segments 84 and 92 .
  • memory subunits 88 and 96 latch A 1 .
  • memory subunit 96 redrives A 1 onto bus segment 94 , and memory subunit 98 (the destination memory subunit) latches A 1 .
  • FIG. 6 represents a worst-case wait scenario where a read to a memory unit furthest away from the controller, segment-wise, is followed by a read to a memory unit closest to the controller.
  • Primary memory controller 70 can calculate the minimum wait time from the difference in segment distances to the addressed memory subunits. Alternately, memory controller 70 can wait the worst-case time each time it addresses a new memory subunit. For the configuration of FIG. 5, the necessary wait causes memory controller 70 to place A 2 on bus segment 72 at T 6 .
  • a 2 propagates to all bus segments, it is latched by the destination memory subunit 86 during T 7 .
  • memory subunit 86 drives D 1 onto bus segment 82 , where D 1 is latched into buffer 80 and redriven to primary memory controller 70 during T 10 .
  • a 1 , ACT 86 , and A 2 propagate along bus paths to memory subunits that receive the signals unnecessarily. If desired, this result can be avoided by having the buffers 80 , 90 and/or memory pass-through subunits 86 , 96 respond to forwarding signals placed on bus segment 72 by controller 70 .
  • the forwarding signals can be part of the device address signaling, or can be passed by means of a group of enable signal lines.
  • buffer 80 can sense the forwarding signals and take one of two actions: when the forwarding signals indicate that the memory signals are directed to memory subunit 86 or 88 , it forwards the memory signals up bus segment 82 ; otherwise, it forwards the memory signals up bus segment 76 .
  • memory subunit 86 can forward the memory signals to bus segment 84 only in the case where subunit 86 will not be consuming those signals itself.
  • the forwarding signals can be sent first, e.g., in the bus cycle time preceding the cycle during which they will apply, if time is needed to configure the forwarding capability of the devices.
  • the address/command signals and/or the data signals can be propagated using source synchronous signaling.
  • each bus driver is responsible for placing a strobe on a bus segment whenever it places memory signals on the segment.
  • the receiving unit on that bus segment can respond to a received strobe by redriving the memory signals without latching and framing those signals to a bus cycle time.
  • FIG. 7 shows timing for source-synchronous operation given the memory operations of FIG. 6.
  • the signals potentially can propagate along multiple hops much faster than in the example of FIG. 6.
  • the memory subunits receive signals that are not aligned with the bus cycle timing of the primary memory controller (shown), from each memory subunit's perspective, the signals are timed consistently. For instance, buffer 80 redrives A 1 shortly after sensing the strobe from memory controller 70 , and will redrive ACT 86 approximately one bus cycle time later.
  • the bus delays can be used to advantage to read two memory subunits simultaneously.
  • subunits 88 and 98 can be addressed simultaneously using the same set of address signals (the memory element addressed on each subunit are logically different, however). Because the address signals reach subunit 88 one clock cycle before they reach subunit 98 , subunit 88 will place return data on the bus first. The return data from subunits 88 and 98 will be separated on bus segment 72 by two bus cycle times.
  • Other operational modes that take advantage of the bus segment delays can be similarly designed to utilize the pipelining properties of such a bus.
  • FIGS. 8 and 9 show memory board configurations.
  • FIGS. 10A, 10B, and 11 show module configurations.
  • FIG. 12 shows a block diagram for a representative memory device configuration.
  • a primary memory controller 70 connects to a number of board traces that make up a frontside bus FSB.
  • a primary memory bus segment connects controller 70 to a module socket (e.g., a board edge connector) 75 .
  • Additional primary memory bus segments connect additional sockets 76 , 77 , and 78 to controller 70 in a daisy-chain fashion.
  • Memory is added to motherboard 64 by placing memory modules in sockets 75 , 76 , 77 , and 78 —if only one module is used, it is placed in socket 75 , two modules are placed in sockets 75 and 76 , and so on.
  • all memory modules are identical, although the furthest upstream memory module in any set of modules need not be capable of driving signals on an upstream bus segment.
  • FIG. 9 shows another possible motherboard configuration 68 .
  • a first primary memory bus segment connects primary memory controller 70 to a point-to-point buffer 66 (i.e., a splitting node).
  • Buffer 66 has two upstream memory bus segments, one connected to socket 75 and the other connected to socket 77 .
  • Socket 76 is connected by an additional memory bus segment to socket 75
  • socket 78 is connected by another additional memory bus segment to socket 77 .
  • Memory modules can be added alternately to the two upstream bus segments of buffer 66 , or one bus segment can be populated first.
  • Motherboard 68 decreases by one the maximum number of hops required to reach four memory modules (more significant decreases may be observed for larger numbers of modules).
  • Motherboard 68 also provides an additional level of fault tolerance, i.e., a fault in the buffer circuitry of a module inserted in socket 75 need not disable communications between the primary memory controller and all memory modules.
  • FIGS. 10A and 10B show, respectively, top-edge and side views of a memory module 100 according to an embodiment of the invention.
  • Memory module 100 is useful, e.g., in the motherboard configurations of FIGS. 8 and 9.
  • a bank of eight memory devices labeled 140 A to 140 H, populates the upper portion of one side of module 100 .
  • a second corresponding bank populates the other side of module 100 .
  • the first side contains three other devices: ADD/CMD (Address/Command) Redrive/Transfer Logic 110 ; L (Left) Data Redrive/Transfer 120 ; and R (Right) Data Redrive/Transfer 130 .
  • ADD/CMD Address/Command
  • Redrive/Transfer Logic 110 L
  • L Left
  • R Light
  • these three devices function as buffer circuitry capable of functioning as a splitting node.
  • the controller functions performed by these devices are partitioned into three circuits for routing and pinout convenience—a lesser or greater number of devices can be designed to perform the same function.
  • Left and right redrive/transfer devices 120 and 130 perform the same functions at the same time, just on different groups of data lines.
  • FIGS. 13A and 13B Also shown in FIGS. 13A and 13B are address/command and data lines.
  • the external address and command lines are shown as two single lines, one connecting logic 110 to a downstream address/command bus port ADD DOWN, the other connecting logic 110 to an upstream address/command bus port ADD UP (a dashed line exiting module 100 in FIG. 10B represents a signal routed on the opposite side of the module—this is not necessary, but is one preferred method of routing).
  • Each single-address-line depiction in FIG. 13B will typically represent multiple address and command signal lines, the number depending on device type, addressable memory size, etc.
  • L data redrive/transfer 120 ports L UP and L DOWN are also shown, the sets connected respectively to L data redrive/transfer 120 ports L UP and L DOWN, and R data redrive/transfer 130 ports R UP and R DOWN.
  • L DOWN and R DOWN form an eight-bit-wide downstream data bus
  • L UP and R UP form an eight-bit-wide upstream data bus.
  • This bus width is exemplary, as any other bus width can also be selected.
  • memory module 100 can connect to two primary memory bus segments through its upstream and downstream ports.
  • Each redrive/transfer circuit is capable of receiving a memory signal at its DOWN port and redriving that signal out its UP port. Likewise, a memory signal received at each circuit's UP port can be redriven out the DOWN port.
  • Each redrive/transfer circuit is capable of transferring a memory signal received at its DOWN port to an internal bus port. Data redrive/transfer circuits can also transfer memory signals from their internal bus port to their DOWN port.
  • the internal bus ports of circuits 120 and 130 are utilized as follows.
  • a set of data traces connects the module memory bus port of circuit 120 to memory devices 140 A- 140 D; a separate set of data traces connects the module memory bus port of circuit 130 to memory devices 140 E- 140 H. Together, these data traces form a first module memory bus segment.
  • the dashed lines (FIG. 10A) passing between matching memory devices on opposite sides of module 100 form a second module memory bus segment.
  • first and second module memory bus segments form a linear (in the sense that devices related to any particular data line are daisy-chained) point-to-point bus configuration where circuits 120 and 130 lie at one end of a module memory bus, memory bank 142 A- 142 H lies at the other end of the module memory bus, and memory bank 140 A- 140 H lies between the two.
  • each of memory devices 140 A to 140 H is capable of forwarding memory signals along the memory bus, i.e., between circuits 120 , 130 and memory bank 142 A- 142 H. In a configuration with more than two banks of memory, each bank intermediate the bus ends would have a similar forwarding capability.
  • address and command signals from ADD/CMD redrive/transfer circuit 110 are connected to a multidrop module address bus segment that supplies the address signal to each of memory devices 140 A- 140 H.
  • the memory devices on the two sides of the module can connect with additional address bus segments.
  • redrive/transfer circuit 110 can connect to both banks of memory devices directly.
  • FIG. 10B latching and redriving operations at buffer circuits 120 and 130 are sequenced by a CLK signal from address/command redrive/transfer circuit 110 .
  • Other clocking possibilities include driving clock signals on the bus to each buffer circuit in addition to transfer circuit 110 , providing a separate phase-locked loop on the module, or even clocking transfer circuit 110 from one of the buffer circuits.
  • FIG. 11 shows one other alternative based on source-synchronous data transfer principles.
  • Memory module 150 of FIG. 11 bases the timing of data signaling (DQ) on data strobes (DQS).
  • Each external bus port contains a data strobe line, e.g., R UP has an additional signal line DQSRU used for a data strobe.
  • R UP When a device upstream of module 150 places data on the bus segment connected to R UP, it strobes DQSRU.
  • DQSRU data strobe line
  • circuit 180 configures itself to replicate data from R UP and redrive that data on R DOWN. Circuit 180 will, as part of the redrive operation, strobe DQSRD for the benefit of a downstream device.
  • Upstream operation is handled similarly to downstream operation.
  • data is transmitted upstream, however, it is also transferred to the module memory bus and driven to the first bank of memory devices.
  • the on-module data transfers can also be handled using a DQS signal.
  • each memory device On module 150 , each memory device has a DQ port for data signals and a corresponding DQS port for an associated data strobe.
  • redrive/transfer circuit 180 receives upstream data at R DOWN, that data is redriven on R UP, and is also driven to memory devices 140 E- 140 H.
  • Each connection between circuit 180 and a memory device uses a DQS line, such that circuit 180 strobes the DQS lines to signal the memory devices that data is present on the DQ lines.
  • each device strobes its DQS line in similar fashion.
  • DQ and DQS connections between memory bank 140 A- 140 H and memory bank 142 A- 142 H operate like those between circuits 170 , 180 and memory bank 140 A- 140 H.
  • the redrive/transfer circuits of FIGS. 10 A/B and 11 can have other functions besides data redrive/transfer.
  • the circuits can also provide clock synchronization between their external ports and/or between the external and module buses.
  • the circuits will provide capacitive isolation between the external and module buses.
  • the transfer circuits can also provide voltage translation.
  • FIG. 12 shows the block diagram for a memory pass-through device 140 A according to an embodiment of the invention.
  • memory device 140 A operates like a conventional memory device.
  • address signals ADD, command signals CMD, and clock signaling CLK are received by address/command logic 210 .
  • These externally-supplied signals comprise memory commands that cause the address/command logic 210 to control operation of device 140 A according to a predefined operation. This generally includes activating a row of memory cell array 214 by passing a ROW signal to row selector 212 , and then sending a COL signal (indicating the desired column in memory cell array 214 ) and control signals to cell array access circuitry 216 .
  • memory device 140 A comprises two data ports, DATA UP and DATA DOWN.
  • Data driver 230 connects between cell array access circuitry 216 and the DATA DOWN port. When data is read from a desired location in cell array 214 by access circuitry 216 , data driver 230 receives that data from access circuitry 216 and drives it out on the DATA DOWN port.
  • Data receive buffer 232 also connects to the DATA DOWN port. When data is received at the DATA DOWN port, data receive buffer captures that data and makes it available to cell array access circuitry 216 . When cell array access circuitry 216 is to perform a write to memory cell array 214 , it will accept the data from data receive buffer 232 .
  • the DATA DOWN port of memory device 140 A has additional functions not needed for an on-chip memory operation. These functions utilize two additional functional blocks, a data redriver 220 and a transfer data receive buffer 222 , and an additional data port, DATA UP.
  • a data redriver 220 When data is received at data receive buffer 232 , that data is made available to data redriver 220 in addition to being made available to cell array access circuitry 216 .
  • Data redriver 220 redrives that data out on the DATA UP port.
  • transfer data receive buffer captures that data and makes it available to data driver 230 .
  • Data driver 230 then redrives that data out on the DATA DOWN port.
  • FIG. 12 depicts some optional control lines CTRL. Without these lines, redriver 220 drives all data received at buffer 232 , and data driver 230 chooses which of its two inputs (if either) should be driven.
  • the control lines CTRL allow each (or one) of these operations to be placed under the control of the address/command logic 210 . For instance, when address/command logic 210 has configured cell array access circuitry 216 to accept data from data receive buffer 232 , it can at the same time instruct data redriver 220 not to pass that data out the DATA UP port since the data is being consumed on-chip. And address/command logic 210 can leave data driver 230 configured to accept data from transfer data receive buffer 222 except when cell array access circuitry 216 has been configured to pass data to data driver 230 .
  • each line is shown at each of the DATA DOWN and DATA UP ports, this represents all data lines for memory device 140 A.
  • device 140 A may have a word width of eight bits, in which case each buffer and driver would be eight bits wide.
  • DQS lines would also be included on the DATA DOWN and DATA UP ports.
  • a unidirectional data mask bit can be received by buffer 232 and driven by redriver 220 .
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • DDR double-data-rate SDRAM devices
  • QDR quad-data-rate SDRAM devices
  • RambusTM DRAM devices RambusTM DRAM devices

Abstract

Methods and apparatus for a memory system using a branching point-to-point memory bus architecture are disclosed. In one embodiment, a primary memory controller maintains a point-to-point bus connection with one memory module and that memory module maintains a separate point-to-point bus connection with a second module. Data passing between the memory controller and the second memory module passes through a buffer circuit on the first memory module. For data received from the memory controller, the buffer circuit also passes that data up a module bus segment to a first bank of memory devices. That bank of memory devices maintains a second module bus segment with a second bank of memory devices. Data passing between the buffer circuit and the second bank of memory devices passes through a pass-through circuit on the first bank of memory devices. In this manner, a point-to-point memory bus architecture can be maintained even when a memory module contains more than one bank of memory devices.

Description

    FIELD OF THE INVENTION
  • This present invention relates generally to digital memory devices and systems, and more particularly to bus architectures and bus communication methods for such devices and systems. [0001]
  • BACKGROUND OF THE INVENTION
  • Microprocessors, digital signal processors, digital imaging devices, and many other types of digital data processing devices rely on an attached high-speed memory system to hold data and/or processor instructions needed by the processing device. As these processing devices become faster and more powerful, the increased demands placed on them generally translates to a need for larger and faster attached memory systems. [0002]
  • FIG. 1 depicts a typical memory system configuration. One or more memory devices [0003] 26AA, 26AB, 26BA, 26BB, 26CA, 26CB interface with a memory controller 20 through a memory bus 22. A host (e.g., a central processing unit (CPU), not shown) also connects to memory controller 20 through a front-side bus FSB. The memory devices hold data in arrays of addressable memory cells. Memory controller 20 controls the exchange of data between the host and the memory storage devices.
  • [0004] Memory bus 22 carries memory signals on a set of signal lines. Memory signals fall generally into one of several categories including clock and control signals, address signals, command signals, and data signals. Data signals carry the actual data that will be stored in, or retrieved from, a memory device. Address signals specify the location within a memory device where data is to be read from or written to, and may also select which of several memory devices is to be accessed. Command signals instruct a memory device as to what type of operation is to be performed, e.g., read, write, refresh, and possibly as to which of several access modes (such as a burst mode) should be used for a data transfer. Clock and control signals synchronize the other signals passing between controller 20 and the memory devices. Although memory bus 22 may use a separate signal line for each memory signal (e.g., 32 address lines to transfer a 32-bit-wide address in one clock cycle and 32 data lines to transfer a 32-bit-wide data word in one clock cycle), various schemes also exist to re-use one or more signal lines for different memory signals during different clock cycles of a memory transaction.
  • In the configuration shown in FIG. 1, [0005] memory bus 22 is a multi-drop memory bus. In other words, bus 22 is arranged with a backbone of signal lines. A signal line stub, or “drop”, connects each of the memory devices to the backbone. Typically, memory bus 22 will comprise a collection of leads routed on a printed circuit board 21 known as the “main board” or “motherboard”. Memory controller 20 mounts to motherboard 21 and connects to one end of the leads comprising memory bus 22. Each drop of memory bus 22 connects to an electrical terminator, or socket. A typical main board contains multiple memory sockets, e.g., the three sockets 28A, 28B, and 28C shown in FIG. 1.
  • Memory is added to the memory system by inserting memory modules (e.g., [0006] 24A, 24B, 24C) into one or more of the sockets. One popular type of memory module is a Dual In-line Memory Module, or DIMM. The DIMM is a rectangular low-profile circuit board that has electrical contact points arranged on both sides along one long edge. The contact points form electrical connections to the main board's memory bus when the DIMM is inserted into a DIMM memory socket.
  • A DIMM generally has multiple individual memory devices mounted to it. The devices all work in parallel to perform memory functions. For instance, a DIMM may have eight memory devices, each of which receives the same memory address from the controller. If the size of a data word is 32 bits, each of the memory devices is responsible for four bits of the data word that is placed on the memory bus. The DIMMs depicted in FIG. 1 are dual-bank DIMMs, i.e., an “A” bank and a “B” bank of memory devices reside on the DIMM. The A bank and the B bank occupy logically separate areas of memory space, such that each bank can be addressed separately.[0007]
  • BRIEF DESCRIPTION OF THE DRAWING
  • The invention may be best understood by reading the disclosure with reference to the drawing, wherein: [0008]
  • FIG. 1 illustrates a prior art memory system; [0009]
  • FIG. 2 illustrates a modular memory system using a two-tier point-to-point memory bus architecture according to an embodiment of the invention; [0010]
  • FIG. 3 shows a binary-partitioned address space as it relates to a memory system such as the modular memory system; [0011]
  • FIG. 4 shows generally how an embodiment of the invention can extend to multiple levels of tiers and buffers, with the possibility of flexible configuration at each branch; [0012]
  • FIG. 6 shows one general board layout for a memory system embodiment that accepts up to four memory modules; [0013]
  • FIG. 7 shows an alternate board layout for a memory system embodiment that accepts up to four memory modules; [0014]
  • FIG. 8 contains a timing diagram for two memory operations, for an embodiment using common clocking; [0015]
  • FIG. 9 contains a timing diagram for two memory operations, for an embodiment using source-synchronous clocking; [0016]
  • FIGS. 10A and 10B show two views of a common-clocked memory module according to an embodiment of the invention; [0017]
  • FIG. 11 shows a side view of a source-synchronous memory module according to an embodiment of the invention; and [0018]
  • FIG. 12 contains a high-level block diagram for a memory device that includes buffer circuitry for attachment in a point-to-point arrangement of memory devices.[0019]
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • It is recognized herein that the multi-drop memory bus architecture has several characteristics that limit its expansion to greater numbers of memory devices and/or faster bus speeds. First, the stubbed bus architecture can create undesirable reflections on the signal lines at high frequency. Overall bus length can also cause timing problems that limit operational frequency, as at high frequency a significant skew will be observed between when a memory signal arrives at a closer device vs. when that signal arrives at a device further down the bus. The length of the bus and the number of device inputs also determine the capacitance that a memory device (or the controller) sees when it drives the bus—at higher frequencies, this capacitance may make it infeasible to drive signals reliably on the bus. [0020]
  • A new memory bus architecture and memory module designs according to the present invention are disclosed. Referring to FIG. 2 as an example, memory bus communications in this architecture pass along point-to-point connections between a [0021] memory controller 30 and buffer circuits (e.g., 36). For instance, when memory controller 30 is commanded to send memory signals to device 48 on module 34C, it sends those signals along a first segment 32A of first-tier memory bus 32 to buffer 36 on module 34A. Buffer 36 redrives the memory signals to buffer 42 along a physically separate segment 32B of first-tier memory bus 32. Buffer 42 redrives the signals in turn to buffer 45 along a third physically separate segment 32C of first-tier memory bus 32. Buffer 45 transfers the signals to memory device 47 on segment 46A of a module memory bus. Finally, memory device 47 redrives the signals to memory device 48 on segment 46B of the module memory bus.
  • The bus architecture of FIG. 2 solves problems of the prior art. The relatively short, point-to-point bus segments greatly simplify impedance matching and bus timing issues. The capacitance seen by a bus driver can also be significantly reduced—on a given segment of bus [0022] 32 (or a segment of a module memory bus), only one buffer's input needs to be driven. And each memory device only sees one buffer input on its own module, no matter how many modules exist in the memory system or how many memory devices are connected in point-to-point fashion on the module.
  • By extending the bus architecture to two tiers, the advantages of the point-to-point bus configuration can be extended to a module memory bus, for an application such as a dual-bank DIMM. This can allow memory density to increase for a given number of memory sockets. Furthermore, the two-tier configuration can result in a shorter average number of point-to-point hops for a given number of memory banks. [0023]
  • Several terms have been assigned particular meanings within the context of this disclosure. A bank of memory devices is a collection of one or more devices that store data for a particular partition of host-addressable memory space. Memory signals propagating towards a destination bank of memory devices propagate upstream; conversely, memory signals propagating towards a memory controller propagate downstream. A splitting node is a bus repeater with one downstream bus path and at least two upstream bus paths—specific implementations of splitting nodes are also referred to herein as buffers or buffer circuitry. A memory terminal node is a memory device bank that receives and transmits on a single downstream bus path. A memory pass-through node is a memory device bank that can receive and transmit for itself on a downstream bus path, and that can also pass data through between the downstream bus path and an upstream bus path. [0024]
  • Referring to FIGS. 3 and 4, some general concepts related to the invention will first be introduced. FIG. 3 shows generally how a memory system can be constructed using splitting nodes S, memory pass-through nodes P, and (optionally) memory terminal nodes T. A [0025] primary memory controller 52 connects through an upstream port to a first memory bus segment 53 and a first splitting node 54. The splitting node 54 attaches to two upstream memory bus segments 55 and 56. A memory pass-through node 57 attaches to the upstream end of bus segment 55. Memory pass-through node also attaches to a memory terminal node 59 through another bus segment 58. The memory system can be expanded into a wide variety of configurations by attaching additional splitting nodes, memory pass-through nodes, and memory terminal nodes to bus segment 56 (some examples are shown). Splitting nodes and memory pass-through nodes can be designed to function with an unconnected upstream node as well, such that memory terminal nodes are not required.
  • Referring next to FIG. 4, a more specific implementation is shown. An available memory space is partitioned among four splitting nodes. The splitting nodes are numbered S[0026] 00, S01, S10, S11, indicating the memory partitions that they serve.
  • Each splitting node Sx, where x represents one of the memory partitions [0027] 00, 01, 10, 11, connects to a memory pass-through node Px0, which connects in turn to a memory terminal node Tx1. Thus memory space x is further partitioned into an x0 space, served by a pass-through node, and an x1 space, served by a terminal node.
  • The number of point-to-point memory segments required to reach a given memory node from the primary memory controller can be determined in this example from the partition address. The desired splitting node is reached after x+1 bus segment hops, i.e., S[0028] 00 is reached from primary memory controller 62 after one hop, S01 is reached after two hops, S10 is reached after three hops, and S11 is reached after four hops. One additional hop is required to reach memory pass-through node Px0 from splitting node Sx, and two additional hops are required to reach memory terminal node Tx1 from splitting node Sx. Memory controller 62 can use the address of the desired memory partition to calculate the number of hops required to reach a given memory location.
  • FIG. 5 illustrates a limited memory configuration according to an embodiment of the invention. The memory accessible to [0029] primary memory controller 70 is contained in two memory units 74 and 78, which may be, e.g., memory modules. Each memory unit comprises a buffer (which may comprise buffer circuitry distributed in several components), capable of functioning as a splitting node, one memory pass-through subunit, and one memory terminal subunit.
  • [0030] Primary memory controller 70 communicates with the memory subunits via a collection of primary and secondary bus segments. Primary memory controller 70 connects to memory unit 74, and more specifically, to a buffer 80 on memory unit 74, via a first primary memory bus segment 72. Memory units 74 and 78, and more specifically, buffer 80 and buffer 90, connect via a second primary bus segment 76. In this manner, buffer 80 facilitates the transfer of memory signals between memory controller 70 and memory unit 78 by forwarding signals received on one of bus segments 72, 76 to the other of the two bus segments.
  • [0031] Buffer 80 also facilitates the transfer of memory signals between memory subunits 86 and 88 and primary memory controller 70. Buffer 80 electrically connects to memory subunit 86 through a secondary bus segment 82. Memory subunit 86 electrically connects to memory subunit 88 through an additional secondary bus segment 84. Buffer 80 transfers memory signals between bus segments 72 and 82. Memory subunit 86 receives and transmits memory signals for itself over secondary bus segment 82. In addition, memory subunit is capable of forwarding memory signals between secondary bus segments 82 and 84.
  • The primary and secondary memory buses can be configured in several different ways. Address and command memory signals can be carried over a separate bus in a conventional multi-drop configuration, leaving only data signaling to be carried over the depicted buses. Alternately, address and command memory signals can be carried on one or both of the primary and secondary memory buses. The timing diagrams of FIGS. 7 and 8 relate to an embodiment where address and command signals are carried on the primary and secondary memory bus segments. [0032]
  • FIG. 6 illustrates a timing diagram for two read operations-a first read operation directed at an already-[0033] active memory subunit 98, an activating command for memory subunit 86, and a second read operation directed at memory subunit 86. The address and command signals for the first read operation are labeled A1, the subunit 86-activating address and command signals are labeled ACT86, and the address and command signals for the second read operation are labeled A2. The data signals returned by subunit 98 are labeled D1, and the data signals returned by subunit 86 are labeled D2.
  • The timing diagram of FIG. 6 is divided into [0034] 10 bus cycle times T1 to T10. The bus segments are each shown with two entries, an ADD entry representing the address and command signaling lines, and a DATA entry representing the data signaling lines. FIG. 6 assumes that each bus-driving unit has access to a common clock reference, thus allowing transfers on each segment to conform to the timing of the common clock reference. Although as illustrated address and data conform to a common timing and bus cycle time, this is not a necessary constraint. For instance, the data signaling rate may be a multiple of the address signaling rate.
  • Referring now to the actual memory operation timing depicted in FIG. 6, during bus cycle time T[0035] 1 primary memory controller 70 places A1 on bus segment 72. Buffer 80 latches A1, and then redrives A1 onto segments 74 and 82 during bus cycle time T2. Also at T2, primary memory controller places the activating signaling ACT86 on bus segment 72. Thus at T2, buffer 80 latches ACT86, memory subunit 86 latches A1, and buffer 90 also latches A1. It can be appreciated that ACT86 will continue to follow the path taken by A1, but one bus cycle time removed.
  • At T[0036] 3, memory subunit 86 and buffer 90 both redrive A1, respectively on bus segments 84 and 92. Thus at T3, memory subunits 88 and 96 latch A1. At T4, memory subunit 96 redrives A1 onto bus segment 94, and memory subunit 98 (the destination memory subunit) latches A1.
  • Two bus cycle times (for example) after latching A[0037] 1, subunit 98 drives data D1 corresponding to address A1 onto bus segment 94. D1 follows the reverse of the path taken by A1 to reach memory subunit 98 in order to reach primary memory controller 70 during bus cycle time T9. Note that buffer 80 does not propagate D1 onto bus segment 82 because D1 is a downstream signal.
  • Meanwhile, the activating signal ACT[0038] 86 reached its destined memory subunit 86 during bus cycle time T2, meaning that subunit 86 will subsequently be activated for following memory commands, including A2. Primary memory controller 70 waits, however, to issue A2 long enough so that D2 will not conflict with D1 on the bus. For the configuration of FIG. 5, FIG. 6 represents a worst-case wait scenario where a read to a memory unit furthest away from the controller, segment-wise, is followed by a read to a memory unit closest to the controller. Primary memory controller 70 can calculate the minimum wait time from the difference in segment distances to the addressed memory subunits. Alternately, memory controller 70 can wait the worst-case time each time it addresses a new memory subunit. For the configuration of FIG. 5, the necessary wait causes memory controller 70 to place A2 on bus segment 72 at T6.
  • Although in this example A[0039] 2 propagates to all bus segments, it is latched by the destination memory subunit 86 during T7. Two bus cycles times later, at T9, memory subunit 86 drives D1 onto bus segment 82, where D1 is latched into buffer 80 and redriven to primary memory controller 70 during T10.
  • Several modifications can be made to the method of system operation shown in FIG. 6. One modification is to incorporate a capability that prevents signals from being redriven along segments that do not reach the intended memory subunit. A second modification is to drive signals along the bus segments using source-synchronous signaling, such that signals can be redriven without waiting for the next bus cycle time to arrive. These two modifications will be explored in turn. [0040]
  • In FIG. 6, A[0041] 1, ACT86, and A2 propagate along bus paths to memory subunits that receive the signals unnecessarily. If desired, this result can be avoided by having the buffers 80, 90 and/or memory pass-through subunits 86, 96 respond to forwarding signals placed on bus segment 72 by controller 70. The forwarding signals can be part of the device address signaling, or can be passed by means of a group of enable signal lines. In operation, buffer 80 can sense the forwarding signals and take one of two actions: when the forwarding signals indicate that the memory signals are directed to memory subunit 86 or 88, it forwards the memory signals up bus segment 82; otherwise, it forwards the memory signals up bus segment 76. Likewise, memory subunit 86 can forward the memory signals to bus segment 84 only in the case where subunit 86 will not be consuming those signals itself. The forwarding signals can be sent first, e.g., in the bus cycle time preceding the cycle during which they will apply, if time is needed to configure the forwarding capability of the devices.
  • In another modification, the address/command signals and/or the data signals can be propagated using source synchronous signaling. In this case, each bus driver is responsible for placing a strobe on a bus segment whenever it places memory signals on the segment. The receiving unit on that bus segment can respond to a received strobe by redriving the memory signals without latching and framing those signals to a bus cycle time. [0042]
  • FIG. 7 shows timing for source-synchronous operation given the memory operations of FIG. 6. The signals potentially can propagate along multiple hops much faster than in the example of FIG. 6. Although the memory subunits receive signals that are not aligned with the bus cycle timing of the primary memory controller (shown), from each memory subunit's perspective, the signals are timed consistently. For instance, buffer [0043] 80 redrives A1 shortly after sensing the strobe from memory controller 70, and will redrive ACT86 approximately one bus cycle time later.
  • Returning to the common clocking example, the bus delays can be used to advantage to read two memory subunits simultaneously. For instance, [0044] subunits 88 and 98 can be addressed simultaneously using the same set of address signals (the memory element addressed on each subunit are logically different, however). Because the address signals reach subunit 88 one clock cycle before they reach subunit 98, subunit 88 will place return data on the bus first. The return data from subunits 88 and 98 will be separated on bus segment 72 by two bus cycle times. Other operational modes that take advantage of the bus segment delays can be similarly designed to utilize the pipelining properties of such a bus.
  • The remaining figures illustrate various configurations useful with the present invention. FIGS. 8 and 9 show memory board configurations. FIGS. 10A, 10B, and [0045] 11 show module configurations. And FIG. 12 shows a block diagram for a representative memory device configuration.
  • Referring first to FIG. 8, a portion of a [0046] motherboard 64 is illustrated. A primary memory controller 70 connects to a number of board traces that make up a frontside bus FSB. On the memory side of controller 70, a primary memory bus segment connects controller 70 to a module socket (e.g., a board edge connector) 75. Additional primary memory bus segments connect additional sockets 76, 77, and 78 to controller 70 in a daisy-chain fashion. Memory is added to motherboard 64 by placing memory modules in sockets 75, 76, 77, and 78—if only one module is used, it is placed in socket 75, two modules are placed in sockets 75 and 76, and so on. Preferably, all memory modules are identical, although the furthest upstream memory module in any set of modules need not be capable of driving signals on an upstream bus segment.
  • FIG. 9 shows another [0047] possible motherboard configuration 68. On motherboard 68, a first primary memory bus segment connects primary memory controller 70 to a point-to-point buffer 66 (i.e., a splitting node). Buffer 66 has two upstream memory bus segments, one connected to socket 75 and the other connected to socket 77. Socket 76 is connected by an additional memory bus segment to socket 75, and socket 78 is connected by another additional memory bus segment to socket 77. Memory modules can be added alternately to the two upstream bus segments of buffer 66, or one bus segment can be populated first. Motherboard 68 decreases by one the maximum number of hops required to reach four memory modules (more significant decreases may be observed for larger numbers of modules). Motherboard 68 also provides an additional level of fault tolerance, i.e., a fault in the buffer circuitry of a module inserted in socket 75 need not disable communications between the primary memory controller and all memory modules.
  • FIGS. 10A and 10B show, respectively, top-edge and side views of a [0048] memory module 100 according to an embodiment of the invention. Memory module 100 is useful, e.g., in the motherboard configurations of FIGS. 8 and 9. A bank of eight memory devices, labeled 140A to 140H, populates the upper portion of one side of module 100. A second corresponding bank (beginning with device 142A) populates the other side of module 100. The first side contains three other devices: ADD/CMD (Address/Command) Redrive/Transfer Logic 110; L (Left) Data Redrive/Transfer 120; and R (Right) Data Redrive/Transfer 130. Together, these three devices function as buffer circuitry capable of functioning as a splitting node. The controller functions performed by these devices are partitioned into three circuits for routing and pinout convenience—a lesser or greater number of devices can be designed to perform the same function. Left and right redrive/ transfer devices 120 and 130 perform the same functions at the same time, just on different groups of data lines.
  • Also shown in FIGS. 13A and 13B are address/command and data lines. The external address and command lines are shown as two single lines, one connecting [0049] logic 110 to a downstream address/command bus port ADD DOWN, the other connecting logic 110 to an upstream address/command bus port ADD UP (a dashed line exiting module 100 in FIG. 10B represents a signal routed on the opposite side of the module—this is not necessary, but is one preferred method of routing). Each single-address-line depiction in FIG. 13B will typically represent multiple address and command signal lines, the number depending on device type, addressable memory size, etc. Four sets of four external data bus lines each are also shown, the sets connected respectively to L data redrive/transfer 120 ports L UP and L DOWN, and R data redrive/transfer 130 ports R UP and R DOWN. Together, L DOWN and R DOWN form an eight-bit-wide downstream data bus, and L UP and R UP form an eight-bit-wide upstream data bus. This bus width is exemplary, as any other bus width can also be selected.
  • Externally, [0050] memory module 100 can connect to two primary memory bus segments through its upstream and downstream ports. Each redrive/transfer circuit is capable of receiving a memory signal at its DOWN port and redriving that signal out its UP port. Likewise, a memory signal received at each circuit's UP port can be redriven out the DOWN port. Each redrive/transfer circuit is capable of transferring a memory signal received at its DOWN port to an internal bus port. Data redrive/transfer circuits can also transfer memory signals from their internal bus port to their DOWN port.
  • The internal bus ports of [0051] circuits 120 and 130 are utilized as follows. A set of data traces connects the module memory bus port of circuit 120 to memory devices 140A-140D; a separate set of data traces connects the module memory bus port of circuit 130 to memory devices 140E-140H. Together, these data traces form a first module memory bus segment. The dashed lines (FIG. 10A) passing between matching memory devices on opposite sides of module 100 form a second module memory bus segment. Together, these first and second module memory bus segments form a linear (in the sense that devices related to any particular data line are daisy-chained) point-to-point bus configuration where circuits 120 and 130 lie at one end of a module memory bus, memory bank 142A-142H lies at the other end of the module memory bus, and memory bank 140A-140H lies between the two. In addition to transmitting and receiving memory signals for themselves with buffer circuits 120 and 130, each of memory devices 140A to 140H is capable of forwarding memory signals along the memory bus, i.e., between circuits 120, 130 and memory bank 142A-142H. In a configuration with more than two banks of memory, each bank intermediate the bus ends would have a similar forwarding capability.
  • In FIG. 10B, address and command signals from ADD/CMD redrive/[0052] transfer circuit 110 are connected to a multidrop module address bus segment that supplies the address signal to each of memory devices 140A-140H. The memory devices on the two sides of the module can connect with additional address bus segments. Optionally, redrive/transfer circuit 110 can connect to both banks of memory devices directly.
  • In FIG. 10B, latching and redriving operations at [0053] buffer circuits 120 and 130 are sequenced by a CLK signal from address/command redrive/transfer circuit 110. Other clocking possibilities include driving clock signals on the bus to each buffer circuit in addition to transfer circuit 110, providing a separate phase-locked loop on the module, or even clocking transfer circuit 110 from one of the buffer circuits. FIG. 11 shows one other alternative based on source-synchronous data transfer principles.
  • [0054] Memory module 150 of FIG. 11 bases the timing of data signaling (DQ) on data strobes (DQS). Each external bus port contains a data strobe line, e.g., R UP has an additional signal line DQSRU used for a data strobe. When a device upstream of module 150 places data on the bus segment connected to R UP, it strobes DQSRU. When right data redrive/transfer circuit 180 senses the incoming strobe on DQSRU, circuit 180 configures itself to replicate data from R UP and redrive that data on R DOWN. Circuit 180 will, as part of the redrive operation, strobe DQSRD for the benefit of a downstream device.
  • Upstream operation is handled similarly to downstream operation. When data is transmitted upstream, however, it is also transferred to the module memory bus and driven to the first bank of memory devices. The on-module data transfers can also be handled using a DQS signal. On [0055] module 150, each memory device has a DQ port for data signals and a corresponding DQS port for an associated data strobe. When redrive/transfer circuit 180 receives upstream data at R DOWN, that data is redriven on R UP, and is also driven to memory devices 140E-140H. Each connection between circuit 180 and a memory device uses a DQS line, such that circuit 180 strobes the DQS lines to signal the memory devices that data is present on the DQ lines. When the memory devices pass data downstream to circuit 180, each device strobes its DQS line in similar fashion.
  • DQ and DQS connections between [0056] memory bank 140A-140H and memory bank 142A-142H operate like those between circuits 170, 180 and memory bank 140A-140H.
  • It is noted that the redrive/transfer circuits of FIGS. [0057] 10A/B and 11 can have other functions besides data redrive/transfer. The circuits can also provide clock synchronization between their external ports and/or between the external and module buses. Preferably, the circuits will provide capacitive isolation between the external and module buses. Where the memory devices require different signaling voltages than those used by the motherboard circuitry, the transfer circuits can also provide voltage translation.
  • FIG. 12 shows the block diagram for a memory pass-through [0058] device 140A according to an embodiment of the invention. In some respects, memory device 140A operates like a conventional memory device. For instance, address signals ADD, command signals CMD, and clock signaling CLK are received by address/command logic 210. These externally-supplied signals comprise memory commands that cause the address/command logic 210 to control operation of device 140A according to a predefined operation. This generally includes activating a row of memory cell array 214 by passing a ROW signal to row selector 212, and then sending a COL signal (indicating the desired column in memory cell array 214) and control signals to cell array access circuitry 216.
  • In addition to these common functions, [0059] memory device 140A comprises two data ports, DATA UP and DATA DOWN. Data driver 230 connects between cell array access circuitry 216 and the DATA DOWN port. When data is read from a desired location in cell array 214 by access circuitry 216, data driver 230 receives that data from access circuitry 216 and drives it out on the DATA DOWN port.
  • Data receive [0060] buffer 232 also connects to the DATA DOWN port. When data is received at the DATA DOWN port, data receive buffer captures that data and makes it available to cell array access circuitry 216. When cell array access circuitry 216 is to perform a write to memory cell array 214, it will accept the data from data receive buffer 232.
  • The DATA DOWN port of [0061] memory device 140A has additional functions not needed for an on-chip memory operation. These functions utilize two additional functional blocks, a data redriver 220 and a transfer data receive buffer 222, and an additional data port, DATA UP. When data is received at data receive buffer 232, that data is made available to data redriver 220 in addition to being made available to cell array access circuitry 216. Data redriver 220 redrives that data out on the DATA UP port. When data is received at the DATA UP port, transfer data receive buffer captures that data and makes it available to data driver 230. Data driver 230 then redrives that data out on the DATA DOWN port. These functions allow memory device 140A to be daisy-chained in a point-to-point memory bus with other memory devices.
  • FIG. 12 depicts some optional control lines CTRL. Without these lines, [0062] redriver 220 drives all data received at buffer 232, and data driver 230 chooses which of its two inputs (if either) should be driven. The control lines CTRL allow each (or one) of these operations to be placed under the control of the address/command logic 210. For instance, when address/command logic 210 has configured cell array access circuitry 216 to accept data from data receive buffer 232, it can at the same time instruct data redriver 220 not to pass that data out the DATA UP port since the data is being consumed on-chip. And address/command logic 210 can leave data driver 230 configured to accept data from transfer data receive buffer 222 except when cell array access circuitry 216 has been configured to pass data to data driver 230.
  • Although only one line is shown at each of the DATA DOWN and DATA UP ports, this represents all data lines for [0063] memory device 140A. For instance, device 140A may have a word width of eight bits, in which case each buffer and driver would be eight bits wide. Where the device operates in a source-synchronous manner, DQS lines would also be included on the DATA DOWN and DATA UP ports. Or, if the device can accept data masking, a unidirectional data mask bit can be received by buffer 232 and driven by redriver 220.
  • The types, sizes, or numbers of memory devices selected for use with the present invention are not critical. Some possible device types include dynamic random access memory (DRAM) devices, synchronous DRAM (SDRAM) devices including double-data-rate (DDR) SDRAM devices, quad-data-rate (QDR) SDRAM devices, Rambus™ DRAM devices (with an appropriate controller), static RAM and flash memory devices. It may be possible to combine memory modules in a memory system according to the invention where two modules incorporate different types of memory devices. Although the memory pass-through circuitry has been described as integrated with a memory device, the pass-through circuitry may be placed on a separate interface circuit. [0064]
  • One of ordinary skill in the art will recognize that the concepts taught herein can be tailored to a particular application in many other advantageous ways. In particular, those skilled in the art will recognize that the illustrated embodiments are but one of many alternative implementations that will become apparent upon reading this disclosure. Such minor modifications are encompassed within the invention, and are intended to fall within the scope of the claims. [0065]
  • The preceding embodiments are exemplary. Although the specification may refer to “an”, “one”, “another”, or “some” embodiment(s) in several locations, this does not necessarily mean that each such reference is to the same embodiment(s), or that the feature only applies to a single embodiment. [0066]

Claims (24)

What is claimed is:
1. A memory system comprising:
a primary memory bus;
a memory controller capable of receiving and transmitting memory signals on the primary memory bus; and
a first memory unit capable of receiving and transmitting memory signals on the primary memory bus, the memory unit having buffer circuitry, a secondary memory bus comprising multiple memory bus segments, and multiple memory subunits, one of the memory subunits electrically connected to the buffer circuitry via one of the secondary memory bus segments, each additional memory subunit electrically connected to a corresponding preceding one of the memory subunits via an additional one of the secondary memory bus segments, the buffer circuitry capable of transferring memory signals between the primary and secondary memory buses.
2. The memory system of claim 1, further comprising a second memory unit, wherein the primary memory bus comprises:
a first primary bus segment to transfer memory signals between the first memory unit and the memory controller; and
a second primary bus segment to transfer memory signals between the first and second memory units, the first memory unit forwarding memory signals received on one of the primary bus segments to the other of the primary bus segments.
3. The memory system of claim 2, wherein the second memory unit is similar to the first memory unit.
4. The memory system of claim 2, wherein each memory unit is a memory module, and wherein each of the memory subunits comprises a bank of memory devices mounted on the module.
5. The memory system of claim 2, wherein the second primary bus segment comprises a set of memory lines arranged on a circuit board between two board edge connectors, each connector capable of accepting a memory module.
6. The memory system of claim 2, wherein the memory signals transmitted on the primary and secondary memory buses comprise data signals.
7. The memory system of claim 6, wherein the memory signals transmitted on the primary memory bus further comprise address signals.
8. The memory system of claim 6, wherein the memory signals transmitted on the secondary memory bus further comprise address signals.
9. The memory system of claim 2, further comprising a common clock reference connected to each memory unit such that each primary memory bus data transfer between the two memory units or between the first memory unit and the memory controller is timed according to the common clock reference.
10. The memory system of claim 2, wherein each primary memory bus segment comprises a data strobe line, each memory unit and the memory controller indicating a data transfer placed on a primary memory bus segment by that unit or controller by placing a corresponding signal on the data strobe line associated with that memory bus segment.
11. The memory system of claim 10, wherein the buffer circuitry of the first memory unit forwards memory signals from one primary bus segment to the other primary memory bus segment in less than one bus cycle time.
12. A memory module comprising:
at least two banks of memory devices;
buffer circuitry to receive and transmit memory signals over a primary memory bus when the module is physically connected in a memory system, the buffer circuitry having at least one primary memory bus port and a module memory bus port; and
a module memory bus segment for each bank of memory devices, the memory bus segments connecting the buffer circuitry module memory bus port to the banks of memory devices in a linear point-to-point bus configuration wherein the buffer circuitry lies at one end of the configuration and one of the banks of memory devices lies at the other end, each memory bank intermediate the ends of the configuration forwarding memory signals along the bus.
13. The memory module of claim 12, wherein in the buffer circuitry the at least one primary memory bus port comprises an upstream primary memory bus port and a downstream primary memory bus port, the buffer circuitry forwarding memory signals between the primary memory bus ports, the buffer circuitry also forwarding memory signals between the downstream primary memory bus port and the module memory bus port.
14. The memory module of claim 12, wherein the module memory bus comprises data signaling lines, the memory module further comprising a single-segment address/command bus connecting the buffer circuitry to each of the banks of memory devices.
15. The memory module of claim 12, wherein the memory unit buffer circuitry comprises an address/command buffer and two data buffers, each data buffer connected to approximately half of a bank of memory devices.
16. The memory module of claim 15, wherein the address/command buffer supplies a clocking signal to the data buffers.
17. A memory device comprising:
a memory cell array with associated access circuitry;
a downstream data port and an upstream data port;
a data receive buffer to receive data at the downstream data port and forward data to the access circuitry;
a transfer data receive buffer to receive data at the upstream data port;
a data driver to receive data from the access circuitry and from the transfer data receive buffer, and to drive data on the downstream data port; and
a data redriver to redrive data received at the downstream data port on the upstream data port.
18. The memory device of claim 17, further comprising address/command logic to control operation of the memory device according to externally-supplied memory commands, the address/command logic controlling operation of the data driver, the data redriver, and the transfer data receive buffer.
19. A method of host/memory communication comprising:
receiving and transmitting memory signals at a memory controller node having an upstream port;
at least one splitting node having a downstream port and at least two upstream ports, when a memory signal is received at the downstream port, retransmitting that signal at least one of the upstream ports, and when a memory signal is received at one of the upstream ports, retransmitting that signal at the downstream port; and
at least one memory pass-through node having an upstream port and a downstream port, when a memory signal is received at an upstream port, retransmitting that signal at the downstream port, and when a memory signal originates at the memory pass-through node, transmitting that signal at the downstream port.
20. The method of claim 19, further comprising, at least one memory terminal node having a downstream port, receiving and transmitting memory signals at the downstream port.
21. The method of claim 19, further comprising when a memory signal is received at the downstream port of a splitting node, determining which of the upstream ports leads towards the destination node of the memory signal, and retransmitting the memory signal only on that upstream port.
22. The method of claim 19, wherein when a memory signal is received at the downstream port of a splitting node, retransmitting the memory signal comprises retransmitting the memory signal on all upstream ports of that node.
23. The method of claim 19, further comprising when a memory signal is received at the downstream port of a memory pass-through node, retransmitting that signal at the upstream port of that node.
24. The method of claim 19, further comprising when a memory signal is received at the downstream port of a memory pass-through node, retransmitting that signal at the upstream port of that node is the memory signal is not destined for that node.
US09/753,024 2000-12-28 2000-12-28 Multi-tier point-to-point buffered memory interface Expired - Lifetime US6493250B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/753,024 US6493250B2 (en) 2000-12-28 2000-12-28 Multi-tier point-to-point buffered memory interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/753,024 US6493250B2 (en) 2000-12-28 2000-12-28 Multi-tier point-to-point buffered memory interface

Publications (2)

Publication Number Publication Date
US20020084458A1 true US20020084458A1 (en) 2002-07-04
US6493250B2 US6493250B2 (en) 2002-12-10

Family

ID=25028831

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/753,024 Expired - Lifetime US6493250B2 (en) 2000-12-28 2000-12-28 Multi-tier point-to-point buffered memory interface

Country Status (1)

Country Link
US (1) US6493250B2 (en)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044305A1 (en) * 2003-07-08 2005-02-24 Infineon Technologies Ag Semiconductor memory module
US20060136683A1 (en) * 2003-10-20 2006-06-22 Meyer James W Arbitration system and method for memory responses in a hub-based memory system
GB2416056B (en) * 2003-05-13 2006-08-23 Advanced Micro Devices Inc A system including a host connected to a plurality of memory modules via a serial memory interconnect
US20070103957A1 (en) * 2005-10-28 2007-05-10 Roland Barth Data transfer in a memory device
US20070147016A1 (en) * 2005-12-23 2007-06-28 Intel Corporation Memory systems with memory chips down and up
JP2007164787A (en) * 2005-12-09 2007-06-28 Samsung Electronics Co Ltd Memory system
JP2007526559A (en) * 2004-02-05 2007-09-13 マイクロン テクノロジー,インコーポレイテッド Method of memory response in arbitration system with packet memory and memory system based on hub
WO2007106830A1 (en) * 2006-03-13 2007-09-20 Intel Corporation Input/output agent having multiple secondary ports
US20070300023A1 (en) * 2004-05-28 2007-12-27 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
JP2008500668A (en) * 2004-05-21 2008-01-10 ラムバス・インコーポレーテッド System and method for improving performance in a computer memory system that supports multiple memory access latency times
JP2008510257A (en) * 2004-08-19 2008-04-03 ミクロン テクノロジー インコーポレイテッド Memory command delay balancing for daisy-chained memory topologies
US20080270649A1 (en) * 2007-04-30 2008-10-30 Pearson Roger A Multi-channel memory connection system and method
JP2008547099A (en) * 2005-06-22 2008-12-25 インテル・コーポレーション Scheduling responses on memory channels
US20090006706A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Hub for Supporting High Capacity Memory Subsystem
US20090006772A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Memory Chip for High Capacity Memory Subsystem Supporting Replication of Command Data
US20090006752A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Employing Hierarchical Tree Configuration of Memory Modules
US20090006760A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Dual-Mode Memory Chip for High Capacity Memory Subsystem
US20090006798A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Memory Chip for High Capacity Memory Subsystem Supporting Replication of Command Data
US20090006705A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Hub for Supporting High Capacity Memory Subsystem
US20090006781A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Memory Chip for High Capacity Memory Subsystem Supporting Multiple Speed Bus
US20090006715A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Memory Chip for High Capacity Memory Subsystem Supporting Multiple Speed Bus
US20090006790A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Storing Interleaved Data for Reduced Bus Speed
US20090006775A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Dual-Mode Memory Chip for High Capacity Memory Subsystem
US20090043933A1 (en) * 2006-10-23 2009-02-12 Bennett Jon C R Skew management in an interconnection system
US20090063789A1 (en) * 2007-08-28 2009-03-05 Greeff Roy E Enhanced performance memory systems and methods
US20090070612A1 (en) * 2005-04-21 2009-03-12 Maxim Adelman Memory power management
US20090150707A1 (en) * 2005-04-21 2009-06-11 Drucker Kevin D Mesosynchronous data bus apparatus and method of data transmission
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US8082404B2 (en) 2004-03-24 2011-12-20 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US8726064B2 (en) 2005-04-21 2014-05-13 Violin Memory Inc. Interconnection system
US20150058524A1 (en) * 2012-01-04 2015-02-26 Kenneth C. Creta Bimodal functionality between coherent link and memory expansion
US20150074352A1 (en) * 2002-03-21 2015-03-12 Pact Xpp Technologies Ag Multiprocessor Having Segmented Cache Memory
US20150178197A1 (en) * 2013-12-23 2015-06-25 Sandisk Technologies Inc. Addressing Auto address Assignment and Auto-Routing in NAND Memory Network
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9324389B2 (en) 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
WO2017222870A1 (en) * 2016-06-22 2017-12-28 Micron Technology, Inc. Bank to bank data transfer
US20180007791A1 (en) * 2014-12-18 2018-01-04 Intel Corporation Cpu package substrates with removable memory mechanical interfaces
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US20230215474A1 (en) * 2022-01-06 2023-07-06 Montage Electronics (Shanghai) Co., Ltd. Memory device with modular design and memory system comprising the same
WO2024031774A1 (en) * 2022-08-10 2024-02-15 长鑫存储技术有限公司 Semiconductor structure, manufacturing method for semiconductor structure, and semiconductor device

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643752B1 (en) * 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US7266634B2 (en) * 2000-01-05 2007-09-04 Rambus Inc. Configurable width buffered module having flyby elements
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7404032B2 (en) 2000-01-05 2008-07-22 Rambus Inc. Configurable width buffered module having switch elements
US7356639B2 (en) 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US7017002B2 (en) 2000-01-05 2006-03-21 Rambus, Inc. System featuring a master device, a buffer device and a plurality of integrated circuit memory devices
JP2002117000A (en) * 2000-10-05 2002-04-19 Hitachi Ltd Memory system and connection member
US6882082B2 (en) * 2001-03-13 2005-04-19 Micron Technology, Inc. Memory repeater
US7013359B1 (en) * 2001-12-21 2006-03-14 Cypress Semiconductor Corporation High speed memory interface system and method
US7110400B2 (en) * 2002-04-10 2006-09-19 Integrated Device Technology, Inc. Random access memory architecture and serial interface with continuous packet handling capability
US6639820B1 (en) 2002-06-27 2003-10-28 Intel Corporation Memory buffer arrangement
US7362697B2 (en) * 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
DE10306149B4 (en) * 2003-02-14 2007-08-30 Infineon Technologies Ag Method for allocating memory device addresses, buffer device and memory module
US7020757B2 (en) * 2003-03-27 2006-03-28 Hewlett-Packard Development Company, L.P. Providing an arrangement of memory devices to enable high-speed data access
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US7127629B2 (en) * 2003-06-03 2006-10-24 Intel Corporation Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
US7165153B2 (en) 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US8171331B2 (en) * 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7340537B2 (en) * 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7386768B2 (en) 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7177211B2 (en) * 2003-11-13 2007-02-13 Intel Corporation Memory channel test fixture and method
US7243205B2 (en) * 2003-11-13 2007-07-10 Intel Corporation Buffered memory module with implicit to explicit memory command expansion
US7219294B2 (en) * 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US7143207B2 (en) * 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
US7447953B2 (en) 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
JP2005190036A (en) * 2003-12-25 2005-07-14 Hitachi Ltd Storage controller and control method for storage controller
US7031221B2 (en) * 2003-12-30 2006-04-18 Intel Corporation Fixed phase clock and strobe signals in daisy chained chips
US7212423B2 (en) * 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US20060004953A1 (en) * 2004-06-30 2006-01-05 Vogt Pete D Method and apparatus for increased memory bandwidth
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7441060B2 (en) 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7277988B2 (en) 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US20060129712A1 (en) * 2004-12-10 2006-06-15 Siva Raghuram Buffer chip for a multi-rank dual inline memory module (DIMM)
US20060164909A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation System, method and storage medium for providing programmable delay chains for a memory system
US7269088B2 (en) * 2005-05-17 2007-09-11 Intel Corporation Identical chips with different operations in a system
US7197676B2 (en) * 2005-05-24 2007-03-27 Kingston Technology Corp. Loop-Back Memory-Module Extender Card for Self-Testing Fully-Buffered Memory Modules
US20070005834A1 (en) * 2005-06-30 2007-01-04 Intel Corporation Memory chips with buffer circuitry
US7966446B2 (en) * 2005-09-12 2011-06-21 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US7930492B2 (en) * 2005-09-12 2011-04-19 Samsung Electronics Co., Ltd. Memory system having low power consumption
US7397684B2 (en) * 2005-09-15 2008-07-08 Infineon Technologies, Ag Semiconductor memory array with serial control/address bus
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US7555670B2 (en) * 2005-10-26 2009-06-30 Intel Corporation Clocking architecture using a bidirectional clock port
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7405949B2 (en) * 2005-12-09 2008-07-29 Samsung Electronics Co., Ltd. Memory system having point-to-point (PTP) and point-to-two-point (PTTP) links between devices
KR101131919B1 (en) * 2005-12-09 2012-04-03 삼성전자주식회사 Memory system and signal transmitting and receiving method of the same
US7477526B1 (en) 2005-12-29 2009-01-13 Co Ramon S Branching fully-buffered memory-module with two downlink and one uplink ports
US7404055B2 (en) 2006-03-28 2008-07-22 Intel Corporation Memory transfer with early access to critical portion
US7389381B1 (en) 2006-04-05 2008-06-17 Co Ramon S Branching memory-bus module with multiple downlink ports to standard fully-buffered memory modules
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US8040683B2 (en) * 2006-08-02 2011-10-18 Urenschi Assets Limited Liability Company Active dual in line memory module connector with re-driven propagated signals
US7477522B2 (en) 2006-10-23 2009-01-13 International Business Machines Corporation High density high reliability memory module with a fault tolerant address and command bus
US7870459B2 (en) * 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
DE102006051514B4 (en) * 2006-10-31 2010-01-21 Qimonda Ag Memory module and method for operating a memory module
US20080151591A1 (en) * 2006-12-21 2008-06-26 Intel Corporation Memory system with a configurable number of read data bits
US20080149506A1 (en) * 2006-12-22 2008-06-26 Ching-Kai Kuo Cosmetic container
US8069327B2 (en) * 2006-12-28 2011-11-29 Intel Corporation Commands scheduled for frequency mismatch bubbles
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US8781053B2 (en) * 2007-12-14 2014-07-15 Conversant Intellectual Property Management Incorporated Clock reproducing and timing method in a system having a plurality of devices
US8467486B2 (en) * 2007-12-14 2013-06-18 Mosaid Technologies Incorporated Memory controller with flexible data alignment to clock
US8904083B2 (en) * 2008-07-30 2014-12-02 Infineon Technologies Ag Method and apparatus for storing data in solid state memory
KR101796116B1 (en) 2010-10-20 2017-11-10 삼성전자 주식회사 Semiconductor device, memory module and memory system having the same and operating method thereof
US10679722B2 (en) 2016-08-26 2020-06-09 Sandisk Technologies Llc Storage system with several integrated components and method for use therewith

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229487A (en) * 1990-06-19 1992-08-18 Dell Usa Corp Digital computer having refresh operation control system of memory subsystem including dynamic ram and method of controlling refresh
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory
US6256221B1 (en) * 1998-01-30 2001-07-03 Silicon Aquarius, Inc. Arrays of two-transistor, one-capacitor dynamic random access memory cells with interdigitated bitlines
US6046952A (en) * 1998-12-04 2000-04-04 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic refreshing

Cited By (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150074352A1 (en) * 2002-03-21 2015-03-12 Pact Xpp Technologies Ag Multiprocessor Having Segmented Cache Memory
GB2416056B (en) * 2003-05-13 2006-08-23 Advanced Micro Devices Inc A system including a host connected to a plurality of memory modules via a serial memory interconnect
JP4836794B2 (en) * 2003-05-13 2011-12-14 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド A system including a host connected to a plurality of memory modules via a serial memory interconnect
US20050044305A1 (en) * 2003-07-08 2005-02-24 Infineon Technologies Ag Semiconductor memory module
US7386696B2 (en) * 2003-07-08 2008-06-10 Infineon Technologies Ag Semiconductor memory module
US20060136683A1 (en) * 2003-10-20 2006-06-22 Meyer James W Arbitration system and method for memory responses in a hub-based memory system
US8589643B2 (en) 2003-10-20 2013-11-19 Round Rock Research, Llc Arbitration system and method for memory responses in a hub-based memory system
US9164937B2 (en) * 2004-02-05 2015-10-20 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
JP2007526559A (en) * 2004-02-05 2007-09-13 マイクロン テクノロジー,インコーポレイテッド Method of memory response in arbitration system with packet memory and memory system based on hub
US8291173B2 (en) 2004-02-05 2012-10-16 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US8694735B2 (en) 2004-02-05 2014-04-08 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20140207993A1 (en) * 2004-02-05 2014-07-24 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US8082404B2 (en) 2004-03-24 2011-12-20 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US9032166B2 (en) 2004-03-24 2015-05-12 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US8555006B2 (en) 2004-03-24 2013-10-08 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
JP2008500668A (en) * 2004-05-21 2008-01-10 ラムバス・インコーポレーテッド System and method for improving performance in a computer memory system that supports multiple memory access latency times
JP4926963B2 (en) * 2004-05-21 2012-05-09 ラムバス・インコーポレーテッド System and method for improving performance in a computer memory system that supports multiple memory access latency times
US20070300023A1 (en) * 2004-05-28 2007-12-27 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7774559B2 (en) 2004-05-28 2010-08-10 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US8612712B2 (en) 2004-08-19 2013-12-17 Round Rock Research, Llc Memory command delay balancing in a daisy-chained memory topology
US20100122059A1 (en) * 2004-08-19 2010-05-13 Micron Technology, Inc. Memory Command Delay Balancing In A Daisy-Chained Memory Topology
US7908451B2 (en) 2004-08-19 2011-03-15 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
JP2008510257A (en) * 2004-08-19 2008-04-03 ミクロン テクノロジー インコーポレイテッド Memory command delay balancing for daisy-chained memory topologies
JP4742347B2 (en) * 2004-08-19 2011-08-10 マイクロン テクノロジー, インク. Memory command delay balancing for daisy-chained memory topologies
US20110145522A1 (en) * 2004-08-19 2011-06-16 Douglas Alan Larson Memory command delay balancing in a daisy-chained memory topology
US8166268B2 (en) 2004-08-19 2012-04-24 Micron Technology, Inc. Memory command delay balancing in a daisy-chained memory topology
US8935505B2 (en) 2004-08-19 2015-01-13 Round Rock Research, Llc System and method for controlling memory command delay
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US10176861B2 (en) 2005-04-21 2019-01-08 Violin Systems Llc RAIDed memory system management
US20090150707A1 (en) * 2005-04-21 2009-06-11 Drucker Kevin D Mesosynchronous data bus apparatus and method of data transmission
US20090070612A1 (en) * 2005-04-21 2009-03-12 Maxim Adelman Memory power management
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9727263B2 (en) 2005-04-21 2017-08-08 Violin Memory, Inc. Method and system for storage of data in a non-volatile media
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US8726064B2 (en) 2005-04-21 2014-05-13 Violin Memory Inc. Interconnection system
US10417159B2 (en) 2005-04-21 2019-09-17 Violin Systems Llc Interconnection system
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
JP2008547099A (en) * 2005-06-22 2008-12-25 インテル・コーポレーション Scheduling responses on memory channels
JP4920036B2 (en) * 2005-06-22 2012-04-18 インテル・コーポレーション Scheduling responses on memory channels
US20070103957A1 (en) * 2005-10-28 2007-05-10 Roland Barth Data transfer in a memory device
JP2007164787A (en) * 2005-12-09 2007-06-28 Samsung Electronics Co Ltd Memory system
US8559190B2 (en) 2005-12-23 2013-10-15 Intel Corporation Memory systems and method for coupling memory chips
US20070147016A1 (en) * 2005-12-23 2007-06-28 Intel Corporation Memory systems with memory chips down and up
US7990737B2 (en) * 2005-12-23 2011-08-02 Intel Corporation Memory systems with memory chips down and up
US20070239906A1 (en) * 2006-03-13 2007-10-11 Vakil Kersi H Input/output agent having multiple secondary ports
EP1994472A4 (en) * 2006-03-13 2010-02-10 Intel Corp Input/output agent having multiple secondary ports
TWI384369B (en) * 2006-03-13 2013-02-01 Intel Corp Method and system for serial input/output agent having multiple secondary ports and fully buffered dual inline memory module
WO2007106830A1 (en) * 2006-03-13 2007-09-20 Intel Corporation Input/output agent having multiple secondary ports
EP1994472A1 (en) * 2006-03-13 2008-11-26 Intel Corporation Input/output agent having multiple secondary ports
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US8090973B2 (en) 2006-10-23 2012-01-03 Violin Memory, Inc. Skew management in an interconnection system
US20090043933A1 (en) * 2006-10-23 2009-02-12 Bennett Jon C R Skew management in an interconnection system
US8806262B2 (en) 2006-10-23 2014-08-12 Violin Memory, Inc. Skew management in an interconnection system
US20080270649A1 (en) * 2007-04-30 2008-10-30 Pearson Roger A Multi-channel memory connection system and method
US8131903B2 (en) * 2007-04-30 2012-03-06 Hewlett-Packard Development Company, L.P. Multi-channel memory connection system and method
US20090006790A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Storing Interleaved Data for Reduced Bus Speed
US20090006705A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Hub for Supporting High Capacity Memory Subsystem
US8037270B2 (en) 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting replication of command data
US8037272B2 (en) 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting multiple speed bus
US20090006706A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Hub for Supporting High Capacity Memory Subsystem
US8019949B2 (en) 2007-06-27 2011-09-13 International Business Machines Corporation High capacity memory subsystem architecture storing interleaved data for reduced bus speed
US7996641B2 (en) 2007-06-27 2011-08-09 International Business Machines Corporation Structure for hub for supporting high capacity memory subsystem
US20090006772A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Memory Chip for High Capacity Memory Subsystem Supporting Replication of Command Data
US7921264B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Dual-mode memory chip for high capacity memory subsystem
US7921271B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Hub for supporting high capacity memory subsystem
US7822936B2 (en) * 2007-06-27 2010-10-26 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting replication of command data
US7818512B2 (en) 2007-06-27 2010-10-19 International Business Machines Corporation High capacity memory subsystem architecture employing hierarchical tree configuration of memory modules
US7809913B2 (en) * 2007-06-27 2010-10-05 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting multiple speed bus
US20090006752A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Employing Hierarchical Tree Configuration of Memory Modules
US20090006760A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Dual-Mode Memory Chip for High Capacity Memory Subsystem
US20090006798A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Memory Chip for High Capacity Memory Subsystem Supporting Replication of Command Data
US20090006775A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Dual-Mode Memory Chip for High Capacity Memory Subsystem
US20090006715A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley Memory Chip for High Capacity Memory Subsystem Supporting Multiple Speed Bus
US8037258B2 (en) 2007-06-27 2011-10-11 International Business Machines Corporation Structure for dual-mode memory chip for high capacity memory subsystem
US20090006781A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Structure for Memory Chip for High Capacity Memory Subsystem Supporting Multiple Speed Bus
US8400810B2 (en) 2007-08-28 2013-03-19 Micron Technology, Inc. Enhanced performance memory systems and methods
US20090063789A1 (en) * 2007-08-28 2009-03-05 Greeff Roy E Enhanced performance memory systems and methods
US9154131B2 (en) 2007-08-28 2015-10-06 Micron Technology, Inc. Enhanced performance memory systems and methods
WO2009032152A1 (en) * 2007-08-28 2009-03-12 Micron Technology, Inc. Enhanced performance memory systems and methods
US7965532B2 (en) 2007-08-28 2011-06-21 Micron Technology, Inc. Enhanced performance memory systems and methods
US20150058524A1 (en) * 2012-01-04 2015-02-26 Kenneth C. Creta Bimodal functionality between coherent link and memory expansion
US10103133B2 (en) 2013-05-29 2018-10-16 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
US9324389B2 (en) 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
US9703702B2 (en) * 2013-12-23 2017-07-11 Sandisk Technologies Llc Addressing auto address assignment and auto-routing in NAND memory network
US20150178197A1 (en) * 2013-12-23 2015-06-25 Sandisk Technologies Inc. Addressing Auto address Assignment and Auto-Routing in NAND Memory Network
US20180007791A1 (en) * 2014-12-18 2018-01-04 Intel Corporation Cpu package substrates with removable memory mechanical interfaces
WO2017222870A1 (en) * 2016-06-22 2017-12-28 Micron Technology, Inc. Bank to bank data transfer
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10929023B2 (en) 2016-06-22 2021-02-23 Micron Technology, Inc. Bank to bank data transfer
US11755206B2 (en) 2016-06-22 2023-09-12 Micron Technology, Inc. Bank to bank data transfer
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10796736B2 (en) 2017-05-15 2020-10-06 Micron Technology, Inc. Bank to bank data transfer
US11514957B2 (en) 2017-05-15 2022-11-29 Micron Technology, Inc. Bank to bank data transfer
US20230215474A1 (en) * 2022-01-06 2023-07-06 Montage Electronics (Shanghai) Co., Ltd. Memory device with modular design and memory system comprising the same
WO2024031774A1 (en) * 2022-08-10 2024-02-15 长鑫存储技术有限公司 Semiconductor structure, manufacturing method for semiconductor structure, and semiconductor device

Also Published As

Publication number Publication date
US6493250B2 (en) 2002-12-10

Similar Documents

Publication Publication Date Title
US6493250B2 (en) Multi-tier point-to-point buffered memory interface
US6658509B1 (en) Multi-tier point-to-point ring memory interface
US7024518B2 (en) Dual-port buffer-to-memory interface
US7523248B2 (en) System having a controller device, a buffer device and a plurality of memory devices
US6502161B1 (en) Memory system including a point-to-point linked memory subsystem
US7054179B2 (en) Double-high memory system compatible with termination schemes for single-high memory systems
US5991850A (en) Synchronous DRAM modules including multiple clock out signals for increasing processing speed
US11379392B2 (en) Multi-mode memory module and memory component
US20080091888A1 (en) Memory system having baseboard located memory buffer unit
US20050010737A1 (en) Configurable width buffered module having splitter elements
US7778042B2 (en) Memory system having point-to-point (PTP) and point-to-two-point (PTTP) links between devices
KR100375147B1 (en) Circuit module
US20090049324A1 (en) Methods and systems for operating memory in two modes
US7617367B2 (en) Memory system including a two-on-one link memory subsystem interconnection
US20060112239A1 (en) Memory device for use in a memory module
US20090307417A1 (en) Integrated buffer device

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HALBERT, JOHN B.;DODD, JAMES M.;LAM, CHUNG;AND OTHERS;REEL/FRAME:012466/0250;SIGNING DATES FROM 20010314 TO 20010409

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment

Year of fee payment: 7

FPAY Fee payment

Year of fee payment: 12