US20190013054A1 - Flexible point-to-point memory topology - Google Patents

Flexible point-to-point memory topology Download PDF

Info

Publication number
US20190013054A1
US20190013054A1 US16/043,694 US201816043694A US2019013054A1 US 20190013054 A1 US20190013054 A1 US 20190013054A1 US 201816043694 A US201816043694 A US 201816043694A US 2019013054 A1 US2019013054 A1 US 2019013054A1
Authority
US
United States
Prior art keywords
memory
duplex
channel
duplex data
block
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
US16/043,694
Other versions
US10325637B2 (en
Inventor
Alejandro F. Gonzalez
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.)
Renesas Electronics America Inc
Original Assignee
Integrated Device Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Integrated Device Technology Inc filed Critical Integrated Device Technology Inc
Priority to US16/043,694 priority Critical patent/US10325637B2/en
Publication of US20190013054A1 publication Critical patent/US20190013054A1/en
Application granted granted Critical
Publication of US10325637B2 publication Critical patent/US10325637B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • 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/40Bus structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits

Definitions

  • the present invention relates to memory generally and, more particularly, to a method and/or apparatus for implementing a flexible point-to-point memory topology.
  • a single-channel (asymmetric) mode provides single-channel bandwidth operations when only one DIMM is installed or when the memory capacities of more than one DIMM are unequal.
  • a dual-channel (interleaved) mode offers higher memory throughput and is enabled when the memory capacities of both channels are equal.
  • a triple-channel mode provides triple-channel interleaving, which can reduce overall memory latency by accessing the DIMM memory sequentially.
  • a quad-channel mode can be enabled when four (or multiples of four) DIMMs with identical capacity and speed are installed. Regardless of the memory mode used, each DIMM can operate only on a single channel.
  • Communication between the DIMMs and the motherboard can be done using differential uni-directional signaling or single-ended bidirectional signaling.
  • differential uni-directional signaling When differential uni-directional signaling is used, more pins are needed to meet capacity demands for a given memory technology node, resulting in higher cost.
  • Scaling capacity in point-to-point configurations has a direct impact on bandwidth. This is a disadvantage with respect to fly-by topologies where the bandwidth is constant for one DIMM or Many DIMMs.
  • existing technology channels, I/O's, etc.
  • DQ double data rate
  • the present invention concerns an apparatus including a plurality of memory devices and a control circuit.
  • the control circuit may be configured to enable a plurality of access modes for the plurality of memory devices. In a one-channel mode, all of the memory devices are accessed using a single selectable channel. In a two-channel mode, a first portion of the plurality of memory devices is accessed using a first channel and a second portion of the plurality of memory devices is accessed using a second channel.
  • FIG. 1 is a diagram illustrating a memory system populated using dual-inline-memory modules (DIMMs) in accordance with an example embodiment of the invention
  • FIG. 2 is a diagram illustrating a two-channel mode of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention
  • FIG. 3 is a diagram illustrating a single-channel modes of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention
  • FIG. 4 is a diagram illustrating system memory slots populated by a dual-in-line-memory module (DIMM) operating in the two-channel mode and a bridge card;
  • DIMM dual-in-line-memory module
  • FIG. 5 is a diagram illustrating system memory slots populated by dual-in-line-memory modules (DIMMs) operating in the single-channel modes;
  • DIMMs dual-in-line-memory modules
  • FIG. 6 is a diagram illustrating various communication buses of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention
  • FIG. 7 is a diagram illustrating a duplex data buffer in accordance with an example embodiment of the invention.
  • FIG. 8 is a diagram illustrating a duplex data buffer in accordance with another example embodiment of the invention.
  • FIGS. 9A-9C are diagrams illustrating various operating modes of a duplex registered clock driver and a duplex data buffer in accordance with example embodiments of the invention.
  • FIG. 10 is a diagram illustrating an example implementation of a duplex data buffer in accordance with an example embodiment of the invention.
  • Embodiments of the invention include providing a method and/or apparatus for implementing a flexible point-to-point memory topology that may (i) keep signals point-to-point, (ii) reduce signal line loading to enable faster speeds, (iii) use longer burst lengths, (iv) send commands in multiple cycles, (v) reduce command/address signals, (vi) reduce pin count, (vii) utilize duplex registered clock drivers and duplex data buffers, (viii) provide multi-channel bandwidth with one or more memory modules installed, (ix) allow a single memory module to service two channels independently, and/or (x) be implemented as one or more integrated circuits.
  • circuits 100 a - 100 n may be implemented as memory modules (or boards).
  • the memory modules 100 a - 100 n may be implemented as dual in-line memory modules (DIMMs).
  • the memory modules 100 a - 100 n may be implemented as double data rate fourth generation (DDR4) dual in-line memory modules (DIMMs).
  • the memory modules 100 a - 100 n may comprise a block (or circuit) 102 , a number of blocks (or circuits) 104 a - 104 n , a plurality of memory devices 106 , and/or various other blocks, circuits, pins, connectors and/or traces.
  • the circuit 102 may be implemented as a duplex registered clock driver (RCD).
  • the duplex RCD circuit 102 may be implemented as a duplex DDR4 RCD circuit.
  • the circuits 104 a - 104 n may be configured as duplex data buffers.
  • the memory devices 106 may be implemented a synchronous dynamic random access memory (SDRAM) devices.
  • SDRAM synchronous dynamic random access memory
  • the memory modules 100 a - 100 n are shown connected to a block (or circuit) 20 .
  • the circuit 20 may implement a memory controller.
  • the memory controller 20 may be located in another device, such as a computing engine.
  • Various connectors/pins/traces 60 may be implemented to connect the memory modules 100 a - 100 n to the memory controller 20 .
  • the connectors/pins/traces 60 may comprise a 288-pin configuration.
  • the memory controller 20 may be a component on a computer motherboard.
  • the memory controller 20 may be a component of a microprocessor.
  • the memory controller 20 may be a component of a central processing unit (CPU).
  • CPU central processing unit
  • some of the connectors/pins/traces 60 may be part of the memory modules 100 a - 100 n and some of the connectors/pins/traces 60 may be part of the motherboard and/or memory controller 20 .
  • the memory modules 100 a - 100 n may be connected to a computer motherboard (e.g., by pins, traces and/or connectors 60 ) to transfer data between components of a computing device and the memory modules 100 a - 100 n .
  • the motherboard topology and number of memory modules 100 a - 100 n installed generally determines whether the memory modules 100 a - 100 n may operate in a single(one)-channel mode or a two-channel mode.
  • the slot in which the particular memory modules 100 a - 100 n are installed may determine a particular configuration of each memory module when operating in the single-channel mode (e.g., described in more detail below in connection with FIGS. 9A-9C ).
  • the memory controller 20 may be implemented on a northbridge of a motherboard and/or as a component of a microprocessor (e.g., an Intel CPU, an AMD CPU, an ARM CPU, etc.). The implementation of the memory controller 20 may be varied according to the design criteria of a particular implementation.
  • the memory modules 100 a - 100 n may implement DDR4 SDRAM memory modules.
  • the DDR4 SDRAM memory modules 100 a - 100 n may have a memory module density of 512 gigabyte (GB), one terabyte (TB), or higher per module (e.g., compared to 128 GB per dual in-line memory module (DIMM) in DDR3).
  • the DDR4 SDRAM memory modules 100 a - 100 n may operate at voltages of 1.2-1.35 volts (V) with a frequency between 800-1600 megahertz (MHZ) (e.g., compared to 1.5-1.65V at frequencies between 400-1067 MHz in DDR3).
  • MHZ megahertz
  • the memory modules 100 a - 100 n may be implemented as low voltage memory and operate at 1.05V.
  • the low voltage embodiments of the memory modules 100 a - 100 n may implement 35% power savings compared to DDR3 memory.
  • the DDR4 SDRAM memory modules 100 a - 100 n may transfer data at speeds of 2.13-4.26 giga-transfers per second (GT/s) and higher (e.g., compared to 0.8-2.13 GT/s in DDR3).
  • GT/s giga-transfers per second
  • the operating parameters of the memory modules 100 a - 100 n may be varied according to the design criteria of a particular implementation.
  • the memory modules 100 a - 100 n may be compliant with the DDR4 specification titled “DDR4 SDRAM”, specification JESD79-4A, November 2013, published by the Joint Electron Device Engineering Council (JEDEC) Solid State Technology Association, Arlington, Va. Appropriate sections of the DDR4 specification are hereby incorporated by reference in their entirety.
  • JEDEC Joint Electron Device Engineering Council
  • the memory modules 100 a - 100 n may be implemented as DDR4 load reduced DIMMs (LRDIMMs).
  • the duplex data buffers 104 a - 104 n may allow the memory modules 100 a - 100 n in a DDR4 LRDIMM configuration to operate at higher bandwidth and/or at higher capacities compared to DDR4 RDIMM (e.g., 2400 or 2666 MT/s for DDR4 LRDIMM compared to 2133 or 2400 MT/s for DDR4 RDIMM at 384 GB capacity).
  • the DDR4 LRDIMM configuration of the memory modules 100 a - 100 n may allow improved signal integrity on data signals, and/or better intelligence and/or post-buffer awareness by the memory controller 20 .
  • a diagram of a memory module 100 i is shown illustrating a two channel mode of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention.
  • the memory module 100 i may be representative of the memory modules 100 a - 100 n .
  • the memory module 100 i is shown operating in a two-channel mode in accordance with an example embodiment of the invention. In the two-channel mode, the memory module 100 i is configured to service two channels (e.g., CH 0 and CH 1 ) independently.
  • the memory module 100 i may comprise two rows (e.g., lower and upper) of five memory devices 106 on either side of the duplex RCD circuit 102 .
  • a row of five duplex data buffers 104 a - 104 e may be located below the two rows of memory devices 106 on the left side of the duplex RCD circuit 102 .
  • Another row of five duplex data buffers 104 f - 104 n may be located below the two rows of memory devices 106 on the right side of the duplex RCD circuit 102 .
  • Each of the duplex data buffers 104 a - 104 n may be configured to support two memory channels by implementing two data paths with the respective memory devices 106 located directly above.
  • a first memory channel and data path of each duplex data buffer 104 a - 104 n may communicate with the respective memory device(s) 106 in the lower row.
  • a second memory channel and data path of each duplex data buffer 104 a - 104 n may communicate with the respective memory device(s) 106 in the upper row.
  • the memory devices 106 may be physically located on both sides (e.g., the front and back) of the circuit board of the memory module 100 i .
  • the first channel and data path of each duplex data buffer 104 a - 104 n communicate with the memory devices 106 in the lower row on both the front and back sides and the second channel and data path of each duplex data buffer 104 a - 104 n communicate with the memory devices 106 in the upper row on both the front and back sides.
  • a capacity of memory on the memory module 100 i may be varied according to the design criteria of a particular implementation. In an example where the memory module 100 i is implemented as a DDP memory module, each memory channel/data path may communicate with two rows of memory devices 106 .
  • each memory module 100 i is configured to service a particular channel (e.g., either CH 0 or CH 1 ) dependent upon the slot in which the memory module 100 i is installed.
  • a particular channel e.g., either CH 0 or CH 1
  • each of the memory modules 100 a - 100 n may be configured to communicate using a separate channel.
  • a module 100 a may be configured to communicate with the memory controller 20 using memory channel 1 (CH 1 ) and a memory module 100 n may be configured to communicate with the memory controller 20 using memory channel 0 (CH 0 ).
  • CH 1 memory channel 1
  • CH 0 memory channel 0
  • FIG. 3 shows the memory module 100 a having the memory channel CH 1 connected to the right hand data port of the duplex data buffers 104 , while the left hand data portions of the duplex data buffers 104 are idle.
  • Command, address, and control signals of the memory channel CH 1 are presented to the right hand control port of the duplex RCD circuit 102 .
  • signals related to the memory channel CH 0 are presented to the left hand side (portion) of the duplex data buffers 104 and to the left hand control port of the duplex RCD circuit 102 .
  • the right hand side (portion) of the duplex data buffers 104 are set to the idle state (e.g., indicated by cross hatching).
  • the memory controller 20 is responsible for programming the memory modules 100 a - 100 n for the appropriate configuration to match the memory topology of the motherboard.
  • FIG. 4 a diagram is shown illustrating a motherboard of a system with two memory slots populated by a single dual-in-line-memory module (DIMM) operating in the two channel mode and a bridge card.
  • DIMM dual-in-line-memory module
  • a single memory module in accordance with an example embodiment of the invention may be plugged into a slot 0 socket and a connection bridge dummy card may be plugged into a slot 1 socket.
  • the memory module would be configured to operate in the two channel mode.
  • the channel 1 bus to/from the host connects to one side of the slot 0 socket which is connected to the channel 1 portion of the duplex data buffers 104 a - 104 n and the duplex RCD circuit 102 .
  • the channel portions of the duplex data buffers 104 a - 104 n are represented by separate blocks (e.g., BUF 0 -BUF 4 ) adjacent to respective edges of the slot 0 socket.
  • the channel 0 bus to/from the host connects to one side of the slot 1 socket.
  • the connection bridge dummy card in slot 1 would pass the signals connected to the slot 1 socket to/from the channel 0 bus across to the slot 0 socket for connection to the channel 0 side of the duplex data buffers 104 a - 104 n and the channel 0 control port of the duplex RCD circuit 102 .
  • FIG. 5 a diagram is shown illustrating the motherboard of the system with memory slots populated by two dual-in-line-memory modules (DIMMs), each operating in a respective one of the single channel modes.
  • DIMMs dual-in-line-memory modules
  • a first memory module is installed in slot 0 and a second memory module is installed in slot 1 .
  • Each of the memory modules are configured for single channel operation.
  • the memory module in slot 0 would receive channel 1 bus signals at the channel 1 side of the duplex data buffers 104 a - 104 n and the channel 1 control port of the duplex RCD circuit 102 .
  • the channel 0 duplex data buffer inputs and channel 0 control inputs of the duplex RCD circuit 102 would be connected to inactive lines and would be set into the idle state.
  • the memory module in slot 1 would receive channel 0 bus signals at the channel 0 portion of the duplex data buffers and the channel 0 side of the duplex RCD circuit 102 .
  • the channel 1 portion of the duplex data buffers would be in the idle state and connected with the inactive lines.
  • FIG. 6 a diagram is shown illustrating various communication buses of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention.
  • DIMM dual-in-line-memory module
  • the right hand side portion is generally a mirror image of the left hand side.
  • the memory controller 20 (not shown for clarity) may be configured to operate with two memory channels (e.g., CH 0 and CH 1 ).
  • Each of the channels CH 0 and CH 1 may comprise a signal (e.g., CLK) and a number of control and address signals (e.g., ADDR/CMD), collectively annotated as CA/CTRL.
  • CLK signal
  • ADDR/CMD control and address signals
  • the signals CA/CTRL of each of the channels CH 0 and CH 1 may be presented to respective ports of the duplex RCD circuit 102 .
  • the memory controller 20 may generate and/or receive data signals (e.g., DQa-DQn) associated with each channel CH 0 and CH 1 that may be presented/received to/from respective channel ports (e.g., a port 111 and a port 112 , respectively) of each of the duplex data buffers 104 a - 104 n.
  • the duplex RCD circuit 102 may be configured to communicate with the memory controller 20 , memory devices 106 , and the duplex data buffers 104 a - 104 n .
  • the memory devices 106 may be arranged in rows on the front and back of the memory module 100 .
  • the rows of memory devices 106 on the front side may be designated as rank 0 .
  • the rows of memory devices 106 on the back side may be designated as rank 1 .
  • the duplex RCD circuit 102 may decode instructions received from the memory controller 20 .
  • the duplex RCD circuit 102 may receive commands that write register control words (RCWs).
  • the RCWs are implemented as configuration registers.
  • the duplex RCD circuit 102 may receive commands for writing buffer control words (BCWs) to the duplex data buffers 104 a - 104 n .
  • the BCWs may be used to configure operations and parameters of the duplex data buffers.
  • the duplex RCD circuit 102 may be configured to train the memory devices 106 , the duplex data buffers 104 a - 104 n and/or command and address lines connected to the memory controller 20 .
  • the RCWs may flow from the memory controller 20 to the duplex RCD circuit 102 .
  • the RCWs may be used to configure the duplex RCD circuit 102 .
  • the BCWs may flow from the memory controller 20 to the duplex RCD circuit 102 and from the RCD circuit 102 to the duplex data buffers 104 a - 104 n.
  • the duplex RCD circuit 102 may implement a 32-bit 1:2 command/address register.
  • the duplex RCD circuit 102 may support one or more at-speed buses 110 .
  • a BCOM bus 110 a for channel 0 and BCOM bus 110 b for channel 1 may be implemented between the duplex RCD circuit 102 and the duplex data buffers 104 a - 104 n .
  • the duplex RCD circuit 102 may implement automatic impedance calibration.
  • the duplex RCD circuit 102 may implement command/address parity checking.
  • the duplex RCD circuit 102 may control register RCW readback.
  • the duplex RCD circuit 102 may implement a 1 MHz inter-integrated circuit (I 2 C) bus (e.g., a serial bus).
  • I 2 C inter-integrated circuit
  • Inputs to the duplex RCD circuit 102 may be pseudo-differential using external and/or internal reference voltages.
  • the clock outputs, command/address outputs, control outputs and/or data buffer control outputs of the duplex RCD circuit 102 may be enabled in groups and independently driven with different strengths.
  • the duplex RCD circuit 102 may receive the signal CLK and/or the signals ADDR/CMD from the memory controller 20 .
  • Various digital logic components of the duplex RCD circuit 102 may be used to generate signals based on the signal CLK and/or the signals ADDR/CMD and/or other signals (e.g., RCWs).
  • the duplex RCD circuit 102 may also be configured to generate a clock signal and address/command signals related to each channel for controlling accesses to the memory devices 106 .
  • the clock signal may be implemented in compliance with a signal Y_CLK in the DDR4 specification.
  • the clock signal and/or the address/command signals related to each channel may be presented to each of the memory devices 106 associated with the respective memory channels (e.g., on a number of common busses).
  • the duplex RCD circuit 102 may generate one or more data buffer control signals (e.g., DBC).
  • the signals DBC may be presented to each of the duplex data buffers 104 a - 104 n .
  • the signals DEC may be transmitted on a single common bus 110 (e.g., a data buffer control bus) or on respective buses 110 a and 110 b for each channel.
  • the duplex data buffers 104 a - 104 n may be configured to receive data from the bus 110 (e.g., described below in connection with FIG. 8 ) or from the buses 110 a and 110 b (e.g., described below in connection with FIG. 7 ).
  • the duplex data buffers 104 a - 104 n may be configured to generate/receive data signals (e.g. DQ) to/from the channels CH 0 and CH 1 .
  • the channels CH 0 and CH 1 may comprise traces, pins and/or connections between the memory controller 20 and the duplex data buffers 104 a - 104 n .
  • the duplex data buffers 104 a - 104 n may be configured to buffer data on the channels CH 0 and CH 1 for write operations (e.g., data transfers from the memory controller 20 to the corresponding memory devices 106 ).
  • the duplex data buffers 104 a - 104 n may be configured to buffer data on the channels CH 0 and CH 1 for read operations (e.g., data transfers from the corresponding memory devices 106 to the memory controller 20 ).
  • the duplex data buffers 104 a - 104 n generally limit the loading on the channel signals, allowing increased signaling speeds at a given memory technology node.
  • Each of the duplex data buffers 104 a - 104 n may have a first input/output 111 that communicates respective data signals DQ to/from the memory controller 20 on the first channel CH 0 , a second input/output 112 that communicates respective data signals DQ to/from the memory controller 20 on the second channel CH 1 , a third input/output 113 that communicates respective data signals DQ to/from the memory devices 106 associated with the first channel CH 0 , and a fourth input/output 114 that communicates respective data signals DQ to/from the memory devices 106 associated with the second channel CH 1 .
  • each of the input/outputs 111 , 112 , 113 , and 114 may be implemented as 4-bit wide data paths.
  • Each of the duplex data buffers 104 a - 104 n may also have a single connection to the bus 110 or respective connections to buses 110 a and 110 b , allowing the duplex data buffers 104 a - 104 n to be configured in the appropriate mode for the memory topology of the system in which the memory module 100 is installed.
  • the duplex data buffer 104 i may be representative of an example embodiment of the duplex data buffers 104 a - 104 n .
  • the duplex data buffer 104 i is shown having a first input/output 111 , a second input/output 112 , a third input/output 113 , and a fourth input/output 114 .
  • the first input/output 111 is configured for presenting/receiving the signals DQi CH 0 (e.g., the data signals DQ corresponding to memory channel CH 0 ) between the duplex data buffer 104 i and the controller 20 .
  • the second input/output 112 is configured for presenting/receiving the signals DQi CH 1 (e.g., the data signals DQ corresponding to memory channel CH 1 ) between the duplex data buffer 104 i and the controller 20 .
  • the third input/output 113 is configured for presenting/receiving the signals DQi CH 0 as memory input/output (MIO) signals corresponding to memory channel CH 0 between the duplex data buffer 104 i and the respective memory devices (e.g., DRAM chips) 106 .
  • the fourth input/output 114 is configured for presenting/receiving the signals DQi CH 1 as memory input/output (MIO) signals corresponding to memory channel CH 1 between the duplex data buffer 104 i and the respective memory devices (e.g., DRAM chips) 106 .
  • the signals MIO are generally transmitted between the memory modules 106 and the respective duplex data buffer 104 a - 104 n .
  • data e.g., the signals DQi
  • data from each channel of the memory controller 20 may be presented to the duplex data buffer 104 i , buffered in the duplex data buffer 104 i , then transmitted to the respective memory device(s) 106 .
  • data from the respective memory device(s) 106 may be presented to the duplex data buffer 104 i , buffered in the duplex data buffer 104 i , and then transmitted on an appropriate memory channel to the memory controller 20 .
  • the duplex data buffer 104 i is shown also receiving signals (e.g., DBC_CH 0 ) from the bus 110 a at a first control port (e.g., DBC PORT 0 ) and signals (e.g., DBC_CH 1 ) from the bus 110 b at a second control port (e.g., DBC PORT 1 ).
  • the signals DBC_CH 0 and DBC_CH 1 may be presented to each of the duplex data buffers 104 a - 104 n (e.g., using the data buffer control buses 110 a and 110 b ).
  • the signals DBC_CH 0 and DBC_CH 1 are illustrated comprising five signals transmitted over 9 pins/bits (e.g., a pair of signals BCK_T/BCK_C, a signal BCOM, a signal BCKE, a signal BODT and/or a signal BVREFCA).
  • pins/bits e.g., a pair of signals BCK_T/BCK_C, a signal BCOM, a signal BCKE, a signal BODT and/or a signal BVREFCA.
  • other numbers of pins/bits may be implemented accordingly to meet the design criteria of a particular application.
  • the first control port of the duplex data buffer 104 i is shown having an input 115 receiving the signals BCK_T/BCK_C, an input 117 a receiving the signal BCOM, an input 117 b receiving the signal BCKE, an input 117 c receiving the signal BODT, and an input 117 d receiving the signal BVREFCA, all corresponding to channel 0 (CH 0 ).
  • the second control port of the duplex data buffer 104 i is shown having an input 116 receiving the signals BCK_T/BCK_C, an input 118 a receiving the signal BCOM, an input 118 b receiving the signal BCKE, an input 118 c receiving the signal BODT, and an input 118 d receiving the signal BVREFCA, all corresponding to channel 1 (CH 1 ).
  • the signals BCK_T/BCK_C may be implemented as a 2-bit signal representing a differential (e.g., true (T) and complementary (C) versions) clock signal for the duplex data buffers 104 a - 104 n .
  • the signal BCOM may be implemented as a 4-bit signal representing data buffer commands.
  • the signal BCOM may be implemented as a unidirectional signal from the duplex RCD circuit 102 to the duplex data buffers 104 a - 104 n .
  • the signal BCOM may be implemented at a single data rate (e.g., 1 bit per signal per clock cycle). However, a particular command may take a different number of clock cycles to transfer information.
  • the signal BCKE may be a function registered dedicated non-encoded signal (e.g., DCKE).
  • the signal BODT may be a function registered dedicated non-encoded signals (e.g., DODT).
  • the signal BVREFCA may be a reference voltage for use with pseudo-differential command and control signals.
  • Each channel of the duplex data buffers 104 a - 104 n may receive a set of duplex data buffer commands (e.g., for writing buffer control words (BCWs)) from the signals DBC.
  • the buffer control words may be used to customize operation of the respective channel of the duplex data buffers 104 a - 104 n .
  • the buffer control words may flow from the memory controller 20 , through the duplex RCD circuit 102 , to the duplex data buffers 104 a - 104 n .
  • the buffer control words may be similar to register control words (RCWS) used for configuring the duplex RCD circuit 102 . Similar to commands for writing the register control words, the commands for writing the buffer control words may look like an MRS7 command, where the address lines are really the payload.
  • RCWS register control words
  • the duplex RCD circuit 102 may do more than pass a buffer control word directly through to the duplex data buffers 104 a - 104 n .
  • the duplex RCD circuit 102 may convert (e.g., multiplex) an MRS7 command format into a buffer control word in a BCOM format.
  • the duplex RCD circuit 102 may map the 12 address bits of the MRS7 command into five separate data transfers, each 4 bits wide. The five data transfers may be set up back to back over one of the buses 110 , 110 a , or 110 b .
  • the duplex data buffers 104 a - 104 n may decode the buffer control word, write the buffer control word to a function space of the duplex data buffer, and complete the buffer command in the buffer control word.
  • a function of the signal BCOM may be to transmit the buffer control words.
  • the duplex RCD circuit 102 may send all read/write commands and MRS information over the bus 110 , or buses 110 a and 110 b (e.g., to allow the duplex data buffers 104 a - 104 n to keep track of what the memory devices 106 are doing).
  • different buffer commands may take a different number of cycles to transfer the information.
  • the duplex RCD circuit 102 may receive an MRS7 command from the memory controller 20 (e.g., from a host). For example, a host may want to change a parameter (e.g., typically on boot up of a computing device).
  • the duplex RCD circuit 102 may check the MRS7 command to determine whether the address bit 12 is set to 1 (e.g., a logical one). In an example, when an address bit 12 of the MRS7 command is set to 1, the duplex RCD circuit 102 may recognize the command as a buffer command (e.g., a command that is not meant for the duplex RCD circuit 102 ).
  • the duplex RCD circuit 102 may convert the command from the memory controller 20 to a buffer control word and send the buffer control word to the duplex data buffers 104 a - 104 n via the bus 110 .
  • the duplex data buffers 104 a - 104 n may write the buffer control word to a function space to complete the command.
  • the duplex data buffers 104 a - 104 n may be configurable.
  • the buffer commands may allow the memory controller 20 to customize aspects of termination (e.g., ODT), signal strength on the DQ lines, and/or events (e.g., receiver timing, driver timing, etc.) in both directions (e.g., for both read and write operations).
  • some of the configurations of the duplex data buffers 104 a - 104 n may be decided based on system level configurations. Generally, most of the configuration of the duplex data buffers 104 a - 104 n may be decided during training steps.
  • host controllers e.g., the memory controller 20
  • the bus 110 may be used to send commands/data to program configuration registers of the duplex data buffers 104 a - 104 n .
  • the bus 110 may also send commands (e.g., data reads and/or data writes) that control data traffic through the duplex data buffers 104 a - 104 n .
  • commands e.g., data reads and/or data writes
  • some commands may optimize power consumption of the duplex data buffers 104 a - 104 n .
  • read/write delays may be added per data line.
  • the duplex data buffers 104 a - 104 n may implement dual multi-bit (e.g., 4-bit) bidirectional data registers with differential data strobes (e.g., DQS_T/DQS_C).
  • the duplex data buffers 104 a - 104 n may implement automatic impedance calibration.
  • the duplex data buffers 104 a - 104 n may implement BCOM parity checking.
  • the duplex data buffers 104 a - 104 n may implement control register (e.g., buffer control word) readback.
  • the duplex data buffer 104 i ′ may be used to implement the duplex data buffers 104 a - 104 n .
  • the duplex data buffer 104 i ′ may be implemented similarly to the duplex data buffer 104 i , except that the duplex data buffer 104 i ′ implements a single control port (e.g. DBC PORT) through which both sides of the duplex data buffer 104 i ′ may be controlled.
  • a single control port e.g. DBC PORT
  • the signals DBC may be implemented comprising the five signals BCK_T/BCK_C, BCOM, BCKE, BODT, and BVREFCA transmitted over 10 pins/bits (e.g., the signal BCOM may be implemented with 5 bits instead of 4 bits).
  • the signal BCOM may be implemented with 5 bits instead of 4 bits.
  • other numbers of pins/bits may be implemented accordingly to meet the design criteria of a particular application.
  • the control port DBC PORT of duplex data buffer 104 i ′ is shown having an input 115 receiving the signals BCK_T/BCK_C, an input 119 a receiving the signal BCOM, an input 119 b receiving the signal BCKE, an input 119 c receiving the signal BODT, and an input 119 d receiving the signal BVREFCA.
  • the control port DBC PORT is used to program operation of both channels of the duplex data buffer 104 i ′.
  • the signal BCOM may be implemented as a 5-bit signal communicating data buffer commands.
  • the signal BCOM may be configured to signal which port of the duplex data buffer 104 i ′ the signal BCOM is meant to control/program.
  • the signal BCOM may be implemented as a unidirectional signal from the duplex RCD circuit 102 to the duplex data buffers 104 a - 104 n .
  • the signal BCOM may be implemented at a single data rate (e.g., 1 bit per signal per clock cycle). However, a particular command may take a different number of clock cycles to transfer information.
  • FIGS. 9A-9C diagrams are shown illustrating various operating modes of the duplex registered clock driver 102 and the duplex data buffers 104 a - 104 n in accordance with example embodiments of the invention.
  • FIG. 9A a diagram is shown illustrating a two-channel mode (e.g., MODE 0 ).
  • an exemplary duplex RCD circuit 102 i and an exemplary duplex data buffer 104 i are configured to service both channel 0 and channel 1 independently.
  • FIG. 9B a diagram is shown illustrating a first single-channel mode (e.g., MODE 1 ).
  • the duplex RCD circuit 102 i and the duplex data buffer 104 i are configured to communicate data to/from all of the memory devices 106 of the memory module using only channel 0 .
  • the channel 1 bus side circuits are placed in the idle state and data to/from the memory devices 106 is routed to the channel 0 circuitry.
  • FIG. 9C a diagram is shown illustrating a second single-channel mode (e.g., MODE 2 ).
  • the duplex RCD circuit 102 i and the duplex data buffer 104 i are configured to communicate data to/from all of the memory devices 106 of the memory module using only channel 1 .
  • the channel 0 bus side circuits are placed in the idle state and the data to/from the memory devices 106 is routed to the channel 1 circuitry.
  • duplex data buffer 104 i may be implemented as illustrated by the duplex data buffer 104 i .
  • the duplex data buffer 104 i may comprise a block 200 , a block 202 a and a block 202 b .
  • the block 200 may implement a transaction control logic of the duplex data buffer 104 i .
  • the blocks 202 a and 202 b may implement channel circuitry for the duplex data buffer 104 i .
  • the block 200 may be configured to control operations of the duplex data buffer 104 i based upon commands received via the bus 110 or the buses 110 a and 110 b .
  • the circuit 200 is generally enabled to configure the circuit 202 a and 202 b for operation in either the two channel mode or one of the single channel modes described above in connection with FIGS. 9A-9C .
  • the circuit 200 may be configured to implement the data buffer control (DBC) ports described above in connection with FIGS. 7 and 8 .
  • DDC data buffer control
  • the block 202 a may be used to provide the channel 0 data path and the block 202 b may be used to provide the channel 1 data path.
  • the block 202 a may comprise a block (or circuit) 204 a , a block (or circuit) 206 a , a block (or circuit) 208 a , a block (or circuit) 210 a , a block (or circuit) 212 a , a block (or circuit) 214 a , a block (or circuit) 216 a , and a block (or circuit) 218 a .
  • the block 202 b may comprise a block (or circuit) 204 b , a block (or circuit) 206 b , a block (or circuit) 208 b , a block (or circuit) 210 b , a block (or circuit) 212 b , a block (or circuit) 214 b , a block (or circuit) 216 b , and a block (or circuit) 218 b .
  • the blocks 204 a and 204 b may be implemented as receivers or buffers.
  • the blocks 206 a and 206 b may be implemented as transmitters or buffer/drivers.
  • the blocks 208 a , 208 b , 214 a , and 214 b may be implemented as switches.
  • the blocks 210 a , 210 b , 212 a , and 212 b may be implemented as memories.
  • the memories 210 a , 210 b , 212 a , and 212 b may be configured as first-in first-out (FIFO) memories.
  • the memories 210 a , 210 b , 212 a , and 212 b may be implemented as separate, independent memory blocks or devices.
  • the memories 210 a , 210 b , 212 a , and 212 b may be implemented as portions of a single memory block or device.
  • the blocks 216 a and 216 b may be implemented as transmitters or buffer/drivers.
  • the blocks 218 a and 218 b may be implemented as receivers or buffers.
  • the input/output 113 may be connected to an input of the block 204 a and the output of the block 206 a .
  • the input/output 114 may be connected to an input of the block 204 b and the output of the block 206 b .
  • An output of the block 204 a may be connected to an input of the block 210 a .
  • An output of the block 204 b may be connected to an input of the block 210 b .
  • An input of the block 206 a may be connected to an output of the block 208 a .
  • An input of the block 206 b may be connected to an output of the block 208 b .
  • a first input of the block 208 a may be connected to a first input of the block 208 b and an output of the block 212 a .
  • a second input of the block 208 a may be connected to a second input of the block 208 b and an output of the block 212 b.
  • An output of the block 210 a may be connected to a first input of the block 214 a and a first input of the block 214 b .
  • An output of the block 210 b may be connected to a second input of the block 214 a and second input of the block 214 b .
  • An output of the block 214 a may be connected to an input of the block 216 a .
  • An output of the block 218 a may be connected to an input of the block 212 a .
  • An output of the block 216 a and an input of the block 218 a may be connected to the input/output 111 .
  • An output of the block 218 b may be connected to an input of the block 212 b .
  • An output of the block 216 b and an input of the block 218 b may be connected to the input/output 112 .
  • the present invention is not limited to DDR4 applications, but may also be applied in other high data rate digital communication applications where different transmission line effects, cross-coupling effects, traveling wave distortions, phase changes, impedance mismatches and/or line imbalances may exist.
  • the present invention addresses concerns related to high speed communications, flexible clocking structures, specified command sets and lossy transmission lines. Future generations of DDR can be expected to provide increasing speed, more flexibility, additional commands and different propagation characteristics.
  • the present invention may also be applicable to memory systems implemented in compliance with either existing (legacy) memory specifications or future memory specifications.

