WO2005066965A2 - Integral memory buffer and serial presence detect capability for fully-buffered memory modules - Google Patents

Integral memory buffer and serial presence detect capability for fully-buffered memory modules Download PDF

Info

Publication number
WO2005066965A2
WO2005066965A2 PCT/US2004/041901 US2004041901W WO2005066965A2 WO 2005066965 A2 WO2005066965 A2 WO 2005066965A2 US 2004041901 W US2004041901 W US 2004041901W WO 2005066965 A2 WO2005066965 A2 WO 2005066965A2
Authority
WO
WIPO (PCT)
Prior art keywords
memory
serial bus
memory module
buffer
buffered
Prior art date
Application number
PCT/US2004/041901
Other languages
French (fr)
Other versions
WO2005066965A3 (en
Inventor
John Halbert
Chris Freeman
Michael Williams
Kuljit Bains
Robert Ellis
Original Assignee
Intel Corporation
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 Corporation filed Critical Intel Corporation
Priority to EP04814122A priority Critical patent/EP1697943A2/en
Priority to JP2006545812A priority patent/JP2007515023A/en
Publication of WO2005066965A2 publication Critical patent/WO2005066965A2/en
Publication of WO2005066965A3 publication Critical patent/WO2005066965A3/en

Links

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory

Definitions

  • This present invention relates generally to digital memory systems, components, and methods, and more particularly to memory module buffers containing a serial presence detect capability.
  • BACKGROUND Digital processors such as microprocessors, use a computer memory subsystem to store data and processor instructions. Some processors communicate directly with memory, and others use a dedicated controller chip, often part of a "chipset,” to access memory. Conventional computer memory subsystems are often implemented using memory modules. Refening to Figure 1, a processor 20 communicates across a front-side bus 25 with a memory controller/hub (MCH) 30 that couples the microprocessor 20 to various peripherals.
  • MCH memory controller/hub
  • DIMMs dual inline memory modules
  • Dl dual inline memory modules
  • D2 dual inline memory modules
  • D3 inserted in card slots 52, 54, 56, and 58.
  • the memory modules are addressed from MCH 30 whenever MCH 30 asserts appropriate signals on an Address/Control Bus 50.
  • Data transfers between MCH 30 and one of the memory modules occur on a Data Bus 40. Buses 40 and 50 are refened to as
  • An I/O channel hub (ICH) 60 also communicates with MCH 30 across a hub bus
  • LPC Low Pin Count
  • SMBus 65 provides a low-bit-rate serial channel that is used for simple functions such as battery and power management, turning off/on LEDs, and detecting the presence of some components.
  • SMBus 65 conforms, e.g., to System Management Bus (SMBus) Specification, Version 2.0, SBS Implementers Forum, August 3, 2000.
  • I/O channel hub 60 contains an SMBus master that can drive the serial clock (SCL) and serial data (SDA) SMBus lines to read and write to other SMBus devices, and the system also provides 3.3 V (VCC) and ground (GND) power connections for the SMBus devices.
  • each memory slot contains couplers for the four SMBus lines SDA, SCL, and for three hardwired address lines A2, Al, and A0.
  • the hardwired address lines assert a different combination of high/low signals to each card slot: binary 000 to slot 0 (connector 52), binary 001 to slot 1, binary 010 to slot 2, and binary 011 to slot 3.
  • FIGs 2 A and 2B exemplify how the four SMBus lines and three hardwired address lines are connected on a DIMM.
  • Figure 2A shows that DIMM DO (and each other DIMM) contains a Serial Presence Detect (SPD) electronically erasable programmable read-only memory (EEPROM) device 100.
  • Figure 2B focuses on the right end of DIMM DO, showing exemplary connections for SPD EEPROM 100 (the signal routing traces and connector assignments shown in Figure 2B are not intended to correspond to any actual device arrangement).
  • SPD Serial Presence Detect
  • EEPROM electronically erasable programmable read-only memory
  • An eighth connector WP receives a write protect signal that can be used to disable or enable writes to SPD EEPROM 100 — this connector may be unnecessary when the WP package pin on SPD EEPROM 100 is tied directly to VCC, which serves to disable all writes to EEPROM 100 and thus protects the data stored in the EEPROM.
  • Figure 3 contains a block diagram for a representative SPD EEPROM 100, an ATMEL 24C02 available from Atmel Corporation, San Jose, California.
  • Start/stop logic 110 examines the SCL and SDA SMBus signals to determine when a bus master asserts a start or stop condition on the SMBus.
  • Serial control logic 120 receives SCL, SDA, WP, and start/stop condition signals, and uses these to coordinate the operation of various other parts of the EEPROM.
  • serial control logic 120 asserts LOAD to a device address comparator 130, causing comparator 130 to load a device address from SDA and compare that address to a binary device address 1010[A2][A1][A0].
  • serial control logic 120 determines whether a read or write command is signaled, and asserts appropriate enable commands to write circuitry 172, data word address/counter 140, and Dout ACK logic 180.
  • Data word address/counter 140 drives an X decoder 150 and a Y decoder 160, which in turn select an eight-bit location in an EEPROM core 170 using a sense amplifier/ multiplexer 174.
  • Data word address/counter 140 can be loaded with a newly-supplied address for each operation (using LOAD), or can be incremented from the last-used address for consecutive read operations (using INC).
  • Dout/ACK logic 180 drives SDA under two conditions. The first condition is to acknowledge data received from a SMBus master. The second condition it to serialize and drive data read from EEPROM core 170 in response to a read request from a SMBus master. At the factory that assembles DIMM DO, EEPROM core 170 is loaded with parameters describing the configuration, size, timing, and type of DIMM. When the system of Figure 1 starts up, processor 20 vectors to an address that accesses basic startup code from hub 70 and then configures itself.
  • Processor 20 then causes ICH 60 to address each SMBus DIMM slot, and, if a DIMM is inserted in that slot, to read memory parameters from that DIMM's SPD EEPROM. Processor 20 configures MCH 30 according to the retrieved DIMM parameters. The boot sequence can then proceed with MCH 30 and the inserted DIMMs fully operational.
  • Figure 1 illustrates a prior art computer system
  • Figures 2A and 2B show a prior art DIMM
  • Figure 3 contains a block diagram for a prior art SPD EEPROM
  • Figure 4 depicts a computer system incorporating fully-buffered DIMMs according to some embodiments of the present invention
  • Figure 5 shows the general physical device layout for fully-buffered DIMMs according to some embodiments of the present invention
  • Figure 6 contains a block diagram for a memory module buffer according to some embodiments of the present invention
  • Figure 7 contains a block diagram for a memory module buffer package incorporating an SPD EEPROM integrated circuit in the buffer package, according to some embodiments of the present invention
  • Figure 8 contains a block diagram for a memory module buffer, according to some embodiments of the present invention, that uses a single SMBus controller to access an SPD nonvolatile memory block and a built-in self-test function
  • Figure 9 depicts a computer system
  • a system 200 incorporating a buffered-memory-module memory subsystem 200 comprising a processor 220, front-side bus 225, MCH 230, hub bus 240, I/O channel hub 250, SMBus 255, LPC bus 260, and BIOS/firmware hub 270, interconnected as their counterparts in Figure 1 are connected and functioning similarly in large part.
  • MCH 230 does not use a multi-drop address/control bus and multi- drop data bus as in Figure 1, however. Instead, MCH 230 communicates with a memory module buffer 300 on fully-buffered DIMM (FBDIMM) F0 over two opposing unidirectional point-to-point bus connections that together function as a memory channel 232.
  • BDDIMM fully-buffered DIMM
  • memory channel 232 uses a relatively low number of high- bit-rate differential signaling pairs to link MCH 230 to FBDIMM F0. Since each differential pair serves a unidirectional point-to-point dedicated connection, with no stubs or "multiple drops", high bit rates can be sustained.
  • FBDIMM FI does not connect directly to MCH 230, but instead connects to buffer 300 of FBDIMM F0 over a second memory channel 234 that functions identically to memory channel 232. As will be explained shortly, buffer 300 shuttles traffic between memory channels 232 and 234 to facilitate MCH communication with FBDIMM FI. Many, or a few, FBDIMMs can be connected to an MCH using this point-to-point memory channel configuration.
  • FIG 4 four FBDIMMs are shown, with an FBDIMM F2 connecting to FBDIMM FI through a third point-to-point memory channel 236, and an FBDIMM F3 connected in turn to FBDIMM F2 through a fourth point-to- point memory channel 238.
  • Buffered memory module F0 is typical of the memory modules.
  • Figure 5 shows both a frontside view and a backside view of FBDIMM F0.
  • the frontside of FBDIMM F0 includes memory buffer 300 and eight DRAM (Dynamic Random Access Memory) devices 302-0 to 302-8.
  • DRAM Dynamic Random Access Memory
  • the backside of FBDIMM F0 includes ten DRAM devices, including a DRAM device 302-5 that is part of the memory rank 302-0 to 302-8, and a second rank of memory 304-0 to 304-8.
  • An SPD function 310 is included in buffer 300, instead of in a dedicated device package mounted on a DIMM circuit board as shown in Figures 2A and 2B.
  • the SPD function can be implemented in what would otherwise be unused silicon on the relatively large buffer integrated circuit die, reducing the chip count for the module and potentially resulting in cost savings.
  • FIG. 6 contains a block diagram for memory module buffer 300.
  • the primary blocks of the buffer are an SPD nonvolatile memory (NVM) function 310, a northbound (NB) data interface 320, a southbound (SB) data interface 330, a DRAM interface 340, a built-in self test (BIST) function 350, an SMBus controller 360, and a set of configuration registers 370.
  • SPD NVM 310 and SMBus controller 360 receive the four SMBus signal/power lines.
  • SPD NVM 310 receives the three hardwired address assignment signals A2, Al, and A0.
  • SPD NVM 310 uses the three address assignment signals to determine its SMBus address, e.g., as previously described for the SPD EEPROM of Figure 3.
  • SPD NVM 310 could potentially be configured as an EEPROM as shown in Figure 3, the key elements of SPD NVM 310 are a nonvolatile memory area, which typically only needs to be programmed once, and a SMBus controller that allows the nonvolatile memory area to be accessed over the SMBus connection.
  • the nonvolatile memory area could be an anay of conventional flash memory cells, a PROM (programmable read-only memory) anay, an EPROM (erasable PROM) anay, or a set of laser-severable fuses.
  • the nonvolatile memory area could even comprise a masked ROM anay that is programmed during semiconductor fabrication, with different ROM masks being used for buffer circuits serving different FBDIMM configurations.
  • a southbound data path comprises a host-side memory channel SB data input and a downstream memory channel SB data output that normally redrives the differential signals received at the SB data input.
  • a SB data interface 330 passes buffer commands and data received at the SB data input to a DRAM interface 340, and potentially to BIST 350. In test modes, BIST 350 can also provide signals to SB data interface 330 to be driven on the southbound data output.
  • a northbound data path comprises a downstream memory channel NB data input and a host-side memory channel NB data output that normally redrives the differential signals received at the NB data input.
  • a NB data interface 320 allows the DRAM interface 340 to interject data read from a module's DRAMs onto the northbound data output. In test modes, BIST 350 can also interject data onto the northbound data output or read data from the northbound data input.
  • the DRAM interface 340 communicates with the narrow high-speed NB and SB data interfaces on one side and with the wider, slower DRAM interface on the other side.
  • DRAM interface 340 contains logic to translate commands received at the SB data input port into properly-timed DRAM addresses and commands, to buffer write data received at the SB data input port for writing to a module's DRAM devices, and to buffer read data received from a module's DRAM devices for transmission out the NB data output.
  • a memory controller or processor can transfer parameters, e.g., those read from SPD NVM 310, to a set of configuration registers 370 using the SB data in port. The configuration register parameters can then be used to adjust how DRAM interface 340 communicates with a rank or ranks of DRAMs on the module.
  • BIST function 350 can initiate test sequences to test the device's memory channels and or test the DRAM devices.
  • a SMBus controller 360 connects to BIST function 350.
  • a remote SMBus master e.g., a processor operating through an ICH
  • SMBus controller 360 can have a dynamic address assigned by the system.
  • Figure 7 shows an alternate type of embodiment for memory module buffer 300.
  • an SPD EEPROM die 310 and a buffer circuit die 390 are mounted in a common package 380.
  • the buffer circuit die 390 contains, e.g., the functions just described for the buffer of Figure 6, except for the SPD function.
  • the SMBus connections can still be shared between die 310 and 390 internal to the package, such that a single set of SMBus pins appear external to the package.
  • Figure 8 shows yet another alternate type of embodiment for memory module buffer 300.
  • a single SMBus controller 360 recognizes two SMBus addresses — one for addressing the SPD nonvolatile memory 310, and another for addressing BIST function 350. Much of the SMBus controller circuitry can be shared between the two functions, with two address comparators used to select the appropriate target function.
  • SMBus controller 360 can accept a single
  • SMBus address related to both SPD NVM 310 and BIST 350 is assigned different ranges of memory addresses. Depending on the curcent data address in SMBus controller 360, controller 360 determines whether a received SMBus command targets SPD NVM 310 or BIST 350.
  • the addresses assigned to BIST 350 could constitute a memory anay (volatile or non- volatile), or be translated to access a group of BIST registers. With some embodiments of the point-to-point memory channel anangement, an opportunity may also exist to do away with the hardwired slot address scheme shown in Figures 1 and 4.
  • MCH 230 and FBDIMM F0 support a memory channel mode, on channel 232, that allows at least some commands to be sent to the FBDIMM over memory channel 232 during link setup and before the FBDIMM buffer is fully configured. For instance, MCH 230 can send a memory slot assignment token to FBDIMM F0 over channel 232.
  • FBDIMM F0 will read this token, but it will also be redriven automatically to FBDIMM FI over memory channel 234, and then to FBDIMM F2 over memory channel 236, etc.
  • Each memory module buffer receiving such a token can take one of several possible actions. For instance, a second copy of the token can be sent downstream by each module buffer receiving the first token. Each module buffer can thus count the number of tokens it receives to determine which slot it resides in. Alternately, each module buffer can increment the token and pass a copy. The token value of the last assignment token received by a buffer indicates the memory slot for that module buffer. Tokens can also be passed in a northbound direction back to the MCH to notify the MCH how many slots contain active FBDIMMs.
  • Another possibility useful with passed-back tokens is a scheme where each module disables its ability to propagate southbound data out signals until it has received a slot assignment token indicating its slot position.
  • a slot assignment token indicating its slot position.
  • the slot assignment address from the token is noted, the token is passed back to the MCH, and the buffer on FBDIMM F0 enables its southbound-data-in-to-southbound-data-out path.
  • the MCH sends a second token (with a second assignment address), it will be ignored by FBDIMM F0 but resent over now-enabled memory channel 234 to FBDIMM FI.
  • FBDIMM FI notes the second slot assignment address, passes the token back to the MCH, and enables its southbound-data- in-to-southbound-data-out path. The process continues until the MCH sends a token that is not returned.
  • Figure 10 shows one possible block diagram for a memory module buffer 300 that does not require hardwired slot assignment lines.
  • Configuration register 370 supplies the appropriate slot assignment parameters (e.g., A2, Al, and A0) to SMBus controller 360 without the need for an external hardwired connection.
  • the processor can request SMBus transactions to each FBDIMM memory slot in order to download parameters from SPD NVM 310.
  • SMBus transactions can be requested to each FBDIMM memory slot in order to download parameters from SPD NVM 310.
  • 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 selected from many alternative implementations that will become apparent upon reading this disclosure. For instance, groupings of buffer functionality other than those described are possible. The particular groupings used herein present one possible functional grouping, but functions can be subdivided and/or combined in many other combinations that fall within the scope of the appended claims. Many of the specific features shown herein are design choices.
  • DIMMs can have multiple ranks of memory and/or memory modules stacks of multiple devices. Although some embodiments have been described using a SMBus as an exemplary serial bus, nothing precludes use of the concepts disclosed herein with other management, control, and/or serial bus formats.
  • serial bus generally uses a single data line or differential line pair for data signaling, but can of course use a small plural number of such connections, as well as ancillary signal lines. Such minor modifications are encompassed within the embodiments of the invention, and are intended to fall within the scope of the claims.
  • 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.

Abstract

Method and apparatus for use with buffered memory modules are included among the embodiments. In exemplary systems, a serial presence detect function is included within a memory module buffer instead of being provided by a separate EEPROM device mounted on the memory module. Various embodiments thus can provide cost savings, chip placement and signal routing simplification, and can in some circumstances save pins on the module. Other embodiments are described and claimed.

Description

INTEGRAL MEMORY BUFFER AND SERIAL PRESENCE DETECT CAPABILITY FOR FULLY-BUFFERED MEMORY MODULES
FIELD OF THE INVENTION This present invention relates generally to digital memory systems, components, and methods, and more particularly to memory module buffers containing a serial presence detect capability. BACKGROUND Digital processors, such as microprocessors, use a computer memory subsystem to store data and processor instructions. Some processors communicate directly with memory, and others use a dedicated controller chip, often part of a "chipset," to access memory. Conventional computer memory subsystems are often implemented using memory modules. Refening to Figure 1, a processor 20 communicates across a front-side bus 25 with a memory controller/hub (MCH) 30 that couples the microprocessor 20 to various peripherals. One of these peripherals is system memory, shown as dual inline memory modules (DIMMs) DO, Dl, D2, and D3 inserted in card slots 52, 54, 56, and 58. When connected, the memory modules are addressed from MCH 30 whenever MCH 30 asserts appropriate signals on an Address/Control Bus 50. Data transfers between MCH 30 and one of the memory modules occur on a Data Bus 40. Buses 40 and 50 are refened to as
"multi-drop" buses due to their use of multiple bus stubs, one for each memory module. An I/O channel hub (ICH) 60 also communicates with MCH 30 across a hub bus
35. Various peripherals can connect to I/O channel hub 60 across a Low Pin Count (LPC) bus 68, System Management Bus (SMBus) 65, and a Peripheral Component Interconnect (PCI) bus (not shown). LPC bus 68 connects to a Basic Input/Output System l (BlOS firmware hub 70 that supplies boot code and other low-level functions for the system. SMBus 65 provides a low-bit-rate serial channel that is used for simple functions such as battery and power management, turning off/on LEDs, and detecting the presence of some components. SMBus 65 conforms, e.g., to System Management Bus (SMBus) Specification, Version 2.0, SBS Implementers Forum, August 3, 2000. I/O channel hub 60 contains an SMBus master that can drive the serial clock (SCL) and serial data (SDA) SMBus lines to read and write to other SMBus devices, and the system also provides 3.3 V (VCC) and ground (GND) power connections for the SMBus devices. In this prior art system, each memory slot contains couplers for the four SMBus lines SDA, SCL, and for three hardwired address lines A2, Al, and A0. The hardwired address lines assert a different combination of high/low signals to each card slot: binary 000 to slot 0 (connector 52), binary 001 to slot 1, binary 010 to slot 2, and binary 011 to slot 3. Figures 2 A and 2B exemplify how the four SMBus lines and three hardwired address lines are connected on a DIMM. Figure 2A shows that DIMM DO (and each other DIMM) contains a Serial Presence Detect (SPD) electronically erasable programmable read-only memory (EEPROM) device 100. Figure 2B focuses on the right end of DIMM DO, showing exemplary connections for SPD EEPROM 100 (the signal routing traces and connector assignments shown in Figure 2B are not intended to correspond to any actual device arrangement). An eighth connector WP receives a write protect signal that can be used to disable or enable writes to SPD EEPROM 100 — this connector may be unnecessary when the WP package pin on SPD EEPROM 100 is tied directly to VCC, which serves to disable all writes to EEPROM 100 and thus protects the data stored in the EEPROM. Figure 3 contains a block diagram for a representative SPD EEPROM 100, an ATMEL 24C02 available from Atmel Corporation, San Jose, California. Start/stop logic 110 examines the SCL and SDA SMBus signals to determine when a bus master asserts a start or stop condition on the SMBus. Serial control logic 120 receives SCL, SDA, WP, and start/stop condition signals, and uses these to coordinate the operation of various other parts of the EEPROM. For instance, when a start condition occurs, serial control logic 120 asserts LOAD to a device address comparator 130, causing comparator 130 to load a device address from SDA and compare that address to a binary device address 1010[A2][A1][A0]. When an address match occurs, serial control logic 120 determines whether a read or write command is signaled, and asserts appropriate enable commands to write circuitry 172, data word address/counter 140, and Dout ACK logic 180. Data word address/counter 140 drives an X decoder 150 and a Y decoder 160, which in turn select an eight-bit location in an EEPROM core 170 using a sense amplifier/ multiplexer 174. Data word address/counter 140 can be loaded with a newly-supplied address for each operation (using LOAD), or can be incremented from the last-used address for consecutive read operations (using INC). Dout/ACK logic 180 drives SDA under two conditions. The first condition is to acknowledge data received from a SMBus master. The second condition it to serialize and drive data read from EEPROM core 170 in response to a read request from a SMBus master. At the factory that assembles DIMM DO, EEPROM core 170 is loaded with parameters describing the configuration, size, timing, and type of DIMM. When the system of Figure 1 starts up, processor 20 vectors to an address that accesses basic startup code from hub 70 and then configures itself. Processor 20 then causes ICH 60 to address each SMBus DIMM slot, and, if a DIMM is inserted in that slot, to read memory parameters from that DIMM's SPD EEPROM. Processor 20 configures MCH 30 according to the retrieved DIMM parameters. The boot sequence can then proceed with MCH 30 and the inserted DIMMs fully operational.
BRIEF DESCRIPTION OF THE DRAWINGS The embodiments may be best understood by reading the disclosure with reference to the drawing, wherein: Figure 1 illustrates a prior art computer system; Figures 2A and 2B show a prior art DIMM; Figure 3 contains a block diagram for a prior art SPD EEPROM; Figure 4 depicts a computer system incorporating fully-buffered DIMMs according to some embodiments of the present invention; Figure 5 shows the general physical device layout for fully-buffered DIMMs according to some embodiments of the present invention; Figure 6 contains a block diagram for a memory module buffer according to some embodiments of the present invention; Figure 7 contains a block diagram for a memory module buffer package incorporating an SPD EEPROM integrated circuit in the buffer package, according to some embodiments of the present invention; Figure 8 contains a block diagram for a memory module buffer, according to some embodiments of the present invention, that uses a single SMBus controller to access an SPD nonvolatile memory block and a built-in self-test function; Figure 9 depicts a computer system incorporating fully-buffered DIMMs according to some embodiments of the present invention, wherein slot addresses are not hardwired but are determined at startup using the system's memory channels; and Figure 10 contains a block diagram for a memory buffer, according to some embodiments of the present invention, useful for instance in the computer system of Figure 9.
DETAILED DESCRIPTION OF THE EMBODIMENTS This description pertains to "fully-buffered memory modules," which differ from standard DIMMs is several respects. Primary among these differences is the presence on the memory module of a memory module buffer that isolates the memory devices on the module from the memory channel that connects the module to an MCH (or processor). In the embodiments described below, an SPD function is combined with the memory module buffer. Refening first to Figure 4, a system 200 incorporating a buffered-memory-module memory subsystem 200 is shown, comprising a processor 220, front-side bus 225, MCH 230, hub bus 240, I/O channel hub 250, SMBus 255, LPC bus 260, and BIOS/firmware hub 270, interconnected as their counterparts in Figure 1 are connected and functioning similarly in large part. MCH 230 does not use a multi-drop address/control bus and multi- drop data bus as in Figure 1, however. Instead, MCH 230 communicates with a memory module buffer 300 on fully-buffered DIMM (FBDIMM) F0 over two opposing unidirectional point-to-point bus connections that together function as a memory channel 232. In some embodiments, memory channel 232 uses a relatively low number of high- bit-rate differential signaling pairs to link MCH 230 to FBDIMM F0. Since each differential pair serves a unidirectional point-to-point dedicated connection, with no stubs or "multiple drops", high bit rates can be sustained. FBDIMM FI does not connect directly to MCH 230, but instead connects to buffer 300 of FBDIMM F0 over a second memory channel 234 that functions identically to memory channel 232. As will be explained shortly, buffer 300 shuttles traffic between memory channels 232 and 234 to facilitate MCH communication with FBDIMM FI. Many, or a few, FBDIMMs can be connected to an MCH using this point-to-point memory channel configuration. In Figure 4, four FBDIMMs are shown, with an FBDIMM F2 connecting to FBDIMM FI through a third point-to-point memory channel 236, and an FBDIMM F3 connected in turn to FBDIMM F2 through a fourth point-to- point memory channel 238. Buffered memory module F0 is typical of the memory modules. Figure 5 shows both a frontside view and a backside view of FBDIMM F0. The frontside of FBDIMM F0 includes memory buffer 300 and eight DRAM (Dynamic Random Access Memory) devices 302-0 to 302-8. The backside of FBDIMM F0 includes ten DRAM devices, including a DRAM device 302-5 that is part of the memory rank 302-0 to 302-8, and a second rank of memory 304-0 to 304-8. An SPD function 310 is included in buffer 300, instead of in a dedicated device package mounted on a DIMM circuit board as shown in Figures 2A and 2B. In at least some embodiments, the SPD function can be implemented in what would otherwise be unused silicon on the relatively large buffer integrated circuit die, reducing the chip count for the module and potentially resulting in cost savings. Removal of the dedicated SPD package found on prior art DRAM devices can also remove some constraints on where DRAM devices (e.g., 302-8) can be placed on the DIMM, as well as constraints on where DRAM bus lines can be routed from buffer 300 to the DRAM devices. Further, a SMBus connection to the buffer circuit is desirable in some circumstances for functions other than SPD, and thus at least the SMBus package pins can be shared between these other functions and the SPD function in such cases. Figure 6 contains a block diagram for memory module buffer 300. The primary blocks of the buffer are an SPD nonvolatile memory (NVM) function 310, a northbound (NB) data interface 320, a southbound (SB) data interface 330, a DRAM interface 340, a built-in self test (BIST) function 350, an SMBus controller 360, and a set of configuration registers 370. SPD NVM 310 and SMBus controller 360 receive the four SMBus signal/power lines. In addition, SPD NVM 310 receives the three hardwired address assignment signals A2, Al, and A0. SPD NVM 310 uses the three address assignment signals to determine its SMBus address, e.g., as previously described for the SPD EEPROM of Figure 3. Although SPD NVM 310 could potentially be configured as an EEPROM as shown in Figure 3, the key elements of SPD NVM 310 are a nonvolatile memory area, which typically only needs to be programmed once, and a SMBus controller that allows the nonvolatile memory area to be accessed over the SMBus connection. Thus the nonvolatile memory area could be an anay of conventional flash memory cells, a PROM (programmable read-only memory) anay, an EPROM (erasable PROM) anay, or a set of laser-severable fuses. In some cases where a high enough volume of FBDIMMs with a similar configuration are to be produced, the nonvolatile memory area could even comprise a masked ROM anay that is programmed during semiconductor fabrication, with different ROM masks being used for buffer circuits serving different FBDIMM configurations. A southbound data path comprises a host-side memory channel SB data input and a downstream memory channel SB data output that normally redrives the differential signals received at the SB data input. A SB data interface 330 passes buffer commands and data received at the SB data input to a DRAM interface 340, and potentially to BIST 350. In test modes, BIST 350 can also provide signals to SB data interface 330 to be driven on the southbound data output. A northbound data path comprises a downstream memory channel NB data input and a host-side memory channel NB data output that normally redrives the differential signals received at the NB data input. A NB data interface 320 allows the DRAM interface 340 to interject data read from a module's DRAMs onto the northbound data output. In test modes, BIST 350 can also interject data onto the northbound data output or read data from the northbound data input. The DRAM interface 340 communicates with the narrow high-speed NB and SB data interfaces on one side and with the wider, slower DRAM interface on the other side. DRAM interface 340 contains logic to translate commands received at the SB data input port into properly-timed DRAM addresses and commands, to buffer write data received at the SB data input port for writing to a module's DRAM devices, and to buffer read data received from a module's DRAM devices for transmission out the NB data output. A memory controller or processor can transfer parameters, e.g., those read from SPD NVM 310, to a set of configuration registers 370 using the SB data in port. The configuration register parameters can then be used to adjust how DRAM interface 340 communicates with a rank or ranks of DRAMs on the module. BIST function 350 can initiate test sequences to test the device's memory channels and or test the DRAM devices. In the illustrated embodiment, a SMBus controller 360 connects to BIST function 350. A remote SMBus master (e.g., a processor operating through an ICH) can initiate BIST functions and/or gather BIST results by issuing SMBus commands to SMBus controller 360. SMBus controller 360 can have a dynamic address assigned by the system. Figure 7 shows an alternate type of embodiment for memory module buffer 300.
In this embodiment, an SPD EEPROM die 310 and a buffer circuit die 390 are mounted in a common package 380. The buffer circuit die 390 contains, e.g., the functions just described for the buffer of Figure 6, except for the SPD function. The SMBus connections can still be shared between die 310 and 390 internal to the package, such that a single set of SMBus pins appear external to the package. Figure 8 shows yet another alternate type of embodiment for memory module buffer 300. In this embodiment, a single SMBus controller 360 recognizes two SMBus addresses — one for addressing the SPD nonvolatile memory 310, and another for addressing BIST function 350. Much of the SMBus controller circuitry can be shared between the two functions, with two address comparators used to select the appropriate target function. Also, another variation shown in Figure 8 is a connection directly from SPD NVM 310 to configuration registers 370, allowing configuration registers 370 to be loaded directly with SPD parameters, without the intervention of the ICH, MCH, and processor. In an alternative group of embodiments, SMBus controller 360 can accept a single
SMBus address related to both SPD NVM 310 and BIST 350. SPD NVM 310 and BIST 350 are assigned different ranges of memory addresses. Depending on the curcent data address in SMBus controller 360, controller 360 determines whether a received SMBus command targets SPD NVM 310 or BIST 350. The addresses assigned to BIST 350 could constitute a memory anay (volatile or non- volatile), or be translated to access a group of BIST registers. With some embodiments of the point-to-point memory channel anangement, an opportunity may also exist to do away with the hardwired slot address scheme shown in Figures 1 and 4. Without a requirement for hardwired A2, Al, and AO lines, three pins on each FBDIMM connector on each FBDIMM and three pins on each memory module buffer can be saved, and the requirement of Figure 1 that the system motherboard contain hardwired address lines for each memory slot can go away as well. Figure 9 shows such an anangement. In this type of embodiment, MCH 230 and FBDIMM F0 support a memory channel mode, on channel 232, that allows at least some commands to be sent to the FBDIMM over memory channel 232 during link setup and before the FBDIMM buffer is fully configured. For instance, MCH 230 can send a memory slot assignment token to FBDIMM F0 over channel 232. FBDIMM F0 will read this token, but it will also be redriven automatically to FBDIMM FI over memory channel 234, and then to FBDIMM F2 over memory channel 236, etc. Each memory module buffer receiving such a token can take one of several possible actions. For instance, a second copy of the token can be sent downstream by each module buffer receiving the first token. Each module buffer can thus count the number of tokens it receives to determine which slot it resides in. Alternately, each module buffer can increment the token and pass a copy. The token value of the last assignment token received by a buffer indicates the memory slot for that module buffer. Tokens can also be passed in a northbound direction back to the MCH to notify the MCH how many slots contain active FBDIMMs. Another possibility useful with passed-back tokens is a scheme where each module disables its ability to propagate southbound data out signals until it has received a slot assignment token indicating its slot position. Once such a token is received by the memory module buffer of FBDIMM F0, the slot assignment address from the token is noted, the token is passed back to the MCH, and the buffer on FBDIMM F0 enables its southbound-data-in-to-southbound-data-out path. When the MCH sends a second token (with a second assignment address), it will be ignored by FBDIMM F0 but resent over now-enabled memory channel 234 to FBDIMM FI. FBDIMM FI notes the second slot assignment address, passes the token back to the MCH, and enables its southbound-data- in-to-southbound-data-out path. The process continues until the MCH sends a token that is not returned. Figure 10 shows one possible block diagram for a memory module buffer 300 that does not require hardwired slot assignment lines. When a slot assignment is received over the host-side memory channel (for instance by one of the methods described above), the slot assignment is written to a configuration register 370. Configuration register 370 supplies the appropriate slot assignment parameters (e.g., A2, Al, and A0) to SMBus controller 360 without the need for an external hardwired connection. Subsequently, the processor can request SMBus transactions to each FBDIMM memory slot in order to download parameters from SPD NVM 310. 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 selected from many alternative implementations that will become apparent upon reading this disclosure. For instance, groupings of buffer functionality other than those described are possible. The particular groupings used herein present one possible functional grouping, but functions can be subdivided and/or combined in many other combinations that fall within the scope of the appended claims. Many of the specific features shown herein are design choices. Channel and bus widths, signaling frequencies, FBDIMM layouts, number of memory devices, control bus protocols, etc., are all design choices. DIMMs can have multiple ranks of memory and/or memory modules stacks of multiple devices. Although some embodiments have been described using a SMBus as an exemplary serial bus, nothing precludes use of the concepts disclosed herein with other management, control, and/or serial bus formats. A
"serial" bus generally uses a single data line or differential line pair for data signaling, but can of course use a small plural number of such connections, as well as ancillary signal lines. Such minor modifications are encompassed within the embodiments of the invention, and are intended to fall within the scope of the claims. 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.

Claims

WHAT IS CLAIMED IS:
1. A memory module buffer comprising: a host-side memory channel interface and a downstream memory channel interface capable of communicating with other devices across memory channels; a memory device interface coupled at least to the host-side memory channel interface, to communicate with memory devices on a memory module on behalf of a device communicating with the buffer over the host-side memory channel interface; a serial bus port; a nonvolatile memory area to store information relating to a memory module served by the buffer; and a first serial bus controller to transmit information from the nonvolatile memory area out the serial bus port in response to requests received at the serial bus port.
2. The memory module buffer of claim 1, further comprising a second serial bus controller, connected to the serial bus port, to activate memory module buffer functions in response to serial bus commands.
3. The memory module buffer of claim 2, wherein the first serial bus controller responds to a first serial bus address and the second serial bus controller responds to a second serial bus address.
4. The memory module buffer of claim 3, wherein the first and second serial bus controllers comprise at least partially shared common serial bus receiver/driver circuitry.
5. The memory module buffer of claim 1 , further comprising a second memory area accessible to both the first serial bus controller and to a self-test function of the buffer, the nonvolatile memory area accessible from the serial bus port using addresses selected from a first range of memory addresses, the second memory area accessible from the serial bus port using addresses selected from a second range of memory addresses.
6. The memory module buffer of claim 1, wherein the first serial bus controller responds to an assigned serial bus address, wherein at least a portion of the assigned serial bus address is supplied to the controller through one of the memory channel interfaces.
7. The memory module buffer of claim 1, wherein the nonvolatile memory area is accessible to the memory device interface through a data channel internal to the memory module buffer.
8. The memory module buffer of claim 7, further comprising a set of configuration registers, wherein the internal data channel is used to minor information from the nonvolatile memory area to the configuration registers upon startup.
9. The memory module buffer of claim 1, wherein the nonvolatile memory area comprises a plurality of data storage cells selected from the group of storage cell types including masked read-only memory (ROM), programmable ROM, erasable programmable ROM, electronically erasable programmable read-only memory (EEPROM), flash EEPROM, laser-cut fuses, and combinations thereof.
10. The memory module buffer of claim 1, comprising first and second integrated circuits packaged in a common package, wherein the nonvolatile memory area and first serial bus controller are integrated on the first integrated circuit and the memory channel interfaces and memory device interface are integrated on the second integrated circuit, the second integrated circuit further comprising a second serial bus controller, wherein the first and second serial bus controllers both connect to the serial bus port.
11. A buffered memory module comprising: a plurality of memory devices; and a memory module buffer coupled to the memory devices, the memory module buffer comprising a serial presence detect function for the module.
12. The buffered memory module of claim 11, wherein the serial presence detect function comprises a nonvolatile memory area containing information related to the memory devices, a serial bus port, and a first serial bus controller to transmit information from the nonvolatile memory area out the serial bus port in response to requests received at the serial bus port.
13. The buffered memory module of claim 12, further comprising a plurality of address assignment lines connected to the first serial bus controller to inform the serial bus controller of a memory slot assignment.
14. The buffered memory module of claim 12, wherein the first serial bus controller responds to a serial bus address at least partially dependent on a memory slot assignment, wherein the memory slot assignment is communicated to the memory module buffer over a memory channel.
15. The buffered memory module of claim 12, further comprising a second serial bus controller connected to the serial bus port, and a built-in self test function, the second serial bus controller providing access between the serial bus port and the built-in self test function.
16. The buffered memory module of claim 12, wherein the memory module buffer comprises first and second integrated circuits packaged in a common package, wherein the nonvolatile memory area and the first serial bus controller are integrated on the first integrated circuit, the memory module buffer further comprising host-side and downstream memory channel interfaces and a memory device interface integrated on the second integrated circuit, the second integrated circuit further comprising a second serial bus controller, wherein the first and second serial bus controllers both connect to a common serial bus port
17. A method of assigning a serial bus address to a serial presence detect function on a buffered memory module, the method comprising: transmitting a memory slot assignment to the buffered memory module over a memory channel; and based at least in part on the transmitted memory slot assignment, asserting, internal to the module, an assigned serial bus address to the serial presence detect function.
18. The method of claim 17, wherein transmitting a memory slot assignment to the buffered memory module comprises transmitting a first memory slot assignment token over a first memory channel segment, and receiving the first memory slot assignment token at the buffered memory module.
19. The method of claim 18, further comprising the buffered memory module passing the first memory slot assignment token back along the first memory channel segment.
20. The method of claim 18, further comprising the buffered memory module incrementing a counter in the first memory slot assignment token to form a second memory slot assignment token, and passing the second memory slot assignment token forward along a second memory channel segment.
21. The method of claim 18, further comprising the buffered memory module disabling forwarding out a second memory channel segment of data received on the first memory channel segment until the first memory slot assignment token is received.
22. A computing device comprising: a processor; a host memory controller in communication with the processor; at least a first buffered memory module, comprising a plurality of memory devices, and a memory module buffer coupled to the plurality of memory devices, the memory module buffer having a serial presence detect function; a first point-to-point memory channel connecting the host memory controller to the first buffered memory module; a relatively low-speed bus coupled to the first buffered memory module serial presence detect function to allow the processor to discover information related to the memory module configuration.
23. The computing device of claim 22, further comprising: a second buffered memory module comprising a plurality of memory devices and a memory module buffer coupled to the plurality of memory devices, the second buffered memory module having a serial presence detect function; and a second point-to-point memory channel connecting the first buffered memory module to the second buffered memory module; wherein the relatively low-speed bus is also coupled to the second buffered memory module serial presence detect function.
24. The computing device of claim 22, wherein the serial presence detect function on the first memory module comprises a serial bus controller and a nonvolatile memory area accessible through the serial bus controller, the nonvolatile memory area containing information related to the memory devices on that memory module.
25. The computing device of claim 24, the nonvolatile memory area further containing information related to the capabilities of the memory module buffer.
26. The computing device of claim 22, wherein the serial bus controller responds to a serial bus address that is configurable using commands issued to the memory module buffer across the first memory channel. i g
PCT/US2004/041901 2003-12-23 2004-12-13 Integral memory buffer and serial presence detect capability for fully-buffered memory modules WO2005066965A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP04814122A EP1697943A2 (en) 2003-12-23 2004-12-13 Integral memory buffer and serial presence detect capability for fully-buffered memory modules
JP2006545812A JP2007515023A (en) 2003-12-23 2004-12-13 Integrated memory buffer and serial presence detection for fully buffered memory modules

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/746,948 2003-12-23
US10/746,948 US20050138267A1 (en) 2003-12-23 2003-12-23 Integral memory buffer and serial presence detect capability for fully-buffered memory modules

Publications (2)

Publication Number Publication Date
WO2005066965A2 true WO2005066965A2 (en) 2005-07-21
WO2005066965A3 WO2005066965A3 (en) 2005-11-17

Family

ID=34679285

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/041901 WO2005066965A2 (en) 2003-12-23 2004-12-13 Integral memory buffer and serial presence detect capability for fully-buffered memory modules

Country Status (6)

Country Link
US (1) US20050138267A1 (en)
EP (1) EP1697943A2 (en)
JP (1) JP2007515023A (en)
CN (1) CN1898745A (en)
TW (1) TWI279679B (en)
WO (1) WO2005066965A2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2420200A (en) * 2004-11-16 2006-05-17 Sun Microsystems Inc Memory System having unidirectional interconnections between modules.
WO2007038225A3 (en) * 2005-09-26 2007-06-14 Rambus Inc A memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
DE102006019426A1 (en) * 2006-04-26 2007-10-31 Qimonda Ag Error correction method for use in memory arrangement, involves testing whether information is incorrect in one of modules and reading information from other module using address when information is incorrect
DE102006021043A1 (en) * 2006-05-05 2007-11-08 Qimonda Ag Semiconductor component e.g. RAM, operating method, involves programming efuses of efuse bank provided at semiconductor component after integrating component in electronic module, where programming is controlled by efuse control register
DE102006036823A1 (en) * 2006-08-07 2008-02-14 Qimonda Ag Data synchronization and buffering circuit for use in semiconductor memory e.g. dynamic RAM, buffer chip, has comparator producing release signal to connect bypass path through multiplexer when values of register random pointers are same
US7409491B2 (en) 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US7496777B2 (en) 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
US9865329B2 (en) 2005-09-26 2018-01-09 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

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7304905B2 (en) * 2004-05-24 2007-12-04 Intel Corporation Throttling memory in response to an internal temperature of a memory device
US7221613B2 (en) 2004-05-26 2007-05-22 Freescale Semiconductor, Inc. Memory with serial input/output terminals for address and data and method therefor
US20050268022A1 (en) * 2004-05-26 2005-12-01 Pelley Perry H Cache line memory and method therefor
US20050289287A1 (en) * 2004-06-11 2005-12-29 Seung-Man Shin Method and apparatus for interfacing between test system and embedded memory on test mode setting operation
US7254663B2 (en) * 2004-07-22 2007-08-07 International Business Machines Corporation Multi-node architecture with daisy chain communication link configurable to operate in unidirectional and bidirectional modes
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
US7616452B2 (en) * 2004-09-03 2009-11-10 Entorian Technologies, Lp Flex circuit constructions for high capacity circuit module systems and methods
US7443023B2 (en) * 2004-09-03 2008-10-28 Entorian Technologies, Lp High capacity thin module system
DE102004051346A1 (en) * 2004-10-21 2006-05-04 Infineon Technologies Ag Semiconductor device test device, in particular data buffer component with semiconductor device test device, and semiconductor device test method
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration 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
US7334070B2 (en) * 2004-10-29 2008-02-19 International Business Machines Corporation Multi-channel memory architecture for daisy chained arrangements of nodes with bridging between memory channels
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
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
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
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
KR100611505B1 (en) * 2004-12-17 2006-08-11 삼성전자주식회사 Memory module having capability of dynamic temperature monitoring, and operation method thereof
DE102005009806A1 (en) * 2005-03-03 2006-09-14 Infineon Technologies Ag Buffer component for use in e.g. dynamic random access memory module, has control unit setting control signal for activating memory chips group with consecutive address and command signals, so that signals are taken to memory chips of group
KR100703969B1 (en) * 2005-04-07 2007-04-06 삼성전자주식회사 Apparatus for testing memory module
US7383416B2 (en) * 2005-05-17 2008-06-03 Infineon Technologies Ag Method for setting a second rank address from a first rank address in a memory module
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8090897B2 (en) 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US20080028136A1 (en) 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US7392338B2 (en) 2006-07-31 2008-06-24 Metaram, Inc. Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8169233B2 (en) 2009-06-09 2012-05-01 Google Inc. Programming of DIMM termination resistance values
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US7404057B2 (en) * 2005-06-24 2008-07-22 Dell Products L.P. System and method for enhancing read performance of a memory storage system including fully buffered dual in-line memory modules
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US7379316B2 (en) 2005-09-02 2008-05-27 Metaram, Inc. Methods and apparatus of stacking DRAMs
US7263019B2 (en) * 2005-09-15 2007-08-28 Infineon Technologies Ag Serial presence detect functionality on memory component
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US20070076502A1 (en) * 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
WO2007036050A1 (en) 2005-09-30 2007-04-05 Mosaid Technologies Incorporated Memory with output control
US7457928B2 (en) 2005-10-28 2008-11-25 International Business Machines Corporation Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7558124B2 (en) * 2005-11-16 2009-07-07 Montage Technology Group, Ltd Memory interface to bridge memory buses
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
DE102006006571A1 (en) * 2006-02-13 2007-08-16 Infineon Technologies Ag Semiconductor arrangement and method for operating a semiconductor device
US7471538B2 (en) * 2006-03-30 2008-12-30 Micron Technology, Inc. Memory module, system and method of making same
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
JP5065618B2 (en) * 2006-05-16 2012-11-07 株式会社日立製作所 Memory module
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
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
DE102006051136A1 (en) * 2006-10-30 2008-05-08 Qimonda Ag Adapter card for use with memory module system i.e. fully buffered-dual in-line memory module system, has memory plug contact for connecting adapter card to memory module e.g. unregistered dual in-line memory module
US20080114924A1 (en) * 2006-11-13 2008-05-15 Jack Edward Frayer High bandwidth distributed computing solid state memory storage system
US20080133864A1 (en) * 2006-12-01 2008-06-05 Jonathan Randall Hinkle Apparatus, system, and method for caching fully buffered memory
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US7688652B2 (en) * 2007-07-18 2010-03-30 Mosaid Technologies Incorporated Storage of data in memory via packet strobing
US20090043946A1 (en) * 2007-08-09 2009-02-12 Webb Randall K Architecture for very large capacity solid state memory systems
US7865674B2 (en) * 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US7861014B2 (en) * 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US7584308B2 (en) * 2007-08-31 2009-09-01 International Business Machines Corporation System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel
US7899983B2 (en) 2007-08-31 2011-03-01 International Business Machines Corporation Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US8082482B2 (en) * 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US7840748B2 (en) * 2007-08-31 2010-11-23 International Business Machines Corporation Buffered memory module with multiple memory device data interface ports supporting double the memory capacity
US7818497B2 (en) * 2007-08-31 2010-10-19 International Business Machines Corporation Buffered memory module supporting two independent memory channels
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
US20090119114A1 (en) * 2007-11-02 2009-05-07 David Alaniz Systems and Methods for Enabling Customer Service
US7925826B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency
US7770077B2 (en) * 2008-01-24 2010-08-03 International Business Machines Corporation Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem
US7930470B2 (en) * 2008-01-24 2011-04-19 International Business Machines Corporation System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US7930469B2 (en) 2008-01-24 2011-04-19 International Business Machines Corporation System to provide memory system power reduction without reducing overall memory system performance
US7788421B1 (en) * 2008-01-24 2010-08-31 Google Inc. Detectable null memory for airflow baffling
US7925824B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency
US7925825B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation System to support a full asynchronous interface within a memory hub device
US20090222832A1 (en) * 2008-02-29 2009-09-03 Dell Products, Lp System and method of enabling resources within an information handling system
US8516185B2 (en) * 2009-07-16 2013-08-20 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
US20100035461A1 (en) * 2008-08-07 2010-02-11 Stuart Allen Berke System and Method for Detecting Module Presence in an Information Handling System
US8134565B2 (en) * 2008-08-08 2012-03-13 Dell Products, Lp System, module and method of enabling a video interface within a limited resource enabled information handling system
US8131904B2 (en) * 2008-08-08 2012-03-06 Dell Products, Lp Processing module, interface, and information handling system
US20100033433A1 (en) * 2008-08-08 2010-02-11 Dell Products, Lp Display system and method within a reduced resource information handling system
US7921239B2 (en) * 2008-08-08 2011-04-05 Dell Products, Lp Multi-mode processing module and method of use
US8560735B2 (en) 2008-08-15 2013-10-15 Micron Technology, Inc. Chained bus method and device
US7886103B2 (en) * 2008-09-08 2011-02-08 Cisco Technology, Inc. Input-output module, processing platform and method for extending a memory interface for input-output operations
US8863268B2 (en) 2008-10-29 2014-10-14 Dell Products, Lp Security module and method within an information handling system
US9407694B2 (en) * 2008-10-30 2016-08-02 Dell Products, Lp System and method of polling with an information handling system
US8370673B2 (en) * 2008-10-30 2013-02-05 Dell Products, Lp System and method of utilizing resources within an information handling system
US8065540B2 (en) * 2008-10-31 2011-11-22 Dell Products, Lp Power control for information handling system having shared resources
US8037333B2 (en) * 2008-10-31 2011-10-11 Dell Products, Lp Information handling system with processing system, low-power processing system and shared resources
TWI402683B (en) * 2009-02-04 2013-07-21 Via Tech Inc Information access method with sharing mechanism and computer system thereof
EP2579159B1 (en) * 2010-05-27 2015-05-06 Fujitsu Limited Memory system, memory device, and memory interface device
US8972620B2 (en) * 2010-07-02 2015-03-03 Dell Products L.P. Methods and systems to simplify population of modular components in an information handling system
US8595415B2 (en) * 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
WO2013048493A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
JP6000655B2 (en) * 2012-05-30 2016-10-05 キヤノン株式会社 Information processing apparatus, information processing apparatus control method, and program
US8966327B1 (en) * 2012-06-21 2015-02-24 Inphi Corporation Protocol checking logic circuit for memory system reliability
US10417147B2 (en) * 2016-08-12 2019-09-17 Nxp B.V. Buffer device, an electronic system, and a method for operating a buffer device
JP2018092690A (en) * 2016-11-30 2018-06-14 ルネサスエレクトロニクス株式会社 Semiconductor device and semiconductor integrated system
JP2019053617A (en) * 2017-09-15 2019-04-04 株式会社東芝 System lsi and system lsi failure detection method
TWI768198B (en) * 2019-04-02 2022-06-21 美商海盜船記憶體公司 Microcontroller, memory module, and method for updating firmware of the microcontroller
US11238909B2 (en) * 2019-08-14 2022-02-01 Micron Technology, Inc. Apparatuses and methods for setting operational parameters of a memory included in a memory module based on location information
CN114328304B (en) * 2020-09-29 2023-11-14 成都忆芯科技有限公司 Method and device for operating storage medium
US20230021898A1 (en) * 2021-07-15 2023-01-26 Rambus Inc. Serial presence detect reliability

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317352B1 (en) * 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US20020038412A1 (en) * 1998-11-03 2002-03-28 Nizar Puthiya K. Method and apparatus for configuring a memory device and a memory channel using configuration space registers
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US20030035312A1 (en) * 2000-09-18 2003-02-20 Intel Corporation Memory module having buffer for isolating stacked memory devices
US20030151939A1 (en) * 2002-02-11 2003-08-14 Laberge Paul A. Methods and apparatus for accessing configuration data

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513135A (en) * 1994-12-02 1996-04-30 International Business Machines Corporation Synchronous memory packaged in single/dual in-line memory module and method of fabrication
US6173382B1 (en) * 1998-04-28 2001-01-09 International Business Machines Corporation Dynamic configuration of memory module using modified presence detect data
US6658509B1 (en) * 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
US6665742B2 (en) * 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US7032158B2 (en) * 2001-04-23 2006-04-18 Quickshift, Inc. System and method for recognizing and configuring devices embedded on memory modules
DE60204687T2 (en) * 2002-09-06 2006-05-18 Sun Microsystems, Inc., Santa Clara Memory copy command specifying source and destination executed in memory controller
US7421525B2 (en) * 2003-05-13 2008-09-02 Advanced Micro Devices, Inc. System including a host connected to a plurality of memory modules via a serial memory interconnect
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
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7165153B2 (en) * 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US7340537B2 (en) * 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US8171331B2 (en) * 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
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
US7212423B2 (en) * 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020038412A1 (en) * 1998-11-03 2002-03-28 Nizar Puthiya K. Method and apparatus for configuring a memory device and a memory channel using configuration space registers
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6317352B1 (en) * 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US20030035312A1 (en) * 2000-09-18 2003-02-20 Intel Corporation Memory module having buffer for isolating stacked memory devices
US20030151939A1 (en) * 2002-02-11 2003-08-14 Laberge Paul A. Methods and apparatus for accessing configuration data

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533218B2 (en) 2003-11-17 2009-05-12 Sun Microsystems, Inc. Memory system topology
GB2420200A (en) * 2004-11-16 2006-05-17 Sun Microsystems Inc Memory System having unidirectional interconnections between modules.
GB2420200B (en) * 2004-11-16 2007-02-21 Sun Microsystems Inc Memory system
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
WO2007038225A3 (en) * 2005-09-26 2007-06-14 Rambus Inc A memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US10672458B1 (en) 2005-09-26 2020-06-02 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US10535398B2 (en) 2005-09-26 2020-01-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US10381067B2 (en) 2005-09-26 2019-08-13 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US11727982B2 (en) 2005-09-26 2023-08-15 Rambus Inc. Memory system topologies including a memory die stack
US9865329B2 (en) 2005-09-26 2018-01-09 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US11043258B2 (en) 2005-09-26 2021-06-22 Rambus Inc. Memory system topologies including a memory die stack
US7729151B2 (en) 2005-09-26 2010-06-01 Rambus Inc. System including a buffered memory module
US7496777B2 (en) 2005-10-12 2009-02-24 Sun Microsystems, Inc. Power throttling in a memory system
US7533212B1 (en) 2005-10-20 2009-05-12 Sun Microsystems, Inc. System memory board subsystem using DRAM with integrated high speed point to point links
US7523282B1 (en) 2005-10-27 2009-04-21 Sun Microsystems, Inc. Clock enable throttling for power savings in a memory subsystem
US7409491B2 (en) 2005-12-14 2008-08-05 Sun Microsystems, Inc. System memory board subsystem using DRAM with stacked dedicated high speed point to point links
US8078937B2 (en) 2006-04-26 2011-12-13 Qimonda Ag Memory-module controller, memory controller and corresponding memory arrangement, and also method for error correction
DE102006019426B4 (en) * 2006-04-26 2008-03-13 Qimonda Ag Memory module control, memory control and corresponding memory arrangement and method for error correction
DE102006019426A1 (en) * 2006-04-26 2007-10-31 Qimonda Ag Error correction method for use in memory arrangement, involves testing whether information is incorrect in one of modules and reading information from other module using address when information is incorrect
DE102006021043A1 (en) * 2006-05-05 2007-11-08 Qimonda Ag Semiconductor component e.g. RAM, operating method, involves programming efuses of efuse bank provided at semiconductor component after integrating component in electronic module, where programming is controlled by efuse control register
DE102006036823A1 (en) * 2006-08-07 2008-02-14 Qimonda Ag Data synchronization and buffering circuit for use in semiconductor memory e.g. dynamic RAM, buffer chip, has comparator producing release signal to connect bypass path through multiplexer when values of register random pointers are same
DE102006036823B4 (en) * 2006-08-07 2008-10-02 Qimonda Ag Data synchronization and buffer circuit for the synchronization of serially received data signals
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization

Also Published As

Publication number Publication date
WO2005066965A3 (en) 2005-11-17
JP2007515023A (en) 2007-06-07
CN1898745A (en) 2007-01-17
US20050138267A1 (en) 2005-06-23
EP1697943A2 (en) 2006-09-06
TW200535611A (en) 2005-11-01
TWI279679B (en) 2007-04-21

Similar Documents

Publication Publication Date Title
US20050138267A1 (en) Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US7975122B2 (en) Memory hub with integrated non-volatile memory
US6981089B2 (en) Memory bus termination with memory unit having termination control
JP4164495B2 (en) Control of active termination via module registers
KR100726361B1 (en) System and method for communicating with memory devices
US7177211B2 (en) Memory channel test fixture and method
US6771526B2 (en) Method and apparatus for data transfer
US8463993B2 (en) Translating memory modules for main memory
US9767867B2 (en) Methods of communicating to different types of memory modules in a memory channel
US8051253B2 (en) Systems and apparatus with programmable memory control for heterogeneous main memory
US7539810B2 (en) System, method and storage medium for a multi-mode memory buffer device
US7263019B2 (en) Serial presence detect functionality on memory component
KR100703969B1 (en) Apparatus for testing memory module
US6618784B1 (en) Universal memory bus and card
US8694726B2 (en) Memory module system
US11615037B2 (en) Memory module with programmable command buffer
EP0691616A1 (en) RAM and ROM control unit
TWI446171B (en) Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
US9483437B2 (en) Addressing multi-core advanced memory buffers
US20090307417A1 (en) Integrated buffer device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200480038831.2

Country of ref document: CN

AK Designated states

Kind code of ref document: A2

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

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004814122

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006545812

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWP Wipo information: published in national office

Ref document number: 2004814122

Country of ref document: EP