Simulation of exclusive instructions
AssigneeArm Limited
InventorsAdam James McNeeney, Gareth James Evans
Life of this patent
Estimating the term…
Abstract
A method and apparatus for simulating target program code on a host data processing apparatus, the simulation mapping load-exclusive instructions in the target program code to load instructions, and mapping store-exclusive instructions in the target program code to compare-and-swap instructions.
Claims14
A method for controlling execution of target program code on a host data processing apparatus to simulate execution of the target program code on a target processing apparatus, the method comprising:
- in response to a load-exclusive instruction of the target program code for instructing the target processing apparatus to load a value from a memory location and tag the memory location as exclusive, mapping the load-exclusive instruction to a load instruction to be executed by the host data processing apparatus to load the value from the memory location, and storing metadata related to the load-exclusive instruction, wherein the metadata comprises at least the value loaded from the memory location;
- and
- in response to a store-exclusive instruction of the target program code for instructing the target processing apparatus to determine whether the memory location is still tagged as exclusive and to write a store value to the specified memory location in response to determining that the memory location is still tagged as exclusive, emulating the store-exclusive instruction using an atomic compare-and-swap instruction to be executed by the host data processing apparatus;
- the atomic compare-and-swap instruction specifying, as a compare value to be compared against the value stored at the memory location when the atomic compare-and-swap instruction is executed, the value loaded from the memory location as specified by the metadata.
A computer program stored on a non-transitory, computer-readable storage medium, the computer program being for controlling execution of target program code on a host data processing apparatus to simulate execution of the target program code on a target processing apparatus, wherein the computer program comprises:
- load-exclusive program logic to map, in response to a load-exclusive instruction of the target program code for instructing the target processing apparatus to load a value from a memory location and tag the memory location as exclusive, the load-exclusive instruction to a load instruction to be executed by the host data processing apparatus to load the value from the memory location, and to store metadata related to the load-exclusive instruction, wherein the metadata comprises at least the value loaded from the memory location;
- and
- store-exclusive program logic responsive to a store-exclusive instruction of the target program code for instructing the target processing apparatus to determine whether the memory location is still tagged as exclusive and to write a store value to the specified memory location in response to determining that the memory location is still tagged as exclusive, to emulate the store-exclusive instruction using an atomic compare-and-swap instruction to be executed by the host data processing apparatus;
- the atomic compare-and-swap instruction specifying, as a compare value to be compared against the value stored at the memory location when the atomic compare-and-swap instruction is executed, the value loaded from the memory location as specified by the metadata.
Dependencies are inferred from the claim text.