Priority logic for selecting and stacking data
First Claim
1. In a computer apparatus having a shared resource and a plurality of requesters wherein the plurality of requesters are divided into a plurality of requester categories including a first requester category having one or more requestors and a second requestor category having one or more requesters, and wherein the plurality of requesters share the use of the shared resource and wherein each of said one or more requesters of said second requester category is physically located on a card external to and more remote from said shared resource than each of said one or more requesters of said first requester category whereby the circuit time delay attendant to a first desired request of said shared resource by each of said one or more requesters of said second requester category is greater than the corresponding circuit time delay attendant to a second desired request of said shared resource by each of said one or more requesters of said first requester category, wherein the improvement comprises:
- priority controller means coupled to the plurality of requesters for selecting one of the plurality of requesters from the plurality of requesters desiring access to the shared resource according to a priority determination protocol which assigns a first pre-determined priority to requesters from the first requester category which is different than a second pre-determined priority assigned to the second requester category and wherein the difference between said first pre-determined priority and said second pre-determined priority compensates for the difference between said circuit time delay and said corresponding circuit time delay.
9 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for setting a priority sequence among a plurality of requesters using a common destination within a computer system. An advantage is that all requesters contending for the common destination will have timely access with respect to all other competing requesters. In a first exemplary embodiment of the present invention, a priority controller can use a two-level priority scheme to select the next requester. The first level of priority alternates between an external requester and an on-card requester where every other set of data is from the external requester. The second level of priority alternates between on-card modules during an on-card priority cycle. In an alternative exemplary embodiment, the priority controller can stack a request to transfer acknowledge and data information from an external requester if it is busy. The priority controller also prevents sending an acknowledgment/data cycle out to an external source to prevent sending more data than the FIFO stacks can accommodate. The data may also consist only of acknowledgements.
99 Citations
31 Claims
-
1. In a computer apparatus having a shared resource and a plurality of requesters wherein the plurality of requesters are divided into a plurality of requester categories including a first requester category having one or more requestors and a second requestor category having one or more requesters, and wherein the plurality of requesters share the use of the shared resource and wherein each of said one or more requesters of said second requester category is physically located on a card external to and more remote from said shared resource than each of said one or more requesters of said first requester category whereby the circuit time delay attendant to a first desired request of said shared resource by each of said one or more requesters of said second requester category is greater than the corresponding circuit time delay attendant to a second desired request of said shared resource by each of said one or more requesters of said first requester category, wherein the improvement comprises:
priority controller means coupled to the plurality of requesters for selecting one of the plurality of requesters from the plurality of requesters desiring access to the shared resource according to a priority determination protocol which assigns a first pre-determined priority to requesters from the first requester category which is different than a second pre-determined priority assigned to the second requester category and wherein the difference between said first pre-determined priority and said second pre-determined priority compensates for the difference between said circuit time delay and said corresponding circuit time delay. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
15. An apparatus having a shared resource comprising:
-
a. a plurality of requesters wherein the plurality of requesters are divided into a plurality of requester categories, including a first requester category having one or more requesters and a second requestor category having one or more requestors, and share the use of the shared resource wherein each of said one or more requestors of said second requestor category is physically located on a card external to and more remote from said shared resource than each of said one or more requestors of said first requestor category whereby the circuit time delay attendant to a first desired request of said shared resource by each of said one or more requesters of said second requester category is greater than the corresponding circuit time delay attendant to a second desired request of said shared resource by each of said one or more requesters of said first requester category; and b. priority controller means coupled to said plurality of requesters for selecting one of the plurality of requesters from a plurality of requesters desiring access to the shared resource according to a priority determination protocol which assigns a first pre-determined priority to requesters from the first requestor category which is different than the second pre-determined priority assigned to the second requestor category wherein the difference between said first pre-determined priority and said second pre-determined priority compensates for the difference between said circuit time delay and said corresponding circuit time delay. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of selecting a requester from a plurality of requesters desiring access to a shared resource, wherein the plurality of requesters are divided into a plurality of requester categories, including a first requester category having one or more requesters and a second requester category having one or more requesters, and wherein the plurality of requesters share the use of the shared resource, and wherein each of said one or more requesters of said second requester category is physically located on a card external to and more remote from said shared resource than each of said one or more requesters of said first requester category whereby the circuit time delay attendant to a first desired request of said shared resource by each of said one or more requesters of said second requester category is greater than the corresponding circuit time delay attendant to a second desired request of said shared resource by each of said one or more requesters of said first requester category, comprising:
a. selecting one of the plurality of requesters from the plurality of requesters desiring access to the shared resource according to a priority determination protocol which assigns a first pre-determined priority to requesters from the first requester category which is different than a second pre-determined priority assigned to the second requester category whereby the difference between said first pre-determined priority and said second pre-determined priority compensates for the difference between said circuit time delay and said corresponding circuit time delay.
-
30. A method of selecting a requester from a plurality of requesters desiring access to a shared resource, wherein the plurality of requesters are divided into a plurality of requester categories, and wherein the plurality of requesters share the use of the shared resource, comprising:
-
a. providing a priority determination protocol to assign a priority to requesters from a particular one of a plurality of requester categories which is different than the priority assigned to requesters from another particular one of a plurality of requester categories; b. receiving one or more send acknowledgement signals from the plurality of requesters; c. receiving one or more data signals from the plurality of requesters; d. determining if another particular one of the plurality of requesters is currently being output to the shared resource; e. outputting the send acknowledgement and data signal to the shared resource if only one send acknowledgement signal was received; f. selecting a particular one of the plurality of requesters from the plurality of requesters desiring access to the shared resource according to the priority determination protocol if more than one send acknowledgement was received; g. outputting the send acknowledgement signal and data signal corresponding to the selected particular one of the plurality of requesters to the shared resource; and h. repeating steps (b)-(g) until the send acknowledgement signal and data signal corresponding to each particular one of the plurality of requesters desiring access to the shared resource have been output to the shared resource.
-
-
31. A method of selecting a requester from a plurality of requesters desiring access to a shared resource, wherein the plurality of requesters are divided into two requester categories, and wherein the plurality of requesters share the use of the shared resource, comprising:
-
a. providing a priority determination protocol to alternatively grant priority to a particular one of the one or more requesters in the first requester category and to a particular one of the one or more requesters in the second requester category; b. receiving one or more send acknowledgement signals from the plurality of requesters; c. receiving one or more data signals from the plurality of requesters; d. determining if another particular one of the plurality of requesters is currently being output to the shared resource; e. outputting the send acknowledgement and data signal to the shared resource if not other particular one of the one or more send acknowledgement lines or data lines is currently being output to the shared resource; f. storing the one or more send acknowledgement signals from the one or more requesters in the second requester category if another particular one of the plurality of send acknowledgement lines is currently being output to the shared resource; g. storing the one or more data signals from the one or more requesters in the second requester category if another particular one of the plurality of data lines is currently being output to the shared resource; h. selecting a particular one of the plurality of requesters from the plurality of requesters desiring access to the shared resource according to the priority determination protocol if more than one send acknowledgement was received; i. receiving a read acknowledgement input to indicate whether the send acknowledgement signal and data signal corresponding to the selected particular one of the plurality of requesters can be output to the shared resource if the selected particular one of the plurality of requesters selected is from the second requester category; j. outputting the send acknowledgement signal and data signal corresponding to the selected particular one of the plurality of requesters to the shared resource if the selected particular one of the plurality of requesters is from the first requester category or if step (i) indicates that the send acknowledgement signal and data signal corresponding to the selected particular one of the plurality of requesters from the second requester category can be output to the shared resource; and k. repeating steps (b)-(j) until the send acknowledgement signal and data signal corresponding to each particular one of the plurality of requesters desiring access to the shared resource have been output to the shared resource.
-
Specification