Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
First Claim
1. A computer system comprising:
- one or more microprocessors, wherein said one or more microprocessors are configured to initiate a first memory operation and to subsequently initiate a second memory operation, and wherein said one or more microprocessors are configured to assign a first priority to said first memory operation, and wherein said one or more microprocessors are configured to assign a second priority to said second memory operation;
a main memory configured to store data including a first data corresponding to said first memory operation and a second data corresponding to said second memory operation; and
a bus bridge coupled to said one or more microprocessors and to said main memory, wherein said one or more microprocessors are configured to convey said first memory operation and to concurrently convey said first priority to said bus bridge, and wherein said one or more microprocessors are further configured to convey said second memory operation and to concurrently convey said second priority to said bus bridge, and wherein said bus bridge is configured to initiate a transfer of said first data responsive to said first memory operation, and wherein said bus bridge is configured to interrupt said transfer of said first data in response to said second memory operation if said second priority is higher than said first priority, and wherein said bus bridge is configured to inhibit interruption of transferring said first data if said first memory operation and said second memory operation are in different pages of said main memory.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer system includes one or more microprocessors. The microprocessors assign a priority level to each memory operation as the memory operations are initiated. In one embodiment, the priority levels employed by the microprocessors include a fetch priority level and a prefetch priority level. The fetch priority level is higher priority than the prefetch priority level, and is assigned to memory operations which are the direct result of executing an instruction. The prefetch priority level is assigned to memory operations which are generated according to a prefetch algorithm implemented by the microprocessor. As memory operations are routed through the computer system to main memory and corresponding data transmitted, the elements involved in performing the memory operations are configured to interrupt the transfer of data for the lower priority memory operation in order to perform the data transfer for the higher priority memory operation. While one embodiment of the computer system employs at least a fetch priority and a prefetch priority, the concept of applying priority levels to various memory operations and interrupting data transfers of lower priority memory operations to higher priority memory operations may be extended to other types of memory operations, even if prefetching is not employed within a computer system. For example, speculative memory operations may be prioritized lower than non-speculative memory operations throughout the computer system.
-
Citations
35 Claims
-
1. A computer system comprising:
-
one or more microprocessors, wherein said one or more microprocessors are configured to initiate a first memory operation and to subsequently initiate a second memory operation, and wherein said one or more microprocessors are configured to assign a first priority to said first memory operation, and wherein said one or more microprocessors are configured to assign a second priority to said second memory operation;
a main memory configured to store data including a first data corresponding to said first memory operation and a second data corresponding to said second memory operation; and
a bus bridge coupled to said one or more microprocessors and to said main memory, wherein said one or more microprocessors are configured to convey said first memory operation and to concurrently convey said first priority to said bus bridge, and wherein said one or more microprocessors are further configured to convey said second memory operation and to concurrently convey said second priority to said bus bridge, and wherein said bus bridge is configured to initiate a transfer of said first data responsive to said first memory operation, and wherein said bus bridge is configured to interrupt said transfer of said first data in response to said second memory operation if said second priority is higher than said first priority, and wherein said bus bridge is configured to inhibit interruption of transferring said first data if said first memory operation and said second memory operation are in different pages of said main memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for transferring data in a computer system, comprising:
-
receiving a first memory operation and concurrently receiving a first priority of said first memory operation, said first priority assigned by a microprocessor initiating said first memory operation;
receiving a second memory operation and concurrently receiving a second priority of said second memory operation, said second priority assigned by a microprocessor initiating said second memory operation, said receiving and said concurrently receiving being subsequent to said receiving said first memory operation;
transferring data corresponding to said first memory operation; and
interrupting said transferring if said second priority is higher than said first priority, and transferring data corresponding to said second memory operation during said interrupting, wherein said interrupting is inhibited if a first memory address corresponding to said first memory operation is in a different page than a second memory address corresponding to said second memory operation. - View Dependent Claims (17, 18, 19)
-
-
20. A bus bridge for a computer system, comprising:
-
a CPU interface block coupled to receive memory operations, said CPU interface block further coupled to receive a corresponding priority for each memory operation, said priority assigned by one or more microprocessors initiating said memory operation; and
a memory controller coupled to said CPU interface block and a memory, wherein said memory controller is configured to receive said each memory operation and said corresponding priority from said CPU interface block, and wherein said memory controller is configured to interrupt an in-progress memory operation to service a subsequent memory operation if a first priority corresponding to said in-progress memory operation is lower than a second priority corresponding to said subsequent memory operation, and wherein said memory controller is configured to inhibit interrupt of said in-progress memory operation if said in-progress memory operation is to a different page of said memory than said subsequent memory operation. - View Dependent Claims (21, 22, 23)
-
-
24. A bus bridge for a computer system, comprising:
-
a CPU interface block coupled to receive memory operations; and
a memory controller coupled to said CPU interface block and a memory, wherein said memory controller is configured to receive a first memory operation from said CPU interface block, and wherein said memory controller is configured to interrupt an in-progress memory operation to service said first memory operation if said first memory operation is higher priority than said in-progress memory operation, and wherein the memory controller is configured to inhibit interrupt of said in-progress memory operation if said in-progress memory operation is to a different page of said memory than said first memory operation. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for transferring data in a computer system, comprising:
-
receiving a first memory operation;
receiving a second memory operation subsequent to said receiving said first memory operation;
transferring data corresponding to said first memory operation; and
interrupting said transferring if said second memory operation is higher priority than said first memory operation, and transferring data corresponding to said second memory operation during said interrupting, and wherein said interrupting is inhibited if a first memory address corresponding to said first memory operation is in a different page than a second memory address corresponding to said second memory operation. - View Dependent Claims (33, 34, 35)
assigning a first priority to said first memory operation by a microprocessor initiating said first memory operation and conveying said first priority; receiving the first priority concurrent with said receiving said first memory operation;
assigning a second priority to said second memory operation by a microprocessor initiating said second memory operation and conveying said second priority; and
receiving the second priority concurrent with said receiving said second memory operation.
-
Specification