Arbitration system and method for memory responses in a hub-based memory system
First Claim
Patent Images
1. A memory hub, comprising:
- a local queue adapted to receive local memory responses, and operable to store the local memory responses;
a bypass path adapted to receive downstream memory responses, and operable to pass the downstream memory responses;
a buffered queue coupled to the bypass path and operable to store downstream memory responses;
a multiplexer coupled to the local queue, buffered queue and bypass path, the multiplexer being operable to output responses from a selected one of the queues or the bypass path responsive to a control signal; and
arbitration control logic coupled to the multiplexer, the arbitration logic operable to develop the control signal to control the selection of responses output by the multiplexer to alternately output a number of memory responses stored in the buffered queue and the same number of memory responses stored in the local queue if the number or a greater number of responses are stored in each queue.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory hub includes a local queue that stores local memory responses, a bypass path that passes downstream memory responses, and a buffered queue coupled to the bypass path that stores downstream memory responses from the bypass path. A multiplexer is coupled to the local queue, buffered queue, and the bypass path and outputs responses from a selected one of the queues or the bypass path responsive to a control signal. Arbitration control logic is coupled to the multiplexer and the queues and develops the control signal to control the response output by the multiplexer.
321 Citations
29 Claims
-
1. A memory hub, comprising:
-
a local queue adapted to receive local memory responses, and operable to store the local memory responses; a bypass path adapted to receive downstream memory responses, and operable to pass the downstream memory responses; a buffered queue coupled to the bypass path and operable to store downstream memory responses; a multiplexer coupled to the local queue, buffered queue and bypass path, the multiplexer being operable to output responses from a selected one of the queues or the bypass path responsive to a control signal; and arbitration control logic coupled to the multiplexer, the arbitration logic operable to develop the control signal to control the selection of responses output by the multiplexer to alternately output a number of memory responses stored in the buffered queue and the same number of memory responses stored in the local queue if the number or a greater number of responses are stored in each queue. - View Dependent Claims (2, 3, 4, 5)
-
- 6. A memory hub adapted to receive local memory responses and downstream memory responses, the memory hub operable to store the received memory responses and operable to assign a time stamp to each memory request when the request is received by the memory hub and further operable to apply an arbitration algorithm to provide memory responses from local and buffered queues on an uplink output as a function of the age of a memory request associated with each memory response, the age of each request corresponding to the respective assigned time stamp.
-
12. A memory module, comprising:
-
a plurality of memory devices; and a memory hub coupled to the memory devices, the memory hub including, a local queue adapted to receive local memory responses, and operable to store the local memory responses; a bypass path adapted to receive downstream memory responses, and operable to pass the downstream memory responses; a buffered queue coupled to the bypass path and operable to store downstream memory responses; a multiplexer coupled to the local queue, buffered queue and bypass path, and operable to output responses from one of the queues or the bypass path responsive to a control signal; and arbitration control logic coupled to the multiplexer, the arbitration logic operable to develop the control signal to control the selection of responses output by the multiplexer to alternately output a number of memory responses stored in the buffered queue and the same number of memory responses stored in the local queue if the number or a greater number of responses are stored in each queue. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. 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 local queue adapted to receive local memory responses, and operable to store the local memory responses; a bypass path adapted to receive downstream memory responses, and operable to pass the downstream memory responses; a buffered queue coupled to the bypass path and operable to store downstream memory responses; a multiplexer coupled to the local queue, the buffered queue and the bypass path, and operable to output responses from one of the queues or the bypass path responsive to a control signal; and arbitration control logic coupled to the multiplexer, the arbitration logic operable to develop the control signal to control the selection of responses output by the multiplexer to alternately output a number of memory responses stored in the buffered queue and the same number of memory responses stored in the local queue if the number or a greater number of responses are stored in each queue. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. 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 local queue adapted to receive local memory responses, and operable to store the local memory responses; a bypass path adapted to receive downstream memory responses, and operable to pass the downstream memory responses; a buffered queue coupled to the bypass path and operable to store downstream memory responses; a multiplexer coupled to the local queue, the buffered queue and the bypass path, and operable to output responses from a selected one of the queues or the bypass path responsive to a control signal; and arbitration control logic coupled to the multiplexer, the arbitration logic operable to develop the control signal to control the selection of responses output by the multiplexer to alternately output a number of memory responses stored in the buffered queue and the same number of memory responses stored in the local queue if the number or a greater number of responses are stored in each queue. - View Dependent Claims (26, 27, 28, 29)
-
Specification