US20050071542A1 - Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect - Google Patents

Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect Download PDF

Info

Publication number
US20050071542A1
US20050071542A1 US10/842,339 US84233904A US2005071542A1 US 20050071542 A1 US20050071542 A1 US 20050071542A1 US 84233904 A US84233904 A US 84233904A US 2005071542 A1 US2005071542 A1 US 2005071542A1
Authority
US
United States
Prior art keywords
memory
prefetch
data
recited
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/842,339
Inventor
Frederick Weber
Ross La Fetra
Paul Miranda
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to US10/842,339 priority Critical patent/US20050071542A1/en
Assigned to ADVANCED MICRO DEVICES, INC. reassignment ADVANCED MICRO DEVICES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WEBER, FREDERICK D., LA FETRA, ROSS V., MIRANDA, PAUL C.
Publication of US20050071542A1 publication Critical patent/US20050071542A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Definitions

  • This invention relates to computer system memory and, more particularly, to prefetching data in a serial memory subsystem topology.
  • a motherboard or system board may include a number of memory expansion sockets.
  • One or more small circuit boards, referred to as memory modules, may be inserted into the sockets as needed to increase the memory capacity of the computer system.
  • Each of the memory modules typically includes multiple memory devices that provide a given amount of memory capacity.
  • the memory devices are usually implemented using some type of dynamic random access memory (DRAM).
  • DRAM types include synchronous DRAM (SDRAM) as well as the various types of double data rate SDRAM (DDR SDRAM).
  • the memory modules are connected to a memory/DRAM controller via a memory bus that includes address, control and a data signals.
  • the address, control and data signals may be multiplexed and thus share the same sets of wires.
  • the address, control and data signals may use separate wires.
  • each of the address and control signals are routed to each expansion socket such that the memory modules, when inserted, are connected in parallel to the memory/DRAM controller.
  • the memory/DRAM controller may reside on the same integrated circuit (IC) chip as the system processor, while in other systems the memory/DRAM controller may reside in one IC (e.g., a Northbridge) of a chipset.
  • IC integrated circuit
  • a prefetch mechanism for use in a system including a host coupled serially to a plurality of memory modules.
  • the system includes a host coupled to a serially connected chain of memory modules.
  • the host includes a memory controller that may be configured to issue a memory read request for data stored within the memory modules.
  • the memory controller may further request that data be prefetched from the memory modules by encoding prefetch information within the memory read request.
  • each of the memory modules may include a memory control hub that may control access to a plurality of memory chips on the memory module.
  • each of the memory modules may include a DRAM controller configured to generate a memory read cycle to the memory chips in response to receiving a memory read command having a memory address that matches a memory address associated with the memory control hub.
  • the prefetch information may include prefetch hint information that indicates whether or not to prefetch data and prefetch stride information that indicates a number of addresses skipped between accesses to the memory modules.
  • each memory module includes a storage for storing prefetch data returned from the memory chips located on each of the memory modules.
  • the memory controller may be configured to issue a memory write request to write data to the memory modules and to selectively request that one or more pages of memory within a given one of the memory modules remain open by encoding the prefetch information within the memory write request.
  • FIG. 1 is a block diagram of one embodiment of a system including a serially connected chain of memory modules.
  • FIG. 2 is a block diagram of one embodiment of a memory module such as a memory module illustrated in FIG. 1 .
  • FIG. 3 is a block diagram of another embodiment of a memory module such as a memory module illustrated in FIG. 1 .
  • FIG. 4 is a diagram of one embodiment of a memory read packet.
  • FIG. 5 is a diagram of one embodiment of a memory write packet.
  • FIG. 6 is a block diagram of one embodiment of a computer system.
  • System 50 includes a host 100 coupled to a system memory 125 via a memory link 11 A.
  • System 50 may be configured to operate as part of a computing device such as a computer system or server system, for example.
  • System memory 125 includes a memory module 150 A coupled to a memory module 150 B via a memory link 110 B.
  • Memory module 150 B is shown coupled to a memory link 110 C, which may be coupled to an additional memory module (not shown) as desired to form a serially connected chain of memory modules that is coupled to host 100 .
  • additional memory module not shown
  • components including a reference number followed by a reference letter may be referred to generally by the reference number alone. For example, when referring generally to all memory modules, reference may be made to memory module 150 .
  • memory module 150 A includes a memory control hub 160 A, which is coupled to a plurality of memory devices that are designated memory chip 171 A through 171 N, where N may be any number, as desired.
  • memory control hub 160 A may be coupled to the memory chips via any type of memory interconnect.
  • the memory interconnect may be a typical address, control and data bus configuration.
  • memory module 150 B includes a memory control hub 160 B, which is coupled to a plurality of memory devices that are designated memory chip 181 A through 181 N, where N may be any number, as desired.
  • memory control hub 160 B may be coupled to the memory chips via any type of memory interconnect as described above. It is noted that each of memory chips 171 A through 171 N and 181 A through 181 N may be any type of memory device such as a memory device in the DRAM family of memory devices, for example.
  • memory links 10 A- 110 C form a memory interconnect.
  • each of memory links 110 A- 110 C forms a point-to-point memory interconnect that is implemented as two sets of unidirectional lines.
  • One set of unidirectional lines is referred to as a downlink and is configured to convey transactions away from host 100 in a downstream direction.
  • the other set of unidirectional lines is referred to as an uplink and is configured to convey transactions toward host 100 in an upstream direction.
  • each set of unidirectional lines may be implemented using a plurality of differential signal pairs.
  • each memory link 110 includes an 18-bit downlink and a 16-bit uplink, where each bit is a differential signal pair.
  • the memory interconnect formed by memory links 110 may be configured to convey packets.
  • all transactions from host 100 flow downstream through all memory modules 150 on the downlink and all response transactions flow upstream from the responding memory module 150 through each upstream memory module 150 on the uplink. More particularly, in one embodiment, host 100 may request to retrieve or store data within system memory 125 .
  • memory controller 105 initiates a corresponding transaction such as a memory read transaction or a memory write transaction, for example.
  • Memory controller 105 transmits the transaction to system memory 125 via memory link 110 A.
  • the transaction is received by memory control hub 160 A of memory module 150 A.
  • memory control hub 160 A In response to receiving the transaction, memory control hub 160 A is configured to transmit the received transaction to memory module 150 B via memory link 110 B without decoding the transaction. This is referred to as forwarding the transaction downstream.
  • each transaction received on a downlink by a given memory control hub 160 of a given memory module 150 is forwarded to the next memory module 150 in the chain that is coupled to the downlink without decoding the transaction.
  • decoding of the transaction may occur in parallel with the forwarding of the transaction. In other embodiments, the decoding of the transaction may occur after the transaction has been forwarded. A more detailed description of downstream forwarding function may be found below in the description of FIG. 3 .
  • memory controller 105 initiates a read request transaction
  • the memory module 150 having the memory location corresponding to the address in the request will respond with the requested data.
  • the response will be transmitted on the memory module's uplink toward host 100 .
  • the intervening memory module will forward the response transaction on its uplink to either host 100 or the next memory module in the chain in an upstream direction.
  • the responding memory module may inject the response into a sequence of transactions that are being forwarded upstream on the uplink.
  • upstream forwarding function may be found below in the description of FIG. 5 .
  • memory controller 105 may be configured to make requests to system memory 125 without knowledge of which of memory modules 150 A and 150 B a particular address is associated. For example, each of memory modules 150 may be assigned a range of memory addresses during a system configuration sequence.
  • Each memory control hub 160 may include logic (not shown in FIG. 1 ) that may decode the address of an incoming request. Thus, a memory control hub 160 of a given memory module 150 may initiate a memory read cycle or memory write cycle to the memory chips on the given memory module 150 in response to decoding a memory request having an address that is in the address range assigned to the given memory module 150 .
  • each memory control hub 160 may include a DRAM controller (not shown in FIG. 1 ) for initiating memory cycles to the memory chips to which it is connected.
  • memory controller 105 may initiate a subsequent memory access request prior to receiving a response to a previous memory access request. In such an embodiment, memory controller 105 may keep track of outstanding requests and may thus process the responses in a different order than they were sent.
  • memory controller 105 includes a prefetch unit 107 configured to provide prefetch information for prefetching data from addresses that correspond to a current memory read request.
  • prefetch unit 107 may predict which address may be fetched next.
  • the prefetch unit 107 may calculate the prefetch address or addresses and may provide prefetch hints that may be encoded and embedded within the memory request packets.
  • Prefetch unit 107 may also provide the stride (i.e., the number of cache lines that will be skipped between memory accesses) for inclusion within the memory request packets.
  • a prefetch buffer (not shown in FIG. 1 ) may be used to store the prefetched cache lines.
  • a prefetch buffer may be located on each memory module. In an alternative implementation a prefetch buffer may be located on the host.
  • the memory interconnect includes one or more high-speed point-to-point memory links such as memory links 110 A- 110 C each including an uplink such as uplink 111 A and a downlink such as downlink 112 A, for example.
  • downlinks may be 18-bit links while uplinks may be 16-bit links.
  • an 18-bit downlink may include 16 control, address and data (CAD) signals, a busy signal and a Control (CTL) signal.
  • a given uplink may include 16 control, address and data (CAD) signals.
  • an uplink such as uplink 211 A may also include a CTL signal.
  • each memory module 150 may be provided to each memory module 150 .
  • a reset signal, a power OK signal and a reference clock may be provided to each memory module 150 from host 100 .
  • other signals may be provided between each memory module. For example, as described above, a next memory module present signal may be provided between memory modules.
  • configuration and control transactions may be used to configure memory control hub 160 .
  • configuration and control transactions may be used to access configuration registers, assign a memory address range to a memory module or to assign a hub address to a memory control hub.
  • Memory transactions may be used to access the memory locations within the memory chips (e.g., 171 A- 171 N . . . 181 A- 181 N).
  • hub addressing there are two types of addressing supported: hub addressing and memory addressing.
  • hub addressing eight hub bits identify the specific memory control hub being accessed.
  • a hub address of FFh may be indicative of a broadcast to all memory control hubs.
  • memory addressing each hub decodes the upper portion of the address bits to determine which hub should accept the request and the lower portion to determine the memory location to be accessed.
  • each of the memory links is configured to convey the transactions using one or more packets.
  • the packets include control and configuration packets and memory access packets, each of which may include a data payload depending on the type of command the packet carries.
  • the sets of wires that make up memory links 110 may be used to convey control, address and data.
  • the packets may be generally characterized by the following: Each packet includes a number of bit positions which convey a single bit of information. Each packet is divided into several bit times and during a given bit time, all of the bit positions of the packet are sampled. As such, the control information and data share the same wires of a given link (e.g., CAD wires). As will be described in greater detail below, in one embodiment, packets are multiples of bit pairs and the first bit-time of every packet is sampled at an even bit-time. Packets begin with a control header that may be either one or two bit-pairs in length. In one embodiment, the first five bits of the control header is the command code. Table 1 below illustrates the various types of packets and their associated command codes.
  • packets may be transmitted with an error detecting code (EDC).
  • EDC error detecting code
  • the EDC is a 32-bit cyclic redundancy code (CRC), although other implementations may employ other EDC's as desired.
  • addresses are sent most significant bit-time first to speed decode within memory control hub 160 while data is sent least significant byte first. It is noted however, that other embodiments are contemplated in which the addresses may be sent least significant bit-time first and data my be sent most significant byte first.
  • Packets may carry a payload of byte enables and/or data. Packets with no payload are referred to as header-only packets.
  • the size of the data short reads may be up to one half of a programmed cache line size.
  • the size of the data for long reads and block writes may be up to the programmed cache line size.
  • the size of the data for byte writes may be a maximum of 64 bytes regardless of the cache line size setting.
  • the CTL signal may be used to convey information about each packet. As illustrated in Table 2 below, some exemplary CTL encodings are shown. TABLE 2 CTL encodings for downstream use Even Odd Content of CAD 0 0 Data or Byte Enable Payload 1 1 Control Header 0 1 CRC for a Packet with Payload 1 0 CRC for a Header-Only Packet
  • Different values of CTL for the header and payload portions of a packet may provide enough information to allow header-only packets to be inserted within the payload of another packet. This may be useful for reducing the latency of read commands by allowing them to issue while a write packet is still being sent on the link.
  • Table 3 illustrates an exemplary packet including a payload in tabular format. The packet in table 3 also shows that a header-only packet is inserted in the payload during bit times 4-7.
  • Memory module 150 includes a memory control hub 160 coupled to memory chips 261 A through 261 N via a memory bus 265 .
  • Memory control hub 160 includes a control unit 240 coupled to a DRAM controller 250 .
  • DRAM controller 250 is coupled to memory chips 261 A- 261 N.
  • Control unit 240 includes an uplink control 241 and a downlink control 242 .
  • memory bus 265 may be any type of memory interconnect.
  • memory control hub 160 is coupled to a memory link 110 A in an upstream direction and a memory link 110 B in a downstream direction. It is further noted that the frequency of operation of memory bus 265 is independent of the frequency of operation of memory links 110 .
  • uplink control unit 241 may be configured to receive and forward packets received from another memory module downstream. The receiving and forwarding of the upstream packets creates an upstream transaction sequence. In addition, uplink control unit 241 may be configured to inject packets that originate within memory module 150 into the transaction stream.
  • downlink control unit 242 may be configured to receive packets that originate at the host and if a memory module is connected downstream, to forward those packets to the downstream memory module. In addition, downlink control unit 242 may be configured to copy and decode the packets. In one embodiment, if the packets include an address that is within the range of addresses assigned to memory module 150 and the packet is a memory access request, downlink control unit 242 may pass the command associated with the packet to DRAM controller 250 . However, if the packet is not a memory request, but is instead a configuration packet, downlink control unit 242 may pass the configuration command associated with the packet to the core logic of control unit 240 (not shown) for processing. It is noted that in one embodiment, if the packet does not include an address that is within the range of addresses assigned to memory module 150 , memory control hub 160 may drop or discard the packet if memory module 150 is the last memory module in the chain.
  • memory control hub 160 is configured to receive a module present signal (not shown), which when activated by a downstream memory module, indicates to an upstream memory module that there is a downstream memory module present. In such an embodiment, if memory control hub 160 receives a transaction and no downstream memory module is determined to be present, memory control hub 160 may drop the transaction.
  • prefetch unit 107 may predict which addresses may be needed and may encode hint information and stride information into a memory request packet.
  • the prediction information may be generated by other hardware and or software and provided to prefetch unit 107 .
  • software executing a memory-streaming algorithm may provide explicit stride information, which may be passed to prefetch unit 107 .
  • Prefetch unit 107 may then generate hint and stride information for inclusion within a given memory request.
  • the hint information may indicate to the DRAM Controller 250 the type of addresses to prefetch (if any).
  • Table 4 illustrates an exemplary set of hint values. It is noted that in other embodiments, other values having other meanings are possible. TABLE 4 Packet Prefetch Hint Values Hint Meaning 0 None 1 Last access to this cacheline 2 More accesses to this cacheline 3 Accesses to next cacheline to follow, see stride 4 Accesses to previous cacheline to follow, see stride 5-7 Reserved
  • the stride information indicates how many cachelines will be skipped between accesses.
  • Table 5 illustrates an exemplary set of stride values. It is noted that in other embodiments, other values having other meanings are possible. TABLE 5 Packet Prefetch Stride Values Stride Number of cache lines skipped 0 none 1 1 2 2 3 3
  • DRAM controller 250 is configured to initiate memory cycles to memory chips 261 A- 261 N in response to memory commands from memory control hub 160 .
  • downlink control 242 may pass the memory request command, including the hint and stride information to DRAM controller 250 .
  • DRAM controller 250 generates the memory cycles corresponding to the request. For example, if a read request is received for the data at a given address, DRAM controller 250 generates the read cycles for the data at that address.
  • DRAM controller 250 decodes the hint and stride information and prefetches the cachelines of data indicated by the hint and stride information.
  • each memory module 150 may include a storage configured as a prefetch buffer (not shown in FIG. 2 ) for storing prefetch data.
  • the read data from the explicit memory request may be returned to host 100 without being stored the within prefetch buffer.
  • all the requested data (including any prefetched data) returned by DRAM controller 250 may be stored within a read buffer (not shown) within host 100 .
  • the prefetch data may get discarded to make room for read request data that is explicitly requested in a memory read packet before the expected data arrives.
  • host 100 may include a separate prefetch buffer for storing prefetched data separate from read data returned as result of explicit read requests.
  • Memory module 150 of FIG. 3 includes a memory control hub 160 coupled to memory chips 261 A through 261 N via a memory bus 265 .
  • Memory control hub 160 includes a control unit 240 coupled to a DRAM controller 250 .
  • DRAM controller 250 is coupled to memory chips 261 A- 261 N and to a prefetch buffer 375 .
  • Control unit 240 includes an uplink control 241 and a downlink control 242 .
  • memory bus 265 may be any type of memory interconnect.
  • memory control hub 160 is coupled to a memory link 110 A in an upstream direction and a memory link 110 B in a downstream direction. It is noted that the frequency of operation of memory bus 265 is independent of the frequency of operation of memory links 110 .
  • memory module 150 of FIG. 3 is similar to the operation of memory module 150 of FIG. 2 . However, since memory module 150 of FIG. 3 includes a prefetch buffer 375 , the operational differences are described below. It is noted that although prefetch buffer 375 is shown as part of memory control hub 160 , in other embodiments, prefetch buffer 375 may be separate from memory control hub 160 .
  • prefetch buffer 375 may store data that is prefetched by DRAM controller 250 in response to receiving hint and stride information with an explicit memory request.
  • prefetch buffer 375 may be checked for the requested data. If the data is stored within prefetch buffer 375 , that data is returned to host 100 ; thereby possibly saving time and reducing the latency associated with accessing memory chips 261 A-N.
  • the command and address information corresponding to the request packet is provided to DRAM controller 250 .
  • the hint and stride information is provided to DRAM controller 250 .
  • DRAM controller 250 is configured to generate memory read cycles corresponding to the explicit read command.
  • DRAM controller 250 is configured to decode the prefetch hint and stride information and to generate memory read cycles corresponding to the addresses indicated by the hint and stride information.
  • the read data returned from memory chips 261 A-N as a result of the explicit read command may be packetized and injected into the upstream flow of packets on uplink 211 A by uplink control 241 .
  • the read data returned from memory chips 261 A-N as a result of the prefetch read commands is stored within prefetch buffer 375 .
  • DRAM controller 250 may use the hint and stride information to keep open for any subsequent accesses, the page within memory chips 261 A-N corresponding to the hint and stride information.
  • prefetch buffer 375 may be implemented using memory devices in the random access memory (RAM) family that have faster access times than for example, access times of memory chips 261 A-N. Any suitable RAM device may be used such as static RAM (SRAM) or fast SRAM (FSRAM).
  • SRAM static RAM
  • FSRAM fast SRAM
  • prefetch buffer 375 may be implemented using a variety of suitable structures. For example, depending on the size, prefetch buffer 375 may be implemented as a fully associative, set associative, or direct mapped structure that may include tags to support lookup functions. The tags may also be used to invalidate entries in prefetch buffer 375 in response to DRAM controller 250 receiving a command to write data to an address that is stored within prefect buffer 375 , for example.
  • FIG. 4 and FIG. 5 illustrate exemplary memory access packets that may be conveyed on memory links 110 A through 110 C of FIG. 1 .
  • FIG. 4 a diagram of one embodiment of an exemplary memory read packet is shown.
  • memory read packet 425 is 16 bits wide and includes six bit times or three bit-pairs.
  • the five-bit command code e.g., 10h or 11h
  • a prefetch hint value is encoded and conveyed in bit positions 5-7. Exemplary prefetch hint values are discussed and shown above in Table 4.
  • An eight-bit tag is conveyed in bit positions 8-15.
  • bit time one the length of the data that should be returned is conveyed in bit positions 0-5.
  • a value of 00h indicates no data
  • a value of 01h indicates two bit-pairs of data
  • a value of 02h indicates four bit-pairs of data
  • a zero length read results in an acknowledge packet (Ack) being returned to the requestor.
  • a read of a half cache line or less may result in a short RdResp and a read of more than a half cache line may result in either a single long RdResp or two short RdResp.
  • the cache line size may be programmed by software into the configuration registers of host 100 and each memory control hub 160 .
  • a prefetch stride prediction value is encoded and conveyed in bit positions 6-7. Exemplary prefetch stride prediction values are discussed and shown in Table 4 above. Address bits 39-32 of the requested location in DRAM are conveyed in bit positions 8-15.
  • bit time two the address bits 31-16 of the requested location in DRAM are conveyed in bit positions 0-15 and during bit time 3, the address bits 3-15 of the requested location in DRAM are conveyed in bit positions 3-15.
  • the packet priority is conveyed in bit positions 0-1. In one embodiment, the priority may be indicative of the priority of the packet relative to other requests. For example, one priority may be to delay all requests with lower priority even if they are already in progress and to execute this request ahead of them. Bit position 2 is reserved. During bit times four and five, bits 0-15 and 16-31, respectively, of a CRC are conveyed in bit positions 0-15.
  • block memory write packet 525 is 16 bits wide and includes eight bit times or four bit-pairs.
  • the five-bit command code e.g., 12h
  • a prefetch hint value is encoded and conveyed in bit positions 5-7.
  • An eight-bit tag is conveyed in bit positions 8-15.
  • bit time one the length of the data being conveyed in the data payload is conveyed in bit positions 0-5.
  • a value of 00h indicates no data
  • a value of 01h indicates two bit-pairs of data
  • a value of 02h indicates four bit-pairs of data
  • a prefetch stride prediction value is encoded and conveyed in bit positions 6-7.
  • Address bits 39-32 of the location in DRAM being written are conveyed in bit positions 8-15.
  • bit time two the address bits 31-16 of the location in DRAM being written are conveyed in bit positions 0-15 and during bit time 3, the address bits 3-15 of the location in DRAM being written are conveyed in bit positions 3-15. Also during bit time 3, the packet priority is conveyed in bit positions 0-1. Bit position 2 is reserved.
  • bits 0-15 and 16-31 of a first bit pair of the data payload are conveyed in bit positions 0-15. If more data is being written, subsequent bit pairs may convey bits 0-15 and 16-31 of subsequent data payload.
  • bits 0-15 and 16-31, respectively, of a CRC are conveyed in bit positions 0-15.
  • FIG. 6 is a block diagram of one embodiment of a computer system.
  • Computer system 600 includes process nodes 612 A- 612 D each interconnected by coherent packet interface links 615 A-D. Each link of coherent packet interface 615 may form a high-speed point-to-point link.
  • Process nodes 612 A-D may each include one or more processors.
  • Computer system 600 also includes an I/O node 620 which is coupled to process node 612 A via a non-coherent packet interface 650 A. I/O node 620 may be connected to another I/O node (not shown) in a chain topology for example, by non-coherent packet interface 650 B.
  • Process nodes 612 A is illustrated as a host node and may include a host bridge for communicating with I/O node 620 via NC packet interface 650 A.
  • Process nodes 612 B-D may also include host bridges for communication with other I/O nodes (not shown).
  • the non-coherent packet interface links formed by NC packet interface 650 A-B may also be referred to as point-to-point links.
  • I/O node 620 is connected to a pair of peripheral buses 625 A-B.
  • FIG. 6 further illustrates respective system memories (e.g., 617 A and 617 B) coupled to process nodes 612 A and 612 B.
  • process node 612 A and 612 B are each illustrative of a host as shown in FIG. 1 , and each system memory 617 may be implemented in the configuration described in conjunction with the description of FIG. 1 and FIG. 2 above.
  • the interconnects between each of process nodes 612 A and 612 B and their respective system memories 617 may be reflective of the memory interconnect including memory link 110 C described above in FIG. 1 and FIG. 2 . It is noted that in other embodiments, other numbers of process nodes may be used. Further, it is contemplated that each of process nodes 612 C and 612 D may be similarly connected to a respective system memory such as system memory 617 , for example.
  • each link of coherent packet interface 615 is implemented as sets of unidirectional lines (e.g. lines 615 A are used to transmit packets from processing node 612 A to processing node 612 B and lines 615 B are used to transmit packets from processing node 612 B to processing node 612 C). Other sets of lines 615 C-D are used to transmit packets between other processing nodes as illustrated in FIG. 1 .
  • the coherent packet interface 615 may be operated in a cache coherent fashion for communication between processing nodes (“the coherent link”).
  • non-coherent packet interface 650 may be operated in a non-coherent fashion for communication between I/O nodes and between I/O nodes and a host bridge such as the host bridge of process node 612 A (“the non-coherent link”).
  • the interconnection of two or more nodes via coherent links may be referred to as a “coherent fabric”.
  • the interconnection of two or more nodes via non-coherent links may be referred to as a “non-coherent fabric”. It is noted that a packet to be transmitted from one processing node to another may pass through one or more intermediate nodes.
  • a packet transmitted by processing node 612 A to processing node 612 C may pass through either processing node 612 B or processing node 612 D as shown in FIG. 6 .
  • Any suitable routing algorithm may be used.
  • Other embodiments of computer system 600 may include more or fewer processing nodes than the embodiment shown in FIG. 6 .
  • Peripheral buses 625 A and 625 B are illustrative of a common peripheral bus such as a peripheral component interconnect (PCI) bus. It is understood, however, that other types of buses may be used.
  • PCI peripheral component interconnect
  • system memory configuration described above in FIG. 1 through FIG. 5 may be used in conjunction with a computer system employing a processor chipset that includes a Northbridge.
  • a memory controller within the Northbridge may serve as the host.

