Dynamic designation of instructions as sensitive for constraining instruction execution
AssigneeMarvell Asia Pte Ltd
InventorShubhendu Sekhar Mukherjee
Life of this patent
Estimating the term…
Abstract
Described herein are systems and methods for dynamic designation of instructions as sensitive. For example, some methods include detecting that a first instruction of a first process has been designated as a sensitive instruction; checking whether a sensitive handling enable indicator in a process state register storing a state of the first process is enabled; responsive to detection of the sensitive instruction and enablement of the sensitive handling enable indicator, invoking a constraint for execution of the first instruction; executing the first instruction subject to the constraint; and executing a second instruction of the first process without the constraint.
Claims29
An integrated circuit for executing instructions, comprising:
- a sensitive handling enable indicator;
- and
- a processor core comprising a processor pipeline configured to execute instructions from two or more threads in parallel using execution units of the processor pipeline, the processor core configured to:
- detect that a first instruction of a first thread has been designated as a sensitive instruction;
- check whether the sensitive handling enable indicator is enabled;
- responsive to detection of the sensitive instruction and enablement of the sensitive handling enable indicator, invoke a constraint for execution of the first instruction that selectively blocks at least one of issue, dispatch, or execution of selected instructions of threads other than the first thread during execution of the first instruction by one of the execution units of the processor pipeline, where the constraint is configured to be applied only to one or more instructions designated as sensitive;
- execute the first instruction subject to the constraint;
- and
- execute a second instruction of the first thread that has not been designated as a sensitive instruction without the constraint while the sensitive handling enable indicator is still enabled.
An integrated circuit for executing instructions, comprising:
- a sensitive handling enable indicator;
- and
- a processor core configured to:
- detect that a first instruction of a first process has been designated as a sensitive instruction;
- check whether the sensitive handling enable indicator is enabled;
- responsive to detection of the sensitive instruction and enablement of the sensitive handling enable indicator, invoke a constraint for execution of the first instruction that selectively blocks at least one of issue, dispatch, or execution of selected instructions other than the first instruction during execution of the first instruction;
- execute the first instruction subject to the constraint;
- and
- execute a second instruction of the first process without the constraint;
- wherein the first instruction includes a sensitive flag comprising at least one bit, and the processor core is configured to detect that the first instruction has been designated as a sensitive instruction by evaluating the sensitive flag of the first instruction.
A method comprising:
- detecting that a first instruction of a first thread has been designated as a sensitive instruction;
- checking whether a sensitive handling enable indicator is enabled;
- responsive to detection of the sensitive instruction and enablement of the sensitive handling enable indicator, invoking a constraint for execution of the first instruction that selectively blocks at least one of issue, dispatch, or execution of selected instructions of threads other than the first thread during execution of the first instruction by an execution unit of a processor pipeline configured to execute instructions from two or more threads in parallel using execution units of the processor pipeline, where the constraint is configured to be applied only to one or more instructions designated as sensitive;
- executing the first instruction subject to the constraint;
- and
- executing a second instruction of the first thread that has not been designated as a sensitive instruction without the constraint while the sensitive handling enable indicator is still enabled.
A method comprising:
- detecting that a first instruction of a first process has been designated as a sensitive instruction;
- checking whether a sensitive handling enable indicator is enabled;
- responsive to detection of the sensitive instruction and enablement of the sensitive handling enable indicator, invoking a constraint for execution of the first instruction that selectively blocks at least one of issue, dispatch, or execution of selected instructions other than the first instruction during execution of the first instruction;
- executing the first instruction subject to the constraint;
- and
- executing a second instruction of the first process without the constraint;
- wherein detecting that the first instruction has been designated as a sensitive instruction comprises:
- evaluating a sensitive flag comprising at least one bit included in the first instruction.
An integrated circuit for executing instructions, comprising:
- a sensitive handling enable indicator;
- a processor core comprising a processor pipeline configured to execute instructions from two or more threads in parallel using execution units of the processor pipeline, the processor core configured to:
- fetch a first instruction of a first thread, wherein the first instruction includes a sensitive flag comprising at least one bit that indicates the first instruction is sensitive;
- based on the sensitive flag and a current value of the sensitive handling enable indicator, invoke a constraint for execution of the first instruction that selectively blocks at least one of issue, dispatch, or execution of selected instructions of threads other than the first thread during execution of the first instruction by one of the execution units of the processor pipeline, where the constraint is configured to be applied only to one or more instructions designated as sensitive;
- execute the first instruction subject to the constraint;
- and
- execute a second instruction of the first thread that has not been designated as a sensitive instruction without the constraint while the sensitive handling enable indicator is still enabled.
An integrated circuit for executing instructions, comprising:
- a processor pipeline configured to execute instructions from two or more threads in parallel using execution units of the processor pipeline;
- a sensitive handling enable indicator;
- and
- a thread hazard circuitry configured to:
- detect that a first instruction of a first thread has been designated as a sensitive instruction and that a second instruction of the first thread has not been designated as a sensitive instruction,
- check whether the sensitive handling enable indicator is enabled,
- invoke a constraint to block instructions of threads other than the first thread from being executed while the first instruction is being executed by one of the execution units of the processor pipeline, where the constraint is configured to be applied only to one or more instructions designated as sensitive, and
- execute the second instruction while the sensitive handling enable indicator is still enabled without blocking instructions of threads other than the first thread from being executed while the second instruction is being executed by one of the execution units of the processor pipeline.
An integrated circuit for executing instructions, comprising:
- a processor pipeline configured to execute instructions from two or more threads in parallel using execution units of the processor pipeline;
- means for storing a sensitive handling enable indicator;
- means for detecting that a first instruction of a first thread has been designated as a sensitive instruction, checking whether the sensitive handling enable indicator is enabled, and, responsive to detection of the sensitive instruction and enablement of the sensitive handling enable indicator, invoking a constraint for execution of the first instruction that selectively blocks at least one of issue, dispatch, or execution of selected instructions of threads other than the first instruction thread during execution of the first instruction by one of the execution units of the processor pipeline, where the constraint is configured to be applied only to one or more instructions designated as sensitive;
- and
- means for executing the first instruction subject to the constraint and executing a second instruction of the first thread that has not been designated as a sensitive instruction without the constraint while the sensitive handling enable indicator is still enabled.
Dependencies are inferred from the claim text.