Computer system with adaptive memory arbitration scheme
First Claim
1. A computer system comprising:
- a memory device for storing data;
a processor coupled to said memory device and which transmits memory requests to said memory device;
a first master device coupled to said memory device via a first expansion bus, said first master device being capable of transmitting memory requests to said memory device; and
a bridge logic coupled to said memory device, said processor, and said first expansion bus, said bridge logic comprising;
a memory arbiter which classifies the memory requests into memory request groups, said memory arbiter being capable of selecting one of the memory requests during an arbitration cycle as a winning request to transact with said memory device, wherein the winning request is selected based on an adaptive arbitration scheme which adapts according to the winning request; and
a memory controller that receives the memory requests and asserts control, data, and address signals to said memory device to transact the winning request.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system includes an adaptive memory arbiter for prioritizing memory access requests, including a self-adjusting, programmable request-priority ranking system. The memory arbiter adapts during every arbitration cycle, reducing the priority of any request which wins memory arbitration. Thus, a memory request initially holding a low priority ranking may gradually advance in priority until that request wins memory arbitration. Such a scheme prevents lower-priority devices from becoming “memory-starved.” Because some types of memory requests (such as refresh requests and memory reads) inherently require faster memory access than other requests (such as memory writes), the adaptive memory arbiter additionally integrates a nonadjustable priority structure into the adaptive ranking system which guarantees faster service to the most urgent requests. Also, the adaptive memory arbitration scheme introduces a flexible method of adjustable priority-weighting which permits selected devices to transact a programmable number of consecutive memory accesses without those devices losing request priority.
90 Citations
103 Claims
-
1. A computer system comprising:
-
a memory device for storing data;
a processor coupled to said memory device and which transmits memory requests to said memory device;
a first master device coupled to said memory device via a first expansion bus, said first master device being capable of transmitting memory requests to said memory device; and
a bridge logic coupled to said memory device, said processor, and said first expansion bus, said bridge logic comprising;
a memory arbiter which classifies the memory requests into memory request groups, said memory arbiter being capable of selecting one of the memory requests during an arbitration cycle as a winning request to transact with said memory device, wherein the winning request is selected based on an adaptive arbitration scheme which adapts according to the winning request; and
a memory controller that receives the memory requests and asserts control, data, and address signals to said memory device to transact the winning request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A computer system comprising:
-
a memory device for storing data;
a processor coupled to said memory device and which transmits memory requests to said memory device;
a first master device coupled to said memory device via a first expansion bus, said first master device being capable of transmitting memory requests to said memory device; and
a second master device coupled to said memory device via a second expansion bus, said second master device being capable of transmitting memory requests to said memory device; and
a bridge logic connected to said memory device, said processor, said first expansion bus, and said second expansion bus, said bridge logic comprising;
a memory arbiter that classifies the memory requests into memory request groups, awards memory access to one of the memory requests based on a set of adjustable arbitration rules, and alters the arbitration rules based on which memory request is awarded memory access. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. A method for selecting a memory request to service among a plurality of pending memory requests in a computer system comprising:
-
(a) classifying the memory requests into memory request groups;
(b) selecting one of the memory requests as a winning request based on a set of predetermined arbitration rules; and
(c) adjusting the arbitration rules based on which request was selected as the winning request. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67)
-
-
68. A method for prioritizing pending memory requests in a computer system comprising:
-
(a) classifying the pending memory requests into memory request groups, the memory request groups including a first request group and a second request group;
(b) using a first adaptive variable to determine the priority between the first and second request groups;
(c) choosing a winning request from the pending memory requests; and
(d) adjusting the first adaptive variable based on the winning request. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87)
-
-
88. A method for adjusting an adaptive variable that represents the priority between a first group of requests and a second group of requests during a memory arbitration cycle in a computer system, the winning request chosen from the group with highest priority, including:
-
(a) determining the maximum number n of consecutive winning requests that may be chosen from the first group;
(b) determining the maximum number k of consecutive winning requests that may be chosen from the second group;
(c) determining how many of the n+k−
1 most recent winning requests belong to the first request group;
(d) determining how many of the n+k−
1 most recent winning requests belong to the second request group; and
(e) adjusting the adaptive priority based on the n+k−
1 most recent winning requests. - View Dependent Claims (89, 90, 91, 92, 93, 94, 95)
-
-
96. A method for selecting a memory request to service among a plurality of pending memory requests in a computer system comprising:
-
(a) classifying the memory requests into memory request groups;
(b) defining a set of adaptive arbitration rules that determine the priorities of the memory request groups;
(c) defining a set of fixed arbitration rules that determine the priorities of the memory requests within the memory request groups;
(e) selecting one of the memory requests as a winning request based on the adaptive and fixed priorities; and
(f) adjusting the adaptive arbitration rules based on the winning request. - View Dependent Claims (97, 98, 99, 100, 101, 102, 103)
-
Specification