Abstract

A system includes a host coupled to a serially connected chain of memory modules. In one embodiment, the host includes a memory controller that may be configured to issue a memory read request for data stored within the memory modules. The memory controller may further request that data be prefetched from the memory modules by encoding prefetch information within the memory read request. The memory controller may also be configured to issue a memory write request to write data to the memory modules and to selectively request that one or more pages of memory within a given one of the memory modules remain open by encoding the prefetch information within the memory write request.

Description

  • This application claims the benefit of U.S. Provisional Application No. 60/470,078 filed May 13, 2003.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • This invention relates to computer system memory and, more particularly, to prefetching data in a serial memory subsystem topology.
  • 2. Description of the Related Art
  • Many computer systems employ a main system memory that may be configured dependent upon the needs of an end user. In such systems, a motherboard or system board may include a number of memory expansion sockets. One or more small circuit boards, referred to as memory modules, may be inserted into the sockets as needed to increase the memory capacity of the computer system. Each of the memory modules typically includes multiple memory devices that provide a given amount of memory capacity. The memory devices are usually implemented using some type of dynamic random access memory (DRAM). Some examples of DRAM types include synchronous DRAM (SDRAM) as well as the various types of double data rate SDRAM (DDR SDRAM).
  • In conventional computer systems, the memory modules are connected to a memory/DRAM controller via a memory bus that includes address, control and a data signals. In some computer systems, the address, control and data signals may be multiplexed and thus share the same sets of wires. In other computer systems, the address, control and data signals may use separate wires. In either case, each of the address and control signals are routed to each expansion socket such that the memory modules, when inserted, are connected in parallel to the memory/DRAM controller. In some systems the memory/DRAM controller may reside on the same integrated circuit (IC) chip as the system processor, while in other systems the memory/DRAM controller may reside in one IC (e.g., a Northbridge) of a chipset.
  • Although the operating speed of computer system processors continues to increase, the relative performance of the main system memory has not increased at the same rate. This may be due, at least in part, to the incremental improvement in the bandwidth of the system memory architectures described above.
  • SUMMARY
  • Various embodiments of a prefetch mechanism for use in a system including a host coupled serially to a plurality of memory modules are disclosed. In one embodiment, the system includes a host coupled to a serially connected chain of memory modules. The host includes a memory controller that may be configured to issue a memory read request for data stored within the memory modules. The memory controller may further request that data be prefetched from the memory modules by encoding prefetch information within the memory read request.
  • In one specific implementation, each of the memory modules may include a memory control hub that may control access to a plurality of memory chips on the memory module. In addition, each of the memory modules may include a DRAM controller configured to generate a memory read cycle to the memory chips in response to receiving a memory read command having a memory address that matches a memory address associated with the memory control hub.
  • In another specific implementation, the prefetch information may include prefetch hint information that indicates whether or not to prefetch data and prefetch stride information that indicates a number of addresses skipped between accesses to the memory modules.
  • In another specific implementation, each memory module includes a storage for storing prefetch data returned from the memory chips located on each of the memory modules.
  • In still another specific implementation, the memory controller may be configured to issue a memory write request to write data to the memory modules and to selectively request that one or more pages of memory within a given one of the memory modules remain open by encoding the prefetch information within the memory write request.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of one embodiment of a system including a serially connected chain of memory modules.
  • FIG. 2 is a block diagram of one embodiment of a memory module such as a memory module illustrated in FIG. 1.
  • FIG. 3 is a block diagram of another embodiment of a memory module such as a memory module illustrated in FIG. 1.
  • FIG. 4 is a diagram of one embodiment of a memory read packet.
  • FIG. 5 is a diagram of one embodiment of a memory write packet.
  • FIG. 6 is a block diagram of one embodiment of a computer system.
  • While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. Note, the headings are for organizational purposes only and are not meant to be used to limit or interpret the description or claims. Furthermore, note that the word “may” is used throughout this application in a permissive sense (i.e., having the potential to, being able to), not a mandatory sense (i.e., must). The term “include” and derivations thereof mean “including, but not limited to.” The term “connected” means “directly or indirectly connected,” and the term “coupled” means “directly or indirectly coupled.”
  • DETAILED DESCRIPTION
  • Turning now to FIG. 1, a block diagram of one embodiment of a system including a serially connected chain of memory modules is shown. System 50 includes a host 100 coupled to a system memory 125 via a memory link 11A. System 50 may be configured to operate as part of a computing device such as a computer system or server system, for example. System memory 125 includes a memory module 150A coupled to a memory module 150B via a memory link 110B. Memory module 150B is shown coupled to a memory link 110C, which may be coupled to an additional memory module (not shown) as desired to form a serially connected chain of memory modules that is coupled to host 100. It is noted that although two memory modules are shown in the chain, it is contemplated that one or more memory modules may be connected in this manner. It is further noted that components including a reference number followed by a reference letter may be referred to generally by the reference number alone. For example, when referring generally to all memory modules, reference may be made to memory module 150.
  • In the illustrated embodiment, memory module 150A includes a memory control hub 160A, which is coupled to a plurality of memory devices that are designated memory chip 171A through 171N, where N may be any number, as desired. In one embodiment, memory control hub 160A may be coupled to the memory chips via any type of memory interconnect. For example, in one embodiment, the memory interconnect may be a typical address, control and data bus configuration.
  • Similarly, memory module 150B includes a memory control hub 160B, which is coupled to a plurality of memory devices that are designated memory chip 181A through 181N, where N may be any number, as desired. In one embodiment, memory control hub 160B may be coupled to the memory chips via any type of memory interconnect as described above. It is noted that each of memory chips 171A through 171N and 181A through 181N may be any type of memory device such as a memory device in the DRAM family of memory devices, for example.
  • In the illustrated embodiment, memory links 10A-110C form a memory interconnect. In one embodiment, each of memory links 110A-110C forms a point-to-point memory interconnect that is implemented as two sets of unidirectional lines. One set of unidirectional lines is referred to as a downlink and is configured to convey transactions away from host 100 in a downstream direction. The other set of unidirectional lines is referred to as an uplink and is configured to convey transactions toward host 100 in an upstream direction. In addition, in one embodiment, each set of unidirectional lines may be implemented using a plurality of differential signal pairs. In one embodiment, each memory link 110 includes an 18-bit downlink and a 16-bit uplink, where each bit is a differential signal pair. As will be described in greater detail below in conjunction with the descriptions of FIG. 5A through FIG. 5D, the memory interconnect formed by memory links 110 may be configured to convey packets.
  • Generally speaking, all transactions from host 100 flow downstream through all memory modules 150 on the downlink and all response transactions flow upstream from the responding memory module 150 through each upstream memory module 150 on the uplink. More particularly, in one embodiment, host 100 may request to retrieve or store data within system memory 125. In response to host 100 making a request, memory controller 105 initiates a corresponding transaction such as a memory read transaction or a memory write transaction, for example. Memory controller 105 transmits the transaction to system memory 125 via memory link 110A. In the illustrated embodiment, the transaction is received by memory control hub 160A of memory module 150A.
  • In response to receiving the transaction, memory control hub 160A is configured to transmit the received transaction to memory module 150B via memory link 110B without decoding the transaction. This is referred to as forwarding the transaction downstream. Thus, each transaction received on a downlink by a given memory control hub 160 of a given memory module 150 is forwarded to the next memory module 150 in the chain that is coupled to the downlink without decoding the transaction. In one embodiment, decoding of the transaction may occur in parallel with the forwarding of the transaction. In other embodiments, the decoding of the transaction may occur after the transaction has been forwarded. A more detailed description of downstream forwarding function may be found below in the description of FIG. 3.
  • Likewise, if memory controller 105 initiates a read request transaction, for example, the memory module 150 having the memory location corresponding to the address in the request will respond with the requested data. The response will be transmitted on the memory module's uplink toward host 100. If there are any intervening memory modules between the sending memory module and host 100, the intervening memory module will forward the response transaction on its uplink to either host 100 or the next memory module in the chain in an upstream direction. In addition, when the responding memory module is ready to send the response, it may inject the response into a sequence of transactions that are being forwarded upstream on the uplink. A more detailed description of upstream forwarding function may be found below in the description of FIG. 5.
  • In one embodiment, memory controller 105 may be configured to make requests to system memory 125 without knowledge of which of memory modules 150A and 150B a particular address is associated. For example, each of memory modules 150 may be assigned a range of memory addresses during a system configuration sequence. Each memory control hub 160 may include logic (not shown in FIG. 1) that may decode the address of an incoming request. Thus, a memory control hub 160 of a given memory module 150 may initiate a memory read cycle or memory write cycle to the memory chips on the given memory module 150 in response to decoding a memory request having an address that is in the address range assigned to the given memory module 150. As will be described in greater detail below in conjunction with the description of FIG. 2, in one embodiment, each memory control hub 160 may include a DRAM controller (not shown in FIG. 1) for initiating memory cycles to the memory chips to which it is connected.
  • In addition, in one embodiment, memory controller 105 may initiate a subsequent memory access request prior to receiving a response to a previous memory access request. In such an embodiment, memory controller 105 may keep track of outstanding requests and may thus process the responses in a different order than they were sent.
  • Further, in the illustrated embodiment, memory controller 105 includes a prefetch unit 107 configured to provide prefetch information for prefetching data from addresses that correspond to a current memory read request. As will be described in greater detail below, prefetch unit 107 may predict which address may be fetched next. The prefetch unit 107 may calculate the prefetch address or addresses and may provide prefetch hints that may be encoded and embedded within the memory request packets. Prefetch unit 107 may also provide the stride (i.e., the number of cache lines that will be skipped between memory accesses) for inclusion within the memory request packets. In addition, a prefetch buffer (not shown in FIG. 1) may be used to store the prefetched cache lines. In one implementation, a prefetch buffer may be located on each memory module. In an alternative implementation a prefetch buffer may be located on the host.
  • The Memory Interconnect
  • The memory interconnect includes one or more high-speed point-to-point memory links such as memory links 110A-110C each including an uplink such as uplink 111A and a downlink such as downlink 112A, for example. As noted above, in one embodiment downlinks may be 18-bit links while uplinks may be 16-bit links. As such, an 18-bit downlink may include 16 control, address and data (CAD) signals, a busy signal and a Control (CTL) signal. A given uplink may include 16 control, address and data (CAD) signals. It is contemplated however, that in an alternative embodiment, an uplink such as uplink 211A may also include a CTL signal.
  • In addition to the high-speed links, other signals may be provided to each memory module 150. For example, in one embodiment, a reset signal, a power OK signal and a reference clock may be provided to each memory module 150 from host 100. Further, other signals may be provided between each memory module. For example, as described above, a next memory module present signal may be provided between memory modules.
  • Generally speaking, the types of transactions conveyed on memory links 110 may be categorized into configuration and control transactions and memory transactions. In one embodiment, configuration and control transactions may be used to configure memory control hub 160. For example, configuration and control transactions may be used to access configuration registers, assign a memory address range to a memory module or to assign a hub address to a memory control hub. Memory transactions may be used to access the memory locations within the memory chips (e.g., 171A-171N . . . 181A-181N).
  • Accordingly, in one embodiment, there are two types of addressing supported: hub addressing and memory addressing. Using hub addressing, eight hub bits identify the specific memory control hub being accessed. In one embodiment, a hub address of FFh may be indicative of a broadcast to all memory control hubs. Using memory addressing, each hub decodes the upper portion of the address bits to determine which hub should accept the request and the lower portion to determine the memory location to be accessed. In one embodiment, there are 40 address bits, although it is contemplated that other numbers of address bits may be used as desired.
  • In one embodiment, each of the memory links is configured to convey the transactions using one or more packets. The packets include control and configuration packets and memory access packets, each of which may include a data payload depending on the type of command the packet carries. As such, the sets of wires that make up memory links 110 may be used to convey control, address and data.
  • The packets may be generally characterized by the following: Each packet includes a number of bit positions which convey a single bit of information. Each packet is divided into several bit times and during a given bit time, all of the bit positions of the packet are sampled. As such, the control information and data share the same wires of a given link (e.g., CAD wires). As will be described in greater detail below, in one embodiment, packets are multiples of bit pairs and the first bit-time of every packet is sampled at an even bit-time. Packets begin with a control header that may be either one or two bit-pairs in length. In one embodiment, the first five bits of the control header is the command code. Table 1 below illustrates the various types of packets and their associated command codes. It is noted however, that the actual codes shown in column one are for illustrative purposes and that other codes may be used for each given command.
    TABLE 1
    Packet types and command codes
    Header
    Length
    (bit- Normal Address
    Code times) Command Description Direction Response Type
    00h NOP Null Operation/Idle State Both
    04h 2 AddrSet Address Set Down AddrAck Hub
    05h
    2 AddrAck Address Acknowledge Up
    06h 2 Ack Acknowledge Up
    07h 2 Nak Not Acknowledge/Error Up
    08h 2 SRdResp Short Read Response Up
    09h 2 LRdResp Long Read Response Up
    0Ah 2 ConfigRd Configuration Read Down RdResp Hub
    0Ch
    2 ConfigWr Configuration Write Down Ack Hub
    0Eh
    2 DIMMCtl DIMM Control Down Ack Hub
    10h
    4 SMemRd Short Memory Read Down RdResp/Ack Memory
    11h
    4 LMemRd Long Memory Read Down RdResp Memory
    12h
    4 BlkMemWr Block Memory Write Down Ack Memory
    13h
    4 SbytMemWr Short Byte Memory Write Down Ack Memory
    14h
    4 LbytMemWr Long Byte Memory Write Down Ack Memory
  • Further, in one embodiment, packets (except NOP packets) may be transmitted with an error detecting code (EDC). It is noted that in one implementation, the EDC is a 32-bit cyclic redundancy code (CRC), although other implementations may employ other EDC's as desired. Additionally, addresses are sent most significant bit-time first to speed decode within memory control hub 160 while data is sent least significant byte first. It is noted however, that other embodiments are contemplated in which the addresses may be sent least significant bit-time first and data my be sent most significant byte first. Packets may carry a payload of byte enables and/or data. Packets with no payload are referred to as header-only packets. In one embodiment, the size of the data short reads may be up to one half of a programmed cache line size. In addition, the size of the data for long reads and block writes may be up to the programmed cache line size. Further, the size of the data for byte writes may be a maximum of 64 bytes regardless of the cache line size setting.
  • In addition to the control header and command code information included within a packet, the CTL signal may be used to convey information about each packet. As illustrated in Table 2 below, some exemplary CTL encodings are shown.
    TABLE 2
    CTL encodings for downstream use
    Even Odd Content of CAD
    0 0 Data or Byte Enable Payload
    1 1 Control Header
    0 1 CRC for a Packet with Payload
    1 0 CRC for a Header-Only Packet
  • Different values of CTL for the header and payload portions of a packet may provide enough information to allow header-only packets to be inserted within the payload of another packet. This may be useful for reducing the latency of read commands by allowing them to issue while a write packet is still being sent on the link. Table 3 illustrates an exemplary packet including a payload in tabular format. The packet in table 3 also shows that a header-only packet is inserted in the payload during bit times 4-7.
    TABLE 3
    Packet with payload and header-only packet
    inserted within payload
    Bit-time CTL CAD
    0 1 Header1 bits [15:0]
    1 1 Header1 bits [31:16]
    2 0 Data bits [15:0]
    3 0 Data bits [31:16]
    4 1 Header2 bits [15:0]
    5 1 Header2 bits [31:16]
    6 1 CRC2 bits [15:0]
    7 0 CRC2 bits [31:16]
    8 0 Data bits [47:32]
    9 0 Data bits [64:48]
    10 0 CRC1 bits [15:0]
    11 1 CRC1 bits [31:16]
  • Referring now to FIG. 2, a block diagram of one embodiment of memory module 150 is shown. Components that correspond to those shown in FIG. 1 are numbered identically for clarity and simplicity. Memory module 150 includes a memory control hub 160 coupled to memory chips 261A through 261N via a memory bus 265. Memory control hub 160 includes a control unit 240 coupled to a DRAM controller 250. DRAM controller 250 is coupled to memory chips 261A-261N. Control unit 240 includes an uplink control 241 and a downlink control 242. As noted above, memory bus 265 may be any type of memory interconnect. In the illustrated embodiment, memory control hub 160 is coupled to a memory link 110A in an upstream direction and a memory link 110B in a downstream direction. It is further noted that the frequency of operation of memory bus 265 is independent of the frequency of operation of memory links 110.
  • In the illustrated embodiment, uplink control unit 241 may be configured to receive and forward packets received from another memory module downstream. The receiving and forwarding of the upstream packets creates an upstream transaction sequence. In addition, uplink control unit 241 may be configured to inject packets that originate within memory module 150 into the transaction stream.
  • In the illustrated embodiment, downlink control unit 242 may be configured to receive packets that originate at the host and if a memory module is connected downstream, to forward those packets to the downstream memory module. In addition, downlink control unit 242 may be configured to copy and decode the packets. In one embodiment, if the packets include an address that is within the range of addresses assigned to memory module 150 and the packet is a memory access request, downlink control unit 242 may pass the command associated with the packet to DRAM controller 250. However, if the packet is not a memory request, but is instead a configuration packet, downlink control unit 242 may pass the configuration command associated with the packet to the core logic of control unit 240 (not shown) for processing. It is noted that in one embodiment, if the packet does not include an address that is within the range of addresses assigned to memory module 150, memory control hub 160 may drop or discard the packet if memory module 150 is the last memory module in the chain.
  • In one embodiment, memory control hub 160 is configured to receive a module present signal (not shown), which when activated by a downstream memory module, indicates to an upstream memory module that there is a downstream memory module present. In such an embodiment, if memory control hub 160 receives a transaction and no downstream memory module is determined to be present, memory control hub 160 may drop the transaction.
  • As mentioned above, in one implementation, prefetch unit 107 may predict which addresses may be needed and may encode hint information and stride information into a memory request packet. In an alternative implementation, the prediction information may be generated by other hardware and or software and provided to prefetch unit 107. For example, software executing a memory-streaming algorithm may provide explicit stride information, which may be passed to prefetch unit 107. Prefetch unit 107 may then generate hint and stride information for inclusion within a given memory request.
  • The hint information may indicate to the DRAM Controller 250 the type of addresses to prefetch (if any). Table 4 below, illustrates an exemplary set of hint values. It is noted that in other embodiments, other values having other meanings are possible.
    TABLE 4
    Packet Prefetch Hint Values
    Hint Meaning
    0 None
    1 Last access to this cacheline
    2 More accesses to this cacheline
    3 Accesses to next cacheline to follow, see stride
    4 Accesses to previous cacheline to follow, see stride
    5-7 Reserved
  • The stride information indicates how many cachelines will be skipped between accesses. Table 5 below, illustrates an exemplary set of stride values. It is noted that in other embodiments, other values having other meanings are possible.
    TABLE 5
    Packet Prefetch Stride Values
    Stride Number of cache lines skipped
    0 none
    1 1
    2 2
    3 3
  • In one implementation, DRAM controller 250 is configured to initiate memory cycles to memory chips 261A-261N in response to memory commands from memory control hub 160. Thus, in response to receiving a memory request from addresses assigned to that memory module, downlink control 242 may pass the memory request command, including the hint and stride information to DRAM controller 250. DRAM controller 250 generates the memory cycles corresponding to the request. For example, if a read request is received for the data at a given address, DRAM controller 250 generates the read cycles for the data at that address. In addition, DRAM controller 250 decodes the hint and stride information and prefetches the cachelines of data indicated by the hint and stride information.
  • As will be described in greater detail below in conjunction with the description of FIG. 3, each memory module 150 may include a storage configured as a prefetch buffer (not shown in FIG. 2) for storing prefetch data. In such an implementation, the read data from the explicit memory request may be returned to host 100 without being stored the within prefetch buffer.
  • In another embodiment, all the requested data (including any prefetched data) returned by DRAM controller 250 may be stored within a read buffer (not shown) within host 100. However, depending on the size of the read buffer, the prefetch data may get discarded to make room for read request data that is explicitly requested in a memory read packet before the expected data arrives. Thus, in another implementation, host 100 may include a separate prefetch buffer for storing prefetched data separate from read data returned as result of explicit read requests.
  • Turning to FIG. 3, a block diagram of another embodiment of memory module 150 is shown. Components that correspond to those shown in FIG. 1 are numbered identically for clarity and simplicity. Memory module 150 of FIG. 3 includes a memory control hub 160 coupled to memory chips 261A through 261N via a memory bus 265. Memory control hub 160 includes a control unit 240 coupled to a DRAM controller 250. DRAM controller 250 is coupled to memory chips 261A-261N and to a prefetch buffer 375. Control unit 240 includes an uplink control 241 and a downlink control 242. As noted above, memory bus 265 may be any type of memory interconnect. In the illustrated embodiment, memory control hub 160 is coupled to a memory link 110A in an upstream direction and a memory link 110B in a downstream direction. It is noted that the frequency of operation of memory bus 265 is independent of the frequency of operation of memory links 110.
  • The operation of memory module 150 of FIG. 3 is similar to the operation of memory module 150 of FIG. 2. However, since memory module 150 of FIG. 3 includes a prefetch buffer 375, the operational differences are described below. It is noted that although prefetch buffer 375 is shown as part of memory control hub 160, in other embodiments, prefetch buffer 375 may be separate from memory control hub 160.
  • As mentioned above, the data retrieved in response to an explicit memory read request may be sent back to host 100 and not stored within prefetch buffer 375. However, prefetch buffer 375 may store data that is prefetched by DRAM controller 250 in response to receiving hint and stride information with an explicit memory request. When a subsequent memory request is received by DRAM controller 250, prefetch buffer 375 may be checked for the requested data. If the data is stored within prefetch buffer 375, that data is returned to host 100; thereby possibly saving time and reducing the latency associated with accessing memory chips 261A-N.
  • In one implementation, when an explicit memory request packet such as a read request packet is received, the command and address information corresponding to the request packet is provided to DRAM controller 250. In addition, the hint and stride information is provided to DRAM controller 250. DRAM controller 250 is configured to generate memory read cycles corresponding to the explicit read command. In addition, DRAM controller 250 is configured to decode the prefetch hint and stride information and to generate memory read cycles corresponding to the addresses indicated by the hint and stride information. The read data returned from memory chips 261A-N as a result of the explicit read command may be packetized and injected into the upstream flow of packets on uplink 211A by uplink control 241. The read data returned from memory chips 261A-N as a result of the prefetch read commands is stored within prefetch buffer 375.
  • Similar to a memory read request, when a memory write request packet is received by a memory module, the command and address information corresponding to the write request packet is also provided to DRAM controller 250. If the write packet includes hint and stride information, instead of performing prefetch operations (as when a read request is received), in one implementation, DRAM controller 250 may use the hint and stride information to keep open for any subsequent accesses, the page within memory chips 261A-N corresponding to the hint and stride information.
  • In one embodiment, prefetch buffer 375 may be implemented using memory devices in the random access memory (RAM) family that have faster access times than for example, access times of memory chips 261A-N. Any suitable RAM device may be used such as static RAM (SRAM) or fast SRAM (FSRAM).
  • In addition, prefetch buffer 375 may be implemented using a variety of suitable structures. For example, depending on the size, prefetch buffer 375 may be implemented as a fully associative, set associative, or direct mapped structure that may include tags to support lookup functions. The tags may also be used to invalidate entries in prefetch buffer 375 in response to DRAM controller 250 receiving a command to write data to an address that is stored within prefect buffer 375, for example.
  • FIG. 4 and FIG. 5 illustrate exemplary memory access packets that may be conveyed on memory links 110A through 110C of FIG. 1. Turning now to FIG. 4, a diagram of one embodiment of an exemplary memory read packet is shown. In the illustrated embodiment, memory read packet 425 is 16 bits wide and includes six bit times or three bit-pairs. During bit time zero, the five-bit command code (e.g., 10h or 11h) is conveyed in bit positions 0-4. A prefetch hint value is encoded and conveyed in bit positions 5-7. Exemplary prefetch hint values are discussed and shown above in Table 4. An eight-bit tag is conveyed in bit positions 8-15.
  • During bit time one, the length of the data that should be returned is conveyed in bit positions 0-5. In one embodiment, a value of 00h indicates no data, a value of 01h indicates two bit-pairs of data, a value of 02h indicates four bit-pairs of data, and so on. A zero length read results in an acknowledge packet (Ack) being returned to the requestor. In one embodiment, a read of a half cache line or less may result in a short RdResp and a read of more than a half cache line may result in either a single long RdResp or two short RdResp. The cache line size may be programmed by software into the configuration registers of host 100 and each memory control hub 160. A prefetch stride prediction value is encoded and conveyed in bit positions 6-7. Exemplary prefetch stride prediction values are discussed and shown in Table 4 above. Address bits 39-32 of the requested location in DRAM are conveyed in bit positions 8-15.
  • During bit time two, the address bits 31-16 of the requested location in DRAM are conveyed in bit positions 0-15 and during bit time 3, the address bits 3-15 of the requested location in DRAM are conveyed in bit positions 3-15. Also during bit time 3, the packet priority is conveyed in bit positions 0-1. In one embodiment, the priority may be indicative of the priority of the packet relative to other requests. For example, one priority may be to delay all requests with lower priority even if they are already in progress and to execute this request ahead of them. Bit position 2 is reserved. During bit times four and five, bits 0-15 and 16-31, respectively, of a CRC are conveyed in bit positions 0-15.
  • Referring to FIG. 5, a diagram of one embodiment of an exemplary block memory write packet is shown. In the illustrated embodiment, block memory write packet 525 is 16 bits wide and includes eight bit times or four bit-pairs. During bit time zero, the five-bit command code (e.g., 12h) is conveyed in bit positions 0-4. A prefetch hint value is encoded and conveyed in bit positions 5-7. An eight-bit tag is conveyed in bit positions 8-15.
  • During bit time one, the length of the data being conveyed in the data payload is conveyed in bit positions 0-5. In one embodiment, a value of 00h indicates no data, a value of 01h indicates two bit-pairs of data, a value of 02h indicates four bit-pairs of data, and so on. A prefetch stride prediction value is encoded and conveyed in bit positions 6-7. Address bits 39-32 of the location in DRAM being written are conveyed in bit positions 8-15.
  • During bit time two, the address bits 31-16 of the location in DRAM being written are conveyed in bit positions 0-15 and during bit time 3, the address bits 3-15 of the location in DRAM being written are conveyed in bit positions 3-15. Also during bit time 3, the packet priority is conveyed in bit positions 0-1. Bit position 2 is reserved.
  • During bit times four and five, bits 0-15 and 16-31 of a first bit pair of the data payload are conveyed in bit positions 0-15. If more data is being written, subsequent bit pairs may convey bits 0-15 and 16-31 of subsequent data payload. During bit times 4+2N and 5+2N, bits 0-15 and 16-31, respectively, of a CRC are conveyed in bit positions 0-15.
  • It is noted that although only two types of packets were shown, other types of packets, which may correspond to the command codes listed in table 3 are contemplated. It is further noted that although the various fields of the exemplary packets are shown having a particular number of bits, it is contemplated that in other embodiments, the various fields of the peach packet may include other numbers of bits as desired.
  • FIG. 6 is a block diagram of one embodiment of a computer system. Computer system 600 includes process nodes 612A-612D each interconnected by coherent packet interface links 615A-D. Each link of coherent packet interface 615 may form a high-speed point-to-point link. Process nodes 612A-D may each include one or more processors. Computer system 600 also includes an I/O node 620 which is coupled to process node 612A via a non-coherent packet interface 650A. I/O node 620 may be connected to another I/O node (not shown) in a chain topology for example, by non-coherent packet interface 650B. Process nodes 612A is illustrated as a host node and may include a host bridge for communicating with I/O node 620 via NC packet interface 650A. Process nodes 612B-D may also include host bridges for communication with other I/O nodes (not shown). The non-coherent packet interface links formed by NC packet interface 650A-B may also be referred to as point-to-point links. I/O node 620 is connected to a pair of peripheral buses 625A-B.
  • FIG. 6 further illustrates respective system memories (e.g., 617A and 617B) coupled to process nodes 612A and 612B. In the illustrated embodiment, process node 612A and 612B are each illustrative of a host as shown in FIG. 1, and each system memory 617 may be implemented in the configuration described in conjunction with the description of FIG. 1 and FIG. 2 above. Further, the interconnects between each of process nodes 612A and 612B and their respective system memories 617 may be reflective of the memory interconnect including memory link 110C described above in FIG. 1 and FIG. 2. It is noted that in other embodiments, other numbers of process nodes may be used. Further, it is contemplated that each of process nodes 612C and 612D may be similarly connected to a respective system memory such as system memory 617, for example.
  • In the illustrated embodiment, each link of coherent packet interface 615 is implemented as sets of unidirectional lines (e.g. lines 615A are used to transmit packets from processing node 612A to processing node 612B and lines 615B are used to transmit packets from processing node 612B to processing node 612C). Other sets of lines 615C-D are used to transmit packets between other processing nodes as illustrated in FIG. 1. The coherent packet interface 615 may be operated in a cache coherent fashion for communication between processing nodes (“the coherent link”). Further, non-coherent packet interface 650 may be operated in a non-coherent fashion for communication between I/O nodes and between I/O nodes and a host bridge such as the host bridge of process node 612A (“the non-coherent link”). The interconnection of two or more nodes via coherent links may be referred to as a “coherent fabric”. Similarly, the interconnection of two or more nodes via non-coherent links may be referred to as a “non-coherent fabric”. It is noted that a packet to be transmitted from one processing node to another may pass through one or more intermediate nodes. For example, a packet transmitted by processing node 612A to processing node 612C may pass through either processing node 612B or processing node 612D as shown in FIG. 6. Any suitable routing algorithm may be used. Other embodiments of computer system 600 may include more or fewer processing nodes than the embodiment shown in FIG. 6.
  • One example of a packet interface such as non-coherent packet interface 650 may be compatible with HyperTransport™ technology. Peripheral buses 625A and 625B are illustrative of a common peripheral bus such as a peripheral component interconnect (PCI) bus. It is understood, however, that other types of buses may be used.
  • It is further noted that other computer system configurations are possible and contemplated. For example, it is contemplated that the system memory configuration described above in FIG. 1 through FIG. 5 may be used in conjunction with a computer system employing a processor chipset that includes a Northbridge. In such an embodiment, a memory controller within the Northbridge may serve as the host.
  • Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims (23)

