Decorated Operations for QorIQ P3/P4/P5 Processors - Freescale ...
Decorated Operations for QorIQ P3/P4/P5 Processors - Freescale ...
Decorated Operations for QorIQ P3/P4/P5 Processors - Freescale ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Implementation Details<br />
Addresses to which decorated loads are per<strong>for</strong>med should be marked Guarded 1 , that is, there is no<br />
speculative execution allowed <strong>for</strong> those instructions. If guarded is not set, then speculative execution, <strong>for</strong><br />
example, of a load operation triggers data updated. This is not problematic if the speculation turns out to<br />
be correct. However, if it is not, the case and the load are thrown out from the core pipeline, but the<br />
decoration is still executed in the memory subsystem. This in turn results in an incorrect value of the data.<br />
Variables (that is, accumulators) affected by decorated operations should be naturally aligned to their<br />
variable size (<strong>for</strong> example, word should be 4-byte-aligned). An error here can result in incorrect data<br />
changes, both to the variable operated on and adjacent data.<br />
<strong>Decorated</strong> load, store, and notify operations behave the same as normal load and store operations in all<br />
other aspects, such as Access control, Debug event, Storage attributes, and Alignment and memory access<br />
ordering. In other words, there is no difference between decorated operations and normal operations when<br />
it comes to application usage. Any application can use them without any OS kernel or Hypervisor<br />
interaction or permission.<br />
4.1 Load—Memory Loaded to Core Register with Decoration Result<br />
For decorated load operations, the processor per<strong>for</strong>ms a load operation with the specified decoration to the<br />
given address and places the data provided by the device in the target register. The different operations are<br />
as follows:<br />
8-/16-/32-/64-bit Clear<br />
8-/16-/32-/64-bit Set<br />
8-/16-/32-/64-bit Decrement<br />
8-/16-/32-/64-bit Increment<br />
4.2 Store—Core Register Stored in Memory with Result from<br />
Decoration<br />
For decorated store operations, the processor per<strong>for</strong>ms a store operation with the specified decoration to<br />
the given address and provides the data specified in the source register to the device. The different<br />
operations are as follows:<br />
32-/64-bit accumulate<br />
32-/64-bit increment and 32/64-bit accumulate<br />
64-bit maximum threshold with unsigned double word<br />
32-bit maximum threshold with unsigned word<br />
64-bit minimum threshold with unsigned double word<br />
32-bit minimum threshold with unsigned word<br />
1. Guarded: All loads and stores to this page are per<strong>for</strong>med without speculation. That is, they are known to be required.<br />
<strong>Decorated</strong> <strong>Operations</strong> <strong>for</strong> <strong>QorIQ</strong> <strong>P3</strong>/<strong>P4</strong>/<strong>P5</strong> <strong>Processors</strong>, Rev. A<br />
8 <strong>Freescale</strong> Confidential Proprietary <strong>Freescale</strong> Semiconductor<br />
Preliminary—Subject to Change Without Notice