Result path sharing between a plurality of execution units within a processor
First Claim
Patent Images
1. Apparatus for processing data, said apparatus comprising:
- a plurality of execution units responsive to program instructions to execute data processing operations to generate processing results;
at least one shared result path coupled to said plurality of execution units to carry said processing results generated by said plurality of execution units; and
issue circuitry responsive to said program instructions to issue said data processing operations to said plurality of execution units for execution;
whereinsaid issue circuitry controls execution of a given processing operation having a known processing time upon a given execution unit to generate a given processing result in dependence upon a determination using said known processing time and availability of said at least one shared result path to carry said given processing result when generated by said given execution unit, wherein said issue circuitry is responsive to a number of processing cycles that will be required to execute said given processing operation to determine a processing cycle in which said given processing result will be generated if issued and completely executed and at least does not permit complete execution of said given processing operation to generate said given processing result unless said at least one shared result path will be available to carry said given processing result when generated, wherein said given processing operation is issued independently of availability of said at least one shared result path but execution of said given processing operation is cancelled if said issue circuitry determines that said at least one shared result path will be unavailable when said given processing result will be generated.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor 2 includes an execution cluster 10 having multiple execution units 14, 16, 18, 20. The execution units 14, 16, 18, 20 share result buses 22, 24. Issue circuitry 12 within the execution cluster 10 determines future availability of a result bus 22, 24 for an instruction to be issued (or recently issued) using a known cycle count for that instruction. The availability is tracked for each result bus using a mask register 32 storing a mask value within which each bit position indicates the availability or non-availability of that result bus at a particular processing cycle in the future. The mask value is left shifted each processing cycle.
4 Citations
15 Claims
-
1. Apparatus for processing data, said apparatus comprising:
-
a plurality of execution units responsive to program instructions to execute data processing operations to generate processing results; at least one shared result path coupled to said plurality of execution units to carry said processing results generated by said plurality of execution units; and issue circuitry responsive to said program instructions to issue said data processing operations to said plurality of execution units for execution;
whereinsaid issue circuitry controls execution of a given processing operation having a known processing time upon a given execution unit to generate a given processing result in dependence upon a determination using said known processing time and availability of said at least one shared result path to carry said given processing result when generated by said given execution unit, wherein said issue circuitry is responsive to a number of processing cycles that will be required to execute said given processing operation to determine a processing cycle in which said given processing result will be generated if issued and completely executed and at least does not permit complete execution of said given processing operation to generate said given processing result unless said at least one shared result path will be available to carry said given processing result when generated, wherein said given processing operation is issued independently of availability of said at least one shared result path but execution of said given processing operation is cancelled if said issue circuitry determines that said at least one shared result path will be unavailable when said given processing result will be generated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. Apparatus for processing data, said apparatus comprising:
-
a plurality of execution means responsive to program instructions for executing data processing operations, for generating processing results; at least one shared result path means, coupled to said plurality of execution units for carrying said processing results generated by said plurality of execution means; and issue means, responsive to said program instructions for issuing said data processing operations to said plurality of execution means for execution;
whereinsaid issue means controls execution of a given processing operation having a known processing time upon a given execution means to generate a given processing result in dependence upon a determination using said known processing time and availability of said at least one shared result path means to carry said given processing result when generated by said given execution means, wherein said issue means is responsive to a number of processing cycles that will be required to execute said given processing operation to determine a processing cycle in which said given processing result will be generated if issued and completely executed and at least does not permit complete execution of said given processing operation to generate said given processing result unless said at least one shared result path means will be available to carry said given processing result when generated, and said given processing operation is issued independently of availability of said at least one shared result path means but execution of said given processing operation is cancelled if said issue means determines that said at least one shared result path means will be unavailable when said given processing result will be generated.
-
-
15. A method of processing data, said method comprising the steps of:
-
using, in response to program instructions, a plurality of execution units to execute data processing operations to generate processing results; carrying said processing results generated by said plurality of execution units on at least one shared result path coupled to said plurality of execution units; issuing, in response to said program instructions, said data processing operations to said plurality of execution units for execution; controlling execution of a given processing operation having a known processing time upon a given execution unit to generate a given processing result in dependence upon a determination using said known processing time and availability of said at least one shared result path to carry said given processing result when generated by said given execution unit; and determining, in response to a number of processing cycles that will be required to execute said given processing operation, a processing cycle in which said given processing result will be generated if issued and completely executed and at least not permitting complete execution of said given processing operation to generate said given processing result unless said at least one shared result path will be available to carry said given processing result when generated, wherein said issuing step issues said given processing operation independently of availability of said at least one shared result path but execution of said given processing operation is cancelled if said determining step determines that said at least one shared result path will be unavailable when said given processing result will be generated.
-
Specification