Errata Sheet - Infineon
Errata Sheet - Infineon
Errata Sheet - Infineon
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Errata</strong> <strong>Sheet</strong><br />
Functional Deviations<br />
word accesses, to the top and bottom of the circular buffer. However, due to the<br />
bug, the first access takes the transfer data size from the second part of the unaligned<br />
load and only 16-bits of data are written. Note that the presence of an<br />
optional IP instruction between the load and store transactions does not prevent<br />
the problem, since the load and store transactions are back-to-back in the LS<br />
pipeline.<br />
Case 2<br />
Case 2 is similar to case 1, and occurs where a load instruction using circular<br />
addressing mode encounters the circular buffer wrap-around condition, and is<br />
preceded in the LS pipeline by a multi-access load instruction. However, for<br />
case 2 to be a problem it is necessary that the first access of the load instruction<br />
encountering the circular buffer wrap-around condition (the access to the top of<br />
the circular buffer) also encounters a conflict condition with the contents of the<br />
CPU store buffer. Again, in this case the first access of the load instruction using<br />
circular addressing mode may incorrectly use the transfer data size from the<br />
second part of the multi-access load instruction. Since half-word load<br />
instructions must be half-word aligned, and ld.a instructions must be word<br />
aligned, they cannot trigger the circular buffer wrap-around condition. As such,<br />
this case only affects the following instructions using circular addressing mode:<br />
ld.w, ld.d, ld.da.<br />
Note: In the current TriCore1 CPU implementation, load accesses are initiated<br />
from the DEC pipeline stage whilst store accesses are initiated from the<br />
following EXE pipeline stage. To avoid memory port contention problems<br />
when a load follows a store instruction, the CPU contains a single store<br />
buffer. In the case where a store instruction (in EXE) is immediately<br />
followed by a load instruction (in DEC), the store is directed to the CPU<br />
store buffer and the load operation overtakes the store. The store is then<br />
committed to memory from the store buffer on the next store instruction or<br />
non-memory access cycle. The store buffer is only used for store<br />
accesses to ‘local’ memories - LDRAM or DCache. Store instructions to<br />
bus-based memories are always executed immediately (in-order). A store<br />
buffer conflict is detected when a load instruction is encountered which<br />
targets an address for which at least part of the requested data is currently<br />
held in the CPU store buffer. In this store buffer conflict scenario, the load<br />
instruction is cancelled, the store committed to memory from the store<br />
TC1767, EES-AD, ES-AD, AD 14/73 Rel. 1.4, 11.12.2009