Apparatus and method for maintaining processing consistency in a computer system having multiple processors
First Claim
1. In a computer system having a processor, an agent, and a bus coupling said processor to said agent, a method of executing read operations of a computer program on said processor in an execution sequence that is different from a program sequence while programming consistency is maintained, said method comprising the steps of:
- said processor storing a plurality of read operations in a buffer of said processor;
said agent performing a write operation;
said processor comparing an address of said write operation to addresses of said read operations stored in said buffer;
if said address of said write operation matches one of said addresses of said read operations stored in said buffer, said processor making a determination whether said buffer contains an earlier read operation that is outstanding, wherein said earlier read operation is earlier in said program sequence than said read operation having said address that matches said address of said write operation;
generating a violation signal if said buffer contains said earlier read operation that is outstanding;
said processor clearing said read operation having said address that matches said address of said write operation in response to said violation signal; and
said processor re-executing said read operation that had been cleared.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus for maintaining processor ordering in a multi-processor computer system wherein loads are performed speculatively. Speculative loads of each processor are temporarily stored in their respective processors'"'"' load buffer. When one of the processors performs a store, a snoop operation is performed on the other processors'"'"' load buffers. If the snoop results in a hit, a determination is made as to whether that load buffer contains any prior conflicting speculative loads which have been completed. If the load buffer does contain a prior conflicting load, a processor ordering violation signal is generated. In response to this signal, the violating load and all subsequent operations are canceled and re-executed at a later time.
-
Citations
20 Claims
-
1. In a computer system having a processor, an agent, and a bus coupling said processor to said agent, a method of executing read operations of a computer program on said processor in an execution sequence that is different from a program sequence while programming consistency is maintained, said method comprising the steps of:
-
said processor storing a plurality of read operations in a buffer of said processor; said agent performing a write operation; said processor comparing an address of said write operation to addresses of said read operations stored in said buffer; if said address of said write operation matches one of said addresses of said read operations stored in said buffer, said processor making a determination whether said buffer contains an earlier read operation that is outstanding, wherein said earlier read operation is earlier in said program sequence than said read operation having said address that matches said address of said write operation; generating a violation signal if said buffer contains said earlier read operation that is outstanding; said processor clearing said read operation having said address that matches said address of said write operation in response to said violation signal; and said processor re-executing said read operation that had been cleared. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a computer system having a processor means, an agent means, and a bus means coupling said processor means to said agent means, an apparatus for executing read operations of a computer program in an execution sequence that is different from a program sequence while maintaining programming consistency, said apparatus comprising:
-
storage means for storing a plurality of read operations of said processor, wherein said read operations are stored in said execution sequence; means for said agent performing a write operation; comparing means for comparing an address of said write operation to addresses of said read operations stored in said storage means; means for determining whether said storage means contains an earlier read operation that is still outstanding if said address of said write operation matches one of said addresses of said read operations stored in said storage means, wherein said earlier read operation is earlier in said program sequence than said read operation having said address that matches said address of said write operation; means for generating a violation signal if said storage means contains said earlier read operation; means for clearing said read operation having said address that matches said address of said write operation in response to said violation signal; and means for re-executing said read operation that had been cleared. - View Dependent Claims (7, 8, 9, 10)
-
-
11. In a computer system having a processor, an agent, and a bus coupling said processor to said agent, an apparatus for maintaining processor ordering corresponding to speculative read operations, said apparatus comprising:
-
a load buffer for temporarily storing addresses of read operations of said processor; a comparator coupled to said load buffer for determining whether an address of a write operation of said agent matches one of said addresses of said load buffer; a circuit for determining whether said load buffer contains an earlier read operation that is outstanding, wherein said earlier read operation is earlier in a program sequence than said read operation having said address that matches said address of said write operation; a generator for generating a processor ordering violation signal if said load buffer does contain said earlier read operation that is outstanding; and a cancellation circuit for canceling said read operation having said address that matches said address of said write operation in response to said violation signal. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer system comprising:
-
a bus; a main memory coupled to said bus for storing digital data; an agent coupled to said bus for performing read/write operations; and a microprocessor coupled to said bus for processing said digital data, said microprocessor including, a load buffer for temporarily storing addresses of read operations of said microprocessor, a comparator coupled to said load buffer for determining whether an address of a write operation of said agent matches one of said addresses of said load buffer, a circuit for determining whether said load buffer contains an earlier read operation that is outstanding, wherein said earlier read operation is earlier in a program sequence than said read operation having said address that matches said address of said write operation, a generator for generating a processor ordering violation signal if said load buffer does contain said earlier read operation that is outstanding, and a cancellation circuit for canceling said read operation having said address that matches said address of said write operation in response to said violation signal. - View Dependent Claims (17, 18, 19, 20)
-
Specification