Abstract:
An apparatus and method for securely suspending and resuming the state of a processor. For example, one embodiment of a method comprises: generating a data structure including at least the monotonic counter value; generating a message authentication code (MAC) over the data structure using a first key; securely providing the data structure and the MAC to a module executed on the processor; the module verifying the MAC, comparing the monotonic counter value with a counter value stored during a previous suspend operation and, if the counter values match, then loading processor state required for the resume operation to complete. Another embodiment of a method comprises: generating a first key by a processor; securely sharing the first key with an off-processor component; and using the first key to generate a pairing ID usable to identify a pairing between the processor and the off-processor component.
Abstract:
An apparatus and method for non-speculative resource deallocation. For example, one embodiment of a processor comprises: front-end circuitry comprising branch prediction circuitry to indicate a speculative instruction path and a fetch unit to fetch instructions from a memory or instruction cache in accordance with the speculative instruction path; an in-order queue coupled to the front end circuitry, the in-order queue to store instructions of the speculative instruction path provided from the front end circuitry; an out-of-order cluster comprising first instruction processing resources including allocation circuitry to allocate execution resources to be used to execute the instructions of the speculative instruction path and an instruction dispatcher to perform out-of-order dispatching of the instructions for execution; back-end circuitry comprising a plurality of functional units to execute the instructions of the speculative instruction path, the plurality of functional units to perform out-of-order execution of the instructions; and in-order resource deallocation circuitry to deallocate the first instruction processing resources in program order.
Abstract:
In one embodiment, a processor includes: a decode circuit to decode a load instruction that is to load an operand to a destination register, the decode circuit to generate at least one fencing micro-operation (μop) associated with the destination register; and a scheduler circuit coupled to the decode circuit. The scheduler circuit is to prevent speculative execution of one or more instructions that consume the operand in response to the at least one fencing μop. Other embodiments are described and claimed.
Abstract:
An apparatus and method for tracking speculative execution flow and detecting potential vulnerabilities. For example, one embodiment of a processor comprises: an instruction fetcher to fetch instructions from a cache or system memory; a branch predictor to speculate a first instruction path to be taken comprising a first sequence of instructions; a decoder to decode the first sequence of instructions; execution circuitry to execute the first sequence of instructions and process data associated with the instruction to generate results; information flow tracking circuitry and/or logic to: assign labels to all or a plurality of instructions in the first sequence of instructions, track resource usage of the plurality of instructions using the labels, merge sets of labels to remove redundancies; and responsive to detecting that the first instruction path was mis-predicted, generating one or more summaries comprising resources affected by one or more of the first sequence of instructions; and recycling labels responsive to retirement of instructions associated with the labels.