1. A system comprising:
a host including a memory controller; and
a plurality of memory modules coupled serially in a chain to said host;
wherein said memory controller is configured to issue a memory read request for data stored within said plurality of memory modules; and
wherein said memory controller is further configured to request that data be prefetched from said plurality of memory modules by encoding prefetch information within said memory read request.
2. The system as recited in claim 1, wherein each of said plurality of memory modules includes a memory control hub coupled to control access to a plurality of memory chips.
3. The system as recited in claim 2, wherein each of said plurality of memory modules includes a DRAM controller configured to generate a memory read cycle to said plurality of memory chips in response to receiving a memory read command having a memory address that matches a memory address associated with said memory control hub.
4. The system as recited in claim 3, wherein said DRAM controller is further configured to selectively generate a memory read cycle to prefetch data in response to receiving particular prefetch information.
5. The system as recited in claim 1, wherein said prefetch information includes prefetch hint information that indicates whether or not to prefetch data.
6. The system as recited in claim 1, wherein said prefetch information includes prefetch stride information that indicates a number of addresses skipped between accesses to said plurality of memory modules.
7. The system as recited in claim 1, wherein said plurality of memory modules is coupled serially in a chain to said host via a plurality of memory links, wherein each memory link includes an uplink for conveying transactions toward said host and a downlink for conveying transactions originating at said host to a next memory module in said chain.
8. The system as recited in claim 7, wherein said uplink and said downlink are each a uni-directional link including a plurality of signals configured to convey transactions using packets that include control and configuration packets and memory access packets, wherein at least a portion of packets include control, address and data information, and wherein said control, address and data information share the same wires of a given link.
9. The system as recited in claim 1, wherein each memory module of said plurality of memory modules includes a storage for storing prefetch data returned from a respective plurality of memory chips located on each of said memory modules.
10. The system as recited in claim 1, wherein said memory controller is further configured to issue said memory read request without knowledge of a memory size associated with each of said memory modules or an address range associated with any of said memory modules.
11. The system as recited in claim 10, wherein said memory controller is further configured to issue subsequent memory read requests prior to receiving a response to said memory read request.
12. The system as recited in claim 1, wherein said memory controller includes a prefetch unit configured to provide said prefetch information for inclusion within said memory read request.
13. The system as recited in claim 1, wherein said memory controller is further configured to issue a memory write request to write data to said plurality of memory modules and to selectively request that one or more pages of memory within a given one of said plurality of memory modules remain open by encoding said prefetch information within said memory write request.
14. A memory module coupled serially in a chain with other memory modules to a host, said memory module comprising:
a plurality of memory chips; and
a memory control hub coupled to control access to said plurality of memory chips, wherein said memory control hub is configured to generate memory read cycles to said plurality of memory chips in response to receiving a memory read request for data stored within said plurality of memory chips;
wherein said memory control hub is further configured to selectively prefetch data from said plurality of memory chips in response to receiving prefetch information encoded within said memory read request.
15. The memory module as recited in claim 14, wherein said memory module includes a DRAM controller configured to generate said memory read cycle to said plurality of memory chips in response to receiving a memory read command having a memory address that matches a memory address associated with said memory control hub.
16. The memory module as recited in claim 15, wherein said DRAM controller is further configured to selectively generate said memory read cycle to prefetch data in response to receiving particular prefetch information.
17. The memory module as recited in claim 14, wherein said prefetch information includes prefetch hint information that indicates whether or not to prefetch data.
18. The memory module as recited in claim 14, wherein said prefetch information includes prefetch stride information that indicates a number of addresses skipped between accesses to said plurality of memory modules.
19. The memory module as recited in claim 1, wherein said memory module is coupled serially with other memory modules in said chain to said host via a plurality of memory links, wherein each memory link includes an uplink for conveying transactions toward said host and a downlink for conveying transactions originating at said host to a next memory module in said chain.
20. The memory module as recited in claim 19, wherein said uplink and said downlink are each a unidirectional link including a plurality of signals configured to convey transactions using packets that include control and configuration packets and memory access packets, wherein at least a portion of packets include control, address and data information, and wherein said control, address and data information share the same wires of a given link.
21. The memory module as recited in claim 14, wherein said memory control hub is further configured to write data to said plurality of memory chips and to selectively request that one or more pages of memory within said plurality of memory chips remain open in response to receiving a memory write request including said prefetch information.
22. A method comprising:
connecting plurality of memory modules serially in a chain to a host including a memory controller;
said memory controller issuing a memory read request for data stored within said plurality of memory modules; and
said memory controller requesting that data be prefetched from said plurality of memory modules by encoding prefetch information within said memory read request.
23. The method as recited in claim 22 further comprising storing prefetch data returned from a respective plurality of memory chips located on each of said memory modules within a respective a storage located on each of said memory modules.
US10/842,339 2003-05-13 2004-05-10 Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect Abandoned US20050071542A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/842,339 US20050071542A1 (en) 2003-05-13 2004-05-10 Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47007803P 2003-05-13 2003-05-13
US10/842,339 US20050071542A1 (en) 2003-05-13 2004-05-10 Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect

