PowerPC e500 Core Family Reference Manual, Rev. 1
4-24
Freescale Semiconductor
Execution Timing
4.4.1.3.2
BTB Locking APU Programming Model
The BTB APU programming model includes the following register resources:
•
The following BTB locking APU registers.
— Branch buffer entry address register (BBEAR)
— Branch buffer target address register (BBTAR)
— Branch unit control and status register (BUCSR)
These registers are described in
Section 2.9, “Branch Target Buffer (BTB) Registers
.”
•
MSR[UBLE]. The user branch locking enable bit (UBLE) is defined in the MSR. Setting
MSR[UBLE] allows user mode programs to lock or unlock BTB entries. See
Section 2.5.1,
“Machine State Register (MSR)
.”
The BTB also defines the following instructions, described in
Section 3.9.1, “Branch Target
Buffer (BTB) Locking Instructions
”:
•
Branch Buffer Load Entry and Lock Set (bblels)
•
Branch Buffer Entry Lock Reset (bbelr)
4.4.1.3.3
BTB Operations Controlled by BUCSR
This following BTB operations are controlled through BUCSR:
•
BTB disabling. BUCSR[BPEN] is used to enable or disable the BTB. The BTB is enabled
when the bit is set and disabled when it is cleared.When it is disabled, BTB contents are not
used to predict the branch targets and the BTB is not updated as a result of executing
branch, bblels, or bbelr instructions. However, when it is disabled, the BTB maintains its
contents and any locks, which can be used again when the BTB is reenabled.
•
BTB overlocking. BUCSR[BBLO] is used to report an overlocking status to the program.
It is a sticky bit and once set, remains set until explicitly cleared by writing a 0 to it with an
mtspr instruction.
•
BTB unable to lock. If bblels cannot set the BTB lock, BUCSR[BBUL] is set. It is a sticky
bit.
•
BTB invalidation. Flash invalidation of the BTB is accomplished by writing
BUCSR[BBFI] with a 0 and then a 1 using mtspr instructions.
•
BTB lock clearing. BUCSR[BBLFC] is used to perform a flash lock clear (unlocking) of
all locked BTB entries. Writing BUCSR[BBLFC] with a 0 and then a 1 flash lock clears all
locked BTB entries.
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...