Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
AssigneeInternational Business Machines Corporation
InventorsBradly G. Frey, Raymond J. Pedersen
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorsBradly G. Frey, Raymond J. Pedersen
Estimating the term…
The disclosure describes means for allowing the sequencing of operand fetches to deviate from the conceptual sequence specified in the program. Allowing fetch sequencing deviations may improve system performance, while not causing any deviation in program execution results. Out-of-sequence (OOS) fetching may be caused by issuing each fetch without regard to the following conditions: 1. a delay in issuance to storage (such as a delay in generating the address for a fetch request); 2. a speed up in operand data return (such as due to fetching the operand data from a store buffer in the execution unit without going to storage for the data); 3. a delay in the return of operand data (such as when a fetch request has a cache miss and its data must be obtained from the storage hierarchy); or 4. an overlap in the return of fetch data for a serializer instruction with execution of instructions preceding the serializer or data and instruction fetching for instructions following the serializer before its completion. Each fetch operand of a serializer is handled as OOS even when it is not OOS in order to eliminate serialized fetching. Operand store compare (OSC) controls are provided to control an OOS fetch dependent on a conceptually prior store operand. If an OOS condition is detected that possibly may have caused wrong data, an execution retry occurs beginning with the currently incomplete instruction stream, and the retry may include OOS fetching. The integrity of data is maintained when an OOS fetch operand is exposed to a cross-invalidation (XI) hit by the storage request of another CPU in a multiprocessor (MP) system.
A processor having data and instruction storage, the processor being one of a plurality of processors in a multiprocessor system (MP), the processor comprising:
A multiprocessor system (MP) with a plurality of processors, and MP storage used in common by the processors for the storage of data and instruction, each processor comprising:
A particular processor having data and instruction storage, the processor being one of plural CPUs in a multiprocessor system (MP), the processor containing an instruction/execution unit including decoding means for decoding instructions in conceptual sequence including detecting fetch operand specifications and store operand specifications in the respective instructions of a program being executed by the processor, and a storage hierarchy containing a cache exclusively used by the processor for accessing operand data from storage as required by instructions of the program, the cache receiving cross-invalidate (XI) requests of other processors in the MP for releasing control of data units to an XI requesting other processor in the MP, the particular processor further comprising:
Dependencies are inferred from the claim text.