System for arbitrating access to memory with dynamic priority assignment
First Claim
1. A circuit for arbitrating access to a memory in a computer system, the computer system including a first bus, a second bus, a microprocessor coupled to the first bus, and a peripheral device coupled to the second bus, wherein the microprocessor is capable of generating write and read requests to the memory, each of the microprocessor write and read requests being provided with a first bus address, and wherein the peripheral device is capable of generating write and read requests to the memory, each of the peripheral device write and read requests being provided with a second bus address, the circuit comprising:
- first receiving means coupled to the first bus for receiving microprocessor generated write and read requests;
second receiving means coupled to the second bus for receiving peripheral device generated write and read requests;
means for asserting an arbitration signal to indicate that an arbitration cycle is enabled;
means responsive to said arbitration signal and coupled to said first and second receiving means for assigning priority to said received microprocessor write and read requests and said received peripheral device write and read requests if said arbitration signal is asserted, wherein a received microprocessor write request is assigned a higher priority than a received microprocessor read request or a peripheral device write or read request, and wherein a received microprocessor read request is assigned a lower priority than a received microprocessor write request but a higher priority than a received peripheral device write request, except that a received microprocessor read request is forced lower in priority than a received peripheral device write request if;
(a) the first bus address provided with said received microprocessor read request is the same as the second bus address provided with said received peripheral device write request;
or(b) a peripheral device read request is received while said received peripheral device write request is pending; and
means coupled to the memory and to said priority assigning means for granting access to the memory to the highest priority request.
3 Assignments
0 Petitions
Accused Products
Abstract
An arbiter circuit for controlling access to the main memory for requests asserted by the microprocessor, the refresh controller and PCI bus masters. Generally, the priority of the memory requests are as follows, with some exceptions: (1) second refresh request; (2) processor-to-memory write request; (3) memory-to-processor read request; (4) PCI-to-memory write request; (5) memory-to-PCI read request; and (6) first refresh request. The second refresh request indicates that two refreshes are outstanding. When that occurs, both outstanding refresh requests are assigned the highest priority. The processor-to-memory write request is always higher in priority than other memory requests except the second refresh. However, under certain conditions, the processor-to-memory write requests is held off to allow other cycles to proceed. The memory-to-processor read request is generally higher in priority than the PCI write and read requests, unless certain conditions occur to override that priority. PCI-to-memory write requests are always higher in priority than memory-to-PCI read requests.
113 Citations
24 Claims
-
1. A circuit for arbitrating access to a memory in a computer system, the computer system including a first bus, a second bus, a microprocessor coupled to the first bus, and a peripheral device coupled to the second bus, wherein the microprocessor is capable of generating write and read requests to the memory, each of the microprocessor write and read requests being provided with a first bus address, and wherein the peripheral device is capable of generating write and read requests to the memory, each of the peripheral device write and read requests being provided with a second bus address, the circuit comprising:
-
first receiving means coupled to the first bus for receiving microprocessor generated write and read requests; second receiving means coupled to the second bus for receiving peripheral device generated write and read requests; means for asserting an arbitration signal to indicate that an arbitration cycle is enabled; means responsive to said arbitration signal and coupled to said first and second receiving means for assigning priority to said received microprocessor write and read requests and said received peripheral device write and read requests if said arbitration signal is asserted, wherein a received microprocessor write request is assigned a higher priority than a received microprocessor read request or a peripheral device write or read request, and wherein a received microprocessor read request is assigned a lower priority than a received microprocessor write request but a higher priority than a received peripheral device write request, except that a received microprocessor read request is forced lower in priority than a received peripheral device write request if; (a) the first bus address provided with said received microprocessor read request is the same as the second bus address provided with said received peripheral device write request;
or(b) a peripheral device read request is received while said received peripheral device write request is pending; and means coupled to the memory and to said priority assigning means for granting access to the memory to the highest priority request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of arbitrating access to a memory in a computer system, the computer system including a first bus, a second bus, a microprocessor coupled to the first bus, and a peripheral device coupled to the second bus, wherein the microprocessor is capable of generating write and read requests to the memory, each of the microprocessor write and read requests being provided with a first bus address, and wherein the peripheral device is capable of generating write and read requests to the memory, each of the peripheral device write and read requests being provided with a second bus address, the method comprising the steps of:
-
receiving microprocessor generated write and read requests; receiving peripheral device generated write and read requests; asserting an arbitration signal to indicate that an arbitration cycle is enabled; assigning priority to said received microprocessor write and read requests and said received peripheral device write and read requests if said arbitration signal is asserted, wherein a received microprocessor write request is assigned a higher priority than a received microprocessor read request or a peripheral device write or read request, and wherein a received microprocessor read request is assigned a lower priority than a received microprocessor write request but a higher priority than a received peripheral device write request, except that a received microprocessor read request is forced lower in priority than a received peripheral device write request if; (a) the first bus address provided with said received microprocessor read request is the same as the second bus address provided with said received peripheral device write request;
or(b) a peripheral device read request is received while said received peripheral device write request is pending; and granting access to the memory to the highest priority request. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification