Sticky bit update within a speculative execution processing environment
AssigneeArm Limited
InventorsLuca SCALABRINO, Cédric Denis Robert Airaud, Guillaume Schon, Frederic Jean Denis Arsanto
Life of this patent
Estimating the term…
Abstract
A data processing apparatus 2 supports speculative execution and the use of sticky bits. A different version of a sticky bit is associated with each segment of the speculative program flow. The segments of the program flow are separated by speculation nodes corresponding to program instructions which may be followed by a plurality of different alternative program instruction serving as the next program instruction. When a speculation node is resolved, then the segments separated by that speculation node are merged and the sticky bit values for those two segments are merged.
Claims20
Apparatus for processing data in response to program instructions having a program execution order, said apparatus comprising:
- processing circuitry configured to perform processing operation in response to said program instructions;
- sticky bit storage circuitry configured to store one or more sticky bits, each sticky bit having either an initial value or a sticky value and being subject to:
- (i) a first outcome of an event that leaves said sticky bit unchanged independent of whether said sticky bit has said initial value or said sticky value;
- and
- (ii) a second outcome of said event that leaves said sticky bit with said sticky value independent of whether said sticky bit has said initial value or said sticky value;
- and
- speculative execution control circuitry configured to control speculative execution of program instructions by said processing circuitry to follow a speculative sequence of program instructions including a plurality of segments of program instructions, each of said plurality of segments separated from one or more adjacent segments by a respective speculation node corresponding to a program instruction following which a plurality of alternative instructions may serve as a next program instruction to be executed, said speculative execution control circuitry controlling said speculative sequence of program instructions to use one of said alternative instructions as said next program instruction;
- wherein
- said sticky bit storage circuitry is configured to store separate versions of said sticky bit, each version corresponding to a value of said sticky bit associated one of said plurality of segments.
Apparatus for processing data in response to program instructions having a program execution order, said apparatus comprising:
- processing means for performing processing operation in response to said program instructions;
- sticky bit storage means for store one or more sticky bits, each sticky bit having either an initial value or a sticky value and being subject to:
- (i) a first outcome of an event that leaves said sticky bit unchanged independent of whether said sticky bit has said initial value or said sticky value;
- and
- (ii) a second outcome of said event that leaves said sticky bit with said sticky value independent of whether said sticky bit has said initial value or said sticky value;
- and
- speculative execution control means for controlling speculative execution of program instructions by said processing means to follow a speculative sequence of program instructions including a plurality of segments of program instructions, each of said plurality of segments separated from one or more adjacent segments by a respective speculation node corresponding to a program instruction following which a plurality of alternative instructions may serve as a next program instruction to be executed, said speculative execution control means controlling said speculative sequence of program instructions to use one of said alternative instructions as said next program instruction;
- wherein
- said sticky bit storage means stores separate versions of said sticky bit, each version corresponding to a value of said sticky bit associated one of said plurality of segments.
A method of processing data in response to program instructions having a program execution order, said method comprising the steps of:
- performing processing operation in response to said program instructions;
- storing one or more sticky bits, each sticky bit having either an initial value or a sticky value and being subject to:
- (i) a first outcome of an event that leaves said sticky bit unchanged independent of whether said sticky bit has said initial value or said sticky value;
- and
- (ii) a second outcome of said that leaves said sticky bit with said sticky value independent of whether said sticky bit has said initial value or said sticky value;
- controlling speculative execution of program instructions to follow a speculative sequence of program instructions including a plurality of segments of program instructions, each of said plurality of segments separated from one or more adjacent segments by a respective speculation node corresponding to a program instruction following which a plurality of alternative instructions may serve as a next program instruction to be executed, said speculative execution control circuitry controlling said speculative sequence of program instructions to use one of said alternative instructions as said next program instruction;
- and
- storing separate versions of said sticky bit, each version corresponding to a value of said sticky bit associated one of said plurality of segments.
Dependencies are inferred from the claim text.