Abstract

An apparatus includes a plurality of memory devices and a control circuit. The control circuit may be configured to enable a plurality of access modes for the plurality of memory devices. In a one-channel mode, all of the memory devices are accessed using a single selectable channel. In a two-channel mode, a first portion of the plurality of memory devices is accessed using a first channel and a second portion of the plurality of memory devices is accessed using a second channel.

Description

  • This application relates to U.S. Ser. No. 15/090,818, filed Apr. 5, 2016, which is incorporated by reference in its entirety.
  • FIELD OF THE INVENTION
  • The present invention relates to memory generally and, more particularly, to a method and/or apparatus for implementing a flexible point-to-point memory topology.
  • BACKGROUND OF THE INVENTION
  • Several types of memory modes are used on conventional motherboards, depending on how many dual inline memory modules (DIMMs) are installed. A single-channel (asymmetric) mode provides single-channel bandwidth operations when only one DIMM is installed or when the memory capacities of more than one DIMM are unequal. A dual-channel (interleaved) mode offers higher memory throughput and is enabled when the memory capacities of both channels are equal. A triple-channel mode provides triple-channel interleaving, which can reduce overall memory latency by accessing the DIMM memory sequentially. A quad-channel mode can be enabled when four (or multiples of four) DIMMs with identical capacity and speed are installed. Regardless of the memory mode used, each DIMM can operate only on a single channel.
  • Communication between the DIMMs and the motherboard can be done using differential uni-directional signaling or single-ended bidirectional signaling. When differential uni-directional signaling is used, more pins are needed to meet capacity demands for a given memory technology node, resulting in higher cost. Scaling capacity in point-to-point configurations has a direct impact on bandwidth. This is a disadvantage with respect to fly-by topologies where the bandwidth is constant for one DIMM or Many DIMMs. However, existing technology (channels, I/O's, etc.) are capable of running double data rate (DDR) data (DQ) signals at significantly higher data rates in point-to-point topologies.
  • It would be desirable to implement a flexible point-to-point memory topology.
  • SUMMARY OF THE INVENTION
  • The present invention concerns an apparatus including a plurality of memory devices and a control circuit. The control circuit may be configured to enable a plurality of access modes for the plurality of memory devices. In a one-channel mode, all of the memory devices are accessed using a single selectable channel. In a two-channel mode, a first portion of the plurality of memory devices is accessed using a first channel and a second portion of the plurality of memory devices is accessed using a second channel.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Embodiments of the invention will be apparent from the following detailed description and the appended claims and drawings in which:
  • FIG. 1 is a diagram illustrating a memory system populated using dual-inline-memory modules (DIMMs) in accordance with an example embodiment of the invention;
  • FIG. 2 is a diagram illustrating a two-channel mode of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention;
  • FIG. 3 is a diagram illustrating a single-channel modes of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention;
  • FIG. 4 is a diagram illustrating system memory slots populated by a dual-in-line-memory module (DIMM) operating in the two-channel mode and a bridge card;
  • FIG. 5 is a diagram illustrating system memory slots populated by dual-in-line-memory modules (DIMMs) operating in the single-channel modes;
  • FIG. 6 is a diagram illustrating various communication buses of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention;
  • FIG. 7 is a diagram illustrating a duplex data buffer in accordance with an example embodiment of the invention;
  • FIG. 8 is a diagram illustrating a duplex data buffer in accordance with another example embodiment of the invention;
  • FIGS. 9A-9C are diagrams illustrating various operating modes of a duplex registered clock driver and a duplex data buffer in accordance with example embodiments of the invention; and
  • FIG. 10 is a diagram illustrating an example implementation of a duplex data buffer in accordance with an example embodiment of the invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Embodiments of the invention include providing a method and/or apparatus for implementing a flexible point-to-point memory topology that may (i) keep signals point-to-point, (ii) reduce signal line loading to enable faster speeds, (iii) use longer burst lengths, (iv) send commands in multiple cycles, (v) reduce command/address signals, (vi) reduce pin count, (vii) utilize duplex registered clock drivers and duplex data buffers, (viii) provide multi-channel bandwidth with one or more memory modules installed, (ix) allow a single memory module to service two channels independently, and/or (x) be implemented as one or more integrated circuits.
  • Referring to FIG. 1, a diagram of a memory system is shown in accordance with an embodiment of the present invention. In an example, circuits 100 a-100 n may be implemented as memory modules (or boards). For example, the memory modules 100 a-100 n may be implemented as dual in-line memory modules (DIMMs). In some embodiments, the memory modules 100 a-100 n may be implemented as double data rate fourth generation (DDR4) dual in-line memory modules (DIMMs). The memory modules 100 a-100 n may comprise a block (or circuit) 102, a number of blocks (or circuits) 104 a-104 n, a plurality of memory devices 106, and/or various other blocks, circuits, pins, connectors and/or traces. The circuit 102 may be implemented as a duplex registered clock driver (RCD). In an example, the duplex RCD circuit 102 may be implemented as a duplex DDR4 RCD circuit. The circuits 104 a-104 n may be configured as duplex data buffers. In an example, the memory devices 106 may be implemented a synchronous dynamic random access memory (SDRAM) devices. The type, arrangement and/or number of components of the memory modules 100 a-100 n may be varied to meet the design criteria of a particular implementation.
  • The memory modules 100 a-100 n are shown connected to a block (or circuit) 20. The circuit 20 may implement a memory controller. The memory controller 20 may be located in another device, such as a computing engine. Various connectors/pins/traces 60 may be implemented to connect the memory modules 100 a-100 n to the memory controller 20. In some embodiments, the connectors/pins/traces 60 may comprise a 288-pin configuration. In an example, the memory controller 20 may be a component on a computer motherboard. In another example, the memory controller 20 may be a component of a microprocessor. In yet another example, the memory controller 20 may be a component of a central processing unit (CPU).
  • In an example, some of the connectors/pins/traces 60 may be part of the memory modules 100 a-100 n and some of the connectors/pins/traces 60 may be part of the motherboard and/or memory controller 20. The memory modules 100 a-100 n may be connected to a computer motherboard (e.g., by pins, traces and/or connectors 60) to transfer data between components of a computing device and the memory modules 100 a-100 n. The motherboard topology and number of memory modules 100 a-100 n installed generally determines whether the memory modules 100 a-100 n may operate in a single(one)-channel mode or a two-channel mode. In the two-channel mode, the slot in which the particular memory modules 100 a-100 n are installed may determine a particular configuration of each memory module when operating in the single-channel mode (e.g., described in more detail below in connection with FIGS. 9A-9C). In an example, the memory controller 20 may be implemented on a northbridge of a motherboard and/or as a component of a microprocessor (e.g., an Intel CPU, an AMD CPU, an ARM CPU, etc.). The implementation of the memory controller 20 may be varied according to the design criteria of a particular implementation.
  • In various embodiments, the memory modules 100 a-100 n may implement DDR4 SDRAM memory modules. In an example, the DDR4 SDRAM memory modules 100 a-100 n may have a memory module density of 512 gigabyte (GB), one terabyte (TB), or higher per module (e.g., compared to 128 GB per dual in-line memory module (DIMM) in DDR3). The DDR4 SDRAM memory modules 100 a-100 n may operate at voltages of 1.2-1.35 volts (V) with a frequency between 800-1600 megahertz (MHZ) (e.g., compared to 1.5-1.65V at frequencies between 400-1067 MHz in DDR3). In some embodiments, the memory modules 100 a-100 n may be implemented as low voltage memory and operate at 1.05V. For example, the low voltage embodiments of the memory modules 100 a-100 n may implement 35% power savings compared to DDR3 memory. The DDR4 SDRAM memory modules 100 a-100 n may transfer data at speeds of 2.13-4.26 giga-transfers per second (GT/s) and higher (e.g., compared to 0.8-2.13 GT/s in DDR3). The operating parameters of the memory modules 100 a-100 n may be varied according to the design criteria of a particular implementation.
  • In an example, the memory modules 100 a-100 n may be compliant with the DDR4 specification titled “DDR4 SDRAM”, specification JESD79-4A, November 2013, published by the Joint Electron Device Engineering Council (JEDEC) Solid State Technology Association, Arlington, Va. Appropriate sections of the DDR4 specification are hereby incorporated by reference in their entirety.
  • The memory modules 100 a-100 n may be implemented as DDR4 load reduced DIMMs (LRDIMMs). The duplex data buffers 104 a-104 n may allow the memory modules 100 a-100 n in a DDR4 LRDIMM configuration to operate at higher bandwidth and/or at higher capacities compared to DDR4 RDIMM (e.g., 2400 or 2666 MT/s for DDR4 LRDIMM compared to 2133 or 2400 MT/s for DDR4 RDIMM at 384 GB capacity). For example, compared to DDR4 RDIMM configurations, the DDR4 LRDIMM configuration of the memory modules 100 a-100 n may allow improved signal integrity on data signals, and/or better intelligence and/or post-buffer awareness by the memory controller 20.
  • Referring to FIG. 2, a diagram of a memory module 100 i is shown illustrating a two channel mode of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention. The memory module 100 i may be representative of the memory modules 100 a-100 n. The memory module 100 i is shown operating in a two-channel mode in accordance with an example embodiment of the invention. In the two-channel mode, the memory module 100 i is configured to service two channels (e.g., CH0 and CH1) independently.
  • In an example, the memory module 100 i may comprise two rows (e.g., lower and upper) of five memory devices 106 on either side of the duplex RCD circuit 102. A row of five duplex data buffers 104 a-104 e may be located below the two rows of memory devices 106 on the left side of the duplex RCD circuit 102. Another row of five duplex data buffers 104 f-104 n may be located below the two rows of memory devices 106 on the right side of the duplex RCD circuit 102. Each of the duplex data buffers 104 a-104 n may be configured to support two memory channels by implementing two data paths with the respective memory devices 106 located directly above. A first memory channel and data path of each duplex data buffer 104 a-104 n may communicate with the respective memory device(s) 106 in the lower row. A second memory channel and data path of each duplex data buffer 104 a-104 n may communicate with the respective memory device(s) 106 in the upper row.
  • In some embodiments, the memory devices 106 may be physically located on both sides (e.g., the front and back) of the circuit board of the memory module 100 i. When the memory devices 106 are located on both sides of the memory module 100 i, the first channel and data path of each duplex data buffer 104 a-104 n communicate with the memory devices 106 in the lower row on both the front and back sides and the second channel and data path of each duplex data buffer 104 a-104 n communicate with the memory devices 106 in the upper row on both the front and back sides. A capacity of memory on the memory module 100 i may be varied according to the design criteria of a particular implementation. In an example where the memory module 100 i is implemented as a DDP memory module, each memory channel/data path may communicate with two rows of memory devices 106.
  • Referring to FIG. 3, a diagram is shown illustrating two dual-in-line-memory modules (DIMMs) operating in a single-channel mode in accordance with an example embodiment of the invention. In the single-channel mode, each memory module 100 i is configured to service a particular channel (e.g., either CH0 or CH1) dependent upon the slot in which the memory module 100 i is installed. When multiple memory modules 100 a-100 n are installed in a system, each of the memory modules 100 a-100 n may be configured to communicate using a separate channel. For example, in a system with two memory modules installed, a module 100 a may be configured to communicate with the memory controller 20 using memory channel 1 (CH1) and a memory module 100 n may be configured to communicate with the memory controller 20 using memory channel 0 (CH0).
  • When the memory modules 100 a-100 n are configured for single channel operation, a particular channel used to communicate is connected to one side of the duplex RCD circuit 102 and one side of each of the duplex data buffers 104 a-104 n (104). The unused portions of the data buffers 104 are placed in an idle state (e.g., indicated by cross hatching). For example, FIG. 3 shows the memory module 100 a having the memory channel CH1 connected to the right hand data port of the duplex data buffers 104, while the left hand data portions of the duplex data buffers 104 are idle. Command, address, and control signals of the memory channel CH1 are presented to the right hand control port of the duplex RCD circuit 102. For the memory module 100 n, signals related to the memory channel CH0 are presented to the left hand side (portion) of the duplex data buffers 104 and to the left hand control port of the duplex RCD circuit 102. The right hand side (portion) of the duplex data buffers 104 are set to the idle state (e.g., indicated by cross hatching). In general, the memory controller 20 is responsible for programming the memory modules 100 a-100 n for the appropriate configuration to match the memory topology of the motherboard.
  • Referring to FIG. 4, a diagram is shown illustrating a motherboard of a system with two memory slots populated by a single dual-in-line-memory module (DIMM) operating in the two channel mode and a bridge card. In one example, a single memory module in accordance with an example embodiment of the invention may be plugged into a slot 0 socket and a connection bridge dummy card may be plugged into a slot 1 socket. The memory module would be configured to operate in the two channel mode. The channel 1 bus to/from the host connects to one side of the slot 0 socket which is connected to the channel 1 portion of the duplex data buffers 104 a-104 n and the duplex RCD circuit 102. For clarity, the channel portions of the duplex data buffers 104 a-104 n are represented by separate blocks (e.g., BUF0-BUF4) adjacent to respective edges of the slot 0 socket. The channel 0 bus to/from the host connects to one side of the slot 1 socket. The connection bridge dummy card in slot 1 would pass the signals connected to the slot 1 socket to/from the channel 0 bus across to the slot 0 socket for connection to the channel 0 side of the duplex data buffers 104 a-104 n and the channel 0 control port of the duplex RCD circuit 102.
  • Referring to FIG. 5, a diagram is shown illustrating the motherboard of the system with memory slots populated by two dual-in-line-memory modules (DIMMs), each operating in a respective one of the single channel modes. A first memory module is installed in slot 0 and a second memory module is installed in slot 1. Each of the memory modules are configured for single channel operation. The memory module in slot 0 would receive channel 1 bus signals at the channel 1 side of the duplex data buffers 104 a-104 n and the channel 1 control port of the duplex RCD circuit 102. The channel 0 duplex data buffer inputs and channel 0 control inputs of the duplex RCD circuit 102 would be connected to inactive lines and would be set into the idle state. The memory module in slot 1 would receive channel 0 bus signals at the channel 0 portion of the duplex data buffers and the channel 0 side of the duplex RCD circuit 102. The channel 1 portion of the duplex data buffers would be in the idle state and connected with the inactive lines.
  • Referring to FIG. 6, a diagram is shown illustrating various communication buses of a dual-in-line-memory module (DIMM) in accordance with an example embodiment of the invention. Only the left hand side portion of a memory module 100 is illustrated for clarity. The right hand side portion is generally a mirror image of the left hand side. The memory controller 20 (not shown for clarity) may be configured to operate with two memory channels (e.g., CH0 and CH1). Each of the channels CH0 and CH1 may comprise a signal (e.g., CLK) and a number of control and address signals (e.g., ADDR/CMD), collectively annotated as CA/CTRL. When the memory module 100 is operating in the two-channel mode, the signals CA/CTRL of each of the channels CH0 and CH1 may be presented to respective ports of the duplex RCD circuit 102. The memory controller 20 may generate and/or receive data signals (e.g., DQa-DQn) associated with each channel CH0 and CH1 that may be presented/received to/from respective channel ports (e.g., a port 111 and a port 112, respectively) of each of the duplex data buffers 104 a-104 n.
  • The duplex RCD circuit 102 may be configured to communicate with the memory controller 20, memory devices 106, and the duplex data buffers 104 a-104 n. The memory devices 106 may be arranged in rows on the front and back of the memory module 100. The rows of memory devices 106 on the front side may be designated as rank 0. The rows of memory devices 106 on the back side may be designated as rank 1. The duplex RCD circuit 102 may decode instructions received from the memory controller 20. For example, the duplex RCD circuit 102 may receive commands that write register control words (RCWs). In various embodiments, the RCWs are implemented as configuration registers. In another example, the duplex RCD circuit 102 may receive commands for writing buffer control words (BCWs) to the duplex data buffers 104 a-104 n. The BCWs may be used to configure operations and parameters of the duplex data buffers. The duplex RCD circuit 102 may be configured to train the memory devices 106, the duplex data buffers 104 a-104 n and/or command and address lines connected to the memory controller 20. For example, the RCWs may flow from the memory controller 20 to the duplex RCD circuit 102. The RCWs may be used to configure the duplex RCD circuit 102. The BCWs may flow from the memory controller 20 to the duplex RCD circuit 102 and from the RCD circuit 102 to the duplex data buffers 104 a-104 n.
  • In an example, the duplex RCD circuit 102 may implement a 32-bit 1:2 command/address register. The duplex RCD circuit 102 may support one or more at-speed buses 110. In an example, a BCOM bus 110 a for channel 0 and BCOM bus 110 b for channel 1 may be implemented between the duplex RCD circuit 102 and the duplex data buffers 104 a-104 n. The duplex RCD circuit 102 may implement automatic impedance calibration. The duplex RCD circuit 102 may implement command/address parity checking. The duplex RCD circuit 102 may control register RCW readback. The duplex RCD circuit 102 may implement a 1 MHz inter-integrated circuit (I2C) bus (e.g., a serial bus). Inputs to the duplex RCD circuit 102 may be pseudo-differential using external and/or internal reference voltages. The clock outputs, command/address outputs, control outputs and/or data buffer control outputs of the duplex RCD circuit 102 may be enabled in groups and independently driven with different strengths.
  • The duplex RCD circuit 102 may receive the signal CLK and/or the signals ADDR/CMD from the memory controller 20. Various digital logic components of the duplex RCD circuit 102 may be used to generate signals based on the signal CLK and/or the signals ADDR/CMD and/or other signals (e.g., RCWs). The duplex RCD circuit 102 may also be configured to generate a clock signal and address/command signals related to each channel for controlling accesses to the memory devices 106. For example, the clock signal may be implemented in compliance with a signal Y_CLK in the DDR4 specification. The clock signal and/or the address/command signals related to each channel may be presented to each of the memory devices 106 associated with the respective memory channels (e.g., on a number of common busses). The duplex RCD circuit 102 may generate one or more data buffer control signals (e.g., DBC). The signals DBC may be presented to each of the duplex data buffers 104 a-104 n. The signals DEC may be transmitted on a single common bus 110 (e.g., a data buffer control bus) or on respective buses 110 a and 110 b for each channel.
  • The duplex data buffers 104 a-104 n may be configured to receive data from the bus 110 (e.g., described below in connection with FIG. 8) or from the buses 110 a and 110 b (e.g., described below in connection with FIG. 7). The duplex data buffers 104 a-104 n may be configured to generate/receive data signals (e.g. DQ) to/from the channels CH0 and CH1. The channels CH0 and CH1 may comprise traces, pins and/or connections between the memory controller 20 and the duplex data buffers 104 a-104 n. The duplex data buffers 104 a-104 n may be configured to buffer data on the channels CH0 and CH1 for write operations (e.g., data transfers from the memory controller 20 to the corresponding memory devices 106). The duplex data buffers 104 a-104 n may be configured to buffer data on the channels CH0 and CH1 for read operations (e.g., data transfers from the corresponding memory devices 106 to the memory controller 20). The duplex data buffers 104 a-104 n generally limit the loading on the channel signals, allowing increased signaling speeds at a given memory technology node.
  • Each of the duplex data buffers 104 a-104 n may have a first input/output 111 that communicates respective data signals DQ to/from the memory controller 20 on the first channel CH0, a second input/output 112 that communicates respective data signals DQ to/from the memory controller 20 on the second channel CH1, a third input/output 113 that communicates respective data signals DQ to/from the memory devices 106 associated with the first channel CH0, and a fourth input/output 114 that communicates respective data signals DQ to/from the memory devices 106 associated with the second channel CH1. In an example, each of the input/ outputs 111, 112, 113, and 114 may be implemented as 4-bit wide data paths. Each of the duplex data buffers 104 a-104 n may also have a single connection to the bus 110 or respective connections to buses 110 a and 110 b, allowing the duplex data buffers 104 a-104 n to be configured in the appropriate mode for the memory topology of the system in which the memory module 100 is installed.
  • Referring to FIG. 7, a diagram is shown illustrating a duplex data buffer 104 i in accordance with an example embodiment of the invention. The duplex data buffer 104 i may be representative of an example embodiment of the duplex data buffers 104 a-104 n. The duplex data buffer 104 i is shown having a first input/output 111, a second input/output 112, a third input/output 113, and a fourth input/output 114.
  • The first input/output 111 is configured for presenting/receiving the signals DQi CH0 (e.g., the data signals DQ corresponding to memory channel CH0) between the duplex data buffer 104 i and the controller 20. The second input/output 112 is configured for presenting/receiving the signals DQi CH1 (e.g., the data signals DQ corresponding to memory channel CH1) between the duplex data buffer 104 i and the controller 20. The third input/output 113 is configured for presenting/receiving the signals DQi CH0 as memory input/output (MIO) signals corresponding to memory channel CH0 between the duplex data buffer 104 i and the respective memory devices (e.g., DRAM chips) 106. The fourth input/output 114 is configured for presenting/receiving the signals DQi CH1 as memory input/output (MIO) signals corresponding to memory channel CH1 between the duplex data buffer 104 i and the respective memory devices (e.g., DRAM chips) 106.
  • The signals MIO are generally transmitted between the memory modules 106 and the respective duplex data buffer 104 a-104 n. In an example, data (e.g., the signals DQi) from each channel of the memory controller 20 may be presented to the duplex data buffer 104 i, buffered in the duplex data buffer 104 i, then transmitted to the respective memory device(s) 106. In another example, data from the respective memory device(s) 106 may be presented to the duplex data buffer 104 i, buffered in the duplex data buffer 104 i, and then transmitted on an appropriate memory channel to the memory controller 20.
  • The duplex data buffer 104 i is shown also receiving signals (e.g., DBC_CH0) from the bus 110 a at a first control port (e.g., DBC PORT 0) and signals (e.g., DBC_CH1) from the bus 110 b at a second control port (e.g., DBC PORT 1). The signals DBC_CH0 and DBC_CH1 may be presented to each of the duplex data buffers 104 a-104 n (e.g., using the data buffer control buses 110 a and 110 b). In an example, the signals DBC_CH0 and DBC_CH1 are illustrated comprising five signals transmitted over 9 pins/bits (e.g., a pair of signals BCK_T/BCK_C, a signal BCOM, a signal BCKE, a signal BODT and/or a signal BVREFCA). However, other numbers of pins/bits may be implemented accordingly to meet the design criteria of a particular application. The first control port of the duplex data buffer 104 i is shown having an input 115 receiving the signals BCK_T/BCK_C, an input 117 a receiving the signal BCOM, an input 117 b receiving the signal BCKE, an input 117 c receiving the signal BODT, and an input 117 d receiving the signal BVREFCA, all corresponding to channel 0 (CH0). The second control port of the duplex data buffer 104 i is shown having an input 116 receiving the signals BCK_T/BCK_C, an input 118 a receiving the signal BCOM, an input 118 b receiving the signal BCKE, an input 118 c receiving the signal BODT, and an input 118 d receiving the signal BVREFCA, all corresponding to channel 1 (CH1).
  • In various embodiments, the signals BCK_T/BCK_C may be implemented as a 2-bit signal representing a differential (e.g., true (T) and complementary (C) versions) clock signal for the duplex data buffers 104 a-104 n. In various embodiments, the signal BCOM may be implemented as a 4-bit signal representing data buffer commands. The signal BCOM may be implemented as a unidirectional signal from the duplex RCD circuit 102 to the duplex data buffers 104 a-104 n. In an example, the signal BCOM may be implemented at a single data rate (e.g., 1 bit per signal per clock cycle). However, a particular command may take a different number of clock cycles to transfer information. The signal BCKE may be a function registered dedicated non-encoded signal (e.g., DCKE). The signal BODT may be a function registered dedicated non-encoded signals (e.g., DODT). The signal BVREFCA may be a reference voltage for use with pseudo-differential command and control signals.
  • Each channel of the duplex data buffers 104 a-104 n may receive a set of duplex data buffer commands (e.g., for writing buffer control words (BCWs)) from the signals DBC. The buffer control words may be used to customize operation of the respective channel of the duplex data buffers 104 a-104 n. The buffer control words may flow from the memory controller 20, through the duplex RCD circuit 102, to the duplex data buffers 104 a-104 n. The buffer control words may be similar to register control words (RCWS) used for configuring the duplex RCD circuit 102. Similar to commands for writing the register control words, the commands for writing the buffer control words may look like an MRS7 command, where the address lines are really the payload.
  • In embodiments where the buses 110, 110 a, and/or 110 b comprise nine pins, the duplex RCD circuit 102 may do more than pass a buffer control word directly through to the duplex data buffers 104 a-104 n. In one example, the duplex RCD circuit 102 may convert (e.g., multiplex) an MRS7 command format into a buffer control word in a BCOM format. The duplex RCD circuit 102 may map the 12 address bits of the MRS7 command into five separate data transfers, each 4 bits wide. The five data transfers may be set up back to back over one of the buses 110, 110 a, or 110 b. For example, 5 clock cycles plus a parity cycle may be used to complete the buffer command in the buffer control word. Once the buffer control word reaches the duplex data buffers 104 a-104 n, the duplex data buffers 104 a-104 n may decode the buffer control word, write the buffer control word to a function space of the duplex data buffer, and complete the buffer command in the buffer control word.
  • A function of the signal BCOM may be to transmit the buffer control words. However, compliant with the JEDEC specification for DDR4 SDRAM, the duplex RCD circuit 102 may send all read/write commands and MRS information over the bus 110, or buses 110 a and 110 b (e.g., to allow the duplex data buffers 104 a-104 n to keep track of what the memory devices 106 are doing). In some embodiments, different buffer commands may take a different number of cycles to transfer the information.
  • The duplex RCD circuit 102 may receive an MRS7 command from the memory controller 20 (e.g., from a host). For example, a host may want to change a parameter (e.g., typically on boot up of a computing device). The duplex RCD circuit 102 may check the MRS7 command to determine whether the address bit 12 is set to 1 (e.g., a logical one). In an example, when an address bit 12 of the MRS7 command is set to 1, the duplex RCD circuit 102 may recognize the command as a buffer command (e.g., a command that is not meant for the duplex RCD circuit 102). The duplex RCD circuit 102 may convert the command from the memory controller 20 to a buffer control word and send the buffer control word to the duplex data buffers 104 a-104 n via the bus 110. The duplex data buffers 104 a-104 n may write the buffer control word to a function space to complete the command.
  • The duplex data buffers 104 a-104 n may be configurable. The buffer commands may allow the memory controller 20 to customize aspects of termination (e.g., ODT), signal strength on the DQ lines, and/or events (e.g., receiver timing, driver timing, etc.) in both directions (e.g., for both read and write operations). In some embodiments, some of the configurations of the duplex data buffers 104 a-104 n may be decided based on system level configurations. Generally, most of the configuration of the duplex data buffers 104 a-104 n may be decided during training steps. During training steps, host controllers (e.g., the memory controller 20) may test and compare results of various training steps to determine an optimal configuration.
  • In various embodiments, the bus 110 may be used to send commands/data to program configuration registers of the duplex data buffers 104 a-104 n. The bus 110 may also send commands (e.g., data reads and/or data writes) that control data traffic through the duplex data buffers 104 a-104 n. For example, some commands may optimize power consumption of the duplex data buffers 104 a-104 n. In another example, read/write delays may be added per data line.
  • The duplex data buffers 104 a-104 n may implement dual multi-bit (e.g., 4-bit) bidirectional data registers with differential data strobes (e.g., DQS_T/DQS_C). The duplex data buffers 104 a-104 n may implement automatic impedance calibration. The duplex data buffers 104 a-104 n may implement BCOM parity checking. The duplex data buffers 104 a-104 n may implement control register (e.g., buffer control word) readback.
  • Referring to FIG. 8, a diagram is shown illustrating a duplex data buffer 104 i′ in accordance with another example embodiment of the invention. In some embodiments, the duplex data buffer 104 i′ may be used to implement the duplex data buffers 104 a-104 n. The duplex data buffer 104 i′ may be implemented similarly to the duplex data buffer 104 i, except that the duplex data buffer 104 i′ implements a single control port (e.g. DBC PORT) through which both sides of the duplex data buffer 104 i′ may be controlled.
  • In another example, the signals DBC may be implemented comprising the five signals BCK_T/BCK_C, BCOM, BCKE, BODT, and BVREFCA transmitted over 10 pins/bits (e.g., the signal BCOM may be implemented with 5 bits instead of 4 bits). However, other numbers of pins/bits may be implemented accordingly to meet the design criteria of a particular application. The control port DBC PORT of duplex data buffer 104 i′ is shown having an input 115 receiving the signals BCK_T/BCK_C, an input 119 a receiving the signal BCOM, an input 119 b receiving the signal BCKE, an input 119 c receiving the signal BODT, and an input 119 d receiving the signal BVREFCA. The control port DBC PORT is used to program operation of both channels of the duplex data buffer 104 i′. In various embodiments, the signal BCOM may be implemented as a 5-bit signal communicating data buffer commands. The signal BCOM may be configured to signal which port of the duplex data buffer 104 i′ the signal BCOM is meant to control/program. The signal BCOM may be implemented as a unidirectional signal from the duplex RCD circuit 102 to the duplex data buffers 104 a-104 n. In an example, the signal BCOM may be implemented at a single data rate (e.g., 1 bit per signal per clock cycle). However, a particular command may take a different number of clock cycles to transfer information.
  • Referring to FIGS. 9A-9C, diagrams are shown illustrating various operating modes of the duplex registered clock driver 102 and the duplex data buffers 104 a-104 n in accordance with example embodiments of the invention. Referring to FIG. 9A, a diagram is shown illustrating a two-channel mode (e.g., MODE 0). In the two-channel mode, an exemplary duplex RCD circuit 102 i and an exemplary duplex data buffer 104 i are configured to service both channel 0 and channel 1 independently. Referring to FIG. 9B, a diagram is shown illustrating a first single-channel mode (e.g., MODE 1). In the first single-channel mode MODE 1, the duplex RCD circuit 102 i and the duplex data buffer 104 i (representing the duplex data buffers 104 a-104 n) are configured to communicate data to/from all of the memory devices 106 of the memory module using only channel 0. For example, the channel 1 bus side circuits are placed in the idle state and data to/from the memory devices 106 is routed to the channel 0 circuitry. Referring to FIG. 9C, a diagram is shown illustrating a second single-channel mode (e.g., MODE 2). In the second single-channel mode MODE 2, the duplex RCD circuit 102 i and the duplex data buffer 104 i are configured to communicate data to/from all of the memory devices 106 of the memory module using only channel 1. For example, the channel 0 bus side circuits are placed in the idle state and the data to/from the memory devices 106 is routed to the channel 1 circuitry.
  • Referring to FIG. 10, a diagram is shown illustrating an example implementation of a duplex data buffer 104 i in accordance with an example embodiment of the invention. The duplex data buffers 104 a-104 n may be implemented as illustrated by the duplex data buffer 104 i. In an example, the duplex data buffer 104 i may comprise a block 200, a block 202 a and a block 202 b. The block 200 may implement a transaction control logic of the duplex data buffer 104 i. The blocks 202 a and 202 b may implement channel circuitry for the duplex data buffer 104 i. The block 200 may be configured to control operations of the duplex data buffer 104 i based upon commands received via the bus 110 or the buses 110 a and 110 b. The circuit 200 is generally enabled to configure the circuit 202 a and 202 b for operation in either the two channel mode or one of the single channel modes described above in connection with FIGS. 9A-9C. The circuit 200 may be configured to implement the data buffer control (DBC) ports described above in connection with FIGS. 7 and 8.
  • In one example, the block 202 a may be used to provide the channel 0 data path and the block 202 b may be used to provide the channel 1 data path. In various embodiments, the block 202 a may comprise a block (or circuit) 204 a, a block (or circuit) 206 a, a block (or circuit) 208 a, a block (or circuit) 210 a, a block (or circuit) 212 a, a block (or circuit) 214 a, a block (or circuit) 216 a, and a block (or circuit) 218 a. The block 202 b may comprise a block (or circuit) 204 b, a block (or circuit) 206 b, a block (or circuit) 208 b, a block (or circuit) 210 b, a block (or circuit) 212 b, a block (or circuit) 214 b, a block (or circuit) 216 b, and a block (or circuit) 218 b. The blocks 204 a and 204 b may be implemented as receivers or buffers. The blocks 206 a and 206 b may be implemented as transmitters or buffer/drivers. The blocks 208 a, 208 b, 214 a, and 214 b may be implemented as switches. The blocks 210 a, 210 b, 212 a, and 212 b may be implemented as memories. The memories 210 a, 210 b, 212 a, and 212 b may be configured as first-in first-out (FIFO) memories. In some embodiments, the memories 210 a, 210 b, 212 a, and 212 b may be implemented as separate, independent memory blocks or devices. In some embodiments, the memories 210 a, 210 b, 212 a, and 212 b may be implemented as portions of a single memory block or device. The blocks 216 a and 216 b may be implemented as transmitters or buffer/drivers. The blocks 218 a and 218 b may be implemented as receivers or buffers.
  • In one example, the input/output 113 may be connected to an input of the block 204 a and the output of the block 206 a. The input/output 114 may be connected to an input of the block 204 b and the output of the block 206 b. An output of the block 204 a may be connected to an input of the block 210 a. An output of the block 204 b may be connected to an input of the block 210 b. An input of the block 206 a may be connected to an output of the block 208 a. An input of the block 206 b may be connected to an output of the block 208 b. A first input of the block 208 a may be connected to a first input of the block 208 b and an output of the block 212 a. A second input of the block 208 a may be connected to a second input of the block 208 b and an output of the block 212 b.
  • An output of the block 210 a may be connected to a first input of the block 214 a and a first input of the block 214 b. An output of the block 210 b may be connected to a second input of the block 214 a and second input of the block 214 b. An output of the block 214 a may be connected to an input of the block 216 a. An output of the block 218 a may be connected to an input of the block 212 a. An output of the block 216 a and an input of the block 218 a may be connected to the input/output 111. An output of the block 218 b may be connected to an input of the block 212 b. An output of the block 216 b and an input of the block 218 b may be connected to the input/output 112.
  • Although embodiments of the invention have been described in the context of a DDR4 application, the present invention is not limited to DDR4 applications, but may also be applied in other high data rate digital communication applications where different transmission line effects, cross-coupling effects, traveling wave distortions, phase changes, impedance mismatches and/or line imbalances may exist. The present invention addresses concerns related to high speed communications, flexible clocking structures, specified command sets and lossy transmission lines. Future generations of DDR can be expected to provide increasing speed, more flexibility, additional commands and different propagation characteristics. The present invention may also be applicable to memory systems implemented in compliance with either existing (legacy) memory specifications or future memory specifications.
  • While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the invention.

Claims (5)

1. A method of enabling a point-to-point memory topology comprising the steps of:
when two memory modules are installed, enabling a first access mode where a plurality of memory devices on each memory module are accessed using a single selectable channel, and each memory module uses a different channel; and
when a single memory module is installed, enabling a second access mode where a first portion of said plurality of memory devices is accessed using a first channel and a second portion of said plurality of memory devices is accessed using a second channel.
2. The method according to claim 1, wherein said plurality of memory devices are part of a double data rate (DDR) dual in-line memory module (DIMM).
3. The method according to claim 2, wherein said plurality of memory devices are part of a fourth generation double data rate (DDR4) dual in-line memory module (DIMM).
4. The method according to claim 1, wherein each of said memory modules comprises a duplex registered clock driver and a plurality of duplex data buffers and the method further comprises:
in a first operating mode, configuring said duplex registered clock driver and each of said plurality of duplex data buffers to facilitate communication with said plurality of memory devices of the memory module using said first and said second channels;
in a second operating mode, configuring said duplex registered clock driver and each of said plurality of duplex data buffers to facilitate communication between all of said plurality of memory devices of the memory module and said first channel; and
in a third operating mode, configuring said duplex registered clock driver and each of said plurality of duplex data buffers to facilitate communication between all of said plurality of memory devices and said second channel.
5. The method according to claim 4, further comprising setting a portion of said duplex registered clock driver and each of said plurality of duplex data buffers associated with the channel not used for communication to idle state.
US16/043,694 2016-04-05 2018-07-24 Flexible point-to-point memory topology Active US10325637B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/043,694 US10325637B2 (en) 2016-04-05 2018-07-24 Flexible point-to-point memory topology

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/090,818 US10032497B2 (en) 2016-04-05 2016-04-05 Flexible point-to-point memory topology
US16/043,694 US10325637B2 (en) 2016-04-05 2018-07-24 Flexible point-to-point memory topology

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/090,818 Division US10032497B2 (en) 2016-04-05 2016-04-05 Flexible point-to-point memory topology

Publications (2)

Publication Number Publication Date
US20190013054A1 true US20190013054A1 (en) 2019-01-10
US10325637B2 US10325637B2 (en) 2019-06-18

Family

ID=59961837

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/090,818 Active US10032497B2 (en) 2016-04-05 2016-04-05 Flexible point-to-point memory topology
US16/043,694 Active US10325637B2 (en) 2016-04-05 2018-07-24 Flexible point-to-point memory topology

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US15/090,818 Active US10032497B2 (en) 2016-04-05 2016-04-05 Flexible point-to-point memory topology

Country Status (1)

Country Link
US (2) US10032497B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789010B2 (en) 2016-08-26 2020-09-29 Intel Corporation Double data rate command bus
US20180181504A1 (en) * 2016-12-23 2018-06-28 Intel Corporation Apparatuses and methods for training one or more signal timing relations of a memory interface
US10884639B2 (en) * 2017-02-27 2021-01-05 Qualcomm Incorporated Providing single data rate (SDR) mode or double data rate (DDR) mode for the command and address (CA) bus of registering clock drive (RCD) for dynamic random access memory (DRAM)
US10606713B2 (en) 2018-01-03 2020-03-31 International Business Machines Corporation Using dual channel memory as single channel memory with command address recovery
US10546628B2 (en) 2018-01-03 2020-01-28 International Business Machines Corporation Using dual channel memory as single channel memory with spares
US11675728B2 (en) * 2020-07-02 2023-06-13 Micron Technology, Inc. Configuring multiple register clock drivers of a memory subsystem

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359187B2 (en) * 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US20100005218A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Enhanced cascade interconnected memory system
US20100005220A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation 276-pin buffered memory module with enhanced memory system interconnect and features
KR20130107841A (en) * 2012-03-23 2013-10-02 삼성전자주식회사 Memory system
US10146608B2 (en) * 2015-04-06 2018-12-04 Rambus Inc. Memory module register access

Also Published As

Publication number Publication date
US10032497B2 (en) 2018-07-24
US10325637B2 (en) 2019-06-18
US20170287538A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
US10325637B2 (en) Flexible point-to-point memory topology
US11823732B2 (en) High capacity memory system using standard controller component
US9860088B1 (en) Inferring sampled data in decision feedback equalizer at restart of forwarded clock in memory system
US10956349B2 (en) Support for multiple widths of DRAM in double data rate controllers or data buffers
US7412627B2 (en) Method and apparatus for providing debug functionality in a buffered memory channel
US8019921B2 (en) Intelligent memory buffer
US11947474B2 (en) Multi-mode memory module and memory component
US9905287B2 (en) Asymmetrical emphasis in a memory data bus driver
US20070150667A1 (en) Multiported memory with ports mapped to bank sets
US20210326041A1 (en) Reference voltage training per path for high speed memory signaling
US20180275714A1 (en) Inductive coupling for data communication in a double data rate memory system
CN110659228B (en) Memory system and method for accessing memory system
US10671300B1 (en) Command sequence response in a memory data buffer
US9583175B1 (en) Receiver equalization circuit with cross coupled transistors and/or RC impedance
US10171268B2 (en) Asymmetric on-state resistance driver optimized for multi-drop DDR4
US10241538B2 (en) Resynchronization of a clock associated with each data bit in a double data rate memory system
US20230298642A1 (en) Data-buffer controller/control-signal redriver
US20100299486A1 (en) Electronic Devices and Methods for Storing Data in a Memory
US20210327524A1 (en) Reference voltage adjustment per path for high speed memory signaling

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4