# US 7,412,574 B2 · System and method for arbitration of memory responses in a hub-based memory system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,574 B2
- Document ID: US7412574B2
- Status: Granted
- Kind: B2
- Application number: 10/773,520
- Filed: 2004-02-05
- Published: 2005-08-11
- Granted: 2008-08-12
- Earliest claimed: 2004-02-05
- Assignees: Micron Technology, Inc.
- Inventors: Joseph M. Jeddeloh
- Web page: https://patentgrep.com/patent/US7412574B2

## CPC

- G06F 13/1642: {with request queuing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A memory hub module includes a decoder that receives memory requests determines a memory request identifier associated with each memory request. A packet memory receives memory request identifiers and stores the memory request identifiers. A packet tracker receives remote memory responses and associates each remote memory response with a memory request identifier and removes the memory request identifier from the packet memory. A multiplexor receives remote memory responses and local memory responses. The multiplexor selects an output responsive to a control signal. Arbitration control logic is coupled to the multiplexor and the packet memory and develops the control signal to select a memory response for output.

## Claims

### Claim 1

A memory hub, comprising:
a decoder being operable to receive memory requests including local memory requests directed to memory devices connected directly to the memory hub and remote memory requests directed to memory devices coupled to other memory hubs, the decoder being operable to determine a memory request identifier associated with each memory request;
a packet memory coupled to the decoder, the packet memory being operable to receive memory request identifiers from the decoder and to store the received memory request identifiers;
a multiplexor being operable to couple either remote memory responses that are received responsive to the remote memory requests or local memory responses that are received responsive to the local memory requests to an output responsive to a control signal; and
arbitration control logic coupled to the multiplexor and the packet memory and being operable to determine from the memory request identifiers stored in the packet memory the recency of the memory requests corresponding to the received remote memory responses and the local memory responses and to generate the control signal based on the determination.

### Claim 2 (depends on 1)

The memory hub of claim 1 wherein the arbitration control logic generates the control signal based on an oldest memory request identifier in the packet memory.

### Claim 3 (depends on 1)

The memory hub of claim 1 wherein the packet memory is a first-in, first-out (FIFO) memory.

### Claim 4 (depends on 1)

The memory hub of claim 1 wherein the arbitration control logic generates the control signal such that if an oldest memory request identifier stored in the packet memory is for a local memory request, the multiplexor outputs a local memory response.

### Claim 5 (depends on 1)

The memory hub of claim 1 wherein each of the local and remote memory responses comprise data and a header identifying a memory request corresponding to the memory response.

### Claim 6 (depends on 1)

The memory hub of claim 1, further comprising a packet tracker coupled to the packet memory, the packet memory being operable to receive the remote memory responses and to associate each received remote memory response with a memory request identifier stored in the packet memory, the packet tracker being operable to cause the memory request identifier to be removed from the packet memory.

### Claim 7

A memory hub being operable to receive local memory responses and remote memory responses, the memory hub being operable to apply an arbitration algorithm to select the order in which the local and remote memory responses are provided on an uplink output based on the ages of memory requests corresponding to the local and remote memory responses.

### Claim 8 (depends on 7)

The memory hub of claim 7 wherein the memory hub further comprises a packet memory that stores memory request identifiers in an order in which the corresponding memory requests are received.

### Claim 9 (depends on 8)

The memory hub of claim 8 wherein the memory hub further comprises a multiplexer coupled to the packet memory, the multiplexor providing either a local or a remote memory response on an output responsive to a control signal.

### Claim 10 (depends on 9)

The memory hub of claim 9 wherein the memory hub further comprises arbitration logic coupled to the packet memory and the multiplexer, and wherein the arbitration logic applies the control signal to the multiplexer to control which memory responses are provided on the output.

### Claim 11 (depends on 7)

The memory hub of claim 7 wherein each of the local and remote memory responses comprise data and a header identifying a memory request corresponding to the memory response.

### Claim 12

A memory module, comprising:
a plurality of memory devices; and
a memory hub coupled to the memory devices, the memory hub comprising:
a decoder adapted to receive memory requests including local memory requests directed to memory devices connected directly to the memory hub and remote memory requests directed to memory devices coupled to other memory hubs, the decoder being operable to determine a memory request identifier associated with each memory request;
a packet memory adapted to receive memory request identifiers and store the memory request identifiers;
a multiplexor adapted to receive remote memory responses that are responsive to the remote memory requests and local memory responses that are responsive to the local memory requests and being operable to select either the remote memory responses or the local memory responses in response to a control signal; and
arbitration control logic coupled to the multiplexor and the packet memory and being operable to determine from the memory request identifiers stored in the packet memory the recency of the memory requests corresponding to the received remote memory responses and the local memory responses and to generate the control signal to control selection of which memory response to output based on the determination.

### Claim 13 (depends on 12)

The memory module of claim 12 wherein each of the memory devices comprise an SDRAM.

### Claim 14 (depends on 12)

The memory module of claim 12 wherein the arbitration control logic generates the control signal based on an oldest memory request identifier in the packet memory.

### Claim 15 (depends on 12)

The memory module of claim 12 wherein the packet memory is a first-in, first-out (FIFO) memory.

### Claim 16 (depends on 12)

The memory hub of claim 12 wherein the arbitration control logic generates the control signal such that if an oldest memory request identifier stored in the packet memory is for a local memory request, the multiplexor outputs a local memory response.

### Claim 17 (depends on 12)

The memory hub of claim 12 wherein each of the local and remote memory responses comprise data and a header identifying a memory request corresponding to the memory response.

### Claim 18 (depends on 12)

The memory module of claim 12, further comprising a packet tracker adapted to receive the remote memory responses and being operable to associate each remote memory response with a memory request identifier stored in the packet memory and remove the associated memory request identifier from the packet memory.

### Claim 19

A memory system, comprising:
a memory hub controller;
a plurality of memory modules, each memory module being coupled to adjacent memory modules through respective high-speed links, at least one of the memory modules being coupled to the memory hub controller through a respective high-speed link, and each memory module comprising:
a plurality of memory devices; and
a memory hub coupled to the memory devices, the memory hub comprising,
a decoder adapted to receive memory requests including local memory requests directed to memory devices connected directly to the memory hub and remote memory requests directed to memory devices coupled to other memory hubs, the decoder being operable to determine a memory request identifier associated with each memory request;
a packet memory adapted to receive memory request identifiers and store the memory request identifiers;
a multiplexor adapted to receive remote memory responses that are responsive to the remote memory requests and local memory responses that are responsive to the local memory requests and being operable to select either the remote memory responses or the local memory responses in response to a control signal; and
arbitration control logic coupled to the multiplexor and the packet memory and being operable to determine from the memory request identifiers stored in the packet memory the recency of the memory requests corresponding to the received remote memory responses and the local memory responses and to generate the control signal to control selection of which memory response to output based on the determination.

### Claim 20 (depends on 19)

The memory system of claim 19 wherein each of the high-speed links comprises an optical communications link.

### Claim 21 (depends on 19)

The memory system of claim 19 wherein at least some of the memory devices comprise SDRAMs.

### Claim 22 (depends on 19)

The memory system of claim 19 wherein the arbitration control logic generates the control signal based on the age of the memory request identifiers stored in the packet memory.

### Claim 23 (depends on 22)

The memory system of claim 22 wherein the arbitration control logic generates the control signal such that if an oldest memory request identifier stored in the packet memory is for a local memory request, the multiplexor outputs a local memory response.

### Claim 24 (depends on 19)

The memory system of claim 19 wherein the packet memory is a first-in, first-out (FIFO) memory.

### Claim 25 (depends on 19)

The memory system of claim 19 wherein each of the local and remote memory responses comprise data and a header identifying a memory request corresponding to the memory response.

### Claim 26 (depends on 19)

The memory system of claim 19, further comprising a packet tracker adapted to receive the remote memory responses and being operable to associate each remote memory response with a memory request identifier stored in the packet memory and remove the associated memory request identifier from the packet memory.

### Claim 27

A computer system, comprising:
a processor;
a system controller coupled to the processor, the system controller including a memory hub controller;
an input device coupled to the processor through the system controller;
an output device coupled to the processor through the system controller;
a storage device coupled to the processor through the system controller;
a plurality of memory modules, each memory module being coupled to adjacent memory modules through respective high-speed links, at least one of the memory modules being coupled to the memory hub controller through a respective high-speed link, and each memory module comprising:
a plurality of memory devices; and
a memory hub coupled to the memory devices and coupled to the corresponding high-speed links, the memory hub including,
a decoder adapted to receive memory requests including local memory requests directed to memory devices connected directly to the memory hub and remote memory requests directed to memory devices coupled to other memory hubs, the decoder being operable to determine a memory request identifier associated with each memory request;
a packet memory adapted to receive memory request identifiers and store the memory request identifiers;
a multiplexor adapted to receive remote memory responses that are responsive to the remote memory requests and local memory responses that are responsive to the local memory requests and being operable to select either the remote memory responses or the local memory responses in response to a control signal; and
arbitration control logic coupled to the multiplexor and the packet memory and being operable to determine from the memory request identifiers stored in the packet memory the recency of the memory requests corresponding to the received remote memory responses and the local memory responses and to generate the control signal to control selection of which memory response to output based on the determination.

### Claim 28 (depends on 27)

The computer system of claim 27 wherein each of the high-speed links comprises an optical communications link.

### Claim 29 (depends on 27)

The computer system of claim 27 wherein at least some of the memory devices comprise SDRAMs.

### Claim 30 (depends on 27)

The computer system of claim 27 wherein each of the local and downstream memory responses comprise data and a header identifying a memory request corresponding to the memory response.

### Claim 31 (depends on 27)

The computer system of claim 27 wherein the processor comprises a central processing unit (CPU).

### Claim 32 (depends on 27)

The computer system of claim 27, further comprising a packet tracker adapted to receive the remote memory responses and being operable to associate each remote memory response with a memory request identifier stored in the packet memory and remove the associated memory request identifier from the packet memory.

### Claim 33

In a memory system including a plurality of memory modules, each memory module including a memory hub coupled to memory devices, a method of processing and forwarding memory responses in the memory hub of each memory module, comprising:
receiving memory requests, each having a memory request identifier, the memory requests including local memory requests directed to memory devices connected to the memory hub and remote memory requests directed to memory devices coupled to memory hubs in other memory modules;
storing the memory request identifiers;
storing local memory responses received from the memory devices in response to the local memory requests;
storing remote memory responses received from the other memory modules in response to the remote memory requests;
applying in at least one hub an arbitration algorithm based on the ages of the stored memory request identifiers to determine an order in which the stored local and remote memory responses are forwarded; and
forwarding the local and remote memory responses upstream according to the determined order.

### Claim 34 (depends on 33)

The method of claim 33 wherein each of the local and remote memory responses comprise data and a header identifying a memory request corresponding to the memory response.

### Claim 35 (depends on 33)

The method of claim 33 further comprising generating a control signal to indicate the order based on an oldest stored memory request identifier.

### Claim 36 (depends on 33)

The method of claim 33, wherein the memory request identifiers are stored and accessed on a first-in, first-out (FIFO) basis.

### Claim 37 (depends on 33)

The method of claim 33, further comprising generating a control signal such that if an oldest stored memory request is a local memory request, a local memory response is forwarded.
