Freescale Semiconductor
Technical Information Cent er, CH370
1300 N. Alma School Road
Chandler, Arizona 85224
(800) 521-6274
480-768-2130
support@freescale.com
Japan:
Freescale Semiconductor Japan Ltd.
Headquarters
ARCO Tower 15F
1-8-1, Shimo-Meguro, Meguro-ku
Tokyo 153-0064, Japan
0120 191014
+81 2666 8080
support.japan@freescale.com
Asia/Pacific:
Freescale Semiconductor Hong Kong Ltd.
Technical Information Center
2 Dai King Street
Tai Po Industrial Estate,
Tai Po, N.T., Hong Kong
+800 2666 8080
support.asia@freescale.com
For Literature Requests Only:
Freescale Semiconductor
Literature Distribution Center
P.O. Box 5405
Denver, Colorado 80217
(800) 441-2447
303-675-2140
Fax: 303-675-2150
LDCForFreescaleSemiconductor
@hibbertgroup.com
Information in this document is provided solely to enable system and software
implementers to use Freescale Semicondu ctor products. There are no express or
implied copyright licenses granted hereunder to design or fabricate any integrated
circuits or integrated circuits based on the information in this document.
Freescale Semiconductor reserves the right to make changes without further notice to
any products herein. Freescale Semiconductor makes no warranty, representation or
guarantee regarding the suitability of its products for any particular purpose, nor does
Freescale Semiconductor assume any liability arising out of the application or use of
any product or circuit, and specifically disclaims any and all liability, including without
limitation consequential or incidental damages. “Typical” parameters which may be
provided in Freescale Semiconductor data sheets and/or specifications can and do
vary in different applications and actual performance may vary over time. All operating
parameters, including “Typicals” must be validated for each customer application by
customer’s technical experts. Freescale Semiconductor does not convey any license
under its patent rights nor the rights of others. Freescale Semiconductor products are
not designed, intended, or authorized for use as components in systems intended for
surgical implant into the body, or other applications intended to support or sustain life,
or for any other application in which the failure of the Freescale Semiconductor product
could create a situation where personal injury or death may occur. Should Buyer
purchase or use Freescale Semiconductor products for any such unintended or
unauthorized application, Buyer shall indemn ify and hold Freescale Semiconductor
and its officers, employees, subsidiaries, affiliates, and distributors har mless against all
claims, costs, damages, and expenses, and reasonable attor ney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such
unintended or unauthorized use, even if such claim alleges that Freescale
Semiconductor was negligent regarding the design or manufacture of the part.
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. The described
product is a PowerPC microprocessor core. The PowerPC name is a trademark of IBM Corp. and is
used under license. All other product or service names are the property of their respective owners.
1-2Vect o r an d Fl o a t i n g -Point AP U s...... .............. ............... .............. ........ .............. .............. ........ 1-6
1-3Four-Stage MU Pipeline, Showing Divide Bypass................................................................. 1-8
1-4Thre e - St a g e Lo a d / St o r e Uni t ......... .............. ........ ............... .............. ........ .............. .............. ..1-9
User Performance Monitor Counter Registers (UPMC0–UPMC3)................................... 7-8
8-1TAP Controller with Supported Registers...............................................................................8-4
9-1Relationship of Timer Facilities to Time Base........................................................................9-2
10-1Vec t o r an d Fl o a t i n g -Point AP U s...... .............. ............... ........ .............. .............. .............. ...... 10 -2
10-2Floating-Point Data Format .................................................................................................. 10-5
11-1Cache/Core Interface Unit Integration.................................................................................. 11-3
11-2L1 D at a Ca ch e Organizat i o n................ ........ ............... .............. ........ .............. .............. ........ 11-6
11-3L1 In structi o n Cache Organiz ation ............ .............. ............... .............. ........ .............. .......... 11-7
3-4Synchronization Requirements for e500-Specific SPRs......................................................... 3-8
3-5Ins t ruction Fe t c h an d /or Executi o n Syn chroniz at ion Requi rements... ........ .............. ........ ...... 3-9
3-6Integ er Arithm e t i c In structi o n s .. .............. .............. ............... ........ .............. .............. ............ 3-14
3-7Integ er 32-Bi t Compare Instructi o n s (L = 0) ......... ......... .............. .............. .............. ........ .... 3-1 5
3-8Integ er Logical Instr u ct ions ... ........ ........ .............. ............... ........ .............. .............. ........ ...... 3-15
3-9Integ er Rotate In structi o n s ..... .............. .............. ............... ........ .............. .............. ................ 3-16
3-10Int e g er Shift In structio n s........ .............. .............. ............... ........ .............. .............. ................ 3-16
3-11Int e g er Load In st ructio n s . .............. .............. ............... .............. .............. .............. ................ 3-20
3-12Int e g er Store In st ru ctions ................. .................... ............... .............. .............. .............. ........3-21
3-13Integer Load and Store with Byte-Reverse Instructions.......................................................3-22
3-14Integer Load and Store Multiple Instructions....................................................................... 3-23
3-15BO Bi t De sc r iptions ........... ........ .............. ........ ........ ............... ........ .............. ........ ................3-23
3-16BO Op e rand Encod i n g s . ........ .............. ........ ............... ........ .............. .............. ........ ..............3-23
3-17Br an c h In structi o n s ...... ........ ........ .............. .............. ............... ........ .............. .............. ..........3-24
3-44List of Instructions ................................................................................................................ 3-66
4-1Load a n d Stor e Q u eu e s .... ........ .............. ........ ............... .............. ........ .............. ........ ............ 4-26
4-2The E ffec t o f O p erand Size o n Div i d e Latency....... ............... .............. ........ .............. .......... 4-27
4-3Bran c h O p eration Executio n Lat e n cies........ ............... ........ .............. .............. ........ .............. 4-31
4-4System Operation Ins t ru ction Execution Latencie s ............ .............. .............. ........ .............. 4-31
5-17Pro g ram Inter ru p t Ex c eption Con d i t ions............. ......... .............. .............. ........ .............. ...... 5-24
5-18Pro g r a m In t e r ru p t Re g i ster Sett ing s....... ........ ............... ........ .............. .............. ........ ............ 5- 24
5-20Dec r e m e n t e r In t e r ru p t Re g i ster Sett in g s.... ........ ......... .............. .............. ........ .............. ........ 5-25
12-14MAS7 Fiel d De scripti o n s— High Ord er RPN ..... ......... ........ .............. ........ .............. .......... 12-3 1
12-15MMU Assist Re g i ster Fiel d Upd ates ... .............. ......... .............. ........ .............. ........ ............ 12 - 3 2
13-1Su mm ary of Sele c t ed In ternal Si g n a l s ..... .............. ............... .............. .............. ........ ............ 13 -2
C-1Sub tr ac t Im mediate Simplified Mnemon i c s ........ ......... ........ .............. ........ .............. ........ ......C-2
C-2Sub tr ac t Simplified Mnemon ics......... ........ .............. ......... .............. ........ .............. ........ ..........C-2
C-3Word Rotate and Shift Simplified Mnemonics.......................................................................C-3
C-4Bran c h In structi o n s ...... ........ .............. ........ .............. ............... .............. ........ .............. ............C-4
C-5BO Bit En c o d i n g s .... ........ ........ .............. ........ ............... ........ .............. .............. ........ ..............C-6
C-6BO Op erand Encod i n g s . .............. ........ .............. ......... .............. ........ .............. ........ .............. ..C-6
C-7CR0 and CR1 Fields as Updated by Integer Instructions .......................................................C-9
C-8BI O p e ra n d Set t ings for CR Field s for Branch Comparisons........ .......................................C-1 0
C-9CR Fie l d Id en t i fi c ation Symbols........ ........ .............. ......... ........ .............. ........ ........ ..............C-11
C-10Branch Sim p lified Mn em o n ics .. ........ .............. ........ ............... ........ .............. ........ .............. ..C-11
C-11Branch In structi o n s .................... .............. ........ ............... .............. ........ .............. ..................C-12
C-12Si mplifie d Mnemonic s for bc and bca without LR Update..................................................C-13
C-13Si mplifie d Mnemonic s for bclr and bcctr without LR Update............................................C-13
C-14Si mplifie d Mnemonic s for bcl and bcla with LR U p d at e .......... ........ .............. .............. ...... C-14
C-15Si mplifie d Mnemonic s for bclrl and bcctrl with LR Upd ate...... ........................................ .C -1 4
C-16Standard Coding for Branch Conditions...............................................................................C-15
Page
Number
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductorxxix
Tables
Tabl e
NumberTitle
C-17Branch Instructions and Simplified Mnemonics that Incorporate CR Conditions ...............C-16
C-18Simpl i fi e d Mn emonics with Compariso n Con d i t i o n s...... .......... .............................. .............C-16
C-19Simplified Mnemonics for bc and bca without Comparison Conditions or
LR Updating.....................................................................................................................C-17
C-20Simplified Mnemonics for bclr and bcctr without Comparison Conditions
and LR Updating..............................................................................................................C-18
C-21Simplified Mnemonics for bcl and bcla with Comparison Conditions
and LR Updating..............................................................................................................C-18
C-22Simplified Mnemonics for bclrl and bcctrl with Comparison Conditions
and LR Updating..............................................................................................................C-19
D-1Instructions (Binary) by Mnemonic....................................................................................... D-1
D-2Instr u ctions (Decim a l and Hexadecima l) b y Opc o d e................ .............................. ............D-22
D-3Instructions (Binary) by Form.............................................................................................. D-35
E-1Revision History .................................................................................................................... A-1
Page
Number
PowerPC e500 Core Family Reference Manual, Rev. 1
xxxFreescale Semiconductor
About This Book
The primary objective of this user’s manual is to describe the functionality of the e500 embedded
microprocessor core for software and hardware developers. This book is intended as a companion
to the EREF: A Reference for Freescale Book E and the e500 Core (hereafter referred to as EREF).
The e500 is a PowerPC™ processor.
Note that, while previous versions of this manual covered only the e500v1 core (and referred to it
simply as the e500 core), this version includes coverage of both the e500v1 and e500v2 cores.
Where the two cores diverge, the differences are clearly delineated.
Book E is a PowerPC architecture definition for embedded processors that ensures binary
compatibility with the user-instruction set architecture (UISA) portion of the PowerPC
architecture as it was jointly developed by Apple, IBM, and Motorola. The version of the
architecture jointly developed by Apple, IBM, and Motorola is referred to as the AIM version of
the PowerPC architecture.
This document distinguishes between the three levels of the architectural and implementation
definition, as follows:
•The Book E architecture. Book E defines a set of user-level instructions and registers that
are drawn from the user instruction set architecture (UISA) portion of the AIM definition
PowerPC architecture. Book E also include numerous other supervisor-level registers and
instructions as they were defined in the AIM version of the PowerPC architecture for the
virtual environment architecture (VEA) and the operating environment architecture (OEA).
Because Book E defines a much different model for operating system resources (such as
the MMU and interrupts), it defines many new registers and instructions.
•Freescale Book E implementation standards. In many cases, the Book E architecture
definition provides a very general framework, leaving many higher-level details up to the
implementation. To ensure consistency among its Book E implementations, Freescale has
defined implementation standards that provide an additional layer of architecture between
Book E and the actual devices.
•e500 implementation details. Each processor typically defines instructions, registers, bits
within registers, and other aspects that are more detailed than either the Book E definition
or the Freescale Book E implementation standards.
This book describes all of the instructions and registers implemented on the e500, including
those defined by Book E and those that are e500-specific.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductorxxxi
Information in this book is subject to change without notice, as described in the disclaimers on the
title page of this book. As with any technical documentation, it is the readers’ responsibility to be
sure they are using the most recent version of the documentation.
Audience
It is assumed that the reader understands operating systems, microprocessor system design, and
the basic principles of RISC processing.
Organization
Following is a summary and a brief description of the major sections of this manual:
•Chapter 1, “Core Complex Overview,” provides a general description of e500
functionality.
•Chapter 2, “Register Model,” is useful for software engineers who need to understand the
programming model for the three programming environments and the functionality of each
register.
•Chapter 3, “Instruction Model,” provides an overview of the addressing modes and a
description of the instructions. Instructions are organized by function.
•Chapter 4, “Execution Timing,” describes how instructions are fetched, decoded, issues,
executed, and completed and how instruction results are presented to the processor and
memory system. Tables are provided that indicate latency and throughput for each of the
instructions supported by the e500.
•Chapter 5, “Interrupts and Exceptions,” describes how the e500 implements the interrupt
model as it is defined by the Book E architecture.
•Chapter 6, “Power Management,” describes the power management facilities as they are
defined by Book E and implemented in the e500 core.
•Chapter 7, “Performance Monitor,” describes the e500 implementation of the performance
monitor APU that is defined by the Freescale Book E implementation standards.
•Chapter 8, “Debug Support,” describes the debug facilities as they are defined by Book E
and implemented in the e500 core.
•Chapter 9, “Timer Facilities,” describes the Book E-defined timer facilities implemented in
the e500 core. These resources include the time base (TB), decrementer (DEC),
fixed-interval timer (FIT), and watchdog timer.
•Chapter 10, “Auxiliary Processing Units (APUs),” lists the extensions to the
Book E–defined programming model that are supported on the e500 and describes the
e500-specific branch target buffer locking APU.
•Chapter 11, “L1 Caches,” provides specific hardware and software details regarding the
e500 cache implementation.
PowerPC e500 Core Family Reference Manual, Rev. 1
xxxiiFreescale Semiconductor
•Chapter 12, “Memory Management Units,” provides specific hardware and software
details regarding the e500 MMU implementation.
•Chapter 13, “Core Complex Bus (CCB),” describes those aspects of the CCB that are
configurable or that provide status information through the programming interface. It
provides a glossary of those signals that are mentioned in other chapters to offer a clearer
understanding of how the core is integrated as part of a larger device.
•Appendix A, “Programming Examples,” provides example code for use of creating atomic
primitives with load and store with reservation instructions and for programming
multiple-precision shifts.
•Appendix B, “Guidelines for 32-Bit Book E,” provides a set of guidelines for software
developers. Application software written to these guidelines can be labelled 32-bit Book E
applications and can expect to execute properly on all implementations of Book E, both
32-bit and 64-bit implementations.
•Appendix C, “Simplified Mnemonics for PowerPC Instructions,” provides a set of
simplified mnemonic examples and symbols.
•Appendix D, “Opcode Listings,” lists opcodes by mnemonic and by opcode. It includes an
alphabetical listing that includes simplified mnemonics and the architecturally defined
instructions (with syntax) to which they map.
•Appendix E, “Revision History,” contains a revision history for this manual.
•This book also includes an index.
Suggested Reading
This section lists additional reading that provides background for the information in this manual
as well as general information about the architecture.
General Information
The following documentation, published by Morgan-Kaufmann Publishers, 340 Pine Street, Sixth
Floor, San Francisco, CA, provides useful information about the PowerPC architecture and
computer architecture in general:
•The PowerPC Architectur e: A Specification for a New Family of RISC Pr ocessors, Second
Edition, by International Business Machines, Inc.
For updates to the specification, see http://www.austin.ibm.com/tech/ppc-chg.html
•Computer Architectur e: A Quantitative Approach, Third Edition, by John L. Hennessy and
David A. Patterson.
•Computer Organization and Design: Th e Hardware/Software Interface, Second Edition,
David A. Patterson and John L. Hennessy.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductorxxxiii
Related Documentation
Freescale documentation is available from the sources listed on the back cover of this manual; the
document order numbers are included in parentheses for ease in ordering:
•EREF: A Refer ence for Fr eescale Book E and the e500 Core (EREF)—This book provides
a higher-level view of the programming model as it is defined by Book E, the Freescale
Book E implementation standards, and the e500 microprocessor.
•e500 Software Optimization Guide (eSOG) (AN2665)—This manual provides information
to programmers so that they may write optimal code for the e500.
•Reference manuals—These books provide details about individual implementations and
are intended for use with the EREF.
•Addenda/errata to reference manuals—Because some processors have follow-on parts, an
addendum is provided that describes the additional features and functionality changes.
These addenda are intended for use with the cor responding reference manuals.
•Hardware specifications—Hardware specifications provide specific data regarding bus
timing, signal behavior, and AC, DC, and thermal characteristics, as well as other design
considerations.
•Product briefs—Each device has a product brief that provides an overvie w of its features.
This document is roughly the equivalent to the overview (Chapter 1) of an
implementation’ s reference manual.
•Application notes—These short documents address specific design issues useful to
programmers and engineers working with Freescale processors.
Additional literature is published as new processors become available. For a current list of
documentation, refer to http://www.freescale.com
Conventions
This document uses the following notational conventions:
cleared/setWhen a bit takes the value zero, it is said to be cleared; when it takes a value
of one, it is said to be set.
mnemonicsInstruction mnemonics are shown in lowercase bold.
italicsItalics indicate variable command parameters, for example, bcctrx.
Book titles in text are set in i talics.
Internal signals are set in italics, for example, qual BG
0x0Prefix to denote hexadecimal number
0b0Prefix to denote binary number
.
rA, rBInstruction syntax used to identify a source GPR
PowerPC e500 Core Family Reference Manual, Rev. 1
xxxivFreescale Semiconductor
rDInstruction syntax used to identify a destination GPR
REG[FIELD]Abbreviations for registers are shown in uppercase text. Specific bits, fields,
or ranges appear in brackets. For example, MSR[LE] refers to the
little-endian mode enable bit in the machine state register.
xIn some contexts, such as signal encodings, an unitalicized x indicates a
don’t care.
xAn italicized x indicates an alphanumeric variable.
nAn italicized n indicates an numeric variable.
Part I specifically describes the e500 core, excluding details abo ut cache memories and MMU
features. It contains chapters that apply to the entire core, as follows:
•Chapter 1, “Core Complex Overview,” summarizes the e500 core. This a 32-bit
implementation of the Book E PowerPC architecture, including a recognition that different
processor implementations may require extensions or deviations from the architectural
descriptions.
•Chapter 2, “Register Model,” describes the e500 core register model as defined in Book E
and the additional implementation-specific registers unique to the e500 core, including a
Book E SPR model.
•Chapter 3, “Instruction Model,” provides information about the Book E architecture as it
relates specifically to the e500 core complex. The e500 core complex also implements
several APUs, which define additional instructions, registers, and interrupts. The chapter
also features operand conventions, branch prediction, memory access alignment support,
and memory synchronization sections.
•Chapter 4, “Execution Timing,” describes the e500 core’s operations performance as
defined by instructions and how it reports the results of instruction execution. It gives
detailed descriptions of how the core execution units work and how these units interact with
other parts of the processor , such as the instruction fetching mechanism, register files, and
caches. Included are examples of instruction sequences and tables that provide information
useful to assembly language programmers for optimizing performance.
•Chapter 5, “Interrupts and Exceptions,” is a general description of the Book E interrupt and
exception model and gives details of the additions and changes to that model that are
implemented in the e500 core complex.
•Chapter 6, “Power Management,” describes the hardware and software resources the
system uses to minimize its power consumption. This chapter regards the power
management facilities as they are defined by Book E and implemented in devices that
contain the e500 core, but its scope is limited to features of the core only.
•Chapter 7, “Performance Monitor,” describes the e500 implementation of the performance
monitor APU that is defined by the Freescale Book E implementation standards.
•Chapter 8, “Debug Support,” describes the e500 core complex internal debug capabilities
and associated features. Included are important deviations to the Book E debug mode.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale SemiconductorPart I-1
PowerPC e500 Core Family Reference Manual, Rev. 1
Par t I-2Freescale Semiconductor
Chapter 1
Core Complex Overview
This chapter provides an overview of the PowerPC™ e500 microprocessor core.
References to e500 are true for both the e500v1 and e500v2.
This chapter includes the following:
•An overview of the Book E version of the PowerPC architecture features as implemented
in this core and a summary of the core feature set
•A summary of the instruction pipeline and flow
•An overview of the programming model
•An overview of interrupts and exception handling
•A description of the memory management architecture
•High-level details of the e500 core memory and coherency m odel
•A brief description of the core complex bus (C CB)
•A summary of the Book E architecture compatibility and migration from the original
version of the PowerPC architecture as it is defined by Apple, IBM, and Motorola (referred
to as the AIM version of the PowerPC architecture)
The e500 core provides features that the integrated device may not implement or may implement
in a more specific way.
1.1Overview
The e500 processor core is a low-power implementation of the family of reduced instruction set
computing (RISC) embedded processors that implement the Book E definition of the Pow erPC
architecture. The e500 is a 32-bit implementation of the Book E architecture using the lower words
in the 64-bit general-purpose registers (GPRs).
Figure 1-1 is a block diagram of the processor core complex that shows how the functional units
operate independently and in parallel. Note that this conceptual diagram does not attempt to show
how these features are physically implemented.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-1
Core Complex Overview
Memory Unit
(12 instructions)
Instruction Queue
32-Kbyte I Cache
Tags
128-Bit
(TLB0)
64-Entry
I-L1TLB4K
L2 MMUs
L1 Instruction MMU
4-Entry
I-L1VSP
TLB Array
256/512-Entry
Unified
(TLB1)
16-Entry
TLB Array
MAS
Registers
(4 Instructions)
Queue (GIQ)
General Issue
64-Entry
D-L1TLB4K
Tags
Fill Buffer
Instruction Line
L1 Data MMU
4-Entry
D-L1VSP
Station
Reservation
GPR File
instruction per cycle.
(64/32 bit)
Load/Store Unit
Rename
Buffers (14)
32-Kbyte D Cache
e500v2 (9 entry)
e500v1 (4 entry)
Data Line
Buffer
Fill Buffer Data Write
e500v1 (3 entry)
Load Miss
QueueQueue
L1 Store
32-/
64-Bit
Core Interface Unit
Core Complex Bus
e500v2 (5 entry)
Instruction Unit
Additional Features
Fetch Stages
• Time Base Counter/Decrementer
GPR
Operand Bus
BTB
Each execution unit can accept one
Station
Reservation
512 Entry
(1 BIQ, 2 GIQ)
(64/32 bit)
Multiple Unit
Two Instruction Dispatch
LR
CTR
Branch Prediction Unit
• Clock Multiplier
• JTAG/COP Interface
• Power Management
• Performance Monitor
from the IQ to the CQ at dispatch.
Program order is maintained by passing instructions
Branch Issue
Two instruction issue to GIQ per clock
Station
Reservation
Queue (BIQ)
Station
Reservation
Condition
Station
One instruction issue to BIQ per clock
Reservation
(32 bit)
Simple Unit 2
(32/64 bit)
Simple Unit 1
Register
Rename
CR Field
Buffers (14)
Unit
Branch
Completion Bus
CRF Bus
Maximum
Two Instructions
Retire per Cycle
Completion Queue (14 Entry)
Figure 1-1. e500 Core Complex Block Diagram
PowerPC e500 Core Family Reference Manual, Rev. 1
1-2Freescale Semiconductor
Core Complex Overview
Book E allows processors to provide auxiliary processing units (APUs), which are extensions to
the architecture that can perform computational or system management functions. One of these on
the e500 is the signal processing engine APU (SPE APU), which includes a suite of vector
instructions that use the upper and lower halves of the GPRs as a single two-element operand.
Most APUs implemented on the e500 are defined by the Freescale Semiconductor Book E
implementation standards (EIS).
1.1.1Upward Compatibility
The e500 provides 32-bit effective addresses and integer data types of 8, 16, and 32 bits, as defined
by Book E. It also provides two-element, 64-bit data types for the SPE APU and the embedded
vector floating-point APU, which include instructions that operate on operands comprised of two
32-bit elements. For detailed information regarding the e500 instruction set, see Chapter 3,
“Instruction Model.”
The embedded single-precision scalar floating-point APU provides 32-bit single-precision
instructions.
NOTE
The SPE APU and embedded floating-point APU functionality is
implemented in all PowerQUICC III devices. However, these
instructions will not be supported in devices subsequent to
PowerQUICC III. Freescale Semiconductor strongly recommends
that use of these instructions be confined to libraries and device
drivers. Customer software that uses SPE or embedded floating-point
APU instructions at the assembly level or that uses SPE intrinsics will
require rewriting for upward compatibility with next-generation
PowerQUICC devices.
Freescale Semiconductor offers a libmoto_e500 library that uses SPE
instructions. Freescale will also provide libraries to support
next-generation PowerQUICC devices.
1.1.2Core Complex Summary
The core complex is a superscalar processor that can issue two instructions and complete two
instructions per clock cycle. Instructions complete in order, but can execute out of order . Execution
results are available to subsequent instructions through the rename buffers, but those results are
recorded into architected registers in program order, maintaining a precise exception model. All
arithmetic instructions that execute in the core operate on data in the GPRs. Although the GPRs
are 64 bits wide, only SPE APU, DPFP (e500v2 only), and embedded vector floating-point
instructions operate on the upper word of the GPRs; the upper 32 bits are not affected by other
32-bit instructions.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-3
Core Complex Overview
The processor core integrates two simple instruction units (SU1, SU2), a multiple-cycle
instruction unit (MU), a branch unit (BU), and a load/store unit (LSU).
The LSU and SU2 support 64- and 32-bit instructions.
The ability to execute five instructions in parallel and the use of simple instructions with short
execution times yield high efficiency and throughput. Most integer instructions execute in 1 clock
cycle. A series of independent vector floating-point add instructions can be issued and completed
with a throughput of one instruction per cycle.
The core complex includes independent on-chip, 32-Kbyte, eight-way set-associative, physically
addressed caches for instructions and data. It also includes on-chip first-level instruction and data
memory management units (MMUs) and an on-chip second-level unified MMU.
•The first-level MMUs contain two four-entry, fully-associative instruction and data
translation lookaside buffer (TLB) arrays that provide sup port for demand-paged virtual
memory address translation and variable-sized pages. They also contain two 64-entry,
4-way set-associative instruction and data TLB arrays that support 4-Kbyte pages. These
arrays are maintained entirely by the hardware with a true least-recently-used (LRU)
algorithm.
•The second-level MMU contains a 16-entry , fully-associative unified (instruction and data)
TLB array that provides support for variable-sized pages. It also contains a unified TLB for
4-Kbyte page size support, as follows:
— a 256-entry, 2-way set-associative unified TLB for the e500v1
— a 512-entry, 4-way set-associative unified TLB for the e500v2
These second-level TLBs are maintained completely by the software.
The core complex allo ws cache -line-based u ser-mode locks on th e conten ts in eithe r the instru ction
or data cache. This provides embedded applications with the capability fo r locking interrupt
routines or other im porta nt (time- sens itive) in struc tion sequ ence s into the inst ruction c ache . It al so
allows data to be locked into the data cache, which supp orts deterministic executi on time.
The core complex supports a high-speed on-chip internal bus with data tagging called the core
complex bus (CCB). The CCB has two general-purpose read data buses, one write data bus, data
parity bits, data tag bits, an address bus, and address attribute bits. The processor core complex
supports out-of-order reads, in-order writes, and one level of pipelining for addresses with
address-retry responses. It can also support single-beat and burst data transfers for memory
accesses and memory-mapped I/O operations.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-4Freescale Semiconductor
Core Complex Overview
1.2e500 Processor and System Version Numbers
Table 1-1 matches the revision code in the processor version register (PVR) and the system version
register (SVR). These registers can be accessed as SPRs through the e500 core (see Chapter 2,
“Register Model”) or as memory-mapped registers defined by the integrated device (s ee the
Processor Version Register (PVR) System Version Register (SVR)
1.3Features
Key features of the e500 are summarized as follows:
•Implements Book E 32-bit architecture
•Auxiliary processing units
The branch target buffer (BTB) locking APU is specific to the e500. The BTB locking APU
gives the user the ability to lock, unlock, and invalidate BTB entries; further information is
provided in Table 1-5 and Section 10.2, “Branch Tar get Buf fer (BTB) Locking APU.” The
EIS defines the following APUs:
— Integer select. This APU consists of the Integer Select instruction, isel, which is a
conditional register move that helps eliminate conditional branches, decreases latency,
and reduces the code footprint.
— Performance monitor. The performance monitor facility provides the ability to monitor
and count predefined events such as processor clocks, misses in the instruction cache or
data cache, types of instructions decoded, or mispredicted branches. The count of such
events can be used to trigger the performance monitor exception. Additional
performance monitor registers (PMRs) similar to SPRs are used to configure and track
performance monitor operations. These registers are accessed with the Move to PMR
and Move from PMR instructions (mtpmr and mfpmr). See Section 1.12,
“Performance Monitoring.”
— Cache locking. This APU allows instructions and data to be locked into their respective
caches on a cache block basis. Locking is performed by a set of touch and lock set
instructions. This functionality can be enabled for user mode by setting MSR[UCLE].
The APU also provides resources for detecting and handling overlocking conditions.
— Machine check. The machine check interrupt is treated as a separate level of interrupt.
It uses its own save and restore registers (MCSRR0 and MCSRR1) and Return from
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-5
Core Complex Overview
Machine Check Interrupt (rfmci) instruction. See Section 1.8, “Interrupts and
Exception Handling.”
— Single-precision embedded scalar and vector floating-point APUs. These instructions
are listed in Table 1-4.
— Signal processin g engine APU (SPE APU). Note th at the SPE is not a separate u nit; SPE
computation al and logical instructions are executed in the simple and multip le-cycle
units used by all oth er computational and logic al instructions, and 64 -bit loads and stores
are executed in the common LSU. Figure 1-1 shows how execution logic for SU 1, the
MU, and the LSU is replicated to support operations on the upper halves of the GPRs.
Note that the SPE APU and the two single-precision floating-point APUs were combined in the
original implementation of the e500 v1, as shown in Figure 1-2.
Vector and Floating-Point APUs e500 v1 e500 v2
Original SPE
Definition
SPE vector instructions ev…
Vector single-precision floating-point evfs…
Scalar single-precision floating-point efs…
Scalar double-precision floating-point efd…
√√
√√
√√
√
Figure 1-2. Vector and Floating-Point APUs
The e500 register set is modified as follows:
– GPRs are widened to 64 bits to support 64-bit load, store, and merge operations. Note
that the upper 32 bits are affected only by 64-bit instructions.
– A 64-bit accumulator (ACC) has been added.
– The signal processing and embedded floating-point status and control register
(SPEFSCR) provides interrupt control and status for SPE and embedded
floating-point instructions.
These registers are shown in Figure 1-7. SPE instructions are grouped as follows:
– Single-cycle integer add and subtract with the same latencies for SPE APU
operations as for the 32-bit equivalent
– Single-cycle logical operations
– Single-cycle shift and rotates
– Four-cycle integer pipelined multiplies
– 4-, 11-, 19-, and 35-cycle integer divides
–If rA or rB is zero, a floating-point divide take s 4 cycles; al l other ca ses take 29 cy cles.
– 4-cycle SIMD pipelined multiply-accumulate (MAC)
– 64-bit accumulator for no-stall MAC operations
PowerPC e500 Core Family Reference Manual, Rev. 1
1-6Freescale Semiconductor
Core Complex Overview
– 64-bit loads and stores
– 64-bit merge instructions
•Cache structure—Separate 32-Kbyte, 32-byte line, 8-way set-associative level 1 instruction
and data caches
— 1.5-cycle cache array access, 3-cycle load-to-use latency
— Pseudo-LRU (PLRU) replacement algorithm
— Copy-back data cache that can fu nction as a write-t hrough cache on a page-by-page basis
— Supports all Book E memory coherency modes
— Supports EIS-defined cache-locking instructions, as listed in Table 1-3
•Dual-issue superscalar control
— T wo-instructions-per-clock peak issue rate
— Precise exception handling
•Decode unit
— 12-entry instruction queue (IQ)
— Full hardware detection of interlocks
— Decodes as many as two instructions per cycle
— Decode serialization control
— Register dependency resolution and renaming
•Branch prediction unit (BPU)
— Dynamic branch prediction using a 512-entry, 4-way set-associative branch target
buffer (BTB) supported by the e500 BTB instructions listed in Table 1-5.
— Branch prediction is handled in the fetch stages.
•Completion unit
— As many as 14 instructions allowed in 14-entry completion queue (CQ)
— In-order retirement of as many as two instructions per cycle
— Completion and refetch serialization control
— Synchronization for all instruction flow changes—interrupts, mispredicted branches,
•Branch unit—The branch unit (BU) is an execution unit and is distinct from the BPU. It
executes (resolves) all branch and CR logical instructions.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-7
Core Complex Overview
•Two simple units (SU1 and SU2)
— Add and subtract
— Shift and rotate
— Logical operations
— Support for 64-bit SPE APU instructions in SU1
•Multiple-cycle unit (MU)—The MU is shown in Figure 1-3.
From GIQ0 or GIQ1
Reservation
Station
UpperLower
MU-1
MU-2
MU-3
MU-4
Divide Bypass Path
Divide
Postdivide
Figure 1-3. Four-Stage MU Pipeline, Showing Divide Bypass
The MU has the following features:
— Four-cycle latency for all multiplication, including SPE integer and fractional multiply
instructions and embedded scalar and vector floating-point multiply instructions
— V ariable-latency divide: 4, 11, 19, and 35 cycles for all integer divide instructions. If rA
or rB is zero, floating-point divide instructions take 4 cycles; all others take 29. Note
that although most divide instructions take more than 4 cycles to execute, the MU
allows subsequent multiply instructions to execute through all four MU stages in
parallel with the divide.
— 4-cycle floating-point add and subtract
•The load/store unit (LSU) is shown in Figure 1-4.
The LSU has the following features:
— 3-cycle load latency
— Fully pipelined
— Load miss queue allows up to four load misses before stalling (up to nine load misses
in the e500v2).
— Load hits can continue to be serviced when the load miss queue is full.
— The seven-entry L1 store queue allows full pipelining of stores.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-8Freescale Semiconductor
To completion queue
To GPR operand bus
To G P R s
Reservation
Station
Load/Store Unit
(64-/32-Bit)
Three-Stage Pipeline
Queues and Buffers
L1 Store
QueueMiss
Load
Queue
Core Complex Overview
To data cache
e500v1 (4 entry)
e500v2 (9 entr y)
e500v1 (3 entry)
e500v2 (5 entry)
Data Line
Fill Buffer
To core interface unit
Data Write
Buffer
Figure 1-4. Three-Stage Load/Store Unit
— The three-entry data line fill buffer (five-entry on the e500v2) is used for loads and
cacheable stores. Stores are allocated here so loads can access data from the store
immediately.
— The data write buffer contains three entries: one dedicated for snoop pushes, one
dedicated for castouts, and one that can be used for snoop pushes or cast outs.
(MESI). Note, however that shared state may not be accessible in some
implementations.
— Bus support for hardware-enforced coherency (bus snooping)
•Core complex bus (CCB)—internal bus
— High-speed, on-chip local bus with data tagging
— 32-bit address bus
— Address protocol with address pipelining and retry/copyback derived from bus used by
previous generations of PowerPC processors (referred to as the 60x bus)
— Two general-purpose read data buses and one write data bus
•Extended exception handling
— Supports Book E interrupt model
– Less than 10-cycle interrupt latency
– Interrupt vector prefix register (IVPR)
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-9
Core Complex Overview
– Interrupt vector offset registers (IVORs) 0–15 as defined in Book E, plus
e500-defined IVORs 32–35
– Exception syndrome register (ESR)
– Book E-defined preempting critical interrupt, including critical interrupt status
registers (CSRR0 and CSRR1) and an rfci instruction
— e500-specific interrupts not defined in Book E architecture
•Memory management unit (MMU)
— 32-bit effective address translated to 32-bit real address (using a 41-bit interim virtual
address) for the e500v1core and 36-bit real addressing for th e e500v2 core
— TLB entries for variable- (4-Kbyte–256-Mbyte pages for the e500v1 and
4-Kbyte–4-Gbyte pages for the e500v2) and fixed-size (4-Kbyte) pages
— Data L1 MMU
– 4-entry, fully associative TLB array for variable-sized pages
– 64-entry, 4-way set-associative TLB for 4-Kbyte pages
— Instruction L1 MMU
– 4-entry, fully associative TLB array for variable-sized pages
– 64-entry, 4-way set-associative TLB for 4-Kbyte pages
— Unified L2 MMU
– 16-entry, fully associative TLB array for variable-sized pages
– e500v1—A 256-entry, 2-way set-associative unified (for instruction and data
accesses) L2 TLB array (TLB0) supports only 4-Kbyte pages
– e500v2—A 512-entry, 4-way set-associative unified (for instruction and data
accesses) L2 TLB array (TLB0) supports only 4-Kbyte pages
— Software reload for TLBs
32
— Virtual memory support for as much as 4 Gbytes (2
— Real memory support for as much as 4 Gbytes (2
36
and 64 Gbytes (2
) on the e500v2
) of effective address space
32
) of physical memory on the e500v1
— Support for big-endian and true little-endian memory on a per-page basis
•Power management
PowerPC e500 Core Family Reference Manual, Rev. 1
1-10Freescale Semiconductor
Core Complex Overview
— Low-power design
— Power-saving modes: core-halted and core-stopped
— Internal clock multipliers ranging from 1 to 8 times the bus clock, including integer and
half-mode multipliers.
— Dynamic power management of execution units, caches, and MMUs
— NAP, DOZE, and SLEEP bits in HID0 can be used to assert nap, doze, and sleep output
signals to initiate power-saving modes at th e integrated device level.
•Testability
— LSSD scan design
— JT AG interface
— ESP support
— Nexus debug support
•Reliability and serviceability
— Parity checking on caches
— Parity checking on e500 local bus
1.3.1e500v2 Differences
The e500v2 provides the following additional features not supported by the e500v1:
•The e500v2 uses 36-bit physical addressing, which is supported by the following:
— MMU assist register 7 (MAS7)
— HID0[EN_MAS7_UPDATE]
— Programmable jumper options to specify the upper bits of the reset vector.
•The e500v2 has a 512-entry, 4-way set-associative unified TLB for TLB1.
•The maximum variable page size is extended to 4 Gbytes.
•Embedded double-precision floating-point APU has been added. These instructions use the
64-bit GPRs as single, 64-bit double-precision operands. This APU is enabled through
MSR[SPE].
•Slightly different functionality of HID1[RFXE] bit.
•The data line fill buffer in the LSU is expanded from three to five entries.
•The load miss queue in the LSU is expanded from four to nine entries.
•TBSEL and TBEE bits have been added to the performance monitor global control
register 0 (PMGC0) to support monitoring of time base events.
•Minor modifications to the SPE APU.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-11
Core Complex Overview
•Data cache flush assist capability , supported through HID0[DCFA]. When DCF A is set, the
cache miss replacement algorithm ignores invalid entries and follows the replacement
sequence defined by the PLRU bits. This reduces the series of uniquely addressed load or
dcbz instructions required to flush the cache.
Detailed descriptions of these differences are pr ovided in their respective chapters.
NOTE
Unless otherwise indicated, references to e500 apply to both e500v1
and e500v2.
1.4Instruction Set
The e500 implements the following instructions:
•The Book E instruction set for 32-bit implementations. This is composed primarily of the
user-level instructions defined by the PowerPC user instru ction set architecture (UISA).
The e500 does not include Book E floating-point, load string, or store string instructions.
•The e500 supports the following implementation-specific instructions:
— Integer select APU. This APU consists of the Integer Select instruction (isel), which
functions as an if
-then-else statement that selects between two source registers by
comparison to a CR bit. This instruction eliminates conditional branches, decreases
latency, and reduces the code footprint.
Move from Performance Monitor RegistermfpmrrD,PMRN
Move to Performance Monitor RegistermtpmrPMRN,rS
— Cache locking APU. This APU consists of the instructions described in Table 1-3.
Table 1-3. Cache Locking APU Instructions
NameMnemonicSyntax
Data Cache Block Lock CleardcblcCT, rA, rB
Data Cache Block Touch and Lock SetdcbtlsCT, rA, rB
Data Cache Block Touch for Store and Lock SetdcbtstlsCT, rA, rB
Instruction Cache Block Lock ClearicblcCT, rA, rB
Instruction Cache Block Touch and Lock SeticbtlsCT, rA, rB
— Machine check APU. This APU defines the Return from Machine Check Interrupt
instruction (rfmci).
PowerPC e500 Core Family Reference Manual, Rev. 1
1-12Freescale Semiconductor
Core Complex Overview
— SPE APU vector instructions. V ector instructions are defined that view the 64-bit GPRs
as composed of a vector of two 32-bit elements (some instructions also read or write
16-bit elements). Some scalar instructions produce a 64-bit scalar result.
Sectio n 3.8.1.3, “SPE APU Instructio n s ,” lists SPE APU vector instructions.
— The embedded floating-point APUs provide scalar and vector floating-point
instructions. Scalar single-precision floating-point instructions use only the lower 32
bits of the GPRs; double-precision operands (e500v2 only) use all 64 bits. Table 1-4
lists embedded floating-point instructions.
Table 1-4. Scalar and Vector Embedded Floating-Point APU Instructions
Instruction
Scalar SP Scalar DPVector
Convert Floating-Point Single- from Double-Precision—efscfd — rD,rB
Convert Floating-Point Double- from Single-Precision—efdcfs — rD,rB
Convert Floating-Point from Signed Fraction efscfsf efdcfsf evfscfsf rD,rB
Convert Floating-Point from Signed Fraction efscfsf efdcfsf evfscfsf rD,rB
Convert Floating-Point from Signed Integer efscfsi efdcfsi evfscfsi rD,rB
Convert Floating-Point from Unsigned Fraction efscfufefdcfufevfscfufrD,rB
Convert Floating-Point from Unsigned Integer efscfui efdcfui evfscfui rD,rB
Convert Floating-Point to Signed Fraction efsctsfefdctsfevfsctsfrD,rB
Convert Floating-Point to Signed Integer efsctsiefdctsievfsctsirD,rB
Convert Floating-Point to Signed Integer with Round toward Zero efsctsizefdctsizevfsctsizrD,rB
Convert Floating-Point to Unsigned Fraction efsctufefdctufevfsctufrD,rB
Convert Floating-Point to Unsigned Integer efsctuiefdctuievfsctuirD,rB
Convert Floating-Point to Unsigned Integer with Round toward Zero efsctuizefdctuizevfsctuizrD,rB
Floating-Point Absolute Value efsabs efdabs evfsabs rD,rA
Floating-Point Test Equal efststeq efdtsteq evfststeq crD,rA,rB
Floating-Point Test Greater Than efststgt efdtstgt evfststgt crD,rA,rB
Floating-Point Test Less Than efststlt efdtstlt evfststlt crD,rA,rB
Mnemonic
Syntax
B
— BTB locking APU instructions. The core complex provides a 512-entry BTB for
efficient processing of branch instructions. The BTB is a branch target address cache,
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-13
Core Complex Overview
organized as 128 rows with 4-w ay set associativity, that holds the address and target
instruction of the 512 most-recently taken branches. Table 1-5 lists BTB instructions.
Table 1-5. BTB Locking APU Instructions
NameMnemonicSyntax
Branch Buffer Load Entry and Lock Setbblels—
Branch Buffer Entry Lock Resetbbelr—
1.5Instruction Flow
The e500 core is a pipelined, superscalar processor with parallel execution units that allow
instructions to execute out of order but record their results in order. Pipelining breaks instruction
processing into discrete stages, so multiple instructions in an instruction sequence can occupy the
successive stages: as an instruction completes one stage, it passes to the next, leaving the previous
stage available to a subsequent instruction. So, even though it may take multiple cycles for an
instruction to pass through all of the pipeline stages, once a pipeline is full, instruction throughput
is much shorter than the latency.
A superscalar processor is one that issues multiple independent instructions into separate
execution units, allowing parallel execution. The e500 core has five execution units, one each for
branch (BU), load/store (LSU), and multiple-cycle operations (MU), and two for simple arithmetic
operations (SU1 and SU2). The MU and SU1 arithmetic execution units also execute 64-bit SPE
vector instructions, using both the lower and upper halves of the 64-bit GPRs.
The parallel execution units allow multiple instructions to execute in parallel and out of order. For
example, a low-latency addition instruction that is issued to an SU after an integer divide is issued
to the MU should finish executing before the higher latency divide instruction. The add instruction
can make its results available to a subsequent instruction, but it cannot update the architected GPR
specified as its target operand ahead of the multiple-cycle divide instruction.
1.5.1Initial Instruction Fetch
The e500 core begins execution at fixed virtual address 0xFFFF_FFFC. The MMU has a default
page translation which maps this to the identical physical address. So, the instruction at physical
address 0xFFFF_FFFC must be a branch to another address within the 4-Kby te boot page.
1.5.2Branch Detection and Prediction
To improve branch performance, the e500 provides implementation-specific dynamic branch
prediction using the BTB to resolve branch instructions and improve the accuracy of branch
predictions. Each of the 512 entries in the 4-way set associative address cache of branch target
addresses includes a 2-bit saturating branch history counter, whose value is incremented or
decremented depending on whether the branch was taken. These bits can take on four values
PowerPC e500 Core Family Reference Manual, Rev. 1
1-14Freescale Semiconductor
Core Complex Overview
indicating strongly taken, weakly taken, weakly not taken, and strongly not taken. The BTB is used
not only to predict branches, but to detect branches during the fetch stage, offering an efficient way
to access instruction streams for branches predicted as taken.
In the e500, all branch instructions are assigned positions in the completion queue at dispatch.
Speculative instructions in branch target streams are allo wed to execute and proceed through the
completion queue, although they can complete only after the branch prediction is resolved as
correct and after the branch instruction itself completes.
If a branch resolves as correct, instructions in the target stream are marked nonspeculative and are
allowed to complete. If the branch history bits in the BTB indicated weakly taken or weakly not
taken, the prediction is upgraded to strongly taken or strongly not taken.
If a br anch resolves as incorr ect, instru ctions in the target s tream are flushed from the executio n
pipel ine, the bran ch history b its are updated in the BTB entry, and nonspeculative fetching begins
from t he correct path.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-15
Core Complex Overview
1.5.3e500 Execution Pipeline
The seven stages of the e500 execution pipeline—fetch1, fetch2/predecode, decode/dispatch,
issue, execute, complete, and write back—are highlighted in grey in Figure 1-5.
Indicates stages
At dispatch, instructions are deallocated from the
IQ and assigned sequential positions in the CQ.
Issue Stage
Branch Issue Queue (BIQ)
Execute Stage
LSU Stage 1
BU
Execute
BU
Finish
Stage 2
Stage 3
General Issue Queue (GIQ)
MU Stage 1
Stage 2
Stage 3
Stage 4
Fetch Stage 1
Fetch Stage 2
Decode Stage
Maximum two-instruction per cycle dispatch
to the issue queues. BIQ can accept one
per cycle; GIQ can accept at most two.
Divide Bypass
Divide
Postdivide
Instruction Cache
Maximum four-instruction
fetch per clock cycle
SU1
SU2
Completion Stage
Write-Back Stage
Maximum two-instruction
completion per clock cycle
Figure 1-5. Instruction Pipeline Flow
The common pipeline stages are as follows:
•Instr ucti on fetch —I nclu de s the cl oc k cycl es neces sa ry to re que st an in st ruct io n and th e ti me
the mem ory syste m take s to respo nd to th e reques t. Instr ucti ons retr ieved ar e latc hed into the
instr uction queu e (IQ) for subsequent consideratio n by the dispatcher.
Instructio n fetch timi ng dep ends on many vari ables, s uch as wheth er an instructio n is in the
on-chip inst ruction cache or an L2 cache ( if implemented) . Those facto rs increas e when it is
necessary to fetch i nstr uctions f rom s ystem mem ory a nd includ e the process or -to-bus clo ck
ratio, the amount of bus traffic, and wheth er any cache coherency operations are required.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-16Freescale Semiconductor
Core Complex Overview
Because there are so many variables, unless otherwise specified, the instruction timing
examples in this chapter assume optimal performance and show the po rtion of the fetch
stage in which the instruction is in the instruction queue. The fetch1 and fetch2 stages are
primarily involved in retrieving instructions.
•The decode/dispatch stage fully decodes each instruction; most instructions are dispatched
to the issue queues (however, isync, rfi, sc, nops, and some other instructions do not go to
issue queues).
•The two issue queues, BIQ and GIQ, can accep t as many as one and two instructions,
respectively , in a cycle. The behavior of instruction dispatch is covered in significant detail
in the e500 Software Optimization Guide. The following simplification covers most cases:
— Instructions dispatch only from the two lowest IQ entries—IQ0 and IQ1.
— A total of two instructions can be dispatched to the issue queues per clock cycle.
— Space mu st be av aila ble in t he CQ for an i nstr uction to de code a nd di spatch (thi s inclu des
instructions that are assigned a space in the CQ but not in an issue queue).
Dispatch is treated as an event at the end of the decode stage. The issue stage reads source
operands from rename registers and register files and determines when instructions are
latched into the execution unit reservation stations. Note that the e500 has 14 rename
registers, one for each completion queue entry , so instructions cannot stall because of a
shortage of rename registers.
The general behavior of the two issue queues is described as follows:
— The GIQ accepts as many as two instructions from the dispatch unit per cycle. SU1,
SU2, MU, and all LSU instructions (including 64-bit loads and stores) are dispatched to
the GIQ, shown in Figure 1-6.
From IQ0/IQ1
GIQ3
GIQ2
GIQ1
GIQ0
To SU2, MU, or LSU
To SU1, MU, or LSU
Figure 1-6. GPR Issue Queue (GIQ)
Instructions can be issued out-of-order from the bottom two GIQ entries (GIQ1–GIQ0).
GIQ0 can issue to SU1, MU, and LSU. GIQ1 can issue to SU2, MU, and LSU.
Note that SU2 executes a subset of the instructions that can be executed in SU1. The
ability to identify and dispatch instructions to SU2 increases the availability of SU1 to
execute more computational-intensive instructions.
An instruction in GIQ1 destined for SU2 or the LSU need not wait for an MU
instruction in GIQ0 that is stalled behind a long-latency divide.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-17
Core Complex Overview
•The execute stage accepts instructions from its issue queue when the appropriate
reservation stations are not busy . In this stage, the operands assigned to the execution stage
from the issue stage are latched.
The execution unit executes the instruction (perhaps over multiple cycles), writes results on
its result bus, and notifies the CQ when the instruction finishes. The execution unit reports
any exceptions to the completion stage. Instruction-generated exceptions are not taken until
the excepting instruction is next to retire.
Most integer instructions have a 1-cycle latency, so results of these instructions are
available 1 clock cycle after an instruction enters the execution unit. The MU and LSU are
pipelined, as shown in Figure 1-5.
Branches resolve in execute stage. If a branch is mispredicted, it takes 5 cycles for the next
instruction to reach the execute stage.
•The complete and write-back stages maintain the correct architectural machine state and
commit results to the architecture-defined registers in the proper order. If completion logic
detects an instruction containing an exception status or a mispredicted branch, all following
instructions are cancelled, their execution results in rename registers are discarded, and the
correct instruction stream is fetched.
The complete stage ends when the instruction is retired. T wo instructions can be retired per
clock cycle. If no dependencies exist, as many as two instructions are retired in program
order. Section 4.7.4, “Completion Unit Resource Requirements,” describes completion
dependencies.
The write-back stage occurs in the clock cycle after the instruction is retired.
The e500 co re also provides new instructi ons that perform s ingle-instruc tion, multiple-d ata (SIMD)
operations . These signal proce ssing instructions co nsist of paralle l operations on both the upper and
lower 32 bits of tw o 64-bit GPR values and produce two 32-bit results written to a 64-bit GPR.
As shown in Figure 1-5, the LSU, MU, and SU1 replicate logic to support 64-bit operations.
Although a vector instruction generates separate, discrete results in the upper and lower halves of
the target GPR, latency and throughput for vector instructions are the same as those for their scalar
equivalents.
1.6Programming Model
The following section describes the e500 core registers defined in Book E, the Freescale
Semiconductor Book E implementation standards (EIS), and registers that are specific to the e500.
Figure 1-7 shows the e500 register set.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-18Freescale Semiconductor
Core Complex Overview
User-Level Registers
General-Purpose RegistersInstruction-Accessible RegistersUser General SPR (Read/Write)
The core complex contains separate 32-Kbyte, eight-way set-associative, level 1 (L1) instruction
and data caches to give rapid access to instructions and data.
The data cache supports four-state MESI memory coherency protocol. The core complex
broadcasts all cache management functions based on the setting of the address broadcast enable
bit, HID1[ABE], allowing management of other caches in the system.
The caches implement a pseudo-least-recently-used (PLRU) replacement algorithm.
Parity generation and checking may be enabled for both caches, and each cache can be
independently invalidated through L1CSR1 and L1CSR0. Additionally, instructions are provided
to perform cache locking and unlocking on both data and instruction caches on a cache-block
granularity . These are listed in Section 1.10.3, “Cache Control Instructions.”
Individual instruction cache blocks and data cache blocks can be invalid ated using the icbi and
dcbi instructions, respectively. The entire data cache can be invalidated by setting L1CSR0[CFI];
the entire instruction cache can be invalidated by setting L1CSR1[ICFI].
1.8Interrupts and Exception Handling
The e500 core supports an extended exception handling model, with nested interrupt capability
and extensive interrupt vector programmability. The following sections define the exception
model, including an overview of exception handling as implemented on the e500 core, a brief
description of the exception classes, and an overview of the registers involved in the processes.
1.8.1Exception Handling
In general, interrupt processing begins with an exception that occurs due to external conditions,
errors, or program execution problems. When the exception occurs, the processor checks to verify
interrupt processing is enabled for that particular exception. If enabled, the interrupt causes the
state of the processor to be saved in the appropriate registers and prepares to begin execution of
the handler located at the associated vector address for that particular exception.
Once the handler is executing, the implementation may need to check one or more bits in the
exception syndrome register (ESR) or the SPEFSCR, depending on the exception, to verify the
specific cause of the exception and take appropriate action.
The core complex provides the interrupts described in Section 1.8.5, “Interrupt Registers.”
PowerPC e500 Core Family Reference Manual, Rev. 1
1-20Freescale Semiconductor
Core Complex Overview
1.8.2Interrupt Classes
All interrupts may be categorized as asynchronous/synchronous and critical/noncritical.
•Asynchronous interrupts (such as machine check, critical input, and external interrupts) are
caused by events that are independent of instruction execution. For asynchronous
interrupts, the address reported in a save/restore register is the address of the instruction that
would have executed next had the asynchronous interrupt not occurred.
•Synchronous interrupts are those that are caused directly by the execution or attempted
execution of instructions. Synchronous inputs may be either precise or imprecise, which are
described as follows:
— Synchronous precise interrupts are those that precisely indicate the address of the
instruction causing the exception that generated the interrupt or, in some cases, the
address of the immediately following instruction. The interrupt type and status bits
indicate which instruction is addressed in the appropriate save/restore register.
— Synchronous impre cise interrupts are those that may indicate the address of the
instructio n causing the exception th at generated th e interrupt or some instru ction after the
instructio n causing the interrupt. If the inter rupt was caused by either the cont ext
synchroniz ing mechanism or the execution syn chronizi ng mechanism, the addre ss in th e
appropriat e save/restore register is the address o f th e interrupt forcing instruction. If the
interrupt wa s not caused by either of those mechanisms, the address in the save/restore
register is th e last instruction to start execution and may not have completed. No
instructio n following the instruction in the save/restore register has ex ecuted.
1.8.3Interrupt Types
The e500 core processes all interrupts as either machine check , critical, or noncritical types.
Separate control and status register sets are provided for each interrupt type. The core handles
interrupts from these three types in the following priority order:
1. Machine check interrupt (highest priority)—The e500 defines a separate set of resources
for the machine check interrupt. They use the machine check save and restore registers
(MCSRR0/MCSRR1) to save state when they are taken, and they use the rfmci instruction
to restore state. These interrupts can be masked by the machine check enable bit,
MSR[ME].
2. Noncritical interrupts—First-level interrupts that allow the processor to change program
flow to handle conditions generated by external signals, errors, or unusual conditions
arising from program execution or from programmable timer-related events. These
interrupts are largely identical to those previously defined by the OEA portion of the
Power PC architecture. They use save and restore registers (SRR0/SRR1) to save state
when they are taken and they use the rfi instruction to restore state. Asynchronous
noncritical interrupts can be masked by the external interrupt enable bit , MSR[EE].
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-21
Core Complex Overview
3. Critical interrupts—Critical interrupts can be taken during a noncritical interrupt or during
regular program flow. They use the critical save and restore registers (CSRR0/CSRR1) to
save state when they are taken and they use the rfci instruction to restore state. These
interrupts can be masked by the critical enable bit, MSR[CE]. Book E defines the critical
input, watchdog timer, and machine check interrupts as critical interrupts, but the e500
defines a third set of resources for the machine check interrupt, as described in Table 1-6.
All inter rupts except ma chine check are ordered within the two categories of noncritic al and critica l,
such that only on e interrupt of each category is reported, and when it is processed (ta ken), no
program st ate is lost. Because sav e/restore register pa irs are s erially reusa ble, progr am state may be
lost when an unor dered interrupt is taken (see Section 5.10, “Interrupt Ordering and Masking”).
1.8.4Upper Bound on Interrupt Latencies
Core complex interrupt latency is defined as the number of core clocks between the sampling of
the interrupt signal as asserted and the initiation of the IVOR fetch (that is, the fetch of the first
instruction in the handler). Core complex interrupt latency is determinate unless a guarded load or
a cache-inhibited stwcx. is being executed, in which case the latency is indeterminate. The
minimum latency is 3 core clocks and the maximum is 8, not including the 2 bus clock cycles
required to synchronize the interrupt signal from the pad.
When an interrupt is taken, all instructions in the IQ are thrown away unless the oldest instruction
is a load/store instruction. That is, if an asynchronous interrupt is being serviced and the oldest
instruction is not a load/store instruction, the core complex goes straight from sampling the
interrupt to ensuring a recoverable state and issuing an exce ption. If a load/store instruction is
oldest, the core complex waits 4 clocks before ensuring a recoverable state. During this time, any
instruction finished by the LSU is deallocated.
1.8.5Interrupt Registers
The registers associated with interrupt and exception handling are described in Table 1-6.
Table 1-6. Interrupt Registers
RegisterDescription
Noncritical Interrupt Registers
SRR0Save/restore register 0—Holds the address of the instruction causing the exception or the address of the
instruction that will execute after the rfi instruction.
SRR1Save/restore register 1—Holds machine state on noncritical interrupts and restores machine state after an
rfi instruction is executed.
Critical Interrupt Registers
CSRR0Critical save/restore register 0—On critical interrupts, holds either the address of the instruction causing the
exception or the address of the instruction that will execute after the rfci instruction.
CSRR1Critical save/restore register 1—Holds machine state on critical interrupts and restores machine state after
an rfci instruction is executed.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-22Freescale Semiconductor
Core Complex Overview
Table 1-6. Interrupt Registers (continued)
RegisterDescription
Machine Check Interrupt Registers
MCSRR0 Machine check save/restore register 0—Used to store the address of the instruction that will execute after
an rfmci instruction is executed.
MCSRR1 Machine check save/restore register 1—Holds machine state on machine check interrupts and restores
machine state (if recoverable) after an rfmci instruction is executed.
MCARMachine check address register—Holds the address of the data or instruction that caused the machine
check interrupt. MCAR contents are not meaningful if a signal triggered the machine check interrupt.
Syndrome Registers
MCSRMachine check syndrome register—Holds machine state information on machine check interrupts and
restores machine state after an rfmci instruction is executed.
ESRException syndrome register—Provides a syndrome to differentiate between the different kinds of
exceptions that generate the same interrupt type. Upon generation of a specific exception type, the
associated bit is set and all other bits are cleared.
SPE APU Interrupt Registers
SPEFSCR Signal processing and embedded floating-point status and control register—Provides interrupt control and
status as well as various condition bits associated with the operations performed by the SPE APU.
Other Interrupt Registers
DEARData exception address register—Holds the address that was referenced by a load, store, or cache
management instruction that caused an alignment, data TLB miss, or data storage interrupt.
IVPR
IVORs
Together, IVPR[32–47] || IVOR
See Ta bl e 1 -7 and the EREF for more information.
n
[48–59] || 0b0000 define the address of an interrupt-processing routine.
Each interr upt has an associat ed interrupt vector address, obtained by concate nating the IVP R value
with the addres s index in the associated IVOR (that is, IVPR[32–47] || IVORn[48–59] || 0b0000).
The resulti ng addre ss is that of the i nstructi on to be execu ted w hen that inte rrupt occ urs. I VPR a nd
IVOR values are indeterminate on reset, and must be in itialized by the system softwa re using
mtspr. Table 1-7 lists IVOR registe rs implemented on the e500 and the associated interrupts. For
more informat ion, see Chapter 5, “Interrupts and Exceptions.”
Table 1-7. Interrupt Vector Registers and Exception Conditions
RegisterInterrupt
Book E–Defined IVORs
IVOR0Critical input
IVOR1Machine check interrupt offset
IVOR2Data storage interrupt offset
IVOR3Instruction storage interrupt offset
IVOR4External input interrupt offset
IVOR5Alignment interrupt offset
IVOR6Program interrupt offset
IVOR7Floating-point unavailable interrupt offset (not supported on the e500)
IVOR8System call interrupt offset
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-23
Core Complex Overview
Table 1-7. Interrupt Vector Registers and Exception Conditions (continued)
RegisterInterrupt
IVOR9Auxiliary processor unavailable interrupt offset (not supported on the e500)
IVOR10Decrementer interrupt offset
IVOR11Fixed-interval timer interrupt offset
IVOR12Watchdog timer interrupt offset
IVOR13Data TLB error interrupt offset
IVOR14Instruction TLB error interrupt offset
IVOR15Debug interrupt offset
e500-Specific IVORs
IVOR32SPE APU unavailable interrupt offset
IVOR33SPE floating-point data exception interrupt offset
The e500 core complex supports demand-paged virtual memory as well other mem ory
management schemes that depend on precise control of effective-to-physical address translation
and flexible memory protection as defined by Book E. The mapping mechanism consists of
software-managed TLBs that support variable-sized pages with per-page properties and
permissions. The following properties can be configured for each TLB:
•User-mode page execute access
•User-mode page read access
•User-mode page write access
•Supervisor-mode page execute access
•Supervisor-mode page read access
•Supervisor-mode page write access
•Write-through required ( W)
•Caching inhibited (I)
•Memory coherency required (M)
•Guarded (G)
•Endianness (E)
•User-definable (U0–U3), a 4-bit implementation-specific field
The core complex employs a two-level memory management unit (MMU) architecture. There are
separate instruction and data level-1 (L1) MMUs backed up by a unified level-2 (L2) MMU,
PowerPC e500 Core Family Reference Manual, Rev. 1
1-24Freescale Semiconductor
This two-level structure is shown in Figure 1-8.
Core Complex Overview
To instruction unit
MAS
Registers
To load/store unit
Memory Unit
32-Kbyte I-Cache
Ta g s
L1 Instruction MMU
4-Entry
I-L1VSP
L2 MMUs
Unified
16-Entry
TLB Array
(TLB1)
4-Entry
D-L1VSP
32-Kbyte D-Cache
256/512-Entry
L1 Data MMU
D-L1TLB4K
Ta g s
64-Entry
I-L1TLB4K
TLB Array
(TLB0)
64-Entry
Core Interface
Data Line
FIll Buffer
Instruction Line
FIll Buffer
Figure 1-8. MMU Structure
Level-1 MMUs have the following features:
•Four-entry, fully associative TLB array that supports all nine page sizes
•64-entry , 4-way set-associative TLB 4-Kbyte array that supports 4-Kbyte pages only
•Hardware partially managed by L2 MMU
•Supports snooping of TLBs by both internal and external tlbivax instructions
The level-2 MMU has the following features:
•A 16-entry , fully associative L2 TLB array (TLB1) that supports all nine variable page sizes
•TLB array (TLB0) that supports only 4-Kbyte pages, as follows:
— e500v1—256-entry, 2-way set-associative TLB array
— e500v2—512-entry, 4-way set-associative TLB array
•Hardware assist for TLB miss exceptions
•Software managed by tlbre, tlbwe, tlbsx, tlbsync, tlbivax, and mtspr instructions
•Supports snooping of TLB by both internal and external tlbivax instructions
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-25
Core Complex Overview
1.9.1Address Translation
The core complex fetch and load/store units generate 32-bit effective addresses. The MMU
translates these addresses to real addresses (32-bit real addresses for the e500v1 core, 36-bit for
the e500v2) (which are used for memory bus accesses) using an interim 41-bit virtual address.
Figure 1-9 shows the translation flow for the e500v1 core.
The appropriate L1 MMU (instruction or data) is checked for a matching address translation. The
instruction L1 MMU and data L1 MMU operate independently and can be accessed in parallel, so
that hits for instruction accesses and data accesses can occur in the same clock. If an L1 MMU
misses, the request for translation is forwarded to the unified (instruction and data) L2 MMU. If
found, the contents of the TLB entry are concatenated with the byte address to obtain the physical
address of the requested access. On misses, the L1 TLB entries are replaced from their L2 TLB
counterparts using a true LRU algorithm.
1.9.2MMU Assist Registers (MAS0–MAS4 and MAS6–MAS7)
Book E defines SPR numbers for the MMU assist regi sters, which are used to hold values either
read from or to be written to the TLBs and information required to identify the TLB to be accessed.
To ensure consistency among Freescale Semiconductor Book E processors, certain aspects of the
implementation are defined by the Freescale Semiconductor Book E standard, whereas more
specific details are left to individual implementations. MAS3 implements the real page number
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-27
Core Complex Overview
(RPN), the user attribute bits (U0–U3), and permission bits (UX, SX, UW, SW, UR, SR) that
specify user and supervisor read, write, and execute permissions.
The e500 does not implement MAS5.
MAS registers are affected by the following instructions (see Section 12.4, “TLB
Instructions—Implementation,” for more detailed information):
•MAS registers are accessed with the mtspr and mfspr instructions.
•The TLB Read Entry instruction (tlbre) causes the contents of a single TLB entry from the
L2 MMU to be placed in defined locations in MAS0–MAS3 (and optionally MAS7 on the
e500v2). The TLB entry to be extracted is determined by information written to MAS0 and
MAS2 before the tlbre instruction is execut ed.
•The TLB Write Entry instruction (tlbwe) causes the information stored in certain locations
of MAS0–MAS3 (and MAS7 on the e500v2) to be written to the TLB specified in MAS0.
•The TLB Search Indexed instruction (tlbsx) updates MAS registers conditionally , based on
success or failure of a lookup in the L2 MMU. The lookup is specified by the instruction
encoding and specific search fields in MAS6. The values placed in the MAS registers may
differ, depending on a successful or unsuccessful search.
For TLB miss and certain MMU-related DSI/ISI exceptions, MAS4 provides default values for
updating MAS0–MAS2.
1.9.3Process ID Registers (PID0–PID2)
The e500 core complex also implements three process ID (PID) registers that hold the values used
to construct the three virtual addresses for each access. These process IDs provide an extended
page sharing capability. Which of these three virtual addresses is used is controlled by the TID
field of a matching TLB entry, and when TID = 0x00 (identifying a page as globally shared), the
PID values are ignored.
A hit to multiple TLB entries in the L1 MMU (even if they are in separate arrays) or a hit to
multiple entries in the L2 MMU is considered to be a programming error.
1.9.4TLB Coherency
The core complex provides the ability to invalidate a TLB entry, as defined in the Book E
architecture. The tlbivax instruction invalidates a matching local TLB entry. Execution of this
instruction is also broadcast on the core complex bus (C CB) if HID1[ABE] is set. The core
complex also snoops TLB invalidate transactions on the CCB from other bus masters.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-28Freescale Semiconductor
Core Complex Overview
1.10Memory Coherency
The core complex supports four-state memory coherency . Memory coherency is
hardware-supported on the system bus through bus snooping and the retry/copyback bus protocol,
and through broadcasting of cache management instructions. Translation coherency is also
hardware-supported through broadcasting and bus snooping of TLB invalidate transactions. The
four-state MESI protocol supports efficient large-scale real-time data sharing between multiple
caching bus masters.
1.10.1 Atomic Update Memory References
The e500 core supports atomic update memory references for both aligned word forms of data
using the load and reserve and store conditional instruction pair, lwarx and stwcx.. Typically, a
load and reserve instruction establishes a reservation and is paired with a store conditional
instruction to achieve the atomic operation. However, there are restrictions and requirements for
this functionality . The processor revokes reservations during a context switch, so the programmer
must reacquire the reservation after a context switch occurs.
1.10.2 Memory Access Ordering
The core complex supports weakly ordered references to memory. Thus the e500 manages the
order and synchronization of instructions to ensure proper execution when memory is shared
between multiple processes or programs. The cache and data memory control attributes, along
with msync and mbar, provide the required access control; msync and mbar are also broadcast
on the CCB to provide the appropriate control in the case of multiprocessor or shared memory
systems.
1.10.3 Cache Control Instructions
The core complex supports Book E instructions for performing a full range of cache control
functions, including cache locking by line. The core complex supports broadcasting and snooping
of these cache control instructions on the CCB. The e500 core also supports the following
e500-specific cache locking instructions:
•Data Cache Block Lock Clear (dcblc)
•Data Cache Block Touch and Lock Set (dcbtls)
•Data Cache Block Touch for Store and Lock Set (dcbtstls)
•Instruction Cache Block Lock Clear (icblc)
•Instruction Cache Block Touch and Lock Set (icbtls)
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-29
Core Complex Overview
1.10.4 Programmable Page Characteristics
Cache and memory attributes are programmable on a per-page basis. In addition to the
write-through, caching-inhibited, memory coherency enforced, and guarded characteristics
defined by the WIMG bits, Book E defines an endianness bit, E, that allows selection of big- or
little-endian byte ordering on a per-page basis.
In addition to the WIMGE bits, the Book E MMU model defines user-definable page attribute bits
(U0–U3).
1.11Core Complex Bus (CCB)
The core complex defines a versatile local bus interface that allows a wide range of system
performance and system-complexity trade-offs. The interface defines the following buses.
•An address-out bus for mastering bus transactions
•An address-in bus for snooping internal resources
•Three tagged data buses
Two of the data buses are general-purpose data-in buses for reads, and the third is a data-out bus
for writes. The two data-in buses feature support for out-of-order read transactions from two
different sources simultaneously, and all three data buses may be operated concurrently. The
address-in bus supports snooping for external management of the L1 caches and TLBs by other
bus masters. The core complex broadcasts and snoops the cache and TLB management
instructions accordingly. It is envisioned that a wide range of system implementations can be
constructed from the defined interface.
1.12Performance Monitoring
The e500 core provides a performance monitoring capability that allows counting of events such
as processor clocks, instruction cache misses, data cache misses, mispredicted branches, and
others. The count of these events may be configured to trigger a performance monitor exception
following the e500 interrupt model. This interrupt is assigned to vector offset register IVOR35.
The register set associated with the performance monitoring function consists of counter registers,
a global control register, and local control registers. These registers are read/write from supervisor
mode, and each register is reflected to a corresponding read-only register for user mode. Two
instructions, mtpmr and mfpmr, are provided for moving data to and from these registers. An
overview of the performance monitoring registers is provided in the fo llowing sections.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-30Freescale Semiconductor
Core Complex Overview
1.12.1 Global Control Register
The PMGC0 register provides global control of the performance monitoring facility from
supervisor mode. From this register all counters may be frozen, unfrozen, or configured to freeze
on an enabled condition or event. Additionally, the performance monitoring facility may be
disabled or enabled from this register. The contents of PMGC0 are reflected to UPMGC0, which
may be read from user mode using the mfpmr instruction.
1.12.2 Performance Monitor Counter Registers
There are four counter registers (PCM0–PCM3) provided in the performance monitoring facility.
These 32-bit registers hold the current count for software-selectable events and can be
programmed to generate an exception on overflow. These registers may be written or read from
supervisor mode using the mtpmr and mfpmr instructions. The contents of these registers are
reflected to UPCM0–UPCM3, which can be read from user mode with mfpmr.
Performance monitor exceptions occur only if all of the fo llowing conditions are met:
•A counter is in the overflow state.
•The counter's overflow signaling is enabled.
•Overflow exception generation is enabled in PMGC0.
•MSR[EE] is set.
1.12.3 Local Control Registers
For each of the counter registers, there are two corresponding local control registers. These two
registers specify which of the 128 available events is to be counted, what specific action is to be
taken on overflow, and various options for freezing a counter value under given modes or
conditions.
•PMLCa0–PMLCa3 provide fields that allow freezing of the corresponding counter in user
mode, supervisor mode, or under software control. Additionally, the overflow condition
may be enabled or disabled from this register. The contents of these registers are reflected
to UPMLCa0–UPMLCa3, which can be read from user mode with mfpmr.
•PMLCb0–PMLCb3 provide count scaling for each counter register using configurable
threshold and multiplier values. The threshold is a 6-bit value and the multiplier is a 3-bit
encoded value, allowing eight multiplier values in the range of 1 to 128. Any counter may
be configured to increment only when an event occurs mor e than [threshold × multiplier]
times. The contents of these registers are reflected to UPMLCb0–UPMLCb3, which can be
read from user mode with mfpmr.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-31
Core Complex Overview
1.13Legacy Support of PowerPC Architecture
This section provides an overview of the architectural differences and compatibilities of the e500
core compared with the AIM PowerPC architecture. The two levels of the e500 programming
environment are as follows:
•User level—This defines the base user-level instruction set, user-level registers, data types,
memory conventions, and the memory and programming models seen by application
programmers.
•Supervisor level—This defines supervisor-level resources typically required by an
operating system, the memory management model, supervisor level registers, and the
exception model.
In general, the e500 core supports the user-level architecture from the existing AIM architecture.
The following subsections are intended to highlight the main differences. For specific
implementation details refer to the relevant chapter.
1.13.1 Instruction Set Compatibility
The following sections generally describe the user and supervisor instruction sets.
1.13.1.1 User Instruction Set
The e500 core executes legacy user-mode binaries and object files except for the following:
•The e500 supports vector and scalar single-precision floating-point operations as APUs.
The e500v2 supports scalar double-precision floating-point instructions. These instructions
have different encoding than the AIM definition of the PowerPC architecture. Additionally ,
the e500 core uses GPRs for floating-point operations, rather than the FPRs defined by the
UISA. Most porting of floating-point operations can be handled by recompiling.
•String instructions are not implemented on the e500; therefore, trap emulation must be
provided to ensure backward compatibility.
1.13.1.2Supervisor Instruction Set
The supervisor mode instruction set defined by the AIM version of the PowerPC architecture is
compatible with the e500 with the following exceptions:
•The MMU architecture is different, so some TLB manipulation instructions have different
semantics.
•Instructions that support the BATs and segment registers are not implemented.
PowerPC e500 Core Family Reference Manual, Rev. 1
1-32Freescale Semiconductor
Core Complex Overview
1.13.2 Memory Subsystem
Both Book E and the AIM version of the PowerPC architecture provide separate instruction and
data memory resources. The e500 provides additional cache control features, including cache
locking.
1.13.3 Exception Handling
Exception handling is generally the same as that defined in the AIM version of the PowerPC
architecture for the e500, with the following differences:
•Book E defines a new critical interrupt, providing an extra level of interrupt nesting. The
critical interrupt includes external critical and watchdog timer time-out inputs.
•The machine check exception differs from the Book E and from the AIM definition. It
defines the Return from Machine Check Interrupt instruction, rfmci, and two machine
check save/restore registers, MCSRR0 and MCSRR1.
•Book E processors can use IVPR and IVORs to set exception vectors individually, but they
can be set to the address offsets defined in the OEA to provide compatibility.
•Unlike the AIM version of the PowerPC architecture, Book E does not define a reset vector;
execution begins at a fixed virtual address, 0xFFFF_FFFC.
•Some Book E and e500-specific SPRs are different from those defined in the AIM version
of the PowerPC architecture, particularly those related to the MMU functions. Much of this
information has been moved to a new exception syndrome register (ES R).
•Timer services are generally compatible, although Book E defines a new decrementer auto
reload feature, the fixed-interval timer critical interrupt, and the watchdog timer interrupt,
which are implemented in the e500 core.
An overview of the interrupt and exception handling capabilities of the e500 core can be found in
Section 1.8, “Interrupts and Exception Handling.”
1.13.4 Memory Management
The e500 core implements a straightforward virtual address space that complies with the Book E
MMU definition, which eliminates segment registers and block address translation resources.
Book E defines resources for fixed 4-Kbyte pages and multiple, variable page sizes that can be
configured in a single implementation. TLB management is provided with new instructions and
SPRs.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor1-33
Core Complex Overview
1.13.5 Reset
Book E–compliant cores do not share a common reset ve ctor with the AIM version of the
PowerPC architecture. Instead, at reset fetching begins at address 0xFFFF_FFFC. In addition to
the Book E reset definition, the EIS and the e500 define specific aspects of the MMU page
translation and protection mechanisms. Unlike the AIM version of the PowerPC core, as soon as
instruction fetching begins, the e500 core is in virtual mode with a hardware-initialized TLB entry.
EIS–defined aspects of the MMU are described in the ERE F. Specific details of how the e500 is
initialized are provided in Section 12.6, “TLB States after Reset.”
1.13.6 Little-Endian Mode
Unlike the AIM version of the PowerPC architecture, where little-endian mode is controlled on a
system basis, Book E allows control of byte ordering on a memory page basis. In addition, the
little-endian mode used in Book E is true little endian .
PowerPC e500 Core Family Reference Manual, Rev. 1
1-34Freescale Semiconductor
Chapter 2
Register Model
This chapter describes implementation-specific details of the register model as it is implemented
on the e500 core processors. It identifies all registers that are implemented on the e500 cores, but,
with a few exceptions, does not include full descriptions of those registers and register fields that
are implemented exactly as they are defined by the Book E architecture and by the Freescale
Book E implementation standards (EIS). A full description of these registers is provided in the
EREF: A Reference for Freescale Book E and the e500 Core (EREF).
It is important to note that a device that integrates the e500 core may not implement all of the fields
and registers that are defined here, and may interpret some fields more specifically than can be
defined here. For specific details, refer to the “Register Summary” chapter in the reference manual
for the device that incorporates the e500 core. The register summary chapter fully describes all
registers and register fields as they are implemented on the device.
2.1Overview
Although this chapter organizes registers according to their functionality, they can be
differentiated according to how they are accessed , as follows:
•General-purpose registers (GPRs)—Used as source and destination operands for most
operations. The e500 implements 64-bit GPRs. Book E–defined instructions access only
the lower word; SPE vector instructions and embedded vector single-precision and
double-precision floating-point APUs (e500v2 only) use all 64 bits. See Section 2.3.1,
“General-Purpose Registers (GPRs).”
•Special-purpose registers (SPRs)—Accessed by using the Book E–defined Move to
Special-Purpose Register (mtspr) and Move from Special-Purpose Register (mfspr)
instructions. Section 2. 2.1, “Special-Purpose Registers (SPRs),” lists SPRs.
•System-level registers that are not SPRs. These are as follows:
— Machine state register (MSR). MSR is accessed with the Move to Machine State
Register (mtmsr) and Move from Machine State Register (mfmsr) instructions. See
Section 2.5.1, “Machine State Register (MSR).”
— Condition register (CR) bits are grouped into eight 4-bit fields, CR0–CR7, which are set
as follows:
– Specified CR fields can be set by a move to the CR from a GPR (mtcrf).
– A specified CR field can be set by a move to the CR from another CR field (mcrf),
or from the XER (mcrxr).
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-1
Register Model
– CR0 can be set as the implicit result of an integer instruction.
– A specified CR field can be set as the result of an integer or floating-point compare
instruction (including SPE and SPFP compare instructions).
See Section 2.4.1, “Condition Register (CR).”
— The EIS-defined accumulator, used by the SPE APU. See Section 2.14.2, “Accumulator
(ACC).”
•Performance monitor registers (PMRs). Similar to SPRs, PMRs are accessed by using the
EIS-defined Move to Performance Monitor Register (mtpmr) and Move from Performance
Monitor Register (mfspr) instructions. See Section 2.15, “Performance Monitor Registers
(PMRs).”
2.2e500 Register Model
The following sections describe the e500 core register model as defined in Book E and the
additional implementation-specific registers unique to the e500 core. Figure 2-1 shows the e500
register set and identifies which are defined by Book E, which are defined by the EIS, and which
are e500-specific.
Book E processors implement the following types of software-accessible registers:
•Book E–defined registers that are accessed as part of instruction execution. These include
the following:
— Registers used for integer operations:
– General-purpose registers (GPRs)—Book E defines a set of 32 GPRs used to hold
source and destination operands for load, store, arithmetic, and computational
instructions, and to read and write to other registers.
– Integer exception register (XER)—Bits in this register are set based on the operation
of an instruction considered as a whole, not on intermediate results. (For example,
the Subtract from Carrying instruction (subfc), the result of which is specified as the
sum of three values, sets bits in the XER based on the entire operation, not on an
intermediate sum.)
These registers are described in Section 2.3, “Registers for Integer Operations.”
— Condition register (CR)—Used to record conditions such as overflows and carries that
occur as a result of executing arithmetic instructions (including those implemented by
the SPE and SPFP APUs). The CR is described in Section 2.4, “Registers for Branch
Operations.”
— Machine state register (MSR)—Used by the operating system to configure parameters
such as user/supervisor mode, address space, and enabling of asynchronous interrupts.
MSR is described in Section 2.5.1, “Machine State Register (MSR).”
PowerPC e500 Core Family Reference Manual, Rev. 1
2-2Freescale Semiconductor
User-Level Registers
General-Purpose RegistersInstruction-Accessible RegistersUser General SPR (Read/Write)
0 31 32630 31 32633263
(upper) GPR0 (lower)
GPR1
GPR2
Generalpurpose
registers
GPR31spr 260SPRG4
Performance Monitor PMRs (Read-Only)
pmr 384
pmr 0–3
pmr 128–131
pmr 256–259 UPMLCbs
UPMGC0
UPMLCas
L1 Cache (Read-Only)
spr 515
UPMCs
L1CFG0
L1CFG1
1
Global control register
1
Counter
registers 0–3
1
Local control registers
1
a0–a3, b0–b3
1
L1 cache
configuration reg isters
1
0–1spr 516
CRCond ition register
spr 9
CTR
Count register
spr 8LRLink registerspr 259SPRG3
spr 1 XERInteger exception
spr 512 SPEFSCR
1
ACC
register
1
SPE FP status/control
register
Accumulator
Miscellaneous Registers
spr 513
spr 514
BBEAR
BBTAR
3
Branch buffer entry
address register
3
Branch buffer target
address register
spr 256 USPRG0
General SPRs (Read-Only)
• • •
spr 263SPRG7
Time-Base Registers (Read-Only)
spr 268
spr 269
spr 526
spr 527
TBL
TBU
AT B L
AT BU
Supervisor-Level Registers
32 6332 6332 63
spr 63IVPR
spr 26SRR0
spr 27
SRR1
spr 58CSRR0
spr 59CSRR1
spr 570
MCSRR0
spr 571
MCSRR1
spr 62
ESR
spr 572MCSR
spr 573MCARMachine check
spr 61DEARDa ta exception
Interrupt vector
prefix
Save/restore
registers 0/1
Critical SRR 0/1 Processor version spr 528 IVOR32
1
Machine check
1
SRR 0/1
Exception syndrome
register
1
Machine check
syndrome register
address register
address register
Debug Registers
spr 308DBCR0
spr 309DBCR1
spr 310
spr 304
DBCR2
DBSR
spr 312IAC1
spr 313IAC2
spr 316DAC1pmr 400 PMGC0
spr 317DAC2spr 688 TLB0CFG
1
These registers are defined by the EIS
2
e500v2 only
3
These registers are e500-specific
Debug control
registers 0–2
Debug status registerspr 633
Instruction ad dress
compare
registers 1 and 2
Data address
compare
registers 1 and 2
Interrupt RegistersConfiguration Registers
spr 400IVOR0
spr 401IVOR1
• • •
Interrupt vector offset
registers 0–15
spr 1023SVR System version
spr 415IVOR15spr 286PIR Processor ID
1
1
spr 529
spr 530 IVOR34
spr 531 IVOR35
IVOR33
Interrupt vector offset
registers 32–35
1
1
MMU Control and Status (Read/Write)
1
spr 1012 MMUCSR0
spr 624MAS0
spr 625MAS1
spr 626
MAS2
spr 627MAS3
spr 628
spr 630
spr 944
spr 48
MAS4
MAS6
MAS7
PID0
PID1
spr 634PID2
MMU control a nd status
register 0
1
1
1
1
MMU assist
registers
1
1
1. 2
Process ID
1
registers 0–2
1
MMU Control and Status (Read Only)
1
spr 1015 MMUCFG
spr 689 TLB1CFG
MMU configuration
1
TLB configuration 0/1pmr 16–19
L1 Cache (Read/Write)
1
spr 1010
spr 1011 L1CSR1
L1CSR0
L1 Cache
1
Control/Status 0/1
spr 287PVR
Timer/Decrementer Registers
spr 22DECDecrementer
spr 54DECAR
spr 284TBL
spr 285TBU
spr 340TCRTimer control
spr 336TSRTimer status
spr 1008
spr 1009
spr 1013
spr 272–279
Performance Monitor Registers
pmr 144–147
pmr 272–275
MSRMachine state
Miscellaneous Registers
HID0
HID1
BUCSR
SPRG0–7
PMC0–3
PMLCa0–3
PMLCb0–3
Figure 2-1. e500 Register Model
Register Model
User SPR
general 0
SPR general
registers 3–7
Time base
lower/upper
1, 2
Alternate time b ase
1, 2
lower/upper
Decrementer
auto-reload
Time base
lower/upper
1
Hardware
implementation
1
dependent 0–1
3
Branch control and
status register
General SPRs 0–7
1
Global control register
1
Counter registers 0–3
1
Local control a0–a3
1
Local control b0–b3
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-3
Register Model
•Book E–defined special-purpose registers (SPRs) that are accessed explicitly using mtspr
and mfspr instructions. These registers are listed in Table 2-1 in Section 2.2.1,
“Special-Purpose Registers (SPRs).”
•Freescale EIS–defined SPRs and e500-defined SPRs that are accessed explicitly using the
mtspr and mfspr instructions. These registers are listed in Table 2-2 in Section 2.2.1,
“Special-Purpose Registers (SPRs).”
•Freescale EIS–defined performance monitor registers (PMRs). These registers are similar
to SPRs, but are accessed with EIS–defined move to and move from PMR instructions
(mtpmr and mfpmr).
Book E– and e500-defined SPRs are grouped by function as follows :
•Section 2.4, “Registers for Branch Operations.” This section includes descriptions of the
count register (CTR) and the link register (LR).
•Section 2.5, “Processor Control Registers”
•Section 2.6, “Timer Registers”
•Section 2.7, “Interrupt Registers”
•Section 2.8, “Software-Use SPRs (SPRG0–SPRG7 and USPRG0)”
Book E defines 32- and 64-bit registers. All 32-bit registers are supported as defined in Book E.
However, except for the 64-bit FPRs, which are not implemented on the e500, only bits 32–63 of
Book E’s 64-bit registers (such as LR, CTR, the GPRs, SRR0, and CSRR0) are required to be
implemented in hardware in a 32-bit Book E implementation. The e500 implements 64-bit GPRs,
the upper 32 bits of which are used only with the e500-specific signal processing engine (SPE)
APU, embedded vector single-precision floating-point APU, and the e500v2 embedded scalar
double-precision floating-point APU instructions.
Likewise, all Book E integer instructions defined to return a 64-bit result return only bits 32–63 of
the result on a 32-bit Book E implementation. SPE APU vector instructions return 64-bit values,
as do DPFP APU instructions on the e500v2; SPFP APU ins tructions return single-precision
32-bit values.
PowerPC e500 Core Family Reference Manual, Rev. 1
2-4Freescale Semiconductor
Register Model
NOTE
The SPE APU and embedded floating-point APU functionality is
implemented in all PowerQUICC III devices. However, these
instructions will not be supported in devices subsequent to
PowerQUICC III. Freescale Semiconductor strongly recommends
that use of these instructions be confined to libraries and device
drivers. Customer software that uses SPE or embedded floating-point
APU instructions at the assembly level or that uses SPE intrinsics will
require rewriting for upward compatibility with next-generation
PowerQUICC devices.
Freescale Semiconductor offers a libmoto_e500 library that uses SPE
instructions. Freescale will also provide libraries to support
next-generation PowerQUICC devices.
This chapter describes how the e500 implements registers defined by Book E. As with the
instructio n set and o ther asp ects of the archite cture, Boo k E defines some fe atures very specific ally ,
for example, resources that ensure compatibility with implementatio ns of the PowerPC ISA.
However , because a principal goal of the Book E architecture is to of fer flexibility among embe dded
processors and families of embedded processors, some resources are either defi ned as optional or
are defined in a very general way, leaving specific details up to the implementation.
2.2.1Special-Purpose Registers (SPRs)
SPRs are on-chip registers that are architecturally part of the processor core. They control the use
of the debug facilities, timers, interrupts, memory management unit, and other arc hitected
processor resources and are accessed with the mtspr and mfspr instructions. Unlisted encodings
are reserved for future use.
Table 2-1 summarizes SPRs defined in Book E. The SPR numbers are used in the instruction
mnemonics. Bit 5 in an SPR number indicates whether an SPR is accessible from user or
supervisor software. An mtspr or mfspr instruction that specifies an unsupported SPR number is
considered an invalid instruction. The e500 treats such invalid instructions as follows:
•If the invalid SPR falls within the range specified as user mode (SPR[5] = 0), an illegal
exception is taken.
•If supervisor software attempts to access an invalid supervisor-level SPR (SPR[5] = 1),
results are undefined.
•If user software attempts to access an invalid supervisor-level SPR, a privilege exception is
taken.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-5
Register Model
Table 2-1. Book E Special-Purpose Registers (by SPR Abbreviation)
SPR
Abbreviation
Name
Defined SPR Number
DecimalBinary
Access
Supervisor
Only
Section/
Page
ATBLAlternate time base register lower52610000 01110Read-onlyNo2.6.6/2-16
ATBUAlternate time base register upper52710000 01111Read-onlyNo2.6.6/2-16
Writing to these registers requires synchronization, as described in Section 2.16, “Synchronization Requirements for SPRs.”
NameSPR NumberAccessSupervisor Only Section/Page
2.3Registers for Integer Operations
The following sections describe registers defined for integer computational instructions.
2.3.1General-Purpose Registers (GPRs)
Book E implementations provide 32 GPRs (GPR0–GPR31) for integer operations. The instruction
formats provide 5-bit fields for specifying the GPRs to be used in the execution of the instruction.
Each GPR is a 64-bit register and can be used to contain address and integer data, although all
instructions except SPE APU instructions, double-precision embedded floating-point instructions
(e500v2 only), and single-precision embedded vector floating-point instructions use and return
32-bit values in GPR bits 32–63.
2.3.2Integer Exception Register (XER)
Bits in the integer exception register (XER) are set based on the operation of an instruction
considered as a whole, not on intermediate results. (For example, the Subtract from Carrying
instruction (subfc), the result of which is specified as the sum of three values, sets bits in the XER
based on the entire operation, not on an intermediate sum.)
The e500 implements the XER as it is defined by Book E.
2.4Registers for Branch Operations
This section describes registers used by Book E branch and CR operations.
2.4.1Condition Register (CR)
The e500 implements the CR as it is defin ed by Book E for integer instructions. Note that the
embedded floating-point instructions do not use the CR.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-9
Register Model
2.4.2Link Register (LR)
The e500 implements the LR as it is defined by Book E.
The link register can be used to provide the branch target address for a Branch Conditional to LR
instruction, and it holds the return address after branch and link instructions.
2.4.3Count Register (CTR)
The e500 implements the CTR as it is defined by Book E. The CTR can be used to hold a loop
count that can be decremented and tested during execution of branch instructions that contain an
appropriately encoded BO field. If the CTR value is 0 before being decremented, it is –1 afterward.
The entire CTR can be used to hold the branch target address for a Branch Conditional to CTR
(bcctrx) instruction.
2.5Processor Control Registers
This section addresses machine state, processor ID, and processor version registers.
2.5.1Machine State Register (MSR)
The machine state register (MSR), shown in Figure 2-2, defines the state of the processor (that is,
enabling and disabling of interrupts and debugging exceptions, enabling and disabling of address
translation for instruction and data memory accesses, enabling and disabling some APUs, and
specifying whether the processor is in supervisor or user m ode).
MSR contents are automatically saved, altered, and restored by the interrupt-handling mechanism.
If a non-critical interrupt is taken, MSR contents are automatically copied into SRR1. If a critical
interrupt is taken, MSR contents are automatically copied into CSRR1. When an rfi or rfci is
executed, MSR contents are restored from SRR1 or CSRR1. The e500 implements the machine
check interrupt differently than it is defined in Book E. When a machine check interrupt is taken,
MCSRR0 and MCSRR1 hold the return address and MSR information. The EIS defines the Return
from Machine Check Interrupt instruction, rfmci, which restores MSR contents from MCSRR1
when it is executed.
—UCLE SPE—WE CE — EE PR FP ME —UBLE DE—IS DS —PMM —
Figure 2-2. Machine State Register (MSR)
PowerPC e500 Core Family Reference Manual, Rev. 1
2-10Freescale Semiconductor
Register Model
MSR contents are read into a GPR using mfmsr. The contents of a GPR can be written to MSR
using mtmsr. The write MSR external enable instructions (wrtee and wrteei) can be used to set
or clear MSR[EE] without affecting other M SR bits.
Table 2-3 describes e500-specific MSR fields. Note that other registers in this chapter describe
only fields that are either e500-specific or that differ from the Book E definition.
Table 2-3. MSR Field Descriptions
BitsNameDescription
32–36—Reserved, should be cleared.
37UCLE User-mode cache lock enable. (e500-specific). Used to restrict user-mode cache-line locking by the operating
system.
0 Any cache lock instruction executed in user-mode takes a cache-locking DSI exception and sets either
ESR[DLK] or ESR[ILK]. This allows the operating system to manage and track the locking/unlocking of cache
blocks by user-mode tasks.
1 Cache-locking instructions can be executed in user-mode and they do not take a DSI for cache-locking. (They
may still take a DSI for access violations, though.)
38SPE SPE enable. (e500-specific).
0 If software attempts to execute an instruction that accesses the upper word of a GPR, the SPE APU
unavailable exception is taken.
1 Software can execute the following instructions:
On the e500v1, these instructions include the SPE instructions and both vector and scalar single-precision
floating-point instructions.
On the e500v2, these instructions include the SPE instructions, embedded double-precision, and
single-precision vector floating-point instructions. (That is, all instructions that access the upper half of the
64-bit GPRs.)
39–44—Reserved, should be cleared.
45WEWait state enable. On the e500, this allows the core complex to signal a request for power management,
according to the states of HID0[DOZE], HID0[NAP], and HID0[SLEEP].
0 The processor is not in wait state and continues processing. On the e500, no power management request is
signaled to external logic.
1 The processor enters wait state by ceasing to execute instructions and entering low-power mode. Details of
how wait state is entered and exited and how the processor behaves in the wait state are implementation
dependent. On the e500, MSR[WE] gates the DOZE, NAP, and SLEEP outputs from the core complex; as a
result, these outputs negate to the external power management logic on entry to the interrupt and then return
to their previous state on return from the interrupt. WE is cleared on entry to any interrupt and restored to its
previous state upon return.
46CECritical enable. Book E defines this bit as an enable for the critical input, watchdog timer, and machine check
interrupts. On the e500, this bit does not affect machine check interrupts.
0 Critical input and watchdog timer interrupts are disabled.
1 Critical input and watchdog timer interrupts are enabled.
47—Reserved, should be cleared.
48EEExternal enable
0 External input, decrementer, fixed-interval timer, and performance monitor interrupts are disabled.
1 External input, decrementer, fixed-interval timer, and performance monitor interrupts are enabled.
49PRUser mode (problem state)
0 The processor is in supervisor mode, can execute any instruction, and can access any resource (for example,
GPRs, SPRs, and the MSR).
1 The processor is in user mode, cannot execute any privileged instruction, and cannot access any privileged
resource.
PR also affects memory access control.
1
1
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-11
Register Model
Table 2-3. MSR Field Descriptions (continued)
BitsNameDescription
50FPFloating-point available. Book E defines the operation of FP as follows:
0 The processor cannot execute floating-point instructions, including floating-point loads, stores, and moves.
1 The processor can execute floating-point instructions.
On the e500, this bit is reserved and permanently cleared, indicating that it does not implement a Book E
floating-point unit (FPU). Setting it has no effect.
51MEMachine check enable.
0 Machine check interrupts are disabled. On e500 cores, a machine check condition causes a checkstop.
1 Machine check interrupts are enabled.
52FE0Floating-point exception mode 0. On the e500, this bit is reserved and permanently cleared, indicating that the
e500 does not implement a Book E FPU. Setting it has no effect.
53UBLE Allocated for implementation-dependent use. On the e500, it is the user BTB lock enable bit.
0 Execution of the BTB lock instructions for user mode is disabled; a privileged instruction exception is taken
instead.
1 Execution of the BTB lock instructions for user mode is enabled.
54DEDebug interrupt enable
0 Debug interrupts are disabled.
1 Debug interrupts are enabled if DBCR0[IDM] = 1.
For the e500, see the description of the DBSR[UDE] in Section 2.13.2, “Debug Status Register (DBSR).”
55FE1Floating-point exception mode 1. On the e500, this bit is reserved and permanently cleared, indicating that the
e500 does not implement a Book E FPU. Setting it has no effect.
56–57—Reserved, should be cleared.
58ISInstruction address space
0 The processor directs all instruction fetches to address space 0 (TS = 0 in the relevant TLB entry).
1 The processor directs all instruction fetches to address space 1 (TS = 1 in the relevant TLB entry).
59DSData address space
0 The processor directs data memory accesses to address space 0 (TS = 0 in the relevant TLB entry).
1 The processor directs data memory accesses to address space 1 (TS = 1 in the relevant TLB entry).
60—Reserved, should be cleared.
61PMM Performance monitor mark bit. System software can set PMM when a marked process is running to enable
statistics to be gathered only during the execution of the marked process. MSR[PR] and MSR[PMM] together
define a state that the processor (supervisor or user) and the process (marked or unmarked) may be in at any
tim e. If this state matches an individual state specified in the PMLCa
counting is enabled.
62–63—Reserved, should be cleared.
1
An MSR bit that is reserved may be altered by return from interrupt instructions.
1
1
n
, the state for which monitoring is enabled,
1
2.5.2Processor ID Register (PIR)
The e500 implements the processor ID register (PIR) as defined by the Book E architecture. The
PIR contains a value that can be used to distinguish the processor from other processors in the
system.
PowerPC e500 Core Family Reference Manual, Rev. 1
2-12Freescale Semiconductor
Register Model
2.5.3Processor Version Register (PVR)
The e500 implements the processor version register (PVR) as defined by the Book E architecture.
The read-only PVR, shown in Figure 2-3, contains a value identifying the version and revision
level of the processor. The PVR distinguishes between processors that differ in attributes that may
affect software.
32–47 Version A 16-bit number that identifies the version of the processor. Different version numbers indicate major
differences between processors, such as which optional facilities and instructions are supported.
48–63 Revision A 16-bit number that distinguishes between implementations of the version. Different revision numbers
indicate minor differences between processors having the same version number, such as clock rate and
engineering change level.
2.5.4System Version Register (SVR)
The system version register (SVR), shown in Figure 2-4, contains a read-only SoC-dependent
value; consult the documentation for the implementation.
SPR 1023Access: Supervisor read-only
3263
RSystem version
W
ResetSoC-dependent value (determined by
Figure 2-4. System Version Register (SVR)
svr
[0:31]. See Section 13.2, “Signal Summary.”)
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-13
Register Model
2.6Timer Registers
The time base (TB), decrementer (DEC), fixed-interval timer (FIT), and watchdog timer provide
timing functions for the system. The e500 provides the ability to select any of the TB bits to trigger
watchdog and fixed-interval timer events, as shown in Figure 2-5.
Time Base (incrementer)
6332
TBU
Watchdog timer events based on one of the TB bits
selected by the EIS–defined TCR[WPEXT] concatenated
with the Book E–defined TCR[WP] (WPEXT || WP).
Fixed-interval timer events based on one of TB bits
selected by the EIS–defined TCR[FPEXT] concatenated
with the Book E–defined TCR[FP] (FPEXT || FP).
Decrementer event = 0/1 detect
32
TBL
DEC
DECAR
6332
Timer Clock
(Time Base Clock)
tbclk
Auto-reload
63
Figure 2-5. Relationship of Timer Facilities to the Time Base
e500 registers involved in timing are described as follows:
•The TB is a long-period counter driven at an implementation-dependent frequency.
•The decrementer, updated at the same rate as the TB, provides a way to signal an exception
after a specified period unless one of the following occurs:
— DEC is altered by software in the interim.
— The TB update frequency changes.
DEC is typically used as a general-purpose software timer.
•The time base for the TB and DE C is selected by the time base enable (TBEN) and select
time base clock (SEL_TBCLK) bits in HID0, as follows:
— If HID0[TBEN] = 1 and HID0[SEL_TBCLK] = 0, the time base is updated every 8 bus
clocks.
— If HID0[TBEN] = 1 and HID0[SEL_TBCLK] = 1, the time base is updated on the
rising edge of tbclk (or an implementation-specific clock input).
•Software can select one from of four TB bits to signal a fixed-interval interrupt whenever
the bit transitions from 0 to 1. It is typically used to trigger periodic system maintenance
functions. Bits that may be selected are implementation-dependent.
PowerPC e500 Core Family Reference Manual, Rev. 1
2-14Freescale Semiconductor
Register Model
•The watchdog timer, also a selected TB bit, provides a way to signal a critical exception
when the selected bit transitions from 0 to 1. It is typically used for system error recovery.
If software does not respond in time to the initial interrupt by clearing the associated status
bits in the TSR before the next expiration o f the watchdog timer interval, a watchdog
timer-generated processor reset may result, if so enabled.
All timer facilities must be initialized during start-up.
2.6.1Timer Control Register (TCR)
The e500 implements the TCR, shown in Figure 2-6, as defined by the Book E architecture except
as follows:
•TCR[WPEXT] and TCR[FPEXT], not specified in Book E, are concatenated with
TCR[WP] and TCR[FP] to select a bit that triggers the watchpoint timer and fixed-interval
timer events.
•The value programmed into WRC is reflected on the e500 wrs signals.
SPR 340Access: Supervisor-only
32 33 34 353637 38 39 404142 4346 4750 5163
R
WPWRC WIE DIEFPFIE ARE —WPEXTFPEXT—
W
ResetAll zeros
Figure 2-6. Timer Control Register (TCR)
Table 2-5 describes the e500 TCR fields that differ from the Book E definiti on.
BitsNameDescription
32–33WPWatchdog timer period. When concatenated with WPEXT, specifies one of 64-bit locations of the time base
34–35WRCWatchdog timer reset control. When a watchdog reset event occurs, the value programmed into WRC is
38–39FPFixed interval timer period. When concatenated with FPEXT, FP specifies one of 64 bit locations of the time
Table 2-5. TCR Implementation-Specific Field Descriptions
used to signal a watchdog timer exception on a transition from 0 to 1.
WPEXT,WP = 0000_00 selects TBU[32] (the msb of the TB)
WPEXT,WP = 1111_11 selects TBL[63] (the lsb of the TB)
reflected on
WRC. Although WRC can be set by software, it cannot be cleared by software (except by a software-induced
reset). Once written to a non-zero value, WRC may no longer be altered by software.
00 No watchdog timer reset will occur.
01 Force processor checkstop on second timeout of watchdog timer
10 Assert processor reset output (
11 Reserved
base used to signal a fixed-interval timer exception on a transition from 0 to 1.
FPEXT || FP = 0000_00 selects TBU[32] (the msb of the TB)
FPEXT || FP = 1111_11 selects TBL[63] (the lsb of the TB)
wrs
and into TSR[WRS], but the WRC bits are reset to 00. At this point, software can reprogram
p_resetout_b
) on second timeout of watchdog timer
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-15
Register Model
Table 2-5. TCR Implementation-Specific Field Descriptions (continued)
BitsNameDescription
43–46 WPEXT Watchdog timer period extension (see the description for WP)
47–50 FPEXT Fixed-interval timer period extension (see the description for FP)
2.6.2Timer Status Register (TSR)
The e500 implements the TSR as it is defined by the Book E architecture. The 32-bit TSR contains
status on timer events and the most recent watchdog timer-initiated processor reset. All TSR bits
function as write-1-to-clear.
2.6.3Time Base (TBU and TBL)
The e500 implements the time base registers as they are defined by the Book E architecture. The
time base (TB) is composed of two 32-bit registers, the time base upper (TBU) concatenated on
the right with the time base lower (TBL). TB provides timing functions for the system. TB is a
volatile resource and must be initialized during start-up.
2.6.4Decrementer Register (DEC)
The e500 implements the DEC as it is defined by the Book E architecture. DEC is a 32-bit
decrementing counter that is updated at the same rate as the TB. It provides a way to signal a
decrementer interrupt after a specified period unless one of the following occurs:
•DEC is altered by software in the interim.
•The TB update frequency changes.
DEC is typically used as a general-purpose software timer. The decrementer auto-reload register
is used to automatically reload a programmed value into DEC, as described in Section 2.6.5,
“Decrementer Auto-Reload Register (DECAR).”
2.6.5Decrementer Auto-Reload Register (DECAR)
The e500 implements the DECAR as it is defined by the Book E architecture. If the auto-reload
function is enabled (TCR[ARE] = 1), the auto-reload value in DECAR is written to DEC when
DEC decrements from 0x0000_0001 to 0x0000_0000. Note that writing DEC with zeros by using
an mtspr[DEC] does not automatically generate a decrementer exception.
2.6.6Alternate Time Base Registers (ATBL and ATBU)
The alternate time base counter (ATB), shown in Figure 2-7, is formed by concatenating the upper
and lower alternate time base registers (ATBU and ATBL). ATBL (SPR 526) provides read-only
PowerPC e500 Core Family Reference Manual, Rev. 1
2-16Freescale Semiconductor
Register Model
access to the 64-bit alternate time base counter, which is incremented at an
implementation-defined frequency. On the e500v2, this frequency is the core frequency. The ATB
register is accessible in both user and supervisor mode.
Like the TB implementation, the ATBL register is an aliased name for ATB.
SPR 526Access: User read-only
3263
RATBL U
W
ResetAll zeros
Figure 2-7. Alternate Time Base Register Lower (ATBL)
Table 2-6 describes the ATB fields.
Table 2-6. ATBL Field Descriptions
BitsNameDescription
32–63ATBCLAlternate time base counter lower
Lower 32 bits of the alternate time base counter
2.6.6.1Alternate Time Base Upper (ATBU)
The ATBU register, shown in Figure 2-8, provides read-only access to the upper 32 bits of the
alternate time base counter. It is accessible in both user and supervisor mode.
SPR 527Access: User read-only
3263
RAT B C U
W
ResetAll zeros
Figure 2-8. Alternate Time Base Register Upper (ATBU)
Table 2-7 describes the ATBU fields.
Table 2-7. ATBU Field Descriptions
BitsNameDescription
32–63ATBCUAlternate time base counter upper
Upper 32 bits of the alternate time base counter
2.7Interrupt Registers
Section 2.7.1, “Interrupt Registers Defined by Book E,” and Section 2.7.2, “e500-Specific
Interrupt Registers,” describe registers used for interrupt handling.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-17
Register Model
2.7.1Interrupt Registers Defined by Book E
This section describes the following register bits and their fields:
•Section 2.7.1.1, “Save/Restore Register 0/1 (SRR0 and SRR1)”
•Section 2.7.1.2, “Critical Save/Restore Register 0/1 (CSRR0 and CSRR1)”
The e500 implements SRR0 and SRR1 as they are defined by the Book E architecture. On a
noncritical interrupt, SRR0 holds the address of the instruction where the interrupted process
should resume. The instruction is interrupt-specific, although for instruction-caused exceptions, it
is typically the address of the instruction that caused the interrupt. When rfi executes, instruction
execution continues at the address in SRR0.
SRR1 is provided to save and restore machine state on noncritical interrupts. When a noncritical
interrupt is taken, MSR contents are placed in SRR1. When rfi executes, SRR1 contents are placed
into MSR. SRR1 bits that correspond to reserved MSR bits are also reserved. These registers are
not affected by rfci or rfmci. Reserved MSR bits may be altered by rfi, rfci, or rfmci.
2.7.1.2Critical Save/Restore Register 0/1 (CSRR0 and CSRR1)
The e500 implements CSRR0 and CSRR1 as they are defined by the Book E architecture. On a
critical interrupt, CSRR0 holds the address of the instruction where the interrupted process should
resume. The instruction is interrupt-specific, although for instruction-caused exceptions, it is
typically the address of the instruction that caused the interrupt. When rfci executes, instruction
execution continues at the address in CSRR0.
CSRR1 is provided to save and restore machine state on critical interrupts. When a critical
interrupt is taken, MSR contents are placed in CSRR1. When rfci executes, SRR1 contents are
placed into MSR. CSRR1 bits that correspond to reserved MSR bits are also reserved. These
registers are not affected by rfi or rfmci. Reserved MSR bits may be altered by rfi, rfci, or rfmci.
2.7.1.3Data Exception Address Register (DEAR)
The e500 implements DEAR as it is defined by the Book E architecture. DEAR is loaded with the
effective address of a data access (caused by a load, store, or cache management instruction) that
results in an alignment, data TLB miss, or DSI excepti on.
PowerPC e500 Core Family Reference Manual, Rev. 1
2-18Freescale Semiconductor
Register Model
2.7.1.4Interrupt Vector Prefix Register (IVPR)
The e500 implements IVPR as it is defined by the Book E architecture. It is used with IVORs to
determine the vector address. IVPR[32–47] provides the high-order 16 bits of the address of the
exception processing routines. The 16-bit vector offsets are concatenated to the right of
IVPR[32–47] to form the address of the exception processing routine.
2.7.1.5Interrupt Vector Offset Registers (IVORs)
The e500 implements the IVORs as defined by the Book E architecture, but use only
IVORn[48–59], as shown in Figure 2-9, to hold the quad-word index from the base address
provided by the IVPR for each interrupt type.
IVOR36–IVOR63 — Allocated for implementation-dependent use
2.7.1.6Exception Syndrome Register (ESR)
Figure 2-10 shows the ESR as it is defined on the e500.
The ESR provides a way to differentiate among exceptions that can generate an interrupt type.
When an interrupt is generated, bits corresponding to the specific exception that generated the
interrupt are set and all other ESR bits are cleared. Other interrupt types do not affect ESR
contents. The ESR does not need to be cleared by software. Table 2-9 shows ESR bit definitions.
The e500 defines ESR[SPE] as the SPE/embedded floating-point exception bit. It is set whenever
the processor takes an exception related to the execution of SPE or SPFP instructions. Note that
the e500 does not use the ESR for machine check interrupts, but instead uses the machine check
syndrome register, MCSR, describ ed in Section 2.7.2.4, “Machine Check Syndrome Register
(MCSR).” The ESR is defined in Book E but differs in the following respects:
•The e500 defines ESR[DLK0] (bit 42) as ESR[DLK].
•The e500 defines ESR[DLK1] (bit 43) as ESR[ILK].
•The e500 defines ESR[SPE] (bit 56).
•The e500 does not implement FP, AP, PIE, or PUO.
SPR 62Access: Supervisor-only
3235 36373839 40 414243 44 45 46 4755565763
R
W
ResetAll zeros
—PIL PPR PTR — ST — DLK ILK—BO—SPE—
Figure 2-10. Exception Syndrome Register (ESR)
PowerPC e500 Core Family Reference Manual, Rev. 1
2-20Freescale Semiconductor
Register Model
Table 2-9 describes the ESR fields, showing the associated interrupts. Note that an implementation
may implement additional ESR bits to identify implementation-specific or architected interrupt
types.
NOTE
ESR information is incomplete, so system software may need to
identify the type of instruction that caused the interrupt, examine the
TLB entry, and examine the ESR to fully identify the exception or
exceptions. For example, a data storage interrupt may be caused by
both a protection violation exception and a byte-ordering exception.
System software would have to look beyond ESR[BO], such as the
state of MSR[PR] in SRR1 and the TLB entry page protection bits to
determine if a protection violation also occurred.
Table 2-9. ESR Field Descriptions
BitsNameSyndromeInterrupt Types
32–35—Reserved, should be cleared. (Defined by Book E as allocated.)—
36PILIllegal instruction exceptionProgram
37PPRPrivileged instruction exceptionProgram
38PTR Trap exceptionProgram
39—Not supported on the e500. Defined by Book E as FP (floating-point operations). On the
e500, this bit is reserved and permanently cleared, indicating that the e500 does not
implement a Book E FPU. Setting it has no effect.
40STStore operationAlignment, DSI,
41—Reserved, should be cleared.—
42DLKData cache locking (defined by Book E as DLK0). Settings are implementation dependent.
0 Default
1 On the e500, DLK is set when a DSI occurs because dcbtls, dcbtstls, or dcblc is
executed in user mode while MSR[UCLE] = 0.
43ILKInstruction cache locking. (Book E defines this bit as DLK1.) Set when a DSI occurs
because icbtl or icblc is executed in user mode (MSR[PR] = 1 and MSR[UCLE] = 0)
44—Not supported on the e500. Defined by Book E as AP (auxiliary processor operation). —
45—Not supported on the e500. Unimplemented operation exception. On the e500,
unimplemented instructions are handled as illegal instructions.
46BOByte-ordering exceptionDSI, ISI
47—Not supported on the e500. Defined by Book E as PIE, Imprecise exception. —
—
DTLB error
DSI
DSI
Program
48–55—Reserved, should be cleared.—
56SPE SPE/embedded floating-point exception bit (e500-specific)
0 Default
1 Any exception caused by an SPE or and SPFP instruction occurred.
57–63—Reserved, should be cleared (defined by Book E as allocated).—
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-21
Register Model
2.7.2e500-Specific Interrupt Registers
This section describes machine check save/store and syndrome registers.
When a machine check interrupt is taken, MCSRR0, shown in Figure 2-11, is set to the address of
the instruction where the interrupted process should resume. The instruction is interrupt-specific,
although typically MCSRR0 holds the address of the instruction that caused t he interrupt. After
rfmci executes, instruction execution continues at this address.
MCSRR1 is used to save and restore machine state on machine check interrupts. When a machine
check interrupt is taken, MSR contents are placed into MCSRR1, shown in Figure 2-12. When
rfmci executes, MCSRR1 contents are restored to MSR. MCSRR1 bits that correspond to
reserved MSR bits are also reserved; reserved MSR bits may be altered.
When the core complex takes a machine check interrupt, it updates MCAR (Figure 2-13) to
indicate the address of the data associated with the machin e check. Note that if a machine check
interrupt is caused by a signal, the contents of MCAR are not meaningful.
When the core complex takes a machine check interrupt, it updates MCSR to differentiate between
machine check conditions. The MCSR indicates whether a machine check condition is
recoverable. When a condition bit is set, the core complex asserts MCP_OUT for system
information. ABIST status is logged in MCSR[48–54]. These bits do not initiate machine check
(or any other exception). An ABIST bit being set indicates an error being detected in the
corresponding module. The MCSR is shown in Figure 2-14.
The e500 implements the software-use SPRs (SPRG0–SPRG7 and USPRG0) as defined by the
Book E architecture. They have no defined functionality and are accessed as follows:
•SPRG0–SPRG2—These registers can be accessed only in supervisor mode.
•SPRG3—This register can be written only in supervisor mode. It is readable in supervisor
mode, but whether it can be read in user mode is implementation-dependent. It is readable
in user mode on the e500.
•SPRG4–SPRG7—These registers can be written only in supervisor mode. They are
readable in supervisor or user mode.
•USPRG0—This register can be accessed in supervisor or user mode.
2.9Branch Target Buffer (BTB) Registers
SPRs are defined in the core complex for enabling the locking and unlocking of entries in the BTB.
These are called the branch buffer entry address register (BBEAR), the branch buffer target address
regis ter (BBTAR), and branch unit control and status register (BUCSR). The user branch locking
enable bit, MSR[UBLE], is defined to allow user-mode programs to lock or unlock BTB entries.
See Section 3.9.1, “Branch T arget Buffer (BTB) Locking Instructions,” for more information
about BTB locking. Section 2.5.1, “Machine State Register (MSR),” describes MSR bits that
support the BTB.
PowerPC e500 Core Family Reference Manual, Rev. 1
2-24Freescale Semiconductor
Register Model
2.9.1Branch Buffer Entry Address Register (BBEAR)
BBEAR is shown in Figure 2-15. Writing to BBEAR requires synchronization, as described in
Section 2.16, “Synchronization Requirements for SPRs.”
62–63IAB[0–1]Instruction after branch (with BBTAR[62]). 3-bit pointer that points to the instruction in the cache block
Branch buffer effective entry address bits 0–29
after the branch. If the branch is the last instruction in the cache block, IAB = 000, to indicate the next
sequential instruction, which resides in the zeroth position of the next cache block.
62IAB2Instruction after branch bit 2 (with BBEAR[62–63]). IAB is a 3-bit pointer that points to the instruction in
63BDIRPRBranch direction prediction. The user can pick the direction of the predicted branch.
Branch buffer target address bits 0–29
the cache block after the branch. See the bblels instruction description.
0 The locked address is always predicted as not taken.
1 The locked address is always predicted as taken.
Branch buffer target addressIAB2 BDIRPR
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-25
Register Model
2.9.3Branch Unit Control and Status Register (BUCSR)
The BUCSR, shown in Figure 2-17, is used for general control and status of the branch target
buffer (BTB). Writing to BUCSR requires synchronization, as described in Section 2.16,
“Synchronization Requirements for SPRs.”
SPR 1013Access: Supervisor-only
325354555657586263
R
W
ResetAll zeros
Figure 2-17. Branch Unit Control and Status Register (BUCSR)
BUCSR provides control of BTB locking, including the following:
•Enable or disable BTB locking
•Invalidate all BTB entries at once (flash invalidate)
•Unlock all BTB entries at once (flash lock cl ear)
—BBFI BBLO BBUL BBLFC—BPEN
Table 2-13 describes the BUCSR fields.
BitsNameDescription
32–53—Reserved, should be cleared.
54BBFI Branch buffer flash invalidate. Clearing and then setting BBFI flash clears the valid bit of all entries in the branch
buffer; clearing occurs independently from the value of the enable bit (BPEN). BBFI is always read as 0.
55BBLO Branch buffer lock overflow status
0 Indicates a lock overflow condition was not encountered in the branch buffer
1 Indicates a lock overflow condition was encountered in the branch buffer
This sticky bit is set by hardware and is cleared by writing 0 to this bit location.
56BBUL Branch buffer unable to lock
0 Indicates a lock overflow condition in the branch buffer
1 Indicates a lock set instruction failed in the branch buffer, for example, if the BTB is disabled
This sticky bit is set by hardware and is cleared by writing 0 to this bit location.
57BBLFC Branch buffer lock bits flash clear. Clearing and then setting BBLFC flash clears the lock bit of all entries in the
branch buffer; clearing occurs independently from the value of the enable bit (BPEN). BBLFC is always read as 0.
This section describes the HID0 register, shown in Figure 2-18, as it is defined by the e500 core.
NOTE
Note that some HID fields may not be implemented in a device that
incorporates the e500 core and that some fields may be defined more
specifically by the incorporating device. For specific details it is
important to refer to the “Register Summary” chapter in the device’s
reference manual.
HID0 is used for configuration and control. Writing to HID0 requires synchronization, as
described in Section 2.16, “Synchronization Requirements for SPRs.”
40DOZEDoze power management mode. If MSR[WE] is set, this bit controls the
Interpretation of this bit is handled by integrated system logic.
0
1
Table 2-14. HID0 Field Descriptions
. Used to mask out further machine check exceptions caused by
signal.
is disabled.
is enabled. If MSE[ME] = 0, asserting mcp causes checkstop. If MSR[ME] = 1, asserting mcp
causes a machine check exception.
doze
is not asserted.
doze
is asserted.
doze
output signal.
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor2-27
Register Model
Table 2-14. HID0 Field Descriptions (continued)
BitsNameDescription
41NAPNap power management mode. If MSR[WE] is set, this bit controls the
Interpretation of this bit is handled by integrated system logic.
0
nap
is not asserted.
1
nap
is asserted.
42SLEEPConfigure for sleep power management mode. If MSR[WE] is set, this bit controls the
signal. Interpretation of this bit is handled by integrated system logic.
0
sleep
is not asserted
1
sleep
is asserted
43–48—Reserved, should be cleared.
49TBENTime base and decrementer enable
0 Time base disabled
1 Time base enabled
50SEL_TBCLKSelect time base clock
0 Time base is based on the processor clock
1 Time base is based on TBCLK input
51–55—Reserved, should be cleared.
56EN_MAS7_UPDATE Enable MAS7 update (e500v2 only). Enables updating MAS7 by tlbre and tlbsx.
0 MAS7 is not updated by a tlbre or tlbsx.
1 MAS7 is updated by a tlbre or tlbsx.
57DCFAData cache flush assist (e500v2 only). Force data cache to ignore invalid sets on miss replacement
selection.
0 The data cache flush assist facility is disabled
1 The miss replacement algorithm ignores invalid entries and follows the replacement sequence
defined by the PLRU bits. This reduces the series of uniquely addressed load or dcbz instructions
to eight per set. The bit should be set just before beginning a cache flush routine and should be
cleared when the series of instructions is complete.
58–62—Reserved, should be cleared.
63NOPTINo-op the data and instruction cache touch instructions.
0 dcbt, dcbtst, and icbt are enabled, as defined by the EIS. Note that on the e500, if CT = 0, icbt
is always a no-op, regardless of the value of NOPTI. If CT = 1, icbt does a touch load to the L2
cache.
1 dcbt, dcbtst, and icbt are treated as no-ops; dcblc and dcbtls are not treated as no-ops.
nap
output signal.
sleep
output
PowerPC e500 Core Family Reference Manual, Rev. 1
2-28Freescale Semiconductor
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.