Execution Timing
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor
4-21
Instructions after an unresolved branch can execute speculatively, but in-order completion ensures
that mispredicted speculative instructions do not complete. When misprediction occurs, the e500
easily redirects fetching and repairs its machine state because the architectural state is not updated.
Any instructions dispatched after a mispredicted branch instruction are flushed from the CQ, and
any results are flushed from the rename registers.
4.4.1.3
BTB Operations
Understanding how the BTB is indexed requires a discussion of the fetch mechanism. The e500
tries to fetch as many as four instructions per access. Simultaneously fetched instructions comprise
a fetch group; and the address issued by the fetch unit is called a fetch group address (FGA).
A fetch group cannot straddle a cache-line boundary. As shown in
Figure 4-8
, if instructions in a
cache line are numbered 0–7 and the fetch group address maps to the n
th
instruction, where n = 0,
1, 2, 3, or 4, instructions n, n+1, n+2, n+3 are in the fetch group. If n
≥
4, instructions n through 7
are the fetch group.
Figure 4-8. Fetch Groups and Cache Line Alignment
If the cache is disabled, instructions are loaded eight instructions at a time and placed in the
eight-entry instruction line fill buffer (ILFB), from which a fetch group is delivered to the core
following the pattern described in
Figure 4-8
.
To reduce the size and complexity of the branch predictor, the e500 indexes the BTB using the
FGA to identify the first predicted branch within the fetch group. Because the same branch can be
fetched at different times as a part of a different fetch group, the BTB locking APU can be used to
lock all possible addresses whose fetch groups may contain the branch instruction.
0
2
4
5
6
7
1
3
Fetch Group
Instruction Cache Block
2
4
5
3
Fetch group address (FGA) (n = 2)
0
2
4
5
6
7
1
3
Instruction Cache Block
Fetch group address (n = 6)
Fetch Group
6
7
Summary of Contents for PowerPC e500 Core
Page 1: ...PowerPC e500 Core Family Reference Manual Supports e500v1 e500v2 E500CORERM Rev 1 4 2005...
Page 36: ...PowerPC e500 Core Family Reference Manual Rev 1 xxxvi Freescale Semiconductor...
Page 38: ...PowerPC e500 Core Family Reference Manual Rev 1 Part I 2 Freescale Semiconductor...
Page 332: ...PowerPC e500 Core Family Reference Manual Rev 1 Part II 2 Freescale Semiconductor...
Page 530: ...Opcode Listings PowerPC e500 Core Family Reference Manual Rev 1 D 50 Freescale Semiconductor...
Page 534: ...PowerPC e500 Core Family Reference Manual Rev 1 E 4 Freescale Semiconductor Revision History...