Result path sharing between a plurality of execution units within a processor
AssigneeArm Limited
InventorsDavid James Williamson, Conrado Blasco Allue
Life of this patent
Estimating the term…
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.
Claims17
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;
- wherein
- said 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 of availability of said at least one shared result path to carry said given processing result when generated by said given execution unit.
Apparatus for processing data, said apparatus comprising:
- a plurality of execution means responsive to program instructions for executing data processing operations to generate 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;
- wherein
- said 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 of availability of said at least one shared result path means to carry said given processing result when generated by said given execution means.
A method of processing data, said method comprising the steps of:
- in response to program instructions, using 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;
- in response to said program instructions, issuing said data processing operations to said plurality of execution units for execution;
- and
- 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 of availability of said at least one shared result path to carry said given processing result when generated by said given execution unit.
Dependencies are inferred from the claim text.