Publications (1)

Publication Number Publication Date
US20050071542A1 true US20050071542A1 (en) 2005-03-31

Family

ID=33452363

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/842,298 Abandoned US20050166006A1 (en) 2003-05-13 2004-05-10 System including a host connected serially in a chain to one or more memory modules that include a cache
US10/842,296 Active 2024-11-26 US7421525B2 (en) 2003-05-13 2004-05-10 System including a host connected to a plurality of memory modules via a serial memory interconnect
US10/842,339 Abandoned US20050071542A1 (en) 2003-05-13 2004-05-10 Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect
US10/842,297 Expired - Fee Related US7016213B2 (en) 2003-05-13 2004-05-10 Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/842,298 Abandoned US20050166006A1 (en) 2003-05-13 2004-05-10 System including a host connected serially in a chain to one or more memory modules that include a cache
US10/842,296 Active 2024-11-26 US7421525B2 (en) 2003-05-13 2004-05-10 System including a host connected to a plurality of memory modules via a serial memory interconnect

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/842,297 Expired - Fee Related US7016213B2 (en) 2003-05-13 2004-05-10 Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect

Country Status (8)

Country Link
US (4) US20050166006A1 (en)
JP (1) JP4836794B2 (en)
KR (1) KR101095025B1 (en)
CN (1) CN100444141C (en)
DE (1) DE112004000821B4 (en)
GB (1) GB2416056B (en)
TW (1) TWI351613B (en)
WO (1) WO2004102403A2 (en)

