Claims
- 1. A system configured to detect and properly handle out of order access exceptions with asynchronous page validation in a multiprocessor system comprising:
a processor configured to execute instructions from an executing program in program order; a cache storage; operand buffers in operable communication with the cache storage and the processor; and detection logic configured to detect out of order access exceptions for instructions having long operands, wherein long operands are operands longer than a doubleword (DW).
- 2. The system as in claim 1, wherein the detection logic is configured to detect the out of order access exception for the long operand by delaying execution of the instruction until an evaluation of only the buffers for the instruction is completed.
- 3. The system as in claim 1, wherein the processor suspends execution of the instruction having long operands when a buffer for an operand after a first buffer has an access exception and the first buffer of the operand does not causing the instruction to be canceled and re-executed.
- 4. The system as in claim 1, wherein the processor suspends execution of the instruction having long operands where a buffer for an operand after a first buffer of the operand is for a future instruction and execution of the current instruction is resumed after an evaluation period.
- 5. The system as in claim 1, wherein the processor prevents the executing program from receiving a false report of a delayed access exception when the processor fetches operand data out of program order and receives access exceptions on a portion fetched out of order.
- 6. The system as in claim 1, wherein the processor includes out-of-order operand fetching that is configured to provide correct program execution when an operating system allocates a page to real memory and marks it valid due to a request from another processor during a time that the same page is being fetched on the current processor where data past the start of the long operand is returned from the cache storage with a page access exception prior to a first data of the long operand without a page access exception.
- 7. The system as in claim 2, wherein the evaluation includes:
signaling initiation of the evaluation; reporting all subsequent buffers having page access exceptions not for the current instruction; determining whether a buffer past a first buffer of the long operand received a page access exception when the first buffer did not; continuing instruction execution if all of the reported page access exceptions are not for the current instruction; and aborting instruction execution if any of the reported page access exceptions are for the current instruction.
- 8. The system as in claim 7, wherein the evaluation has an evaluation period of three cycles.
- 9. The system as in claim 7, wherein the aborting instruction execution includes reporting the aborting to the processor.
- 10. A method to detect and properly handle out-of-order access exceptions with asynchronous page validation in a processor in a multiprocessor system, the method comprising: fetching instructions from a cache storage to operand buffers;
executing instructions from an executing program in program order; and detecting out-of-order access exceptions using detection logic configured to detect out of order access exceptions for instructions having long operands, wherein long operands are operands longer than a doubleword (DW).
- 11. The method as in claim 10, wherein the detection logic is configured to detect the out of order access exception for the long operand by delaying execution of the instruction until a detailed evaluation of only the buffers for the instruction is completed.
- 12. The method as in claim 10, wherein the processor suspends execution of the instruction having long operands when a buffer for an operand after a first buffer has an access exception and the first buffer of the operand does not causing the instruction to be canceled and re-executed.
- 13. The method as in claim 10, wherein the processor suspends execution of the instruction having long operands where a buffer for an operand after a first buffer of the operand is for a future instruction and execution of the current instruction is resumed after an evaluation period.
- 14. The method as in claim 10, wherein the processor prevents the executing program from receiving a false report of a delayed access exception when the processor fetches operand data out of program order and receives access exceptions on a portion fetched out of order.
- 15. The method as in claim 10, wherein the processor includes out-of-order operand fetching that is configured to provide correct program execution when an operating system allocates a page to real memory and marks it valid due to a request from another processor during a time that the same page is being fetched on the current processor where data past the start of the long operand is returned from the cache storage with a page access exception prior to a first data of the long operand without a page access exception.
- 16. The method as in claim 11, wherein the evaluation includes:
signaling initiation of the evaluation; reporting all subsequent buffers having page access exceptions not for the current instruction; determining whether a buffer past a first buffer of the long operand received a page access exception when the first buffer did not; continuing instruction execution if all of the reported page access exceptions are not for the current instruction; and aborting instruction execution if any of the reported page access exceptions are for the current instruction.
- 17. The method as in claim 16, wherein the evaluation has an evaluation period of three cycles.
- 18. The method as in claim 16, wherein the aborting instruction execution includes reporting the aborting to the processor.
- 19. A storage medium encoded with machine-readable computer code for verifying a hardware design of a system under evaluation via a test program executing on a computer, said storage medium including instructions for causing said computer to implement a method, comprising:
fetching instructions from a cache storage to operand buffers; executing instructions from an executing program in program order; and detecting out-of-order access exceptions using detection logic configured to detect out of order access exceptions for instructions having long operands, wherein long operands are operands longer than a doubleword (DW).
- 20. The storage medium as in claim 19, wherein the detection logic is configured to detect the out of order access exception for the long operand by delaying execution of the instruction until a detailed evaluation of only buffers for the instruction is completed.
- 21. The storage medium as in claim 20, wherein the evaluation includes:
signaling initiation of the evaluation; reporting all subsequent buffers having page access exceptions not for the current instruction; determining whether a buffer past a first buffer of the long operand received a page access exception when the first buffer did not; continuing instruction execution if all of the reported page access exceptions are not for the current instruction; and aborting instruction execution if any of the reported page access exceptions are for the current instruction.
RELATED APPLICATIONS
[0001] This application is related to U.S. patent application entitled “System and Method to Handle Operand Re-Fetch After invalidation with Out-Of-Order Fetch”, attorney docket number POU920030072US1, filed contemporaneously with this application.
[0002] The description set forth in this co-pending application is hereby incorporated into the present application by this reference. This co-pending application and the present application are owned by one and the same assignee, International Business Machines Corporation of Armonk, N.Y.
[0003] Trademarks: IBM® is a registered trademark of International Business Machines Corporation, Armonk, N.Y., U.S.A. S/390, Z900 and z990 and other product names may be registered trademarks or product names of International Business Machines Corporation or other companies.