Exception handling for single instructions with multiple data
First Claim
Patent Images
1. A method comprising:
- determining a result for a non-eventing set of data, the non-eventing set of data being one of multiple sets of data, while processing a single micro-operation on the multiple sets of data in parallel;
storing the result for the non-eventing set of data;
detecting an event while processing the single micro-operation on an other of the multiple sets of data, wherein the other set is referred to as an eventing set;
providing information to an event handler about which of the multiple sets of data caused the event;
accessing, by the event handler, the provided information;
determining by the event handler a result for the eventing set of data, and accumulating by the event handler the two results into an overall result of the single micro-operation for the multiple sets of data.
1 Assignment
0 Petitions
Accused Products
Abstract
Processing a micro-operation may include providing information to an event handler indicating which of multiple sets of data caused events during processing of a single instruction on multiple sets of data in parallel. The event handler may access the provided information to simplify handling of data sets that did not cause an event. Handling the data sets may include the event handler determining a result for data sets that caused events, accessing results determined outside of the event handler for data sets that did not cause an event, and accumulating all of the results.
-
Citations
37 Claims
-
1. A method comprising:
-
determining a result for a non-eventing set of data, the non-eventing set of data being one of multiple sets of data, while processing a single micro-operation on the multiple sets of data in parallel;
storing the result for the non-eventing set of data;
detecting an event while processing the single micro-operation on an other of the multiple sets of data, wherein the other set is referred to as an eventing set;
providing information to an event handler about which of the multiple sets of data caused the event;
accessing, by the event handler, the provided information;
determining by the event handler a result for the eventing set of data, and accumulating by the event handler the two results into an overall result of the single micro-operation for the multiple sets of data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A processor comprising:
-
an execution unit operable (i) to determine a result for a non-eventing set of data, the non-eventing set of data being one of multiple sets of data, while processing by a processor a single micro-operation on the multiple sets of data in parallel, (ii) to store the result for the non-eventing set of data, and (iii) to detect an event while processing the single micro-operation on another of the multiple sets of data, wherein the other set is referred to as an eventing set;
a retirement unit, in communication with the execution unit, operable to provide information to an event handler about which of the multiple sets of data caused the event; and
an event handler implemented in microcode and, when executed, able (i) to access the provided information, (ii) to determine a result for the eventing set of data, and (iii) to accumulate the two results into an overall result of the single micro-operation for the multiple sets of data. - View Dependent Claims (34, 35)
-
-
36. A computer comprising a processor coupled to a memory wherein:
-
the processor includes an execution cluster, a retirement unit, and a microcode event handler, one or more of the execution cluster and the retirement unit are operable, either collectively or individually, (i) to determine a result for a non-eventing set of data, the non-eventing set of data being one of multiple sets of data, while processing by a processor a single micro-operation on the multiple sets of data in parallel, (ii) to store the result for the non-eventing set of data, (iii) to detect an event while processing the single micro-operation on another of the multiple sets of data, wherein the other set is referred to as an eventing set, and (iv) to provide information to the event handler about which of the multiple sets of data caused the event, a type of the event, a class of the micro-operation, and a source of the micro-operation, and the event handler, when executed by the processor, is able (i) to access the provided information, (ii) to determine a result for the eventing set of data, and (iii) to accumulate the two results into an overall result of the single micro-operation for the multiple sets of data.
-
-
37. A method of processing a micro-operation, the method comprising:
-
determining a result for a non-eventing set of data, the non eventing set of data being one of multiple sets of data, while processing by a processor a single micro-operation on the multiple sets of data in parallel;
storing the result for the non-eventing set of data;
detecting an event while processing the single micro-operation on another an other of the multiple sets of data, wherein the other set is referred to as an eventing set;
providing information to an event handler about which of the multiple sets of data caused the event, wherein the provided information does not uniquely identify a particular set of data, from the multiple sets of data, as the set of data that caused the event but identifies a group of sets of data as possible sets of data that caused the event;
accessing, by the event handler, the provided information;
determining by the event handler a result for the eventing set of data; and
accumulating by the event handler the two results into an overall result of the single micro-operation for the multiple sets of data.
-
Specification