Cited By (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US20030229770A1 (en) * 2002-06-07 2003-12-11 Jeddeloh Joseph M. Memory hub with internal cache and/or memory access prediction
US20040024978A1 (en) * 2002-08-05 2004-02-05 Jeddeloh Joseph M. Memory hub and access method having internal row caching
US20040024959A1 (en) * 2002-08-02 2004-02-05 Taylor George R. System and method for optically interconnecting memory devices
US20040028412A1 (en) * 2002-08-09 2004-02-12 Tim Murphy System and method for multiple bit optical data transmission in memory systems
US20040034753A1 (en) * 2002-08-16 2004-02-19 Jeddeloh Joseph M. Memory hub bypass circuit and method
US20040047169A1 (en) * 2002-09-09 2004-03-11 Lee Terry R. Wavelength division multiplexed memory module, memory system and method
US20040260891A1 (en) * 2003-06-20 2004-12-23 Jeddeloh Joseph M. Posted write buffers and methods of posting write requests in memory modules
US20040260909A1 (en) * 2003-06-20 2004-12-23 Lee Terry R. Memory hub and access method having internal prefetch buffers
US20040260864A1 (en) * 2003-06-19 2004-12-23 Lee Terry R. Reconfigurable memory module and method
US20040260957A1 (en) * 2003-06-20 2004-12-23 Jeddeloh Joseph M. System and method for selective memory module power management
US20050021884A1 (en) * 2003-07-22 2005-01-27 Jeddeloh Joseph M. Apparatus and method for direct memory access in a hub-based memory system
US20050030797A1 (en) * 2003-06-11 2005-02-10 Pax George E. Memory module and method having improved signal routing topology
US20050030313A1 (en) * 2000-06-23 2005-02-10 William Radke Apparatus and method for distributed memory control in a graphics processing system
US20050044457A1 (en) * 2003-08-19 2005-02-24 Jeddeloh Joseph M. System and method for on-board diagnostics of memory modules
US20050050255A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Multiple processor system and method including multiple memory hub modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US20050066137A1 (en) * 2002-08-29 2005-03-24 Jeddeloh Joseph M. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US20050149774A1 (en) * 2003-12-29 2005-07-07 Jeddeloh Joseph M. System and method for read synchronization of memory modules
US20050172084A1 (en) * 2004-01-30 2005-08-04 Jeddeloh Joseph M. Buffer control system and method for a memory system having memory request buffers
US20050177695A1 (en) * 2004-02-05 2005-08-11 Larson Douglas A. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20050177690A1 (en) * 2004-02-05 2005-08-11 Laberge Paul A. Dynamic command and/or address mirroring system and method for memory modules
US20050177677A1 (en) * 2004-02-05 2005-08-11 Jeddeloh Joseph M. Arbitration system having a packet memory and method for memory responses in a hub-based memory system
US20050216677A1 (en) * 2004-03-24 2005-09-29 Jeddeloh Joseph M Memory arbitration system and method having an arbitration packet protocol
US20050213611A1 (en) * 2004-03-29 2005-09-29 Ralph James Method and system for synchronizing communications links in a hub-based memory system
US20050216648A1 (en) * 2004-03-25 2005-09-29 Jeddeloh Joseph M System and method for memory hub-based expansion bus
US20050218956A1 (en) * 2004-04-05 2005-10-06 Laberge Paul A Delay line synchronizer apparatus and method
US20050228939A1 (en) * 2004-04-08 2005-10-13 Janzen Jeffery W System and method for optimizing interconnections of components in a multichip memory module
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
US20050268060A1 (en) * 2004-05-28 2005-12-01 Cronin Jeffrey J Method and system for terminating write commands in a hub-based memory system
US20050283681A1 (en) * 2004-06-04 2005-12-22 Jeddeloh Joseph M Memory hub tester interface and method for use thereof
US20050286506A1 (en) * 2004-06-04 2005-12-29 Laberge Paul A System and method for an asynchronous data buffer having buffer write and read pointers
US20060047891A1 (en) * 2004-08-31 2006-03-02 Ralph James System and method for transmitting data packets in a computer system having a memory hub architecture
US20060095701A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US20060095629A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
US20060200620A1 (en) * 2003-09-18 2006-09-07 Schnepper Randy L Memory hub with integrated non-volatile memory
US20060200602A1 (en) * 2003-08-20 2006-09-07 Ralph James Method and system for capturing and bypassing memory transactions in a hub-based memory system
US20060206667A1 (en) * 2002-08-29 2006-09-14 Ryan Kevin J System and method for optimizing interconnections of memory devices in a multichip module
US20060271746A1 (en) * 2003-10-20 2006-11-30 Meyer James W Arbitration system and method for memory responses in a hub-based memory system
KR100656814B1 (en) * 2006-01-17 2006-12-14 신잔토개발 주식회사 Separating and washing device for construction waste
US20060294316A1 (en) * 2005-06-22 2006-12-28 Via Technologies, Inc. Selectively prefetch method and bridge module
US20070005902A1 (en) * 2004-12-07 2007-01-04 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US20070033353A1 (en) * 2004-05-14 2007-02-08 Jeddeloh Joseph M Memory hub and method for memory sequencing
US20070160053A1 (en) * 2005-11-28 2007-07-12 Coteus Paul W Method and system for providing indeterminate read data latency in a memory system
WO2007135144A1 (en) * 2006-05-22 2007-11-29 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US20070276977A1 (en) * 2006-05-24 2007-11-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US20070288707A1 (en) * 2006-06-08 2007-12-13 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US20080016280A1 (en) * 2004-10-29 2008-01-17 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US20080040569A1 (en) * 2004-10-29 2008-02-14 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US20080046795A1 (en) * 2004-10-29 2008-02-21 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US20080065851A1 (en) * 2006-09-07 2008-03-13 Markus Balb Method and apparatus for sending data from a memory
US20080065938A1 (en) * 2004-10-29 2008-03-13 International Business Machines Corporation System, method and storage medium for testing a memory module
US20080104290A1 (en) * 2004-10-29 2008-05-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US20080109565A1 (en) * 2006-11-02 2008-05-08 Jasmin Ajanovic PCI express enhancements and extensions
US20080115137A1 (en) * 2006-08-02 2008-05-15 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US20080133864A1 (en) * 2006-12-01 2008-06-05 Jonathan Randall Hinkle Apparatus, system, and method for caching fully buffered memory
US20080155196A1 (en) * 2006-12-22 2008-06-26 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US20080177929A1 (en) * 2004-10-29 2008-07-24 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US20080183977A1 (en) * 2007-01-29 2008-07-31 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US20080183903A1 (en) * 2007-01-29 2008-07-31 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US20090094476A1 (en) * 2005-10-31 2009-04-09 International Business Machines Corporation Deriving clocks in a memory system
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7742438B1 (en) * 2004-10-21 2010-06-22 Owlink Technology, Inc. HDCP data transmission over a single communication channel
US7765368B2 (en) 2004-07-30 2010-07-27 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
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
US20140052927A1 (en) * 2012-08-17 2014-02-20 Advanced Micro Devices, Inc. Data cache prefetch hints
US8775764B2 (en) 2004-03-08 2014-07-08 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US8923405B1 (en) * 2010-01-25 2014-12-30 Ambarella, Inc. Memory access ordering for a transformation
US9336047B2 (en) 2014-06-30 2016-05-10 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US9348643B2 (en) 2014-06-30 2016-05-24 International Business Machines Corporation Prefetching of discontiguous storage locations as part of transactional execution
US9348753B2 (en) 2012-10-10 2016-05-24 Advanced Micro Devices, Inc. Controlling prefetch aggressiveness based on thrash events
US9389808B2 (en) 2013-08-22 2016-07-12 Kabushiki Kaisha Toshiba Storage device and data processing method
US9442877B2 (en) 2013-01-10 2016-09-13 Kabushiki Kaisha Toshiba Storage device
US9448939B2 (en) 2014-06-30 2016-09-20 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US9600287B2 (en) 2014-06-30 2017-03-21 International Business Machines Corporation Latent modification instruction for transactional execution
US9703560B2 (en) 2014-06-30 2017-07-11 International Business Machines Corporation Collecting transactional execution characteristics during transactional execution
US10372339B2 (en) * 2014-06-25 2019-08-06 Intel Corporation Extensible memory hub
US20210271593A1 (en) * 2009-07-16 2021-09-02 Netlist, Inc. Memory module with distributed data buffers

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6471635B1 (en) 2000-02-10 2002-10-29 Obtech Medical Ag Anal incontinence disease treatment with controlled wireless energy supply
US6464628B1 (en) 1999-08-12 2002-10-15 Obtech Medical Ag Mechanical anal incontinence
ATE304336T1 (en) 2000-02-10 2005-09-15 Potencia Medical Ag CONTROLLED URINARY INCONTINENCE TREATMENT
ATE295136T1 (en) 2000-02-10 2005-05-15 Potencia Medical Ag MECHANICAL DEVICE FOR TREATING IMPOTENCY
ATE380006T1 (en) 2000-02-11 2007-12-15 Potencia Medical Ag CONTROLLED IMPOTENCY TREATMENT
CN1196451C (en) 2000-02-14 2005-04-13 波滕西亚医疗公司 Male impotence prosthesis apparatus with wireless energy supply
US7442165B2 (en) 2000-02-14 2008-10-28 Obtech Medical Ag Penile prosthesis
US7565326B2 (en) * 2000-05-25 2009-07-21 Randle William M Dialect independent multi-dimensional integrator using a normalized language platform and secure controlled access
US7529519B2 (en) 2003-02-10 2009-05-05 Leapfrog Enterprises, Inc. Interactive handheld educational apparatus with stylus
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
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
US8171331B2 (en) * 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7340537B2 (en) 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US20040264256A1 (en) * 2003-06-26 2004-12-30 Mauritz Karl H Electrical solution to enable high-speed interfaces
DE10335978B4 (en) * 2003-08-06 2006-02-16 Infineon Technologies Ag Hub module for connecting one or more memory modules
US7234070B2 (en) * 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7721060B2 (en) * 2003-11-13 2010-05-18 Intel Corporation Method and apparatus for maintaining data density for derived clocking
US7533218B2 (en) 2003-11-17 2009-05-12 Sun Microsystems, Inc. Memory system topology
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US20050210185A1 (en) * 2004-03-18 2005-09-22 Kirsten Renick System and method for organizing data transfers with memory hub memory modules
US8050176B2 (en) * 2004-03-30 2011-11-01 The Boeing Company Methods and systems for a data processing system having radiation tolerant bus
US7228442B2 (en) * 2004-03-30 2007-06-05 The Boeing Company Method and systems for a radiation tolerant bus interface circuit
US7337273B2 (en) 2004-03-31 2008-02-26 Microsoft Corporation Strategies for reading information from a mass storage medium using a cache memory
US7222213B2 (en) * 2004-05-17 2007-05-22 Micron Technology, Inc. System and method for communicating the synchronization status of memory modules during initialization of the memory modules
US7212423B2 (en) 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US8122187B2 (en) * 2004-07-02 2012-02-21 Qualcomm Incorporated Refreshing dynamic volatile memory
US20060015450A1 (en) * 2004-07-13 2006-01-19 Wells Fargo Bank, N.A. Financial services network and associated processes
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
US7224595B2 (en) 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7809991B2 (en) * 2005-01-11 2010-10-05 Hewlett-Packard Development Company, L.P. System and method to qualify data capture
US7228472B2 (en) * 2005-01-11 2007-06-05 Hewlett-Packard Development Company, L.P. System and method to control data capture
US7752016B2 (en) * 2005-01-11 2010-07-06 Hewlett-Packard Development Company, L.P. System and method for data analysis
US20060195631A1 (en) * 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US7640392B2 (en) 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
US7620783B2 (en) * 2005-02-14 2009-11-17 Qualcomm Incorporated Method and apparatus for obtaining memory status information cross-reference to related applications
JP2006259906A (en) * 2005-03-15 2006-09-28 Ricoh Co Ltd Communication control device, communication control system, power saving control method, power saving control program and recording medium recording program
JP4274140B2 (en) 2005-03-24 2009-06-03 日本電気株式会社 Memory system with hot swap function and replacement method of faulty memory module
US7827462B2 (en) 2005-03-31 2010-11-02 Intel Corporation Combined command and data code
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
EP1872192B1 (en) 2005-04-21 2012-09-12 Violin Memory, Inc. Interconnection system
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US20060288132A1 (en) * 2005-05-31 2006-12-21 Mccall James A Memory single-to-multi load repeater architecture
US20070016698A1 (en) * 2005-06-22 2007-01-18 Vogt Pete D Memory channel response scheduling
US7966446B2 (en) * 2005-09-12 2011-06-21 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US7930492B2 (en) * 2005-09-12 2011-04-19 Samsung Electronics Co., Ltd. Memory system having low power consumption
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US20070076502A1 (en) 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
JP5193045B2 (en) * 2005-09-30 2013-05-08 モサイド・テクノロジーズ・インコーポレーテッド Memory with output controller
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
US7652922B2 (en) * 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
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
KR100818298B1 (en) 2005-12-08 2008-03-31 한국전자통신연구원 Memory with flexible serial interfaces and Method for accessing to Memory threreof
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
US7516349B2 (en) 2005-12-29 2009-04-07 Intel Corporation Synchronized memory channels with unidirectional links
JP5214587B2 (en) * 2006-03-31 2013-06-19 モスエイド テクノロジーズ インコーポレイテッド Flash memory system control scheme
KR100801709B1 (en) * 2006-05-16 2008-02-11 삼성전자주식회사 Memory module and memory system comprising the same
US8185711B2 (en) 2006-05-16 2012-05-22 Samsung Electronics Co., Ltd. Memory module, a memory system including a memory controller and a memory module and methods thereof
US7430139B2 (en) * 2006-06-12 2008-09-30 Via Technologies, Inc. Shared memory synchronization systems and methods
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US7861140B2 (en) * 2006-10-31 2010-12-28 Globalfoundries Inc. Memory system including asymmetric high-speed differential memory interconnect
US7694031B2 (en) * 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
US20080104352A1 (en) * 2006-10-31 2008-05-01 Advanced Micro Devices, Inc. Memory system including a high-speed serial buffer
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US7881303B2 (en) * 2006-12-13 2011-02-01 GlobalFoundries, Inc. Command packet packing to mitigate CRC overhead
US7783918B2 (en) * 2007-02-15 2010-08-24 Inventec Corporation Data protection method of storage device
US8122202B2 (en) * 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
EP2109862A4 (en) * 2007-02-16 2010-08-04 Mosaid Technologies Inc Semiconductor device and method for reducing power consumption in a system having interconnected devices
US8046527B2 (en) 2007-02-22 2011-10-25 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US7796462B2 (en) 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
JP5669338B2 (en) * 2007-04-26 2015-02-12 株式会社日立製作所 Semiconductor device
TW200901042A (en) * 2007-06-23 2009-01-01 Jmicron Technology Corp Storage device and circuit element switching method thereof
US7890788B2 (en) * 2007-07-09 2011-02-15 John Yin Clock data recovery and synchronization in interconnected devices
WO2009027802A1 (en) * 2007-08-28 2009-03-05 Nokia Corporation Method for bus testing and addressing in mass memory components
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
KR100934227B1 (en) 2007-09-21 2009-12-29 한국전자통신연구원 Memory switching control device using open serial matching, its operation method and data storage device applied thereto
US8503678B2 (en) 2007-09-28 2013-08-06 Intel Corporation Suppressing power supply noise using data scrambling in double data rate memory systems
WO2009046300A2 (en) * 2007-10-05 2009-04-09 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
WO2010042045A1 (en) 2008-10-10 2010-04-15 Milux Holding S.A. A system, an apparatus, and a method for treating a sexual dysfunctional female patient
US8594110B2 (en) 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
EP3964243A1 (en) * 2008-01-28 2022-03-09 Implantica Patent Ltd Blood clot removal device, system, and method
HUE054386T2 (en) 2008-01-29 2021-09-28 Implantica Patent Ltd Apparatus for treating obesity
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US20100005206A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Automatic read data flow control in a cascade interconnect memory system
US8139390B2 (en) * 2008-07-08 2012-03-20 Mosaid Technologies Incorporated Mixed data rates in memory devices and systems
US8122421B2 (en) * 2008-08-14 2012-02-21 Omnivision Technologies, Inc. System, and method, and computer readable medium for designing a scalable clustered storage integrated circuit for multi-media processing
US8560735B2 (en) * 2008-08-15 2013-10-15 Micron Technology, Inc. Chained bus method and device
EP2349078A4 (en) 2008-10-10 2018-02-07 Kirk Promotion LTD. Fastening means for implantable medcial control assembly
WO2010042058A1 (en) 2008-10-10 2010-04-15 Milux Holding S.A. An improved artificial valve
EP3708136A1 (en) 2008-10-10 2020-09-16 MedicalTree Patent Ltd. Heart help device, system, and method
EP2349170B1 (en) 2008-10-10 2023-09-27 Implantica Patent Ltd. Apparatus for the treatment of female sexual dysfunction
CA3004075C (en) 2008-10-10 2020-06-02 Medicaltree Patent Ltd. Heart help device, system, and method
DE102009004565B4 (en) * 2009-01-14 2015-04-02 Texas Instruments Deutschland Gmbh Apparatus and method for caching data between memory controller and DRAM
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
CN101872308A (en) * 2009-04-25 2010-10-27 鸿富锦精密工业(深圳)有限公司 Memory bar control system and control method thereof
US8046628B2 (en) * 2009-06-05 2011-10-25 Micron Technology, Inc. Failure recovery memory devices and methods
US8521980B2 (en) * 2009-07-16 2013-08-27 Mosaid Technologies Incorporated Simultaneous read and write data transfer
US10952836B2 (en) 2009-07-17 2021-03-23 Peter Forsell Vaginal operation method for the treatment of urinary incontinence in women
US9949812B2 (en) 2009-07-17 2018-04-24 Peter Forsell Vaginal operation method for the treatment of anal incontinence in women
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US20120079313A1 (en) * 2010-09-24 2012-03-29 Honeywell International Inc. Distributed memory array supporting random access and file storage operations
WO2013028854A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
US8495440B2 (en) 2011-08-30 2013-07-23 Advanced Micro Devices, Inc. Fully programmable parallel PRBS generator
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
WO2013141545A1 (en) 2012-03-21 2013-09-26 삼성에스디에스 주식회사 Anti-malware system and method for processing data in system
CN102693337B (en) * 2012-05-11 2014-04-30 江苏中科梦兰电子科技有限公司 Method for designing memory device compatible with 8-bit and 16-bit memory chips
US9285865B2 (en) 2012-06-29 2016-03-15 Oracle International Corporation Dynamic link scaling based on bandwidth utilization
CN103988186A (en) * 2012-10-12 2014-08-13 华为技术有限公司 Memory system, memory module, memory module access method and computer system
JP6005533B2 (en) 2013-01-17 2016-10-12 株式会社東芝 Storage device and storage method
KR20150010150A (en) * 2013-07-18 2015-01-28 삼성전자주식회사 Memory system and method for operating the same
CN104461727A (en) * 2013-09-16 2015-03-25 华为技术有限公司 Memory module access method and device
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
JP2015152949A (en) 2014-02-10 2015-08-24 株式会社東芝 storage system
US9558143B2 (en) * 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US9792246B2 (en) 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity
US10678704B2 (en) 2016-03-29 2020-06-09 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10528284B2 (en) * 2016-03-29 2020-01-07 Samsung Electronics Co., Ltd. Method and apparatus for enabling larger memory capacity than physical memory size
US10496543B2 (en) 2016-03-31 2019-12-03 Samsung Electronics Co., Ltd. Virtual bucket multiple hash tables for efficient memory in-line deduplication application
US10573354B2 (en) * 2016-09-22 2020-02-25 Smart Modular Technologies, Inc. High density memory module system
US10095421B2 (en) 2016-10-21 2018-10-09 Advanced Micro Devices, Inc. Hybrid memory module bridge network and buffers
US11373691B2 (en) * 2019-12-20 2022-06-28 Micron Technology Inc. Clock locking for packet based communications of memory devices
US11513976B2 (en) * 2020-03-31 2022-11-29 Western Digital Technologies, Inc. Advanced CE encoding for bus multiplexer grid for SSD
TWI756810B (en) * 2020-09-02 2022-03-01 瑞昱半導體股份有限公司 Chip and associated chip system
TWI802065B (en) * 2021-10-29 2023-05-11 飛捷科技股份有限公司 Communication interface adapter capable of controlling power and signals of peripheral devices, method for dynamically assigning identification codes of communication interface adapter, and method for automatically diagnosing peripheral devices and repairing problems

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926312A (en) * 1985-12-25 1990-05-15 Nec Corporation Program skip operation control system
US5721865A (en) * 1995-01-20 1998-02-24 Hitachi, Ltd. Information processing apparatus with prefetch control for prefetching data structure from memory through cache memory
US6338108B1 (en) * 1997-04-15 2002-01-08 Nec Corporation Coprocessor-integrated packet-type memory LSI, packet-type memory/coprocessor bus, and control method thereof
US6442644B1 (en) * 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
US20030009632A1 (en) * 2001-06-21 2003-01-09 International Business Machines Corp. Method and system for prefetching utilizing memory initiated prefetch write operations
US6571318B1 (en) * 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US6643745B1 (en) * 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
US20040054852A1 (en) * 2002-09-17 2004-03-18 Yueh-Yao Nain Cache/prefetch frame of serial data system and operation method of the same
US6727831B2 (en) * 1999-09-17 2004-04-27 Kabushiki Kaisha Toshiba Semiconductor integrated circuit device and data transmission system
US6842864B1 (en) * 1998-03-10 2005-01-11 Rambus Inc. Method and apparatus for configuring access times of memory devices
US6996639B2 (en) * 2002-12-10 2006-02-07 Intel Corporation Configurably prefetching head-of-queue from ring buffers

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604689A (en) * 1983-04-15 1986-08-05 Convergent Technologies, Inc. Bus repeater
US5434861A (en) * 1989-02-02 1995-07-18 Pritty; David Deterministic timed bus access method
GB2234372A (en) * 1989-07-18 1991-01-30 Anamartic Ltd Mass memory device
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Integrated circuit i/o using a high performance bus interface
FR2707778B1 (en) * 1993-07-15 1995-08-18 Bull Sa Processor node.
US6226723B1 (en) * 1996-09-20 2001-05-01 Advanced Memory International, Inc. Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
US6970968B1 (en) * 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US6587912B2 (en) * 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US6249840B1 (en) * 1998-10-23 2001-06-19 Enhanced Memory Systems, Inc. Multi-bank ESDRAM with cross-coupled SRAM cache registers
US6272601B1 (en) * 1999-05-20 2001-08-07 International Business Machines Corporation Critical word forwarding in a multiprocessor system
JP3892655B2 (en) * 1999-09-17 2007-03-14 株式会社東芝 Semiconductor integrated circuit device
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6430648B1 (en) * 2000-01-05 2002-08-06 International Business Machines Corporation Arranging address space to access multiple memory banks
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
KR100335501B1 (en) * 2000-06-09 2002-05-08 윤종용 Memory modules with improved data bus performance
US6625687B1 (en) * 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6658509B1 (en) * 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
US6493250B2 (en) * 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered 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
US6877079B2 (en) * 2001-03-06 2005-04-05 Samsung Electronics Co., Ltd. Memory system having point-to-point bus configuration
JP2002278825A (en) * 2001-03-19 2002-09-27 Ricoh Co Ltd Memory control unit
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US7184408B2 (en) * 2001-07-31 2007-02-27 Denton I Claude Method and apparatus for programmable generation of traffic streams
DE10146491B4 (en) * 2001-09-21 2006-04-13 Infineon Technologies Ag Electronic circuit with a driver circuit
US6781911B2 (en) * 2002-04-09 2004-08-24 Intel Corporation Early power-down digital memory device and method
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7389364B2 (en) * 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926312A (en) * 1985-12-25 1990-05-15 Nec Corporation Program skip operation control system
US5721865A (en) * 1995-01-20 1998-02-24 Hitachi, Ltd. Information processing apparatus with prefetch control for prefetching data structure from memory through cache memory
US6338108B1 (en) * 1997-04-15 2002-01-08 Nec Corporation Coprocessor-integrated packet-type memory LSI, packet-type memory/coprocessor bus, and control method thereof
US6442644B1 (en) * 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
US6842864B1 (en) * 1998-03-10 2005-01-11 Rambus Inc. Method and apparatus for configuring access times of memory devices
US6643745B1 (en) * 1998-03-31 2003-11-04 Intel Corporation Method and apparatus for prefetching data into cache
US6727831B2 (en) * 1999-09-17 2004-04-27 Kabushiki Kaisha Toshiba Semiconductor integrated circuit device and data transmission system
US6571318B1 (en) * 2001-03-02 2003-05-27 Advanced Micro Devices, Inc. Stride based prefetcher with confidence counter and dynamic prefetch-ahead mechanism
US20030009632A1 (en) * 2001-06-21 2003-01-09 International Business Machines Corp. Method and system for prefetching utilizing memory initiated prefetch write operations
US6760817B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Method and system for prefetching utilizing memory initiated prefetch write operations
US20040054852A1 (en) * 2002-09-17 2004-03-18 Yueh-Yao Nain Cache/prefetch frame of serial data system and operation method of the same
US6996639B2 (en) * 2002-12-10 2006-02-07 Intel Corporation Configurably prefetching head-of-queue from ring buffers

Cited By (233)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050030313A1 (en) * 2000-06-23 2005-02-10 William Radke Apparatus and method for distributed memory control in a graphics processing system
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7945737B2 (en) 2002-06-07 2011-05-17 Round Rock Research, Llc Memory hub with internal cache and/or memory access prediction
US20030229770A1 (en) * 2002-06-07 2003-12-11 Jeddeloh Joseph M. Memory hub with internal cache and/or memory access prediction
US20090125688A1 (en) * 2002-06-07 2009-05-14 Jeddeloh Joseph M Memory hub with internal cache and/or memory access prediction
US8195918B2 (en) 2002-06-07 2012-06-05 Round Rock Research, Llc Memory hub with internal cache and/or memory access prediction
US7644253B2 (en) * 2002-06-07 2010-01-05 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US8499127B2 (en) 2002-06-07 2013-07-30 Round Rock Research, Llc Memory hub with internal cache and/or memory access prediction
US20070055817A1 (en) * 2002-06-07 2007-03-08 Jeddeloh Joseph M Memory hub with internal cache and/or memory access prediction
US20070025133A1 (en) * 2002-08-02 2007-02-01 Taylor George R System and method for optical interconnecting memory devices
US20070035980A1 (en) * 2002-08-02 2007-02-15 Taylor George R System and method for optically interconnecting memory devices
US20040024959A1 (en) * 2002-08-02 2004-02-05 Taylor George R. System and method for optically interconnecting memory devices
US20050146946A1 (en) * 2002-08-02 2005-07-07 Taylor George R. System and method for optically interconnecting memory devices
US7117316B2 (en) * 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US8954687B2 (en) 2002-08-05 2015-02-10 Micron Technology, Inc. Memory hub and access method having a sequencer and internal row caching
US20050223161A1 (en) * 2002-08-05 2005-10-06 Jeddeloh Joseph M Memory hub and access method having internal row caching
US20040024978A1 (en) * 2002-08-05 2004-02-05 Jeddeloh Joseph M. Memory hub and access method having internal row caching
US20060204247A1 (en) * 2002-08-09 2006-09-14 Tim Murphy System and method for multiple bit optical data transmission in memory systems
US20040028412A1 (en) * 2002-08-09 2004-02-12 Tim Murphy System and method for multiple bit optical data transmission in memory systems
US20060174070A1 (en) * 2002-08-16 2006-08-03 Jeddeloh Joseph M Memory hub bypass circuit and method
US20040034753A1 (en) * 2002-08-16 2004-02-19 Jeddeloh Joseph M. Memory hub bypass circuit and method
US20050132159A1 (en) * 2002-08-16 2005-06-16 Jeddeloh Joseph M. Memory hub bypass circuit and method
US7908452B2 (en) 2002-08-29 2011-03-15 Round Rock Research, Llc Method and system for controlling memory accesses to memory modules having a memory hub architecture
US8234479B2 (en) 2002-08-29 2012-07-31 Round Rock Research, Llc System for controlling memory accesses to memory modules having a memory hub architecture
US7805586B2 (en) 2002-08-29 2010-09-28 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US20050066137A1 (en) * 2002-08-29 2005-03-24 Jeddeloh Joseph M. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US8190819B2 (en) 2002-08-29 2012-05-29 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US20060206667A1 (en) * 2002-08-29 2006-09-14 Ryan Kevin J System and method for optimizing interconnections of memory devices in a multichip module
US8086815B2 (en) 2002-08-29 2011-12-27 Round Rock Research, Llc System for controlling memory accesses to memory modules having a memory hub architecture
US20070271435A1 (en) * 2002-08-29 2007-11-22 Jeddeloh Joseph M Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7716444B2 (en) 2002-08-29 2010-05-11 Round Rock Research, Llc Method and system for controlling memory accesses to memory modules having a memory hub architecture
US20040257890A1 (en) * 2002-09-09 2004-12-23 Lee Terry R. Wavelength division multiplexed memory module, memory system and method
US20040047169A1 (en) * 2002-09-09 2004-03-11 Lee Terry R. Wavelength division multiplexed memory module, memory system and method
US20050030797A1 (en) * 2003-06-11 2005-02-10 Pax George E. Memory module and method having improved signal routing topology
US7746095B2 (en) 2003-06-11 2010-06-29 Round Rock Research, Llc Memory module and method having improved signal routing topology
US20080036492A1 (en) * 2003-06-11 2008-02-14 Micron Technology, Inc. Memory module and method having improved signal routing topology
US20090243649A1 (en) * 2003-06-11 2009-10-01 Pax George E Memory module and method having improved signal routing topology
US20060023528A1 (en) * 2003-06-11 2006-02-02 Pax George E Memory module and method having improved signal routing topology
US7966444B2 (en) 2003-06-19 2011-06-21 Round Rock Research, Llc Reconfigurable memory module and method
US20040260864A1 (en) * 2003-06-19 2004-12-23 Lee Terry R. Reconfigurable memory module and method
US8200884B2 (en) 2003-06-19 2012-06-12 Round Rock Research, Llc Reconfigurable memory module and method
US8732383B2 (en) 2003-06-19 2014-05-20 Round Rock Research, Llc Reconfigurable memory module and method
US7818712B2 (en) 2003-06-19 2010-10-19 Round Rock Research, Llc Reconfigurable memory module and method
US20070011392A1 (en) * 2003-06-19 2007-01-11 Lee Terry R Reconfigurable memory module and method
US20080140952A1 (en) * 2003-06-19 2008-06-12 Micro Technology, Inc. Reconfigurable memory module and method
US8127081B2 (en) 2003-06-20 2012-02-28 Round Rock Research, Llc Memory hub and access method having internal prefetch buffers
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US20040260957A1 (en) * 2003-06-20 2004-12-23 Jeddeloh Joseph M. System and method for selective memory module power management
US20060288172A1 (en) * 2003-06-20 2006-12-21 Lee Terry R Memory hub and access method having internal prefetch buffers
US20060206738A1 (en) * 2003-06-20 2006-09-14 Jeddeloh Joseph M System and method for selective memory module power management
US20060212655A1 (en) * 2003-06-20 2006-09-21 Jeddeloh Joseph M Posted write buffers and method of posting write requests in memory modules
US20040260909A1 (en) * 2003-06-20 2004-12-23 Lee Terry R. Memory hub and access method having internal prefetch buffers
US20040260891A1 (en) * 2003-06-20 2004-12-23 Jeddeloh Joseph M. Posted write buffers and methods of posting write requests in memory modules
US20050021884A1 (en) * 2003-07-22 2005-01-27 Jeddeloh Joseph M. Apparatus and method for direct memory access in a hub-based memory system
US7966430B2 (en) 2003-07-22 2011-06-21 Round Rock Research, Llc Apparatus and method for direct memory access in a hub-based memory system
US20050160201A1 (en) * 2003-07-22 2005-07-21 Jeddeloh Joseph M. Apparatus and method for direct memory access in a hub-based memory system
US20090327532A1 (en) * 2003-07-22 2009-12-31 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US8209445B2 (en) 2003-07-22 2012-06-26 Round Rock Research, Llc Apparatus and method for direct memory access in a hub-based memory system
US20080016401A1 (en) * 2003-08-19 2008-01-17 Micro Technology, Inc. System and method for on-board diagnostics of memory modules
US20060206766A1 (en) * 2003-08-19 2006-09-14 Jeddeloh Joseph M System and method for on-board diagnostics of memory modules
US7913122B2 (en) 2003-08-19 2011-03-22 Round Rock Research, Llc System and method for on-board diagnostics of memory modules
US20050044457A1 (en) * 2003-08-19 2005-02-24 Jeddeloh Joseph M. System and method for on-board diagnostics of memory modules
US20090106591A1 (en) * 2003-08-19 2009-04-23 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US20060200602A1 (en) * 2003-08-20 2006-09-07 Ralph James Method and system for capturing and bypassing memory transactions in a hub-based memory system
US8244952B2 (en) 2003-08-28 2012-08-14 Round Rock Research, Llc Multiple processor system and method including multiple memory hub modules
US20050146943A1 (en) * 2003-08-28 2005-07-07 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US20070033317A1 (en) * 2003-08-28 2007-02-08 Jeddeloh Joseph M Multiple processor system and method including multiple memory hub modules
US9082461B2 (en) 2003-08-28 2015-07-14 Round Rock Research, Llc Multiple processor system and method including multiple memory hub modules
US7873775B2 (en) 2003-08-28 2011-01-18 Round Rock Research, Llc Multiple processor system and method including multiple memory hub modules
US20050146944A1 (en) * 2003-08-28 2005-07-07 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US20050050255A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Multiple processor system and method including multiple memory hub modules
US8832404B2 (en) 2003-09-18 2014-09-09 Round Rock Research, Llc Memory hub with integrated non-volatile memory
US20090132781A1 (en) * 2003-09-18 2009-05-21 Schnepper Randy L Memory hub with integrated non-volatile memory
US7975122B2 (en) 2003-09-18 2011-07-05 Round Rock Research, Llc Memory hub with integrated non-volatile memory
US20060200620A1 (en) * 2003-09-18 2006-09-07 Schnepper Randy L Memory hub with integrated non-volatile memory
US8589643B2 (en) 2003-10-20 2013-11-19 Round Rock Research, Llc Arbitration system and method for memory responses in a hub-based memory system
US20060271746A1 (en) * 2003-10-20 2006-11-30 Meyer James W Arbitration system and method for memory responses in a hub-based memory system
US20050149774A1 (en) * 2003-12-29 2005-07-07 Jeddeloh Joseph M. System and method for read synchronization of memory modules
US20060206679A1 (en) * 2003-12-29 2006-09-14 Jeddeloh Joseph M System and method for read synchronization of memory modules
US8880833B2 (en) 2003-12-29 2014-11-04 Micron Technology, Inc. System and method for read synchronization of memory modules
US8392686B2 (en) 2003-12-29 2013-03-05 Micron Technology, Inc. System and method for read synchronization of memory modules
US20050172084A1 (en) * 2004-01-30 2005-08-04 Jeddeloh Joseph M. Buffer control system and method for a memory system having memory request buffers
US8788765B2 (en) 2004-01-30 2014-07-22 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US8504782B2 (en) 2004-01-30 2013-08-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US20050177695A1 (en) * 2004-02-05 2005-08-11 Larson Douglas A. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20050177690A1 (en) * 2004-02-05 2005-08-11 Laberge Paul A. Dynamic command and/or address mirroring system and method for memory modules
US9164937B2 (en) 2004-02-05 2015-10-20 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US8291173B2 (en) 2004-02-05 2012-10-16 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20070143553A1 (en) * 2004-02-05 2007-06-21 Micron Technology, Inc. Dynamic command and/or address mirroring system and method for memory modules
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20080294862A1 (en) * 2004-02-05 2008-11-27 Micron Technology, Inc. Arbitration system having a packet memory and method for memory responses in a hub-based memory system
US8694735B2 (en) 2004-02-05 2014-04-08 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20050177677A1 (en) * 2004-02-05 2005-08-11 Jeddeloh Joseph M. Arbitration system having a packet memory and method for memory responses in a hub-based memory system
US9274991B2 (en) 2004-03-08 2016-03-01 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US8775764B2 (en) 2004-03-08 2014-07-08 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US20050216677A1 (en) * 2004-03-24 2005-09-29 Jeddeloh Joseph M Memory arbitration system and method having an arbitration packet protocol
US9032166B2 (en) 2004-03-24 2015-05-12 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US8555006B2 (en) 2004-03-24 2013-10-08 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US8082404B2 (en) 2004-03-24 2011-12-20 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US20080294856A1 (en) * 2004-03-24 2008-11-27 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US20070180171A1 (en) * 2004-03-24 2007-08-02 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US20060195647A1 (en) * 2004-03-25 2006-08-31 Jeddeloh Joseph M System and method for memory hub-based expansion bus
US20060179203A1 (en) * 2004-03-25 2006-08-10 Jeddeloh Joseph M System and method for memory hub-based expansion bus
US8117371B2 (en) 2004-03-25 2012-02-14 Round Rock Research, Llc System and method for memory hub-based expansion bus
US20070168595A1 (en) * 2004-03-25 2007-07-19 Micron Technology, Inc. System and method for memory hub-based expansion bus
US20050216648A1 (en) * 2004-03-25 2005-09-29 Jeddeloh Joseph M System and method for memory hub-based expansion bus
US20100036989A1 (en) * 2004-03-25 2010-02-11 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7899969B2 (en) 2004-03-25 2011-03-01 Round Rock Research, Llc System and method for memory hub-based expansion bus
US20050213611A1 (en) * 2004-03-29 2005-09-29 Ralph James Method and system for synchronizing communications links in a hub-based memory system
US20060218318A1 (en) * 2004-03-29 2006-09-28 Ralph James Method and system for synchronizing communications links in a hub-based memory system
US20100019822A1 (en) * 2004-04-05 2010-01-28 Laberge Paul A Delay line synchronizer apparatus and method
US20050218956A1 (en) * 2004-04-05 2005-10-06 Laberge Paul A Delay line synchronizer apparatus and method
US8164375B2 (en) 2004-04-05 2012-04-24 Round Rock Research, Llc Delay line synchronizer apparatus and method
US20060066375A1 (en) * 2004-04-05 2006-03-30 Laberge Paul A Delay line synchronizer apparatus and method
US8438329B2 (en) 2004-04-08 2013-05-07 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US20050228939A1 (en) * 2004-04-08 2005-10-13 Janzen Jeffery W System and method for optimizing interconnections of components in a multichip memory module
US7870329B2 (en) 2004-04-08 2011-01-11 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US20110103122A1 (en) * 2004-04-08 2011-05-05 Janzen Jeffery W System and method for optimizing interconnections of components in a multichip memory module
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
US20080133853A1 (en) * 2004-05-14 2008-06-05 Jeddeloh Joseph M Memory hub and method for memory sequencing
US20070033353A1 (en) * 2004-05-14 2007-02-08 Jeddeloh Joseph M Memory hub and method for memory sequencing
US20050268060A1 (en) * 2004-05-28 2005-12-01 Cronin Jeffrey J Method and system for terminating write commands in a hub-based memory system
US7774559B2 (en) 2004-05-28 2010-08-10 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7823024B2 (en) 2004-06-04 2010-10-26 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US8239607B2 (en) 2004-06-04 2012-08-07 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US20050286506A1 (en) * 2004-06-04 2005-12-29 Laberge Paul A System and method for an asynchronous data buffer having buffer write and read pointers
US20050283681A1 (en) * 2004-06-04 2005-12-22 Jeddeloh Joseph M Memory hub tester interface and method for use thereof
US7765368B2 (en) 2004-07-30 2010-07-27 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US20060271720A1 (en) * 2004-08-31 2006-11-30 Ralph James System and method for transmitting data packets in a computer system having a memory hub architecture
US8346998B2 (en) 2004-08-31 2013-01-01 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US20060047891A1 (en) * 2004-08-31 2006-03-02 Ralph James System and method for transmitting data packets in a computer system having a memory hub architecture
US20110191517A1 (en) * 2004-08-31 2011-08-04 Ralph James System and method for transmitting data packets in a computer system having a memory hub architecture
US7949803B2 (en) 2004-08-31 2011-05-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7742438B1 (en) * 2004-10-21 2010-06-22 Owlink Technology, Inc. HDCP data transmission over a single communication channel
US20080104290A1 (en) * 2004-10-29 2008-05-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US20080313374A1 (en) * 2004-10-29 2008-12-18 International Business Machines Corporation Service interface to a memory system
US20080016280A1 (en) * 2004-10-29 2008-01-17 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US8296541B2 (en) 2004-10-29 2012-10-23 International Business Machines Corporation Memory subsystem with positional read data latency
US20080177929A1 (en) * 2004-10-29 2008-07-24 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7844771B2 (en) 2004-10-29 2010-11-30 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US20090150636A1 (en) * 2004-10-29 2009-06-11 International Business Machines Corporation Memory subsystem with positional read data latency
US20080040569A1 (en) * 2004-10-29 2008-02-14 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US20080065938A1 (en) * 2004-10-29 2008-03-13 International Business Machines Corporation System, method and storage medium for testing a memory module
US8589769B2 (en) 2004-10-29 2013-11-19 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US20080046795A1 (en) * 2004-10-29 2008-02-21 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US8140942B2 (en) 2004-10-29 2012-03-20 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US20060095701A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US20060095629A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US20080046796A1 (en) * 2004-10-29 2008-02-21 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US20070005902A1 (en) * 2004-12-07 2007-01-04 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US20060168407A1 (en) * 2005-01-26 2006-07-27 Micron Technology, Inc. Memory hub system and method having large virtual page size
US20060294316A1 (en) * 2005-06-22 2006-12-28 Via Technologies, Inc. Selectively prefetch method and bridge module
US20090094476A1 (en) * 2005-10-31 2009-04-09 International Business Machines Corporation Deriving clocks in a memory system
US7934115B2 (en) 2005-10-31 2011-04-26 International Business Machines Corporation Deriving clocks in a memory system
US20070286199A1 (en) * 2005-11-28 2007-12-13 International Business Machines Corporation Method and system for providing identification tags in a memory system having indeterminate data response times
US8145868B2 (en) 2005-11-28 2012-03-27 International Business Machines Corporation Method and system for providing frame start indication in a memory system having indeterminate read data latency
US8151042B2 (en) 2005-11-28 2012-04-03 International Business Machines Corporation Method and system for providing identification tags in a memory system having indeterminate data response times
US8495328B2 (en) 2005-11-28 2013-07-23 International Business Machines Corporation Providing frame start indication in a memory system having indeterminate read data latency
US8327105B2 (en) 2005-11-28 2012-12-04 International Business Machines Corporation Providing frame start indication in a memory system having indeterminate read data latency
US20070160053A1 (en) * 2005-11-28 2007-07-12 Coteus Paul W Method and system for providing indeterminate read data latency in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
KR100656814B1 (en) * 2006-01-17 2006-12-14 신잔토개발 주식회사 Separating and washing device for construction waste
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
WO2007135144A1 (en) * 2006-05-22 2007-11-29 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US20080005479A1 (en) * 2006-05-22 2008-01-03 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US20070276977A1 (en) * 2006-05-24 2007-11-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US20070288707A1 (en) * 2006-06-08 2007-12-13 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US20080115137A1 (en) * 2006-08-02 2008-05-15 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US20080065851A1 (en) * 2006-09-07 2008-03-13 Markus Balb Method and apparatus for sending data from a memory
US7757064B2 (en) * 2006-09-07 2010-07-13 Infineon Technologies Ag Method and apparatus for sending data from a memory
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
US8549183B2 (en) 2006-11-02 2013-10-01 Intel Corporation PCI express enhancements and extensions
US20110238882A1 (en) * 2006-11-02 2011-09-29 Jasmin Ajanovic Pci express enhancements and extensions
US8447888B2 (en) * 2006-11-02 2013-05-21 Intel Corporation PCI express enhancements and extensions
US8473642B2 (en) 2006-11-02 2013-06-25 Intel Corporation PCI express enhancements and extensions including device window caching
US9535838B2 (en) 2006-11-02 2017-01-03 Intel Corporation Atomic operations in PCI express
US8230120B2 (en) 2006-11-02 2012-07-24 Intel Corporation PCI express enhancements and extensions
US8230119B2 (en) 2006-11-02 2012-07-24 Intel Corporation PCI express enhancements and extensions
US20110072164A1 (en) * 2006-11-02 2011-03-24 Jasmin Ajanovic Pci express enhancements and extensions
US8555101B2 (en) 2006-11-02 2013-10-08 Intel Corporation PCI express enhancements and extensions
US20120089750A1 (en) * 2006-11-02 2012-04-12 Jasmin Ajanovic Pci express enhancements and extensions
US8099523B2 (en) 2006-11-02 2012-01-17 Intel Corporation PCI express enhancements and extensions including transactions having prefetch parameters
US9032103B2 (en) 2006-11-02 2015-05-12 Intel Corporation Transaction re-ordering
US9442855B2 (en) 2006-11-02 2016-09-13 Intel Corporation Transaction layer packet formatting
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US20110208925A1 (en) * 2006-11-02 2011-08-25 Jasmin Ajanovic Pci express enhancements and extensions
US9026682B2 (en) 2006-11-02 2015-05-05 Intel Corporation Prefectching in PCI express
US20110173367A1 (en) * 2006-11-02 2011-07-14 Jasmin Ajanovic Pci express enhancements and extensions
US8793404B2 (en) 2006-11-02 2014-07-29 Intel Corporation Atomic operations
US20110161703A1 (en) * 2006-11-02 2011-06-30 Jasmin Ajanovic Pci express enhancements and extensions
US20080109565A1 (en) * 2006-11-02 2008-05-08 Jasmin Ajanovic PCI express enhancements and extensions
US9098415B2 (en) 2006-11-02 2015-08-04 Intel Corporation PCI express transaction descriptor
US20080133864A1 (en) * 2006-12-01 2008-06-05 Jonathan Randall Hinkle Apparatus, system, and method for caching fully buffered memory
US20080155196A1 (en) * 2006-12-22 2008-06-26 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US8032711B2 (en) * 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US20080183903A1 (en) * 2007-01-29 2008-07-31 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US20080183977A1 (en) * 2007-01-29 2008-07-31 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US20210271593A1 (en) * 2009-07-16 2021-09-02 Netlist, Inc. Memory module with distributed data buffers
US10412400B1 (en) * 2010-01-25 2019-09-10 Ambarella, Inc. Memory access ordering for a transformation
US8923405B1 (en) * 2010-01-25 2014-12-30 Ambarella, Inc. Memory access ordering for a transformation
JP2015529356A (en) * 2012-08-17 2015-10-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated Data cache prefetch tips
EP2885714B1 (en) * 2012-08-17 2017-12-13 Advanced Micro Devices, Inc. Data cache prefetch hints
US9390018B2 (en) * 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
US20140052927A1 (en) * 2012-08-17 2014-02-20 Advanced Micro Devices, Inc. Data cache prefetch hints
CN104583981A (en) * 2012-08-17 2015-04-29 先进微装置公司 Data cache prefetch hints
US9348753B2 (en) 2012-10-10 2016-05-24 Advanced Micro Devices, Inc. Controlling prefetch aggressiveness based on thrash events
US9442877B2 (en) 2013-01-10 2016-09-13 Kabushiki Kaisha Toshiba Storage device
US9389808B2 (en) 2013-08-22 2016-07-12 Kabushiki Kaisha Toshiba Storage device and data processing method
US10372339B2 (en) * 2014-06-25 2019-08-06 Intel Corporation Extensible memory hub
US9600287B2 (en) 2014-06-30 2017-03-21 International Business Machines Corporation Latent modification instruction for transactional execution
US9600286B2 (en) 2014-06-30 2017-03-21 International Business Machines Corporation Latent modification instruction for transactional execution
US9632819B2 (en) 2014-06-30 2017-04-25 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US9703560B2 (en) 2014-06-30 2017-07-11 International Business Machines Corporation Collecting transactional execution characteristics during transactional execution
US9710271B2 (en) 2014-06-30 2017-07-18 International Business Machines Corporation Collecting transactional execution characteristics during transactional execution
US9720725B2 (en) 2014-06-30 2017-08-01 International Business Machines Corporation Prefetching of discontiguous storage locations as part of transactional execution
US9727370B2 (en) 2014-06-30 2017-08-08 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US9632820B2 (en) 2014-06-30 2017-04-25 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US9851971B2 (en) 2014-06-30 2017-12-26 International Business Machines Corporation Latent modification instruction for transactional execution
US9921834B2 (en) 2014-06-30 2018-03-20 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US10061586B2 (en) 2014-06-30 2018-08-28 International Business Machines Corporation Latent modification instruction for transactional execution
US10228943B2 (en) 2014-06-30 2019-03-12 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US9448939B2 (en) 2014-06-30 2016-09-20 International Business Machines Corporation Collecting memory operand access characteristics during transactional execution
US9348643B2 (en) 2014-06-30 2016-05-24 International Business Machines Corporation Prefetching of discontiguous storage locations as part of transactional execution
US9336047B2 (en) 2014-06-30 2016-05-10 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
US11243770B2 (en) 2014-06-30 2022-02-08 International Business Machines Corporation Latent modification instruction for substituting functionality of instructions during transactional execution

Also Published As

Publication number Publication date
CN100444141C (en) 2008-12-17
CN1788260A (en) 2006-06-14
DE112004000821T5 (en) 2006-05-11
DE112004000821B4 (en) 2016-12-01
TWI351613B (en) 2011-11-01
KR20060009345A (en) 2006-01-31
US7016213B2 (en) 2006-03-21
JP4836794B2 (en) 2011-12-14
WO2004102403A3 (en) 2005-08-25
TW200508875A (en) 2005-03-01
US7421525B2 (en) 2008-09-02
GB2416056B (en) 2006-08-23
JP2006528394A (en) 2006-12-14
GB0521694D0 (en) 2005-11-30
US20050166006A1 (en) 2005-07-28
US20050162882A1 (en) 2005-07-28
GB2416056A (en) 2006-01-11
KR101095025B1 (en) 2011-12-20
WO2004102403A2 (en) 2004-11-25
US20040230718A1 (en) 2004-11-18

Similar Documents

Publication Publication Date Title
US20050071542A1 (en) Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect
US7636833B2 (en) Method for selecting memory busses according to physical memory organization information associated with virtual address translation tables
US8135935B2 (en) ECC implementation in non-ECC components
US7277988B2 (en) System, method and storage medium for providing data caching and data compression in a memory subsystem
US7155572B2 (en) Method and apparatus for injecting write data into a cache
US4853846A (en) Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US7603526B2 (en) Systems and methods for providing dynamic memory pre-fetch
US7584336B2 (en) Systems and methods for providing data modification operations in memory subsystems
US7490217B2 (en) Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
US6370621B1 (en) Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6490661B1 (en) Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US7543100B2 (en) Node controller for a data storage system
US6718441B2 (en) Method to prefetch data from system memory using a bus interface unit
JP3516963B2 (en) Memory access control device
KR101069931B1 (en) Method and apparatus for reducing overhead in a data processing system with a cache
US20140089587A1 (en) Processor, information processing apparatus and control method of processor
Borkenhagen et al. Exa cache/scalability controllers
Circuitry et al. System Components
US20030101280A1 (en) Fast jump address algorithm
WO1992005486A1 (en) Method and means for error checking of dram-control signals between system modules
JP2009042992A (en) Bus controller
JP2000122925A (en) Cache memory control system

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADVANCED MICRO DEVICES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WEBER, FREDERICK D.;LA FETRA, ROSS V.;MIRANDA, PAUL C.;REEL/FRAME:015313/0299;SIGNING DATES FROM 20040331 TO 20040411

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION