03.08.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!