Errata Sheet SAB 80C166W/83C166W-M-T4, CB, 1.6 -2/17-
Part A: Functional Problems
The following malfunctions are known in this step:
Problem 19: Jump with Cache Hit after Branch from internal ROM/Flash
Note: This problem does NOT occur for the following configurations:
- for ROMless applications,
- for Single Chip applications where no external bus is used,
- for applications where the internal ROM/Flash is used and only data but
no code is accessed over the external bus,
- for applications where the internal ROM/Flash is used and the external
bus configuration is one of the following:
- 16-bit multiplexed with zero waitstates,
- 16-bit non-multiplexed with not more than one waitstate,
where the term 'waitstate' is used as defined below.
For other configurations, this problem should be considered, especially
when designing programs for a ROM mask or Flash, or when testing these
programs with the Flash version or the emulator.
Problem Description:
When the internal ROM/Flash is enabled and external memory is accessed in one
of the following bus configurations
-8-bit multiplexed or 8-bit non-multiplexed,
-16-bit multiplexed with at least one waitstate,
-16-bit non-multiplexed with at least two waitstates,
where the term 'waitstate' may refer to any of the following types or
combinations of it:
- Memory Cycle Time Waitstate,
- programmed Memory Tristate Waitstate,
- ALE Lengthening option,
a problem may occur when all of the following conditions are true:
1.) a jump which loads the jump target cache (possible for JMPR, JMPA, JB,
JNB, JBC, JNBS) is taken from the internal ROM/Flash to external memory,
or a branch (call/return/RETI) is performed from the internal ROM/Flash to
external memory and a previous jump (JMPR, JMPA, JB, JNB, JBC, JNBS)
taken within the internal ROM/Flash has loaded the jump target cache,
2.) the first instruction fetched from external memory is a JMPR instruction in a
loop for which the branch condition is true, i.e. the cache is loaded with the
two words at the target address of this jump,
3.) a PEC transfer (internal or external source or destination) is performed
immediately after the JMPR instruction,
4.) in the flow of the program, the JMPR instruction is executed a second time
and a cache hit occurs, i.e. the branch condition is also true after the second
iteration through the loop, and no JMPS, CALLS, RETS, TRAP, RETI
instruction or interrupt has been processed between the first and the second
iteration through the loop.