E200z4 Power Architecture ™ Core Reference ManuaL

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 866

DownloadE200z4 Power Architecture ™ Core - Reference ManuaL E200z4-Power
Open PDF In BrowserView PDF
e200z4 Power Architecture™
Core Reference Manual
Supports
e200z446n3

e200z4RM
Rev. 0
10/2009

How to Reach Us:
Home Page:
www.freescale.com
Web Support:
http://www.freescale.com/support
USA/Europe or Locations Not Listed:
Freescale Semiconductor, Inc.
Technical Information Center, EL516
2100 East Elliot Road
Tempe, Arizona 85284
+1-800-521-6274 or
+1-480-768-2130
www.freescale.com/support
Europe, Middle East, and Africa:
Freescale Halbleiter Deutschland GmbH
Technical Information Center
Schatzbogen 7
81829 Muenchen, Germany
+44 1296 380 456 (English)
+46 8 52200080 (English)
+49 89 92103 559 (German)
+33 1 69 35 48 48 (French)
www.freescale.com/support

Information in this document is provided solely to enable system and software
implementers to use Freescale Semiconductor 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

Japan:
Freescale Semiconductor Japan Ltd.
Headquarters
ARCO Tower 15F
1-8-1, Shimo-Meguro, Meguro-ku
Tokyo 153-0064
Japan
0120 191014 or
+81 3 5437 9125
support.japan@freescale.com

surgical implant into the body, or other applications intended to support or sustain life,

Asia/Pacific:
Freescale Semiconductor China Ltd.
Exchange Building 23F
No. 118 Jianguo Road
Chaoyang District
Beijing 100022
China
+86 010 5879 8000
support.asia@freescale.com

unintended or unauthorized use, even if such claim alleges that Freescale

For Literature Requests Only:
Freescale Semiconductor
Literature Distribution Center
P.O. Box 5405
Denver, Colorado 80217
+1-800 441-2447 or
+1-303-675-2140
Fax: +1-303-675-2150
LDCForFreescaleSemiconductor
@hibbertgroup.com

Document Number: e200z4RM
Rev. 0, 10/2009

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 indemnify and hold Freescale Semiconductor
and its officers, employees, subsidiaries, affiliates, and distributors harmless against all
claims, costs, damages, and expenses, and reasonable attorney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such

Semiconductor was negligent regarding the design or manufacture of the part.

Freescale and the Freescale logo are trademarks or registered trademarks
of Freescale Semiconductor, Inc. in the U.S. and other countries. All other
product or service names are the property of their respective owners. The
Power Architecture and Power.org word marks and the Power and
Power.org logos and related marks are trademarks and service marks
licensed by Power.org. IEEE 1149.1, 754, and ISTO-Nexus 5001-2008 are
trademarks or registered trademarks of the Institute of Electrical and
Electronics Engineers, Inc. (IEEE). This product is not endorsed or
approved by the IEEE.
© Freescale Semiconductor, Inc., 2009. All rights reserved.

Contents
Paragraph
Number

Title

Page
Number

Contents

Chapter 1
e200z4 Core Complex Overview
1.1
1.2
1.2.1
1.2.1.1
1.2.1.2
1.2.1.3
1.2.2
1.2.3
1.2.4
1.2.5
1.3
1.3.1
1.3.2
1.3.3
1.4

Overview.......................................................................................................................... 1-1
Features ............................................................................................................................ 1-3
Execution Unit Features............................................................................................... 1-3
Instruction Unit Features ......................................................................................... 1-4
Integer Unit Features ............................................................................................... 1-4
Load/Store Unit Features ......................................................................................... 1-4
L1 Cache Features ....................................................................................................... 1-4
Memory Management Unit Features ........................................................................... 1-5
System Bus (Core Complex Interface) Features.......................................................... 1-5
Nexus 3+ Features ....................................................................................................... 1-6
Programming Model ........................................................................................................ 1-6
Register Set .................................................................................................................. 1-7
Instruction Set .............................................................................................................. 1-9
Interrupts and Exception Handling ............................................................................ 1-10
Microarchitecture Summary .......................................................................................... 1-12
Chapter 2
Register Model

2.1
2.1.1
2.1.2
2.2
2.2.1
2.2.2
2.3
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.4.6.1
2.4.6.2
2.4.7
2.4.8

Power ISA Embedded Category Registers ...................................................................... 2-3
User-level Registers ..................................................................................................... 2-3
Supervisor-level Registers ........................................................................................... 2-4
e200-Specific Special Purpose Registers......................................................................... 2-6
User-Level Registers.................................................................................................... 2-7
Supervisor-Level Registers.......................................................................................... 2-7
e200-Specific Device Control Registers.......................................................................... 2-9
Special Purpose Register Descriptions ............................................................................ 2-9
Machine State Register (MSR) .................................................................................... 2-9
Processor ID Register (PIR) ...................................................................................... 2-11
Processor Version Register (PVR)............................................................................. 2-12
System Version Register (SVR)................................................................................. 2-12
Integer Exception Register (XER)............................................................................. 2-13
Exception Syndrome Register ................................................................................... 2-14
Power ISA VLE Mode Instruction Syndrome....................................................... 2-16
Misaligned Instruction Fetch Syndrome................................................................ 2-16
Machine Check Syndrome Register (MCSR)............................................................ 2-17
Timer Control Register (TCR)................................................................................... 2-19
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

iii

Contents
Paragraph
Number
2.4.9
2.4.10
2.4.11
2.4.12
2.4.13
2.4.14
2.4.15
2.4.16
2.4.17
2.4.18
2.4.19
2.5
2.5.1
2.5.2
2.5.3
2.6

Title

Page
Number

Timer Status Register (TSR)...................................................................................... 2-21
Debug Registers......................................................................................................... 2-22
Hardware Implementation Dependent Register 0 (HID0) ......................................... 2-22
Hardware Implementation Dependent Register 1 (HID1) ......................................... 2-24
Branch Unit Control and Status Register (BUCSR) .................................................. 2-25
L1 Cache Control and Status Registers (L1CSR0, L1CSR1).................................... 2-26
L1 Cache Configuration Registers (L1CFG0, L1CFG1)........................................... 2-27
L1 Cache Flush and Invalidate Register (L1FINV1)................................................. 2-27
MMU Control and Status Register (MMUCSR0) ..................................................... 2-27
MMU Configuration Register (MMUCFG) .............................................................. 2-27
TLB Configuration Registers (TLB0CFG, TLB1CFG)............................................. 2-27
SPR Register Access...................................................................................................... 2-27
Invalid SPR References ............................................................................................. 2-27
Synchronization Requirements for SPRs................................................................... 2-28
Special Purpose Register Summary ........................................................................... 2-29
Reset Settings................................................................................................................. 2-33
Chapter 3
Instruction Model

3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.11.1
3.12
3.13
3.14
3.15
3.16
3.17
3.17.1
3.17.2
3.17.3

Unsupported Instructions and Instruction Forms............................................................. 3-1
Optionally Supported Instructions and Instruction Forms............................................... 3-2
Implementation Specific Instructions .............................................................................. 3-2
Power ISA Instruction Extensions ................................................................................... 3-3
Memory Access Alignment Support................................................................................ 3-3
Memory Synchronization and Reservation Instructions.................................................. 3-3
Branch Prediction ............................................................................................................ 3-4
Interruption of Instructions by Interrupt Requests........................................................... 3-5
New e200z4 Categories ................................................................................................... 3-5
ISEL Instruction............................................................................................................... 3-6
Enhanced Debug .............................................................................................................. 3-6
Debug Notify Halt Instructions.................................................................................... 3-8
Machine Check .............................................................................................................. 3-10
WAIT Instruction ........................................................................................................... 3-12
Enhanced Reservations .................................................................................................. 3-13
Volatile Context Save/Restore ....................................................................................... 3-16
Unimplemented SPRs and Read-Only SPRs ................................................................. 3-23
Invalid Forms of Instructions......................................................................................... 3-24
Load and Store with Update Instructions .................................................................. 3-24
Load Multiple Word (lmw, e_lmw) Instruction......................................................... 3-24
Branch Conditional To Count Register Instructions.................................................. 3-24
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

iv

Freescale Semiconductor

Contents
Paragraph
Number
3.17.4
3.18
3.18.1
3.18.2

Title

Page
Number

Instructions With Reserved Fields Non-Zero ............................................................ 3-24
Instruction Summary...................................................................................................... 3-25
Instruction Index Sorted by Mnemonic ..................................................................... 3-25
Instruction Index Sorted by Opcode .......................................................................... 3-34
Chapter 4
Instruction Pipeline and Execution Timing

4.1
4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.3
4.3.1
4.3.2
4.3.3
4.4
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.4.8
4.5
4.6
4.6.1
4.6.2
4.6.3
4.7
4.8
4.9
4.10

Overview of Operation .................................................................................................... 4-1
Core Subsystems.............................................................................................................. 4-3
Control Unit ................................................................................................................. 4-3
Instruction Unit ............................................................................................................ 4-3
Branch Unit.................................................................................................................. 4-3
Instruction Decode Unit............................................................................................... 4-3
Exception Handling ..................................................................................................... 4-3
Execution Units................................................................................................................ 4-4
Integer Execution Units ............................................................................................... 4-4
Load/Store Unit............................................................................................................ 4-4
Embedded Floating-point Execution Units.................................................................. 4-4
Instruction Pipeline .......................................................................................................... 4-4
Description of Pipeline Stages ..................................................................................... 4-6
Instruction Prefetch Buffers and Branch Target Buffer ............................................... 4-6
Single-Cycle Instruction Pipeline Operation ............................................................... 4-8
Basic Load and Store Instruction Pipeline Operation.................................................. 4-9
Change-of-Flow Instruction Pipeline Operation.......................................................... 4-9
Basic Multi-Cycle Instruction Pipeline Operation..................................................... 4-11
Additional Examples of Instruction Pipeline Operation for Load and Store............. 4-13
Move To/From SPR Instruction Pipeline Operation.................................................. 4-14
Control Hazards ............................................................................................................. 4-16
Instruction Serialization ................................................................................................. 4-16
Completion Serialization ........................................................................................... 4-17
Dispatch Serialization................................................................................................ 4-17
Refetch Serialization.................................................................................................. 4-17
Interrupt Recognition and Exception Processing........................................................... 4-18
Concurrent Instruction Execution.................................................................................. 4-20
Instruction Timings ........................................................................................................ 4-20
Operand Placement On Performance............................................................................. 4-26
Chapter 5
Interrupts and Exceptions

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

v

Contents
Paragraph
Number
5.1
5.1.1
5.1.2
5.2
5.3
5.4
5.5
5.6
5.7
5.7.1
5.7.2
5.7.2.1
5.7.2.1.1
5.7.2.1.2
5.7.2.1.3
5.7.2.2
5.7.2.3
5.7.3
5.7.4
5.7.5
5.7.6
5.7.7
5.7.8
5.7.9
5.7.10
5.7.11
5.7.12
5.7.13
5.7.14
5.7.15
5.7.16
5.7.17
5.7.18
5.7.19
5.7.20
5.8
5.8.1
5.9
5.9.1
5.9.2
5.10

Title

Page
Number

Interrupts .......................................................................................................................... 5-2
Interrupt Classes .......................................................................................................... 5-2
Interrupt Types ............................................................................................................. 5-2
Exception Syndrome Register ......................................................................................... 5-5
Machine State Register .................................................................................................... 5-7
Machine Check Syndrome Register (MCSR).................................................................. 5-9
Interrupt Vector Prefix Registers (IVPR)....................................................................... 5-12
Interrupt Vector Offset Registers (IVORxx).................................................................. 5-12
Interrupt Definitions ...................................................................................................... 5-13
Critical Input Interrupt (IVOR0)................................................................................ 5-13
Machine Check Interrupt (IVOR1)............................................................................ 5-14
Machine Check Causes.......................................................................................... 5-15
Error Report Machine Check Exceptions .......................................................... 5-15
Non-Maskable Interrupt Machine Check Exceptions ....................................... 5-16
Asynchronous Machine Check Exceptions ....................................................... 5-17
Machine Check Interrupt Actions.......................................................................... 5-19
Checkstop State ..................................................................................................... 5-21
Data Storage Interrupt (IVOR2) ................................................................................ 5-21
Instruction Storage Interrupt (IVOR3) ...................................................................... 5-21
External Input Interrupt (IVOR4) .............................................................................. 5-22
Alignment Interrupt (IVOR5).................................................................................... 5-23
Program Interrupt (IVOR6) ....................................................................................... 5-24
Floating-Point Unavailable Interrupt (IVOR7).......................................................... 5-25
System Call Interrupt (IVOR8).................................................................................. 5-26
Auxiliary Processor Unavailable Interrupt (IVOR9)................................................. 5-26
Decrementer Interrupt (IVOR10) .............................................................................. 5-26
Fixed-Interval Timer Interrupt (IVOR11).................................................................. 5-27
Watchdog Timer Interrupt (IVOR12) ........................................................................ 5-28
Data TLB Error Interrupt (IVOR13) ......................................................................... 5-28
Instruction TLB Error Interrupt (IVOR14)................................................................ 5-29
Debug Interrupt (IVOR15) ........................................................................................ 5-30
System Reset Interrupt............................................................................................... 5-33
SPE Unavailable Interrupt (IVOR32)........................................................................ 5-34
EFP Floating-point Data Interrupt (IVOR33)............................................................ 5-35
EFP Floating-point Round Interrupt (IVOR34)......................................................... 5-35
Exception Recognition and Priorities ............................................................................ 5-36
Exception Priorities.................................................................................................... 5-37
Interrupt Processing ....................................................................................................... 5-40
Enabling and Disabling Exceptions........................................................................... 5-41
Returning from an Interrupt Handler ......................................................................... 5-42
Process Switching .......................................................................................................... 5-43
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

vi

Freescale Semiconductor

Contents
Paragraph
Number

Title

Page
Number

Chapter 6
Embedded Floating-Point Unit, Version 2
6.1
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.5.1
6.2.5.2
6.2.5.3
6.2.6
6.3
6.3.1
6.3.1.1
6.3.1.2
6.3.2
6.3.3
6.3.4
6.3.5
6.4
6.5
6.5.1
6.5.2
6.6
6.6.1
6.6.2

Nomenclature and Conventions....................................................................................... 6-1
EFPU Programming Model ............................................................................................. 6-1
Signal Processing Extension/Embedded Floating-Point Status and Control Register
(SPEFSCR) .............................................................................................................. 6-1
GPRs and Power ISA Instructions............................................................................... 6-5
SPE/EFPU Available Bit in MSR................................................................................ 6-5
Embedded Floating-point Exception Bit in ESR......................................................... 6-5
EFPU Exceptions......................................................................................................... 6-5
EFP Unavailable Exception..................................................................................... 6-6
Embedded Floating-point Data Exception............................................................... 6-6
Embedded Floating-Point Round Exception ........................................................... 6-6
Exception Priorities...................................................................................................... 6-7
Embedded Floating-Point Unit Operations...................................................................... 6-7
Floating-Point Data Formats........................................................................................ 6-7
Single-Precision Floating-point Format .................................................................. 6-8
Half-Precision Floating-point Format...................................................................... 6-9
Conformity to IEEE Std. 754 Standard...................................................................... 6-10
Floating-Point Exceptions.......................................................................................... 6-11
Embedded Scalar Single-Precision Floating-Point Instructions................................ 6-11
EFPU Vector Single-precision Embedded Floating-Point Instructions..................... 6-47
Embedded Floating-point Results Summary ................................................................. 6-95
EFPU Instruction Timing............................................................................................. 6-110
EFPU Single-Precision Vector Floating-Point Instruction Timing...........................6-111
EFPU Single-Precision Scalar Floating-Point Instruction Timing .......................... 6-112
Instruction Forms and Opcodes ................................................................................... 6-114
Opcodes for EFPU Vector Floating-Point Instructions............................................ 6-114
Opcodes for EFPU Scalar Single-precision Floating-Point Instructions................. 6-116
Chapter 7
Signal Processing Extension Unit

7.1
7.2
7.2.1
7.2.2
7.2.2.1
7.2.3
7.2.4

Nomenclature and Conventions....................................................................................... 7-1
SPE Programming Model ................................................................................................ 7-1
SPE Status and Control Register (SPEFSCR) ............................................................. 7-1
Accumulator................................................................................................................. 7-3
Context Switch......................................................................................................... 7-4
GPRs and Power ISA Embedded Category Instructions ............................................. 7-4
SPE Available Bit in MSR........................................................................................... 7-4
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

vii

Contents
Paragraph
Number
7.2.5
7.2.6
7.2.6.1
7.2.6.2
7.2.7
7.3
7.4
7.4.1
7.4.2
7.4.3
7.4.4
7.5
7.6
7.6.1
7.6.2
7.6.3
7.7
7.7.1
7.7.2
7.7.3

Title

Page
Number

SPE Exception Bit in ESR ........................................................................................... 7-4
SPE Exceptions............................................................................................................ 7-4
SPE Unavailable Exception..................................................................................... 7-5
SPE Vector Alignment Exception............................................................................ 7-5
Exception Priorities...................................................................................................... 7-5
Integer SPE Simple Instructions ...................................................................................... 7-6
Integer SPE Multiply, Multiply-Accumulate, and Operation to Accumulator Instructions
(Complex Integer Instructions).................................................................................. 7-48
Multiply Half-Word Instructions ............................................................................... 7-49
Multiply Words Instructions .................................................................................... 7-113
Add/Subtract Word to Accumulator Instructions .................................................... 7-154
Initializing and Reading the Accumulator ............................................................... 7-163
SPE Vector Load/Store Instructions............................................................................. 7-163
SPE Instruction Timing................................................................................................ 7-200
SPE Integer Simple Instructions Timing ................................................................. 7-200
SPE Load and Store Instruction Timing .................................................................. 7-202
SPE Complex Integer Instruction Timing................................................................ 7-203
Instruction Forms and Opcodes ................................................................................... 7-206
SPE Vector Integer Simple Instructions................................................................... 7-207
Opcodes for SPE Load and Store Instructions......................................................... 7-208
Opcodes for SPE Complex Integer Instructions ...................................................... 7-210
Chapter 8
Power Management

8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9

Active State ...................................................................................................................... 8-1
Waiting State .................................................................................................................... 8-1
Halted State ...................................................................................................................... 8-1
Stopped State.................................................................................................................... 8-2
Power Management Pins ................................................................................................. 8-3
Power Management Control Bits..................................................................................... 8-3
Software Considerations for Power Management using Wait Instructions ..................... 8-3
Software Considerations for Power Management using Doze, Nap or Sleep ................. 8-4
Debug Considerations for Power Management ............................................................... 8-4
Chapter 9
L1 Cache

9.1
9.2
9.3

Overview.......................................................................................................................... 9-1
4 Kbyte ICache Organization........................................................................................... 9-2
Cache Lookup .................................................................................................................. 9-3
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

viii

Freescale Semiconductor

Contents
Paragraph
Number
9.4
9.4.1
9.4.2
9.4.3
9.4.4
9.5
9.6
9.6.1
9.6.2
9.6.3
9.6.4
9.6.5
9.6.6
9.6.6.1
9.7
9.7.1
9.7.1.1
9.7.1.2
9.7.2
9.7.2.1
9.7.2.2
9.7.2.3
9.7.2.4
9.7.3
9.7.4
9.7.5
9.7.6
9.8
9.9
9.10
9.10.1
9.10.2
9.10.3
9.10.4
9.10.5
9.11
9.11.1
9.11.2
9.12
9.13
9.13.1

Title

Page
Number

Cache Control .................................................................................................................. 9-5
L1 Cache Control and Status Register 0 (L1CSR0) .................................................... 9-6
L1 Cache Control and Status Register 1 (L1CSR1) .................................................... 9-6
L1 Cache Configuration Register 0 (L1CFG0) ........................................................... 9-8
L1 Cache Configuration Register 1 (L1CFG1) ........................................................... 9-9
Cache Organization Control .......................................................................................... 9-10
Cache Operation ............................................................................................................ 9-10
Cache Enable/Disable ................................................................................................ 9-10
Cache Fills ................................................................................................................. 9-11
Cache Line Replacement ........................................................................................... 9-11
Cache-Inhibited Accesses .......................................................................................... 9-11
Cache Invalidation ..................................................................................................... 9-12
Cache Invalidate by Set and Way .............................................................................. 9-12
L1FINV1................................................................................................................ 9-12
Cache Parity and EDC Protection.................................................................................. 9-13
Cache Error Action Control ....................................................................................... 9-14
L1CSR1[ICEA] = 00, Machine Check Generation on Error................................. 9-14
L1CSR1[ICEA] = 01, Correction/Auto-Invalidation on Error.............................. 9-14
Parity/EDC Error Handling for Cache Control Operations and Instructions ............ 9-15
L1FINV1 operations.............................................................................................. 9-15
Cache Touch Instructions (icbt)............................................................................. 9-15
icbi Instructions ..................................................................................................... 9-15
Cache Locking Instructions (icbtls, icblc) ............................................................. 9-16
Cache Inhibited Accesses and Parity/EDC Errors..................................................... 9-16
EDC Checkbit/Syndrome Coding Scheme Generation ............................................. 9-16
Cache Error Injection................................................................................................. 9-18
Cache Error Cross-Signaling ..................................................................................... 9-18
Cache Management Instructions.................................................................................... 9-18
Touch Instructions.......................................................................................................... 9-19
Cache Line Locking/Unlocking..................................................................................... 9-19
Overview.................................................................................................................... 9-19
icbtls—Instruction Cache Block Touch and Lock Set............................................... 9-21
icblc—Instruction Cache Block Lock Clear.............................................................. 9-22
Effects of Other Cache Instructions on Locked Lines ............................................... 9-22
Flash Clearing of Lock Bits ....................................................................................... 9-23
Cache Instructions and Exceptions ................................................................................ 9-23
Exception Conditions for Cache Instructions ............................................................ 9-23
Transfer Type Encodings for Cache Management Instructions................................. 9-24
Self-Modifying Code Requirements .............................................................................. 9-25
Page Table Control Bits ................................................................................................. 9-25
Cache-Inhibited Accesses .......................................................................................... 9-25
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

ix

Contents
Paragraph
Number
9.14
9.15
9.15.1
9.15.2
9.15.3
9.15.3.1
9.16

Title

Page
Number

Effect of Hardware Debug on Cache Operation ............................................................ 9-26
Cache Memory Access For Debug/Error Handling....................................................... 9-26
Cache Memory Access By Means Of Software ........................................................ 9-26
Cache Memory Access Through JTAG/OnCE Port .................................................. 9-27
Cache Debug Access Control Register (CDACNTL) ............................................... 9-28
Cache Debug Access Data Register (CDADATA) ................................................ 9-29
Hardware Debug (Cache) Control Register 0................................................................ 9-30
Chapter 10
Memory Management Unit

10.1
10.2
10.2.1
10.2.2
10.2.3
10.2.4
10.2.5
10.3
10.4
10.4.1
10.4.2
10.4.3
10.5
10.5.1
10.5.2
10.5.3
10.5.4
10.5.5
10.6
10.6.1
10.6.2
10.6.3
10.6.4
10.6.5
10.6.6
10.6.7
10.6.8
10.7
10.7.1
10.7.2

Overview........................................................................................................................ 10-1
Effective to Real Address Translation ........................................................................... 10-1
Effective Addresses ................................................................................................... 10-1
Address Spaces .......................................................................................................... 10-2
Process ID .................................................................................................................. 10-2
Translation Flow ........................................................................................................ 10-2
Permissions ................................................................................................................ 10-4
Translation Lookaside Buffer ........................................................................................ 10-5
Configuration Information ............................................................................................. 10-6
MMU Configuration Register (MMUCFG) .............................................................. 10-6
TLB0 Configuration Register (TLB0CFG) ............................................................... 10-7
TLB1 Configuration Register (TLB1CFG) ............................................................... 10-8
Software Interface and TLB Instructions....................................................................... 10-9
TLB Read Entry Instruction (tlbre) ......................................................................... 10-10
TLB Write Entry Instruction (tlbwe) ....................................................................... 10-10
TLB Search Instruction (tlbsx) ................................................................................ 10-11
TLB Invalidate (tlbivax) Instruction........................................................................ 10-11
TLB Synchronize Instruction (tlbsync) ................................................................... 10-12
TLB Operations ........................................................................................................... 10-12
Translation Reload ................................................................................................... 10-13
Reading the TLB...................................................................................................... 10-13
Writing the TLB....................................................................................................... 10-13
Searching the TLB ................................................................................................... 10-13
TLB Miss Exception Update ................................................................................... 10-14
IPROT Invalidation Protection ................................................................................ 10-14
TLB Load on Reset.................................................................................................. 10-14
The G Bit ................................................................................................................. 10-15
MMU Control Registers .............................................................................................. 10-15
DEAR Register ........................................................................................................ 10-15
MMU Control and Status Register 0 (MMUCSR0) ................................................ 10-16
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

x

Freescale Semiconductor

Contents
Paragraph
Number
10.7.3
10.7.4
10.7.5
10.8
10.9
10.9.1
10.10
10.11

Title

Page
Number

MMU Assist Registers (MAS) ................................................................................ 10-16
MAS Registers Summary ........................................................................................ 10-22
MAS Register Updates ............................................................................................ 10-22
TLB Coherency Control .............................................................................................. 10-23
Core Interface Operation for MMU Control Instructions............................................ 10-23
Transfer Type Encodings for MMU Control Instructions ....................................... 10-24
Effect of Hardware Debug on MMU Operation .......................................................... 10-24
External Translation Alterations for Real-time Systems ............................................. 10-25
Chapter 11
Debug Support

11.1
11.1.1
11.1.1.1
11.1.2
11.1.3
11.1.4
11.1.4.1
11.2
11.2.1
11.2.2
11.2.2.1
11.2.3
11.2.4
11.2.5
11.2.6
11.2.7
11.2.8
11.2.9
11.2.10
11.2.11
11.2.12
11.2.13
11.3
11.3.1
11.3.2
11.3.3
11.3.3.1
11.3.3.2
11.3.3.3

Overview........................................................................................................................ 11-1
Software Debug Facilities.......................................................................................... 11-1
Power ISA Embedded Category Compatibility..................................................... 11-2
Additional Debug Facilities ....................................................................................... 11-2
Hardware Debug Facilities ........................................................................................ 11-2
Sharing Debug Resources by Software/Hardware..................................................... 11-3
Simultaneous Hardware and Software Debug Event Handing.............................. 11-3
Software Debug Events and Exceptions ........................................................................ 11-4
Instruction Address Compare Event .......................................................................... 11-6
Data Address Compare Event.................................................................................... 11-6
Data Address Compare Event Status Updates....................................................... 11-7
Linked Instruction Address and Data Address Compare Event .............................. 11-15
Trap Debug Event .................................................................................................... 11-16
Branch Taken Debug Event ..................................................................................... 11-16
Instruction Complete Debug Event.......................................................................... 11-16
Interrupt Taken Debug Event................................................................................... 11-17
Critical Interrupt Taken Debug Event...................................................................... 11-17
Return Debug Event................................................................................................. 11-17
Critical Return Debug Event.................................................................................... 11-18
Debug Counter Debug Event ................................................................................... 11-18
External Debug Event.............................................................................................. 11-18
Unconditional Debug Event..................................................................................... 11-18
Debug Registers ........................................................................................................... 11-19
Debug Address and Value Registers........................................................................ 11-19
Debug Counter Register (DBCNT) ......................................................................... 11-20
Debug Control and Status Registers ........................................................................ 11-20
Debug Control Register 0 (DBCR0).................................................................... 11-21
Debug Control Register 1 (DBCR1).................................................................... 11-24
Debug Control Register 2 (DBCR2).................................................................... 11-26
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xi

Contents
Paragraph
Number
11.3.3.4
11.3.3.5
11.3.3.6
11.3.3.7
11.3.3.8
11.3.4
11.3.5
11.3.6
11.4
11.4.1
11.4.1.1
11.4.1.2
11.4.2
11.4.3
11.4.4
11.4.5
11.4.5.1
11.4.5.2
11.4.5.3
11.4.5.4
11.4.5.5
11.4.6
11.4.6.1
11.4.6.2
11.4.6.3
11.4.7
11.4.8
11.4.8.1
11.4.8.2
11.4.8.3
11.4.8.4
11.4.8.5
11.4.8.6
11.4.9
11.4.9.1
11.4.9.2
11.4.9.3
11.4.9.4
11.4.9.5
11.4.9.6
11.4.10

Title

Page
Number

Debug Control Register 3 (DBCR3).................................................................... 11-29
Debug Control Register 4 (DBCR4).................................................................... 11-34
Debug Control Register 5 (DBCR5).................................................................... 11-35
Debug Control Register 6 (DBCR6).................................................................... 11-37
Debug Status Register (DBSR) ........................................................................... 11-39
Debug External Resource Control Register (DBERC0).......................................... 11-41
Debug Event Select Register (DEVENT)................................................................ 11-48
Debug Data Acquisition Message Register (DDAM) ............................................. 11-49
External Debug Support............................................................................................... 11-49
External Debug Registers ........................................................................................ 11-50
External Debug Control Register 0 (EDBCR0)................................................... 11-50
External Debug Status Register 0 (EDBSR0)...................................................... 11-51
OnCE Introduction................................................................................................... 11-53
JTAG/OnCE Pins ..................................................................................................... 11-56
OnCE Internal Interface Signals .............................................................................. 11-57
OnCE Interface Signals ........................................................................................... 11-57
OnCE Enable (jd_en_once) ................................................................................. 11-57
OnCE Debug Request/Event (jd_de_b, jd_de_en) .............................................. 11-58
e200 OnCE Debug Output (jd_debug_b) ............................................................ 11-58
e200 CPU Clock On Input (jd_mclk_on) ............................................................ 11-58
Watchpoint Events (jd_watchpt[0:21])................................................................ 11-59
e200 OnCE Controller and Serial Interface............................................................. 11-59
e200 OnCE Status Register ................................................................................. 11-59
e200 OnCE Command Register (OCMD) ........................................................... 11-60
e200 OnCE Control Register (OCR) ................................................................... 11-64
Access to Debug Resources..................................................................................... 11-66
Methods of Entering Debug Mode .......................................................................... 11-68
External Debug Request During Reset ................................................................ 11-68
Debug Request During Reset............................................................................... 11-69
Debug Request During Normal Activity ............................................................. 11-69
Debug Request During Waiting, Halted, or Stopped State.................................. 11-69
Software Request During Normal Activity ......................................................... 11-70
Debug Notify Halt Instructions ........................................................................... 11-70
CPU Status and Control Scan Chain Register (CPUSCR) ...................................... 11-70
Instruction Register (IR) ...................................................................................... 11-71
Control State Register (CTL)............................................................................... 11-72
Program Counter Register (PC)........................................................................... 11-75
Write-Back Bus Register (WBBR[low], WBBR[high])...................................... 11-75
Machine State Register (MSR) ............................................................................ 11-76
Exiting Debug Mode and Interrupt Blocking ...................................................... 11-76
Instruction Address FIFO Buffer (PC FIFO)........................................................... 11-76
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xii

Freescale Semiconductor

Contents
Paragraph
Number
11.4.10.1
11.4.11
11.5
11.6
11.7
11.8
11.9
11.9.1
11.9.2
11.9.3
11.9.4
11.9.5
11.9.6
11.9.7

Title

Page
Number

PC FIFO............................................................................................................... 11-76
Reserved Registers (Reserved) ................................................................................ 11-78
Watchpoint Support ..................................................................................................... 11-78
MMU and Cache Operation During Debug................................................................. 11-80
Cache Array Access During Debug............................................................................. 11-81
Basic Steps for Enabling, Using, and Exiting External Debug Mode ......................... 11-81
Parallel Signature Unit................................................................................................. 11-83
Parallel Signature Control Register (PSCR)............................................................ 11-84
Parallel Signature Status Register (PSSR)............................................................... 11-84
Parallel Signature High Register (PSHR)................................................................ 11-85
Parallel Signature Low Register (PSLR) ................................................................. 11-85
Parallel Signature Counter Register (PSCTR)......................................................... 11-86
Parallel Signature Update High Register (PSUHR) ................................................ 11-86
Parallel Signature Update Low Register (PSULR).................................................. 11-86
Chapter 12 Nexus 3+ Module

12.1
12.1.1
12.1.2
12.1.3
12.2
12.3
12.4
12.4.1
12.4.2
12.4.3
12.4.4
12.4.5
12.4.6
12.4.7
12.4.8
12.4.9
12.4.10
12.4.11
12.4.12
12.4.13
12.4.14
12.4.15
12.5
12.6

Introduction.................................................................................................................... 12-1
Terms and Definitions................................................................................................ 12-1
Feature List ................................................................................................................ 12-2
Functional Block Diagram......................................................................................... 12-4
Enabling Nexus 3+ Operation........................................................................................ 12-4
TCODEs Supported ....................................................................................................... 12-5
Nexus 3+ Programmer’s Model................................................................................... 12-10
Client Select Control (CSC)—reference only ......................................................... 12-12
Port Configuration Register (PCR)—reference only............................................... 12-12
Nexus Development Control Register 1 (DC1)....................................................... 12-13
Nexus Development Control Registers 2 and 3 (DC2, DC3) .................................. 12-15
Nexus Development Control Register 4 (DC4)....................................................... 12-18
Development Status Register (DS) .......................................................................... 12-19
Watchpoint Trigger Registers (WT, PTSTC, PTETC, DTSTC, DTETC) ............... 12-20
Nexus Watchpoint Mask Register (WMSK)............................................................ 12-25
Nexus Overrun Control Register (OVCR)............................................................... 12-26
Data Trace Control Register (DTC)......................................................................... 12-27
Data Trace Start Address Registers (DTSA1–4) ..................................................... 12-28
Data Trace End Address Registers (DTEA1–4) ...................................................... 12-29
Read/Write Access Control/Status (RWCS) ............................................................ 12-31
Read/Write Access Data (RWD) ............................................................................. 12-32
Read/Write Access Address (RWA) ........................................................................ 12-34
Nexus 3+ Register Access via JTAG/OnCE................................................................ 12-34
Nexus Message Fields ................................................................................................. 12-34
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xiii

Contents
Paragraph
Number
12.6.1
12.6.2
12.6.3
12.6.4
12.6.5
12.7
12.7.1
12.7.2
12.7.3
12.7.4
12.7.5
12.7.6
12.7.7
12.7.8
12.8
12.9
12.10
12.10.1
12.10.2
12.11
12.11.1
12.11.1.1
12.11.1.2
12.11.1.3
12.11.1.4
12.11.2
12.11.2.1
12.11.2.2
12.11.2.3
12.11.3
12.11.3.1
12.11.3.2
12.11.3.3
12.11.4
12.11.5
12.11.5.1
12.11.5.2
12.11.5.3

Title

Page
Number

TCODE Field........................................................................................................... 12-35
Source ID Field (SRC)............................................................................................. 12-35
Relative Address Field (U-ADDR).......................................................................... 12-35
Full Address Field (F-ADDR) ................................................................................. 12-36
Address Space Indication Field (MAP) ................................................................... 12-36
Nexus Message Queues ............................................................................................... 12-37
Message Queue Overrun.......................................................................................... 12-37
CPU Stall ................................................................................................................. 12-37
Message Suppression............................................................................................... 12-37
Nexus Message Priority ........................................................................................... 12-38
Data Acquisition Message Priority Loss Response ................................................. 12-39
Ownership Trace Message Priority Loss Response................................................. 12-39
Program Trace Message Priority Loss Response..................................................... 12-39
Data Trace Message Priority Loss Response........................................................... 12-39
Debug Status Messages................................................................................................ 12-39
Error Messages ............................................................................................................ 12-40
Ownership Trace .......................................................................................................... 12-40
Overview.................................................................................................................. 12-40
Ownership Trace Messaging (OTM) ....................................................................... 12-40
Program Trace.............................................................................................................. 12-41
Branch Trace Messaging Types ............................................................................... 12-41
e200 Indirect Branch Message Instructions......................................................... 12-42
e200 Direct Branch Message Instructions ........................................................... 12-43
BTM Using Branch History Messages ................................................................ 12-43
BTM Using Traditional Program Trace Messages .............................................. 12-43
BTM Message Formats............................................................................................ 12-43
Indirect Branch Messages (History) .................................................................... 12-44
Indirect Branch Messages (Traditional) .............................................................. 12-44
Direct Branch Messages (Traditional) ................................................................. 12-44
Program Trace Message Fields................................................................................ 12-44
Sequential Instruction Count Field (ICNT) ......................................................... 12-45
Branch/Predicate Instruction History (HIST)...................................................... 12-45
Execution Mode Indication.................................................................................. 12-46
Resource Full Messages........................................................................................... 12-46
Program Correlation Messages................................................................................ 12-47
Program Correlation Message Generation for TLB Update with New Address
Translation ....................................................................................................... 12-50
Program Correlation Message Generation for TLB Invalidate
(tlbivax) Operations ......................................................................................... 12-50
Program Correlation Message Generation for PID Updates
or MSR[IS] Updates ........................................................................................ 12-50
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xiv

Freescale Semiconductor

Contents
Paragraph
Number
12.11.6
12.11.7
12.11.8
12.11.9
12.12
12.12.1
12.12.2
12.12.2.1
12.12.2.2
12.12.2.3
12.12.3
12.12.3.1
12.12.3.2
12.12.3.3
12.12.4
12.13
12.13.1
12.13.2
12.13.3
12.14
12.14.1
12.15
12.15.1
12.15.2
12.15.3
12.15.4
12.15.5
12.16
12.16.1
12.16.2
12.17
12.18
12.19
12.20
12.21
12.21.1
12.21.2
12.21.3

Title

Page
Number

Program Trace Overflow Error Messages ............................................................... 12-50
Program Trace Synchronization Messages.............................................................. 12-51
Enabling Program Trace .......................................................................................... 12-53
Program Trace Timing Diagrams (2 MDO/1 MSEO configuration)....................... 12-53
Data Trace .................................................................................................................... 12-54
Data Trace Messaging (DTM) ................................................................................. 12-54
DTM Message Formats ........................................................................................... 12-55
Data Write Messages ........................................................................................... 12-55
Data Read Messages ............................................................................................ 12-55
Data Trace Synchronization Messages ................................................................ 12-56
DTM Operation........................................................................................................ 12-57
Data Trace Windowing ........................................................................................ 12-57
Data Access/Instruction Access Data Tracing..................................................... 12-57
e200 Bus Cycle Special Cases............................................................................. 12-58
Data Trace Timing Diagrams(8 MDO/2 MSEO configuration) .............................. 12-59
Data Acquisition Messaging........................................................................................ 12-59
Data Acquisition ID Tag Field................................................................................. 12-59
Data Acquisition Data Field .................................................................................... 12-60
Data Acquisition Trace Event.................................................................................. 12-60
Watchpoint Trace Messaging....................................................................................... 12-60
Watchpoint Timing Diagram (2 MDO/1 MSEO configuration).............................. 12-62
Nexus 3+ Read/Write Access to Memory-Mapped Resources.................................... 12-62
Single Write Access ................................................................................................. 12-62
Block Write Access.................................................................................................. 12-63
Single Read Access.................................................................................................. 12-64
Block Read Access .................................................................................................. 12-64
Error Handling ......................................................................................................... 12-65
Nexus 3+ Pin Interface ................................................................................................ 12-66
Pins Implemented .................................................................................................... 12-66
Pin Protocol.............................................................................................................. 12-68
Rules for Output Messages .......................................................................................... 12-71
Auxiliary Port Arbitration............................................................................................ 12-71
Examples...................................................................................................................... 12-71
Electrical Characteristics ............................................................................................. 12-74
IEEE 1149.1 (JTAG) RD/WR Sequences.................................................................... 12-74
JTAG Sequence for Accessing Internal Nexus Registers ........................................ 12-75
JTAG Sequence for Read Access of Memory-Mapped Resources ......................... 12-75
JTAG Sequence for Write Access of Memory-Mapped Resources......................... 12-76
Chapter 13 External Core Complex Interfaces

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

xv

Contents
Paragraph
Number
13.1
13.2
13.3
13.3.1
13.3.2
13.3.2.1
13.3.2.2
13.3.2.3
13.3.2.4
13.3.2.5
13.3.2.6
13.3.2.7
13.3.2.8
13.3.3
13.3.3.1
13.3.3.2
13.3.3.3
13.3.4
13.3.4.1
13.3.4.2
13.3.4.3
13.3.4.4
13.3.4.5
13.3.4.6
13.3.5
13.3.5.1
13.3.5.2
13.3.6
13.3.6.1
13.3.6.2
13.3.7
13.3.7.1
13.3.7.2
13.3.8
13.3.8.1
13.3.8.2
13.3.9
13.3.9.1
13.3.9.2
13.3.9.3
13.3.9.4

Title

Page
Number

Overview........................................................................................................................ 13-1
Signal Index ................................................................................................................... 13-2
Signal Descriptions ........................................................................................................ 13-8
e200 Processor Clock (m_clk)................................................................................... 13-8
Reset-Related Signals ................................................................................................ 13-9
Power-On Reset (m_por) ....................................................................................... 13-9
Reset (p_reset_b) ................................................................................................... 13-9
Watchdog Reset Status (p_wrs[0:1]) ..................................................................... 13-9
Debug Reset Control (p_dbrstc[0:1]) .................................................................. 13-10
Reset Base (p_rstbase[0:29]) ............................................................................... 13-10
Reset Endian Mode (p_rst_endmode) ................................................................. 13-10
Reset VLE Mode (p_rst_vlemode)...................................................................... 13-10
JTAG/OnCE Reset (j_trst_b) ............................................................................... 13-10
Address and Data Buses .......................................................................................... 13-10
Address Bus (p_d_haddr[31:0], p_i_haddr[31:0]) .............................................. 13-11
Read Data Bus (p_d_hrdata[63:0], p_i_hrdata[63:0]) ......................................... 13-11
Write Data Bus (p_d_hwdata[63:0]).................................................................... 13-11
Transfer Attribute Signals........................................................................................ 13-12
Transfer Type (p_d_htrans[1:0], p_i_htrans[1:0]) ............................................... 13-12
Write (p_d_hwrite, p_i_hwrite) ........................................................................... 13-12
Transfer Size (p_d_hsize[1:0], p_i_hsize[1:0]) ................................................... 13-12
Burst Type (p_d_hburst[2:0], p_i_hburst[2:0]) ................................................... 13-13
Protection Control (p_d_hprot[5:0], p_i_hprot[5:0]) .......................................... 13-14
Cache Way Replacement (p_i_wayrep[0:1]) ....................................................... 13-15
Byte Lane Specification........................................................................................... 13-15
Unaligned Access (p_d_hunalign, p_i_hunalign)................................................ 13-16
Byte Strobes (p_d_hbstrb[7:0], p_i_hbstrb[7:0])................................................. 13-16
Transfer Control Signals .......................................................................................... 13-22
Transfer Ready (p_d_hready, p_i_hready) .......................................................... 13-22
Transfer Response (p_d_hresp[2:0], p_i_hresp[1:0]) .......................................... 13-22
AHB Clock Enable Signals...................................................................................... 13-23
Instruction AHB Clock Enable (p_i_ahb_clken)................................................. 13-23
Data AHB Clock Enable (p_d_ahb_clken).......................................................... 13-24
Master ID Configuration Signals............................................................................. 13-24
CPU Master ID (p_masterid[3:0]) ....................................................................... 13-24
Nexus Master ID (nex_masterid[3:0])................................................................. 13-24
Interrupt Signals....................................................................................................... 13-24
External Input Interrupt Request (p_extint_b)..................................................... 13-25
Critical Input Interrupt Request (p_critint_b)...................................................... 13-25
Non-Maskable Input Interrupt Request (p_nmi_b) ............................................. 13-25
Interrupt Pending (p_ipend)................................................................................. 13-25
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xvi

Freescale Semiconductor

Contents
Paragraph
Number
13.3.9.5
13.3.9.6
13.3.9.7
13.3.9.8
13.3.10
13.3.11
13.3.11.1
13.3.11.2
13.3.11.3
13.3.11.4
13.3.11.5
13.3.11.6
13.3.11.7
13.3.12
13.3.12.1
13.3.12.2
13.3.13
13.3.13.1
13.3.13.2
13.3.13.3
13.3.14
13.3.14.1
13.3.14.2
13.3.15
13.3.16
13.3.16.1
13.3.16.2
13.3.16.3
13.3.16.4
13.3.16.5
13.3.16.6
13.3.17
13.3.17.1
13.3.17.2
13.3.18
13.3.18.1
13.3.18.2
13.3.18.3
13.3.19
13.3.20

Title

Page
Number

Autovector (p_avec_b) ........................................................................................ 13-25
Interrupt Vector Offset (p_voffset[0:15]) ............................................................ 13-26
Interrupt Vector Acknowledge (p_iack) .............................................................. 13-26
Machine Check (p_mcp_b).................................................................................. 13-26
Lockstep Enable Signal (p_lkstep_en) .................................................................... 13-26
Cache Error Cross-signaling Signals ....................................................................... 13-27
Cache Tag Error Out (p_cache_tagerr_out)......................................................... 13-27
Cache Data Error Out (p_cache_dataerr_out) ..................................................... 13-27
Cache Error Address Out (p_cerraddr_out[0:31]) ............................................... 13-27
Cache Error Way(s) Out (p_cerrway_out[0:3]) ................................................... 13-27
Cache Tag Error In (p_cache_tagerr_in) ............................................................. 13-28
Cache Data Error In (p_cache_dataerr_in) .......................................................... 13-28
Cache Error Way(s) In (p_cerrway_in[0:3])........................................................ 13-28
External Translation Alteration Signals................................................................... 13-28
External PID Enable (p_extpid_en)..................................................................... 13-28
External PID In (p_extpid[6:7])........................................................................... 13-29
Timer Facility Signals.............................................................................................. 13-29
Timer Disable (p_tbdisable) ................................................................................ 13-29
Timer External Clock (p_tbclk) ........................................................................... 13-29
Timer Interrupt Status (p_tbint) ........................................................................... 13-29
Processor Reservation Signals ................................................................................. 13-29
CPU Reservation Status (p_rsrv)......................................................................... 13-29
CPU Reservation Clear (p_rsrv_clr).................................................................... 13-30
Miscellaneous Processor Signals ............................................................................. 13-30
Processor State Signals ............................................................................................ 13-31
Processor Mode (p_mode[0:3]) ........................................................................... 13-31
Processor Execution Pipeline Status (p_pstat_pipe0[0:5], p_pstat_pipe1[0:5]).. 13-31
Branch Prediction Status (p_brstat[0:1]) ............................................................. 13-33
Processor Exception Enable MSR values (p_msr_EE, p_msr_CE, p_msr_DE,
p_msr_ME)...................................................................................................... 13-33
Processor Return from Interrupt (p_rfi, p_rfci, p_rfdi, p_rfmci)......................... 13-33
Processor Machine Check (p_mcp_out).............................................................. 13-33
Power Management Control Signals ....................................................................... 13-34
Low-Power Mode signals (p_doze, p_nap, p_sleep)........................................... 13-34
Wakeup (p_wakeup) ............................................................................................ 13-34
Debug Event Input Signals ...................................................................................... 13-35
Unconditional Debug Event (p_ude) ................................................................... 13-35
External Debug Event 1 (p_devt1) ...................................................................... 13-35
External Debug Event 2 (p_devt2) ...................................................................... 13-35
Debug Event Output Signals (p_devnt_out[0:7]) .................................................... 13-35
Debug/Emulation (Nexus 1/ OnCE) Support Signals.............................................. 13-36
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xvii

Contents
Paragraph
Number
13.3.20.1
13.3.20.2
13.3.20.3
13.3.20.4
13.3.20.5
13.3.20.6
13.3.21
13.3.21.1
13.3.21.2
13.3.21.3
13.3.21.4
13.3.21.5
13.3.21.6
13.3.22
13.3.23
13.3.24
13.3.25
13.3.25.1
13.3.25.2
13.3.25.3
13.4
13.4.1
13.4.2
13.4.2.1
13.4.2.1.1
13.4.2.1.2
13.4.2.1.3
13.4.2.1.4
13.4.2.2
13.4.2.3
13.4.2.3.1
13.4.2.3.2
13.4.2.3.3
13.4.2.3.4
13.4.2.4
13.4.2.5
13.4.2.6
13.4.2.7
13.4.2.8
13.4.3
13.4.3.1

Title

Page
Number

OnCE Enable (jd_en_once) ................................................................................. 13-36
Debug Session (jd_debug_b) ............................................................................... 13-36
Debug Request (jd_de_b) .................................................................................... 13-37
DE_b Active High Output Enable (jd_de_en)..................................................... 13-37
Processor Clock On (jd_mclk_on)....................................................................... 13-37
Watchpoint Events (jd_watchpt[0:21])................................................................ 13-37
Debug Lockstep Cross-signaling Signals ................................................................ 13-37
Debug Request EDM In (p_dbgrq_edm_in)........................................................ 13-37
Debug Request EDM Out (p_dbgrq_edm_out) ................................................... 13-38
Debug Go Request In (p_dbg_go_in).................................................................. 13-38
Debug Go Request Out (p_dbg_go_out) ............................................................. 13-38
Debug Nexus 3 Update_DR state In (p_nex3_updtdr_in)................................... 13-38
Debug Nexus 3 Update_DR state Out (p_nex3_updtdr_out) .............................. 13-38
Development Support (Nexus 3) Signals................................................................. 13-39
JTAG Support Signals—Primary Interface ............................................................. 13-39
JTAG Support Signals—Support for External Registers......................................... 13-40
JTAG ID Signals ...................................................................................................... 13-43
JTAG ID Sequence (j_id_sequence[0:1]) ............................................................ 13-44
JTAG ID Sequence (j_id_sequence[2:9]) ............................................................ 13-44
JTAG ID Version (j_id_version[0:3]) .................................................................. 13-44
Timing Diagrams ......................................................................................................... 13-45
AHB Clock Enable and the Internal HCLK ............................................................ 13-45
Processor Instruction/Data Transfers ....................................................................... 13-46
Basic Read Transfer Cycles ................................................................................. 13-47
Clock 1 (C1) .................................................................................................... 13-48
Clock 2 (C2) .................................................................................................... 13-48
Clock 3 (C3) .................................................................................................... 13-48
Clock 4 (C4) .................................................................................................... 13-48
Read Transfer with Wait State ............................................................................. 13-48
Basic Write Transfer Cycles ................................................................................ 13-50
Clock 1 (C1) .................................................................................................... 13-50
Clock 2 (C2) .................................................................................................... 13-50
Clock 3 (C3) .................................................................................................... 13-51
Clock 4 (C4) .................................................................................................... 13-51
Write Transfer with Wait States ........................................................................... 13-52
Read and Write Transfers .................................................................................... 13-53
Misaligned Accesses............................................................................................ 13-57
Burst Accesses ..................................................................................................... 13-59
Error Termination Operation ............................................................................... 13-63
Cache Error Cross-Signaling Operation .................................................................. 13-67
Cross-Signaling with Machine Check Operation Selected.................................. 13-68
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xviii

Freescale Semiconductor

Contents
Paragraph
Number
13.4.3.2
13.4.4
13.4.4.1
13.4.4.2
13.4.4.3
13.4.5
13.4.6
13.4.7
13.4.8

Title

Page
Number

Cross-Signaling with Auto-Invalidation Operation Selected .............................. 13-69
Debug Lockstep Cross-signaling Operation ............................................................ 13-77
Debug Entry Cross-Signaling .............................................................................. 13-78
Debug Exit Cross-Signaling ................................................................................ 13-81
Update_DR State Cross-Signaling ...................................................................... 13-84
Power Management ................................................................................................. 13-86
Interrupt Interface .................................................................................................... 13-86
Time Base Interface ................................................................................................. 13-90
JTAG Test Interface ................................................................................................. 13-90
Appendix A
Register Summary
Appendix B
Revision History

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

xix

Contents
Paragraph
Number

Title

Page
Number

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
xx

Freescale Semiconductor

Figures
Figure
Number

Title

Page
Number

Figures

1-1
1-2
1-3
2-1
2-2
2-3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
2-11
2-12
2-13
2-14
4-1
4-2
4-3
4-4
4-5
4-6
4-7
4-8
4-9
4-10
4-11
4-12
4-13
4-14
4-15
4-16
4-17
4-18
4-19
4-20
4-21
5-1
5-2

e200z446n3 Block Diagram.................................................................................................... 1-2
e200z446n3 Supervisor Mode Programmer’s Model ............................................................. 1-8
e200z446n3 User Mode Programmer’s Model SPRs ............................................................. 1-9
e200z446n3 Supervisor Mode Programmer’s Model SPRs.................................................... 2-2
e200z446n3 User-Mode Programmer’s Model SPRs ............................................................. 2-3
Machine State Register (MSR) ............................................................................................... 2-9
Processor ID Register (PIR).................................................................................................. 2-11
Processor Version Register (PVR) ........................................................................................ 2-12
System Version Register (SVR)............................................................................................ 2-12
Integer Exception Register (XER) ........................................................................................ 2-13
Exception Syndrome Register (ESR).................................................................................... 2-14
Machine Check Syndrome Register (MCSR) ....................................................................... 2-17
Timer Control Register (TCR) .............................................................................................. 2-19
Timer Status Register (TSR) ................................................................................................. 2-21
Hardware Implementation Dependent Register 0 (HID0) .................................................... 2-22
Hardware Implementation Dependent Register 1 (HID1) .................................................... 2-24
Branch Unit Control and Status Register (BUCSR) ............................................................. 2-25
e200z4 Block Diagram............................................................................................................ 4-2
Pipeline Diagram..................................................................................................................... 4-5
e200z4 Instruction Prefetch Buffers........................................................................................ 4-7
e200z4 Branch Target Buffer .................................................................................................. 4-8
Basic Pipe Line Flow, Single Cycle Instructions .................................................................... 4-8
Basic Pipe Line Flow, Load/Store Instructions....................................................................... 4-9
Basic Pipe Line Flow, Branch Instructions (BTB Miss, Correct Prediction, Branch Taken) . 4-9
Basic Pipe Line Flow, Branch Instructions (BTB Hit, Correct Prediction, Branch Taken).. 4-10
Basic Pipe Line Flow, Branch Instruction (BTB Hit, Predict Taken, Incorrect Prediction) . 4-10
Basic Pipe Line Flow, Branch Instructions
(BTB Miss, Predict Taken, Incorrect Prediction, Instruction Buffer Empty) .................. 4-11
Basic Pipe Line Flow, Multiply Class Instructions............................................................... 4-12
Pipe Line Flow, Multiply with Data Dependent Load Instruction........................................ 4-12
Basic Pipe Line Flow, long instruction ................................................................................. 4-13
Pipe Line Flow, Load/Store Instructions with Base Register Update ................................... 4-13
Pipelined Store Instruction with Store Data Dependency..................................................... 4-14
mtspr, mfspr Instruction Execution, Debug and SPE SPRs.................................................. 4-15
mtmsr, wrtee[i] Instruction Execution .................................................................................. 4-15
Cache/DCR, MMU mtspr, mfspr and MMU Management Instruction Execution............... 4-16
Interrupt Recognition and Handler Instruction Execution.................................................... 4-18
Interrupt Recognition and Handler Instruction Execution—Load/Store in Progress ........... 4-19
Interrupt Recognition and Handler Instruction Execution—Multi-Cycle Instruction Abort 4-20
Exception Syndrome Register (ESR)...................................................................................... 5-5
Machine State Register (MSR) ............................................................................................... 5-7
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxi

Figures
Figure
Number
5-3
5-4
5-5
6-1
6-2
6-3
7-1
7-2
7-3
7-4
7-5
7-6
7-7
7-8
7-9
7-10
7-11
7-12
7-13
7-14
7-15
7-16
7-17
7-18
7-19
7-20
7-21
7-22
7-23
7-24
7-25
7-26
7-27
7-28
7-29
7-30
7-31
7-32
7-33
7-34
7-35

Title

Page
Number

Machine Check Syndrome Register (MCSR) ......................................................................... 5-9
e200 Interrupt Vector Prefix Register (IVPR)....................................................................... 5-12
e200 Interrupt Vector Offset Register (IVOR)...................................................................... 5-12
SPE/EFPU Status and Control Register (SPEFSCR).............................................................. 6-2
Single Precision Data Format ................................................................................................. 6-8
Single Precision Data Format ................................................................................................. 6-9
SPE Status and Control Register (SPEFSCR) ........................................................................ 7-2
High Order Element Merging with evmergehi .................................................................... 7-25
High Order Element Merging with evmergehilo ................................................................. 7-26
Low Order Element Merging evmergelo ............................................................................. 7-27
Low Order Element Merging evmergelohi .......................................................................... 7-28
evsel ...................................................................................................................................... 7-37
Splat for evsplatfi .................................................................................................................. 7-40
Sign Extend in evsplati......................................................................................................... 7-41
evmhegsmfaa ........................................................................................................................ 7-50
evmhegsmfan ........................................................................................................................ 7-51
evmhegsmiaa......................................................................................................................... 7-52
evmhegsmian ........................................................................................................................ 7-53
evmhegumiaa ........................................................................................................................ 7-54
evmhegumian ........................................................................................................................ 7-55
evmhesmf .............................................................................................................................. 7-56
evmhesmfa ............................................................................................................................ 7-57
evmhesmfaaw ...................................................................................................................... 7-58
evmhesmfanw ...................................................................................................................... 7-59
evmhesmi .............................................................................................................................. 7-60
evmhesmia ............................................................................................................................ 7-61
evmhesmiaaw....................................................................................................................... 7-62
evmhesmianw ...................................................................................................................... 7-63
evmhessf................................................................................................................................ 7-64
evmhessfa.............................................................................................................................. 7-65
evmhessfaaw ........................................................................................................................ 7-67
evmhessfanw......................................................................................................................... 7-69
Even Form of Vector half word Multiply (evmhessiaaw).................................................... 7-71
evmhessianw ........................................................................................................................ 7-73
evmheumi—Even Multiply of Two Unsigned Modulo Integer Elements ............................ 7-74
evmheumia ............................................................................................................................ 7-75
evmheumiaaw ...................................................................................................................... 7-76
evmheumianw...................................................................................................................... 7-77
evmheusiaaw........................................................................................................................ 7-79
evmheusianw........................................................................................................................ 7-81
evmhogsmfaa ........................................................................................................................ 7-82
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xxii

Freescale Semiconductor

Figures
Figure
Number
7-36
7-37
7-38
7-39
7-40
7-41
7-42
7-43
7-44
7-45
7-46
7-47
7-48
7-49
7-50
7-51
7-52
7-53
7-54
7-55
7-56
7-57
7-58
7-59
7-60
7-61
7-62
7-63
7-64
7-65
7-66
7-67
7-68
7-69
7-70
7-71
7-72
7-73
7-74
7-75
7-76

Title

Page
Number

evmhogsmfan ........................................................................................................................ 7-83
evmhogsmiaa ........................................................................................................................ 7-84
evmhogsmian ........................................................................................................................ 7-85
evmhogumiaa ........................................................................................................................ 7-86
evmhogumian........................................................................................................................ 7-87
evmhosmf.............................................................................................................................. 7-88
evmhosmfa ............................................................................................................................ 7-89
evmhosmfaaw ...................................................................................................................... 7-90
evmhosmfanw ...................................................................................................................... 7-91
evmhosmi .............................................................................................................................. 7-92
evmhosmia ............................................................................................................................ 7-93
evmhosmiaaw ...................................................................................................................... 7-94
evmhosmianw ...................................................................................................................... 7-95
evmhossf ............................................................................................................................... 7-96
evmhossfa.............................................................................................................................. 7-97
evmhossfaaw ........................................................................................................................ 7-99
evmhossfanw....................................................................................................................... 7-101
evmhossiaaw ...................................................................................................................... 7-103
evmhossianw ...................................................................................................................... 7-105
evmhoumi............................................................................................................................ 7-106
evmhoumia.......................................................................................................................... 7-107
evmhoumiaaw.................................................................................................................... 7-108
evmhoumianw.................................................................................................................... 7-109
evmhousiaaw.......................................................................................................................7-111
evmhousianw ..................................................................................................................... 7-113
evmwhsmf ........................................................................................................................... 7-115
evmwhsmfa ......................................................................................................................... 7-116
evmwhsmi ........................................................................................................................... 7-117
evmwhsmia ......................................................................................................................... 7-118
evmwhssf ............................................................................................................................ 7-119
evmwhssfa........................................................................................................................... 7-120
evmwhumi........................................................................................................................... 7-121
evmwhumia......................................................................................................................... 7-122
evmwlsmiaaw...................................................................................................................... 7-123
evmwlsmianw ..................................................................................................................... 7-124
evmwlssiaaw ....................................................................................................................... 7-126
evmwlssianw....................................................................................................................... 7-128
evmwlumi............................................................................................................................ 7-129
evmwlumia.......................................................................................................................... 7-130
evmwlumiaaw ..................................................................................................................... 7-131
evmwlumianw..................................................................................................................... 7-132
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxiii

Figures
Figure
Number
7-77
7-78
7-79
7-80
7-81
7-82
7-83
7-84
7-85
7-86
7-87
7-88
7-89
7-90
7-91
7-92
7-93
7-94
7-95
7-96
7-97
7-98
7-99
7-100
7-101
7-102
7-103
7-104
7-105
7-106
7-107
7-108
7-109
7-110
7-111
7-112
7-113
7-114
7-115
7-116
7-117

Title

Page
Number

evmwlusiaaw....................................................................................................................... 7-134
evmwlusianw ...................................................................................................................... 7-136
evmwsmf ............................................................................................................................. 7-137
evmwsmfa ........................................................................................................................... 7-138
evmwsmfaa ......................................................................................................................... 7-139
evmwsmfan ......................................................................................................................... 7-140
evmwsmi ............................................................................................................................. 7-141
evmwsmia ........................................................................................................................... 7-142
evmwsmiaa.......................................................................................................................... 7-143
evmwsmian ......................................................................................................................... 7-144
evmwssf .............................................................................................................................. 7-145
evmwssfa............................................................................................................................. 7-146
evmwssfaa........................................................................................................................... 7-148
evmwssfan........................................................................................................................... 7-150
evmwumi............................................................................................................................. 7-151
evmwumia........................................................................................................................... 7-152
evmwumiaa ......................................................................................................................... 7-153
evmwumian ......................................................................................................................... 7-154
evaddsmiaaw....................................................................................................................... 7-155
evaddssiaaw ........................................................................................................................ 7-156
evaddumiaaw ...................................................................................................................... 7-157
evaddusiaaw ........................................................................................................................ 7-158
evsubfsmiaaw...................................................................................................................... 7-159
evsubfssiaaw ....................................................................................................................... 7-160
evsubfumiaaw ..................................................................................................................... 7-161
evsubfusiaaw....................................................................................................................... 7-162
Move Register to Accumulator (evmra) ............................................................................. 7-163
evldd Results in Big- and Little-Endian Modes.................................................................. 7-165
evlddx Results in Big- and Little-Endian Modes................................................................ 7-166
evldw Results in Big- and Little-Endian Modes ................................................................. 7-167
evldwx Results in Big- and Little-Endian Modes ............................................................... 7-168
evldh Results in Big- and Little-Endian Modes.................................................................. 7-169
evldhx Results in Big- and Little-Endian Modes................................................................ 7-170
evlwhe Results in Big- and Little-Endian Modes ............................................................... 7-171
evlwhex Results in Big- and Little-Endian Modes ............................................................. 7-172
evlwhou Results in Big- and Little-Endian Modes ............................................................. 7-173
evlwhoux Results in Big- and Little-Endian Modes ........................................................... 7-174
evlwhos Results in Big- and Little-Endian Modes ............................................................. 7-175
evlwhosx Results in Big- and Little-Endian Modes ........................................................... 7-176
evlwwsplat Results in Big- and Little-Endian Modes ........................................................ 7-177
evlwwsplatx Results in Big- and Little-Endian Modes ...................................................... 7-178
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xxiv

Freescale Semiconductor

Figures
Figure
Number
7-118
7-119
7-120
7-121
7-122
7-123
7-124
7-125
7-126
7-127
7-128
7-129
7-130
7-131
7-132
7-133
7-134
7-135
7-136
7-137
7-138
7-139
8-1
9-1
9-2
9-3
9-4
9-5
9-6
9-7
9-8
9-9
9-10
9-11
10-1
10-2
10-3
10-4
10-5
10-6
10-7

Title

Page
Number

evlwhsplat Results in Big- and Little-Endian Modes ......................................................... 7-179
evlwhsplatx Results in Big- and Little-Endian Modes ....................................................... 7-180
evlhhesplat Results in Big- and Little-Endian Modes ........................................................ 7-181
evlhhesplatx Results in Big- and Little-Endian Modes ...................................................... 7-182
evlhhousplat Results in Big- and Little-Endian Modes ...................................................... 7-183
evlhhousplatx Results in Big- and Little-Endian Modes .................................................... 7-184
evlhhossplat Results in Big- and Little-Endian Modes....................................................... 7-185
evlhhossplatx Results in Big- and Little-Endian Modes..................................................... 7-186
evstdd Results in Big- and Little-Endian Modes ................................................................ 7-187
evstddx Results in Big- and Little-Endian Modes .............................................................. 7-188
evstdw Results in Big- and Little-Endian Modes ............................................................... 7-189
evstdwx Results in Big- and Little-Endian Modes ............................................................. 7-190
evstdh Results in Big- and Little-Endian Modes ................................................................ 7-191
evstdhx Results in Big- and Little-Endian Modes .............................................................. 7-192
evstwwe Results in Big- and Little-Endian Modes............................................................. 7-193
evstwwex Results in Big- and Little-Endian Modes........................................................... 7-194
evstwwo Results in Big- and Little-Endian Modes ............................................................ 7-195
evstwwox Results in Big- and Little-Endian Modes .......................................................... 7-196
evstwhe Results in Big- and Little-Endian Modes.............................................................. 7-197
evstwhex Results in Big- and Little-Endian Modes............................................................ 7-198
evstwho Results in Big- and Little-Endian Modes ............................................................. 7-199
evstwhox Results in Big- and Little-Endian Modes ........................................................... 7-200
Power Management State Diagram......................................................................................... 8-2
e200z446n3 ICache Block Diagram ....................................................................................... 9-2
Cache Organization and Line Format ..................................................................................... 9-3
ICache Lookup Flow............................................................................................................... 9-5
L1 Cache Control and Status Register 0 (L1CSR0)................................................................ 9-6
L1 Cache Control and Status Register 1 (L1CSR1)................................................................ 9-6
L1 Cache Configuration Register 0 (L1CFG0)....................................................................... 9-9
L1 Cache Configuration Register 1 (L1CFG1)....................................................................... 9-9
L1 Flush/Invalidate Register 1 (L1FINV1) .......................................................................... 9-13
CDACNTL Register ............................................................................................................. 9-28
CDADATA Register.............................................................................................................. 9-29
Hardware Debug Control Register 0 (HDBCR0) ................................................................. 9-30
Virtual Address and TLB-Entry Compare Process ............................................................... 10-3
Effective to Real Address Translation Flow ......................................................................... 10-4
Granting of Access Permission ............................................................................................. 10-5
MMU Configuration Register (MMUCFG) ......................................................................... 10-6
TLB0 Configuration Register (TLB0CFG) .......................................................................... 10-7
TLB1 Configuration Register (TLB1CFG) .......................................................................... 10-8
DEAR.................................................................................................................................. 10-15
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxv

Figures
Figure
Number
10-8
10-9
10-10
10-11
10-12
10-13
10-14
10-15
10-16
11-1
11-2
11-3
11-4
11-5
11-6
11-7
11-8
11-9
11-10
11-11
11-12
11-13
11-14
11-15
11-16
11-17
11-18
11-19
11-20
11-21
11-22
11-23
11-24
11-25
11-26
11-27
11-28
11-29
11-30
11-31
11-32

Title

Page
Number

MMU Control and Status Register 0 (MMUCSR0) ........................................................... 10-16
MMU Assist Register 0 (MAS0) ........................................................................................ 10-16
MMU Assist Register 1 (MAS1) ........................................................................................ 10-17
MMU Assist Register 2 (MAS2) ........................................................................................ 10-19
MMU Assist Register 3 (MAS3) ........................................................................................ 10-20
MMU Assist Register 4 (MAS4) ........................................................................................ 10-20
MMU Assist Register 6 (MAS6) ........................................................................................ 10-21
MMU Assist Registers Summary ....................................................................................... 10-22
External Translation Alteration TLB Entry Compare Process............................................ 10-26
Debug Resources................................................................................................................... 11-4
DVC1, DVC2 Registers...................................................................................................... 11-20
DBCNT Register................................................................................................................. 11-20
DBCR0 Register ................................................................................................................. 11-21
DBCR1 Register ................................................................................................................. 11-24
DBCR2 Register ................................................................................................................. 11-26
DBCR3 Register ................................................................................................................. 11-30
DBCR4 Register ................................................................................................................. 11-34
DBCR5 Register ................................................................................................................. 11-35
DBCR6 Register ................................................................................................................. 11-37
DBSR Register .................................................................................................................... 11-39
DBERC0 Register ............................................................................................................... 11-42
DEVENT Register .............................................................................................................. 11-48
DDAM Register .................................................................................................................. 11-49
EDBCR0 Register ............................................................................................................... 11-51
EDBSR0 Register ............................................................................................................... 11-52
OnCE TAP Controller and Registers .................................................................................. 11-54
OnCE TAP Controller and Registers (16-State FSM) ........................................................ 11-55
e200 OnCE Controller and Serial Interface ........................................................................ 11-59
OnCE Status Register.......................................................................................................... 11-60
OnCE Command Register................................................................................................... 11-61
OnCE Control Register ....................................................................................................... 11-64
CPU Scan Chain Register (CPUSCR) ................................................................................ 11-71
Control State Register (CTL) .............................................................................................. 11-72
OnCE PC FIFO ................................................................................................................... 11-77
Parallel Signature Control Register (PSCR) ....................................................................... 11-84
Parallel Signature Status Register (PSSR) .......................................................................... 11-84
Parallel Signature High Register (PSHR) ........................................................................... 11-85
Parallel Signature Low Register (PSLR) ............................................................................ 11-85
Parallel Signature Counter Register (PSCTR) .................................................................... 11-86
Parallel Signature Update High Register (PSUHR)............................................................ 11-86
Parallel Signature Update Low Register (PSULR)............................................................. 11-86
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xxvi

Freescale Semiconductor

Figures
Figure
Number
12-1
12-2
12-3
12-4
12-5
12-6
12-7
12-8
12-9
12-10
12-11
12-12
12-13
12-14
12-15
12-16
12-17
12-18
12-19
12-20
12-21
12-22
12-23
12-24
12-25
12-26
12-27
12-28
12-29
12-30
12-31
12-32
12-33
12-34
12-35
12-36
12-37
12-38
12-39
12-40
12-41

Title

Page
Number

Nexus 3+ Functional Block Diagram.................................................................................... 12-4
Client Select Control Register............................................................................................. 12-12
Port Configuration Register ................................................................................................ 12-13
Development Control Register 1......................................................................................... 12-14
Development Control Register 2......................................................................................... 12-15
Development Control Register 3......................................................................................... 12-17
Development Control Register 4......................................................................................... 12-19
Development Status Register .............................................................................................. 12-19
Watchpoint Trigger (WT) Register ..................................................................................... 12-21
Program Trace Start Trigger Control (PTSTC) Register..................................................... 12-22
Program Trace End Trigger Control (PTETC) Register ..................................................... 12-22
Data Trace Start Trigger Control (DTSTC) Register .......................................................... 12-23
Data Trace End Trigger Control (DTETC) Register........................................................... 12-24
Watchpoint Mask Register .................................................................................................. 12-25
Nexus Overrun Control Register......................................................................................... 12-26
Data Trace Control Register................................................................................................ 12-27
Data Trace Start Address 1 Register ................................................................................... 12-28
Data Trace Start Address 2 Register ................................................................................... 12-29
Data Trace Start Address 3 Register ................................................................................... 12-29
Data Trace Start Address 4 Register ................................................................................... 12-29
Data Trace End Address 1 Register .................................................................................... 12-29
Data Trace End Address 2 Register .................................................................................... 12-30
Data Trace End Address 3 Register .................................................................................... 12-30
Data Trace End Address 4 Register .................................................................................... 12-30
Read/Write Access Control/Status Register........................................................................ 12-31
Read/Write Access Data Register ....................................................................................... 12-32
Read/Write Access Address Register.................................................................................. 12-34
Relative Address Generation and Recreation ..................................................................... 12-36
Debug Status Message Format............................................................................................ 12-40
Error Message Format......................................................................................................... 12-40
Ownership Trace Message Format...................................................................................... 12-41
Indirect Branch Message (History) Format ........................................................................ 12-44
Indirect Branch Message Format ........................................................................................ 12-44
Direct Branch Message Format........................................................................................... 12-44
Resource Full Message Format........................................................................................... 12-47
Program Correlation Message Formats............................................................................... 12-49
Direct/Indirect Branch with Sync Message Format ............................................................ 12-51
Indirect Branch History w/ Sync. Message Format ............................................................ 12-52
Program Trace—Indirect Branch Message (Traditional).................................................... 12-53
Program Trace—Indirect Branch Message (History) ......................................................... 12-53
Program Trace—Direct Branch (Traditional) and Error Messages .................................... 12-54
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxvii

Figures
Figure
Number
12-42
12-43
12-44
12-45
12-46
12-47
12-48
12-49
12-50
12-51
12-52
12-53
13-1
13-2
13-3
13-4
13-5
13-6
13-7
13-8
13-9
13-10
13-11
13-12
13-13
13-14
13-15
13-16
13-17
13-18
13-19
13-20
13-21
13-22
13-23
13-24
13-25
13-26
13-27
13-28
13-29

Title

Page
Number

Program Trace - Indirect Branch w/ Sync. Message........................................................... 12-54
Data Write Message Format................................................................................................ 12-55
Data Read Message Format ................................................................................................ 12-55
Data Write/Read with Synchronization Message Format ................................................... 12-56
Data Trace—Data Write Message....................................................................................... 12-59
Data Trace—Data Read with Sync Message ...................................................................... 12-59
Data Acquisition Message Format ...................................................................................... 12-60
Watchpoint Message Format............................................................................................... 12-61
Watchpoint Message and Watchpoint Error Message......................................................... 12-62
Error Message Format......................................................................................................... 12-65
Single Pin MSEO Transfers ................................................................................................ 12-69
Dual Pin MSEO Transfers .................................................................................................. 12-70
e200 Signal Groups ............................................................................................................... 13-4
Example External JTAG Register Design........................................................................... 13-43
AHB Clock Enable Operation—1....................................................................................... 13-45
AHB Clock Enable Operation—2....................................................................................... 13-45
AHB Clock Enable Operation—3....................................................................................... 13-46
Basic Read Transfers........................................................................................................... 13-47
Read Transfer with Wait-State ............................................................................................ 13-49
Basic Write Transfers .......................................................................................................... 13-50
Write Transfer with Wait-State ........................................................................................... 13-52
Single Cycle Read and Write Transfers .............................................................................. 13-53
Single Cycle Read and Write Transfers—2 ........................................................................ 13-54
Multi-Cycle Read and Write Transfers ............................................................................... 13-55
Multi-Cycle Read and Write Transfers—2 ......................................................................... 13-56
Misaligned Read Transfer ................................................................................................... 13-57
Misaligned Write Transfer .................................................................................................. 13-58
Misaligned Write, Single Cycle Read Transfer................................................................... 13-59
Burst Read Transfer ............................................................................................................ 13-60
Burst Read with Wait-State Transfer................................................................................... 13-61
Burst Write Transfer............................................................................................................ 13-62
Burst Write with Wait-State Transfer.................................................................................. 13-63
Read and Write Transfers, Instr. Read Error Termination................................................... 13-64
Data Read Error Termination .............................................................................................. 13-65
Misaligned Write Error Termination, Burst Substituted ..................................................... 13-66
Burst Read Error Termination, Burst Write Substituted ..................................................... 13-67
Cross-Signaling Exception Output Operation..................................................................... 13-68
Cross-Signaling Exception Input Operation ....................................................................... 13-69
Cross-Signaling Invalidation Output Operation—Data Error ............................................ 13-70
Cross-Signaling Invalidation Output Operation—Tag Error, Miss .................................... 13-71
Cross-signaling Invalidation Output Operation—Tag Error, Hit........................................ 13-72
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xxviii

Freescale Semiconductor

Figures
Figure
Number
13-30
13-31
13-32
13-33
13-34
13-35
13-36
13-37
13-38
13-39
13-40
13-41
13-42
13-43
13-44
13-45
13-46
13-47
13-48
13-49
13-50
13-51

Title

Page
Number

Cross-Signaling Invalidation Output Operation—Tag Error, Locked lnv .......................... 13-73
Cross-Signaling Invalidation Input Operation—Data Error ............................................... 13-74
Cross-Signaling Invalidation Input Operation—Tag Error, Miss ....................................... 13-75
Cross-Signaling Invalidation Input Operation—Tag Error, Hit.......................................... 13-76
Cross-signaling Invalidation Input Operation—Tag Error, Locked lnv ............................. 13-77
Debug Entry Cross-Signaling Interface, Non-Lockstep Mode ........................................... 13-78
Debug Entry Cross-Signaling Interface, Lockstep Mode ................................................... 13-79
Debug Entry Cross-Signaling Interface, Lockstep Mode (2) ............................................. 13-80
Debug Exit Cross-Signaling Interface, Non-Lockstep mode.............................................. 13-81
Debug Exit Cross-Signaling Interface, Lockstep Mode ..................................................... 13-82
Debug Exit Cross-Signaling Interface, Lockstep mode (2) ................................................ 13-83
Debug Update_DR State Cross-Signaling Interface, Lockstep mode ................................ 13-84
Debug Update_DR State Cross-Signaling Interface, Lockstep Mode (2) .......................... 13-85
Wakeup Control Signal (p_wakeup) ................................................................................... 13-86
Interrupt Interface Input Signals ......................................................................................... 13-86
Interrupt Pending operation ................................................................................................ 13-87
Interrupt acknowledge operation ........................................................................................ 13-88
Interrupt Acknowledge Operation—2 ................................................................................ 13-89
Time Base Input Timing...................................................................................................... 13-90
Test Clock Input Timing ..................................................................................................... 13-90
j_trst_b Timing .................................................................................................................... 13-90
Test Access Port Timing ..................................................................................................... 13-91

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

xxix

Figures
Figure
Number

Title

Page
Number

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
xxx

Freescale Semiconductor

Tables
Table
Number

Title

Page
Number

Tables

1-1
1-2
2-1
2-2
2-3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
2-11
2-12
2-13
2-14
2-15
2-16
3-1
3-2
3-3
3-4
3-5
3-6
4-1
4-2
4-3
4-4
4-5
5-1
5-2
5-3
5-4
5-5
5-6
5-7
5-8
5-9
5-10
5-11
5-12

Interrupt Registers................................................................................................................. 1-10
Exceptions and Conditions.................................................................................................... 1-11
MSR Field Descriptions.......................................................................................................... 2-9
PIR Field Descriptions .......................................................................................................... 2-11
PVR Field Descriptions ........................................................................................................ 2-12
SVR Field Descriptions ........................................................................................................ 2-13
XER Field Descriptions ........................................................................................................ 2-13
ESR Field Descriptions ......................................................................................................... 2-14
Machine Check Syndrome Register (MCSR) ....................................................................... 2-17
Timer Control Register Field Descriptions ........................................................................... 2-20
Timer Status Register Field Descriptions.............................................................................. 2-21
Hardware Implementation Dependent Register 0 ................................................................. 2-22
Hardware Implementation Dependent Register 1 ................................................................. 2-25
Branch Unit Control and Status Register .............................................................................. 2-26
System Response to Invalid SPR Reference......................................................................... 2-28
Additional synchronization requirements for SPRs.............................................................. 2-28
Special Purpose Registers ..................................................................................................... 2-29
Reset Settings for e200 Resources ........................................................................................ 2-33
List of Unsupported Instructions............................................................................................. 3-1
List of Optionally Supported Instructions............................................................................... 3-2
Implementation-specific Instruction Summary....................................................................... 3-2
Volatile Context Save/Restore Instruction Set ...................................................................... 3-16
Instructions Sorted by Mnemonic ......................................................................................... 3-25
Instructions Sorted by Opcode.............................................................................................. 3-34
Concurrent Instruction Issue Capabilities ............................................................................... 4-2
Pipeline Stages ........................................................................................................................ 4-5
Instruction Class Cycle Counts ............................................................................................. 4-21
Instruction Timing by Mnemonic ......................................................................................... 4-22
Performance Effects of Storage Operand Placement ............................................................ 4-26
Interrupt Types ........................................................................................................................ 5-2
Interrupt Classifications .......................................................................................................... 5-3
Exceptions and Conditions...................................................................................................... 5-4
ESR Bit Settings...................................................................................................................... 5-6
MSR Bit Settings .................................................................................................................... 5-7
Machine Check Syndrome Register (MCSR) ....................................................................... 5-10
IVPR Register Fields ............................................................................................................ 5-12
IVOR Register Fields............................................................................................................ 5-13
Critical Input Interrupt—Register Settings ........................................................................... 5-13
Error Report Machine Check Exceptions ............................................................................. 5-16
Asynchronous Machine Check Exceptions........................................................................... 5-17
Asynchronous Machine Check MCAR update Priority........................................................ 5-19
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxxi

Tables
Table
Number
5-13
5-14
5-15
5-16
5-17
5-18
5-19
5-20
5-21
5-22
5-23
5-24
5-25
5-26
5-27
5-28
5-29
5-30
5-31
5-32
5-33
5-34
5-35
6-1
6-2
6-3
6-4
6-5
6-6
6-7
6-8
6-9
6-10
6-11
6-12
6-13
6-14
6-15
6-16
6-17
7-1

Title

Page
Number

Machine Check Interrupt—Register Settings ....................................................................... 5-20
Data Storage Interrupt—Register Settings............................................................................ 5-21
ISI Exceptions and Conditions.............................................................................................. 5-22
Instruction Storage Interrupt—Register Settings .................................................................. 5-22
External Input Interrupt—Register Settings ......................................................................... 5-23
Alignment Interrupt—Register Settings ............................................................................... 5-23
Program Interrupt—Register Settings................................................................................... 5-25
Floating-Point Unavailable Interrupt—Register Settings ..................................................... 5-25
System Call Interrupt—Register Settings ............................................................................. 5-26
Decrementer Interrupt—Register Settings............................................................................ 5-27
Fixed-Interval Timer Interrupt—Register Settings ............................................................... 5-27
Watchdog Timer Interrupt—Register Settings...................................................................... 5-28
Data TLB Error Interrupt—Register Settings ....................................................................... 5-29
Instruction TLB Error Interrupt—Register Settings ............................................................. 5-29
Debug Interrupt—Register Settings...................................................................................... 5-32
TSR Watchdog Timer Reset Status ....................................................................................... 5-33
DBSR Most Recent Reset ..................................................................................................... 5-34
System Reset Interrupt—Register Settings........................................................................... 5-34
SPE Unavailable Interrupt—Register Settings ..................................................................... 5-34
SPE Floating-point Data Interrupt—Register Settings ......................................................... 5-35
SPE Floating-point Round Interrupt—Register Settings ...................................................... 5-35
e200 Exception Priorities ...................................................................................................... 5-37
MSR Setting Due to Interrupt ............................................................................................... 5-41
SPE /EFPU Status and Control Register................................................................................. 6-2
Floating-point Results Summary—Add, Sub, Mul, Div....................................................... 6-95
Floating-point Results Summary—madd, msub, nmadd, nmsub ......................................... 6-99
Floating-Point Results Summary—sqrt .............................................................................. 6-103
Floating-Point Results Summary—Min, Max .................................................................... 6-104
Floating–point Results Summary—Convert to unsigned ................................................... 6-108
Floating-point Results Summary—Convert to signed ........................................................ 6-109
Floating-point Results Summary—Convert from unsigned ............................................... 6-109
Floating-point Results Summary—Convert from signed ................................................... 6-109
Floating-point Results Summary—fabs, fnabs, fneg .......................................................... 6-109
Floating-point Results Summary—Convert from half-precision........................................ 6-110
Floating-point Results Summary—Convert to half-precision ............................................ 6-110
EFPU Vector Floating-Point Instruction Timing .................................................................6-111
EFPU Scalar Floating-Point Instruction Timing................................................................. 6-112
Opcode Space Division....................................................................................................... 6-114
Embedded Vector Floating-Point Instruction Opcodes....................................................... 6-114
Embedded Scalar Single-Precision Floating-Point Instruction Opcodes............................ 6-116
SPE Status and Control Register............................................................................................. 7-2
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xxxii

Freescale Semiconductor

Tables
Table
Number
7-2
7-3
7-4
7-5
7-6
7-7
7-8
7-9
7-10
7-11
7-12
7-13
7-14
8-1
9-1
9-2
9-3
9-4
9-5
9-6
9-7
9-8
9-9
9-10
9-11
10-1
10-2
10-3
10-4
10-5
10-6
10-7
10-8
10-9
10-10
10-11
10-12
10-13
10-14
10-15
10-16

Title

Page
Number

Integer SPE Simple Instructions ............................................................................................. 7-6
Data Samples and Sizes .......................................................................................................... 7-7
Mnemonic Extensions for Multiply-Accumulate Instructions.............................................. 7-48
Multiply Words Instructions ............................................................................................... 7-113
SPE Vector Load/Store Instructions.................................................................................... 7-163
Timing for Integer Simple Instructions............................................................................... 7-200
SPE Load and Store Instruction Timing ............................................................................. 7-202
SPE Complex Integer Instruction Timing........................................................................... 7-203
Opcode Space Division....................................................................................................... 7-206
Opcodes for Integer Simple Instructions ............................................................................ 7-207
SPE Load and Store Instruction Opcodes ........................................................................... 7-208
Opcodes for Complex Integer Instructions, Sorted by Mnemonic ..................................... 7-210
Opcodes for Complex Integer Instructions, Sorted by Opcode .......................................... 7-213
Power Management Pins......................................................................................................... 8-3
L1CSR0 Field Descriptions .................................................................................................... 9-6
L1CSR1 Field Descriptions .................................................................................................... 9-7
L1CFG1 Field Descriptions .................................................................................................... 9-9
L1FINV1 Field Descriptions ................................................................................................ 9-13
Tag Checkbit Generation....................................................................................................... 9-17
Data Checkbit Generation ..................................................................................................... 9-17
Special Case Handling .......................................................................................................... 9-23
Transfer Type Encoding ........................................................................................................ 9-24
Cache Debug Access Control Register Definition............................................................... 9-28
Cache Debug Access Data Register Bit Definitions ............................................................. 9-29
HDBCR0 Field Descriptions ................................................................................................ 9-30
Page Size and EPN Field Comparison .................................................................................. 10-3
TLB Entry Bit Definitions ................................................................................................... 10-5
MMUCFG Field Descriptions .............................................................................................. 10-7
TLB0CFG Field Descriptions ............................................................................................... 10-8
TLB1CFG Field Descriptions ............................................................................................... 10-9
tlbivax EA Bit Definitions .................................................................................................. 10-11
TLB Entry 0 Values After Reset ......................................................................................... 10-14
MMUCSR0 - MMU Control and Status Register 0............................................................ 10-16
MAS0 —MMU Read/Write and Replacement Control...................................................... 10-17
MAS1—Descriptor Context and Configuration Control .................................................... 10-17
MAS2—EPN and Page Attributes...................................................................................... 10-19
MAS3—RPN and Access Control ...................................................................................... 10-20
MAS4—Hardware Replacement Assist Configuration Register........................................ 10-20
MAS6—TLB Search Context Register 0............................................................................ 10-21
MMU Assist Register Field Updates .................................................................................. 10-22
Transfer Type Encoding ...................................................................................................... 10-24
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxxiii

Tables
Table
Number
11-1
11-2
11-3
11-4
11-5
11-6
11-7
11-8
11-9
11-10
11-11
11-12
11-13
11-14
11-15
11-16
11-17
11-18
11-19
11-20
11-21
11-22
11-23
11-24
11-25
11-26
11-27
11-28
11-29
12-1
12-2
12-3
12-4
12-5
12-6
12-7
12-8
12-9
12-10
12-11
12-12

Title

Page
Number

DAC events and Resultant Updates ...................................................................................... 11-8
DAC Events and Resultant Updates, Dual-Issue Case 1 .....................................................11-11
DAC Events and Resultant Updates, Dual-Issue Case 2 .................................................... 11-12
DAC events and Resultant Updates, Dual-issue case 3 ...................................................... 11-14
DAC Events and Resultant Updates, Dual-Issue Case 4 .................................................... 11-15
DBCR0 Bit Definitions ....................................................................................................... 11-21
DBCR1 Bit Definitions ....................................................................................................... 11-24
DBCR2 Bit Definitions ....................................................................................................... 11-26
DBCR3 Bit Definitions ....................................................................................................... 11-31
DBCR4 Bit Definitions ....................................................................................................... 11-34
DBCR5 Bit Definitions ....................................................................................................... 11-36
DBCR6 Bit Definitions ....................................................................................................... 11-37
DBSR Bit Definitions ......................................................................................................... 11-40
DBERC0 Bit Definitions .................................................................................................... 11-42
DBERC0 Resource Control ................................................................................................ 11-44
DEVENT Bit Definitions.................................................................................................... 11-48
DDAM Bit Definitions........................................................................................................ 11-49
EDBCR0 Bit Definitions .................................................................................................... 11-51
EDBSR0 Bit Definitions ..................................................................................................... 11-52
JTAG/OnCE Primary Interface Signals .............................................................................. 11-56
OnCE Status Register Bit Definitions................................................................................. 11-60
OnCE Command Register Bit Definitions.......................................................................... 11-61
e200 OnCE Register Addressing ........................................................................................ 11-62
OnCE Control Register Bit Definitions .............................................................................. 11-64
OnCE Register Access Requirements................................................................................. 11-67
CTL Emulation Firmware Modifications ........................................................................... 11-72
Watchpoint Output Signal Assignments ............................................................................. 11-79
PSCR Field Descriptions .................................................................................................... 11-84
PSSR Field Descriptions ..................................................................................................... 11-85
Terms and Definitions ........................................................................................................... 12-1
Supported TCODEs .............................................................................................................. 12-5
Error Code Encoding (TCODE = 8) ..................................................................................... 12-9
Error Type Encoding (TCODE = 8)...................................................................................... 12-9
RCODE values (TCODE = 27)............................................................................................. 12-9
Event Code Encoding (TCODE = 33) ................................................................................ 12-10
Data Trace Size Encodings (TCODE = 5,6,13,14) ............................................................. 12-10
Nexus 3+ Register Map....................................................................................................... 12-11
Client Select Control Register Fields.................................................................................. 12-12
Port Configuration Register Fields ..................................................................................... 12-13
Development Control Register 1 Fields.............................................................................. 12-14
Development Control Register 2 Fields.............................................................................. 12-16
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

xxxiv

Freescale Semiconductor

Tables
Table
Number
12-13
12-14
12-15
12-16
12-17
12-18
12-19
12-20
12-21
12-22
12-23
12-24
12-25
12-26
12-27
12-28
12-29
12-30
12-31
12-32
12-33
12-34
12-35
12-36
12-37
12-38
12-39
12-40
12-41
12-42
12-43
12-44
12-45
12-46
12-47
12-48
12-49
12-50
12-51
13-1
13-2

Title

Page
Number

Development Control Register 3 Fields.............................................................................. 12-18
Development Control Register 4 Fields.............................................................................. 12-19
Development Status Register Fields ................................................................................... 12-20
Watchpoint Trigger Register Fields .................................................................................... 12-21
Program Trace Start Trigger Control Register Fields ......................................................... 12-22
Program Trace End Trigger Control Register Fields .......................................................... 12-23
Data Trace Start Trigger Control Register Fields ............................................................... 12-24
Data Trace End Trigger Control Register Fields................................................................. 12-25
Watchpoint Mask Register Fields ....................................................................................... 12-26
Nexus Overrun Control Register Fields.............................................................................. 12-27
Data Trace Control Register Fields..................................................................................... 12-28
Data Trace—Address Range Options ................................................................................. 12-30
Read/Write Access Control/Status Register Fields ............................................................. 12-31
Read/Write Access Status Bit Encoding ............................................................................. 12-32
RWD Data Placement For Transfers................................................................................... 12-32
RWD Byte Lane Mapping................................................................................................... 12-33
Message Type Priority and Message Dropped Responses.................................................. 12-38
Indirect Branch Message Sources ....................................................................................... 12-42
Direct Branch Message Sources ......................................................................................... 12-43
Branch/Predicate History Events ........................................................................................ 12-45
RCODE Encoding............................................................................................................... 12-47
Program Trace Exception Summary ................................................................................... 12-52
Data Trace Exception Summary ......................................................................................... 12-57
e200 Bus Cycle Cases ......................................................................................................... 12-58
Watchpoint Source Encoding.............................................................................................. 12-61
JTAG Pins for Nexus 3+ ..................................................................................................... 12-66
Nexus 3+ Auxiliary Pins ..................................................................................................... 12-66
Nexus Port Arbitration Signals ........................................................................................... 12-67
MSEO Pin(s) Protocol ........................................................................................................ 12-68
MDO Request Encodings.................................................................................................... 12-71
Indirect Branch Message Example (2 MDO/1 MSEO) ...................................................... 12-72
Indirect Branch Message Example (8 MDO/2 MSEO) ...................................................... 12-72
Direct Branch Message Example (2 MDO / 1 MSEO)....................................................... 12-73
Direct Branch Message Example (8 MDO / 2 MSEO)....................................................... 12-73
Data Write Message Example (8 MDO / 1 MSEO)............................................................ 12-74
Data Write Message Example (8 MDO / 2 MSEO)............................................................ 12-74
Accessing Internal Nexus 3+ Registers through JTAG/OnCE ........................................... 12-75
Accessing Memory-Mapped Resources (Reads) ................................................................ 12-75
Accessing Memory-Mapped Resources (Writes) ............................................................... 12-76
Interface Signal Definitions .................................................................................................. 13-4
p_hrdata[63:0] Byte Address Mappings ............................................................................. 13-11
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

xxxv

Tables
Table
Number
13-3
13-4
13-5
13-6
13-7
13-8
13-9
13-10
13-11
13-12
13-13
13-14
13-15
13-16
13-17
13-18
13-19
13-20
13-21
13-22
13-23
13-24

Title

Page
Number

p_d_hwdata[63:0] Byte Address Mappings........................................................................ 13-11
p_[d,i]_htrans[1:0] Transfer Type Encoding....................................................................... 13-12
p_[d,i]_hsize[1:0] Transfer Size Encoding ......................................................................... 13-13
p_[d,i]_hburst[2:0] Burst Type Encoding ........................................................................... 13-13
p_d_hprot[5:0] Protection Control Encoding ..................................................................... 13-14
p_i_hprot[5:0] Protection Control Encoding ...................................................................... 13-14
Mapping of Access attributes to p_d_hprot[4:2] Protection Control.................................. 13-15
p_[d,i]_hbstrb[7:0] to Byte Address Mappings .................................................................. 13-16
Byte Strobe Assertion for Transfers.................................................................................... 13-16
Big and Little Endian Memory Storage ............................................................................. 13-18
p_i_hresp[1:0] Transfer Response Encoding ...................................................................... 13-22
p_d_hresp[2:0] Transfer Response Encoding ..................................................................... 13-22
Processor Mode Encoding .................................................................................................. 13-31
Processor Execution PIpeline Status Encoding................................................................... 13-32
Branch Prediction Status Encoding..................................................................................... 13-33
e200 Debug / Emulation Support Signals ........................................................................... 13-36
e200 Development Support (Nexus 3) Signals ................................................................... 13-39
JTAG Primary Interface Signals ......................................................................................... 13-39
JTAG Signals Used to Support External Registers ............................................................. 13-40
JTAG General Purpose Register Select Decoding .............................................................. 13-42
JTAG Register ID Fields ..................................................................................................... 13-43
JTAG ID Register Inputs..................................................................................................... 13-44

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
xxxvi

Freescale Semiconductor

About This Book
The primary objective of this manual is to describe the functionality of the e200z4 embedded
microprocessor core for software and hardware developers. This book is intended as a companion to the
EREF: A Programmer's Reference Manual for Freescale Embedded Processors (hereafter referred to as
the EREF).
Users of prior implementations of the e200 core family, such as the e200z6, may notice new terminology
employed throughout this manual. In 2004, most of Freescale’s Embedded Implementation Standards
(EIS) were contributed to help launch Power.org whose mission was to develop, enable and promote
technology originally conceived as the PowerPC architecture. References to “PowerPC” are replaced with
“Power ISA (Instruction Set Architecture) embedded category.” The term “Auxilliary Processing Unit
(APU)” is used to describe a collection of functionality within the EIS. These APUs were either absorbed
into various parts of the new Power ISA or retained their identity and became known as individual, and
sometimes optional, “categories” or “subcategories” of the Power ISA.
This document includes three levels of architectural and implementation definition, as follows:
• Power ISA embedded category—defines a set of user-level instructions and registers that are a part
of the Power ISA.
• e200 implementation details—In some cases, the Power ISA definition provides a general
framework, leaving specific details up to the implementation. Some of these details are common
to all members of the e200 core family and may be indicated as such.
• e200z4 implementation details—The next level of architectural specificity describes those features
that are shared across the cores in the e200z4 subfamily but that may be in the other members of
the e200 product line.
• e200z4xx implementation details—The e200z4 subfamily will eventually include one or more
specific cores with unique combinations of functionality. Each processor core in the e200z4
product line, such as the e200z450n3 for example, typically defines instructions, registers, register
fields, and other aspects that are more detailed than the architectural layers described above. When
features are implemented differently between the varieties of e200z4 cores, they are specifically
noted as such.
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.

e200z4 Power Architecture™ Core Reference Manual, Rev. A
Freescale Semiconductor

xxxvii

Organization
Following is a summary and a brief description of the major parts of this reference manual:
• Chapter 1, “e200z4 Core Complex Overview,” provides a general description of e200z4
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, “Instruction Pipeline and Execution Timing,” describes how instructions are fetched,
decoded, issued, 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 e200z4.
• Chapter 5, “Interrupts and Exceptions,” describes how the e200z4 implements the interrupt model
as it is defined by the Power ISA embedded category architecture.
• Chapter 6, “Embedded Floating-Point Unit, Version 2,” describes the instruction set architecture
of the Embedded Floating-point (EFPU) implemented on the e200z4. This unit implements scalar
and vector single-precision floating-point instructions to accelerate signal processing and other
algorithms. The e200z446n3 implements version 2 of the Embedded Floating-Point Unit (EFPU2).
• Chapter 7, “Signal Processing Extension Unit,” describes the instruction set architecture of the
SPE and implements instructions to accelerate signal processing and other algorithms.
• Chapter 8, “Power Management,” describes the power management facilities as they are defined
by the Power ISA embedded category architecture and implemented in the e200z4 core.
• Chapter 9, “L1 Cache,” This chapter describes the organization of the on-chip L1 Caches, cache
control instructions, and various cache operations.
• Chapter 10, “Memory Management Unit,” provides specific hardware and software details
regarding the e200z4 MMU implementation.
• Chapter 11, “Debug Support,” describes the internal debug facilities as they are implemented in the
e200z4 core.
• Chapter 12, “Nexus 3+ Module,” describes the Nexus 3+ module, which provides real-time
development capabilities for e200z4 processors in compliance with the proposed IEEE-ISTO
Nexus 5001-2008™ standard.
• Chapter 13, “External Core Complex Interfaces,” describes those aspects of the CCB that are
configurable or that provide status information through the programming interface. It provides a
glossary of signals mentioned throughout the book to offer a clearer understanding of how the core
is integrated as part of a larger device.
• Appendix A, “Register Summary,” contains the register diagrams for the manual.
• Appendix B, “Revision History,” contains a revision history for this manual.

e200z4 Power Architecture™ Core Reference Manual, Rev. A
xxxviii

Freescale Semiconductor

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 provides useful information about Power Architecture™ technology and
computer architecture in general:
• Power ISA™ Version 2.06, by Power.org™, 2009, available at the Power.org website.
• PowerPC Architecture Book, by Brad Frey, IBM, 2005, available at the IBM website.
• Computer Architecture: A Quantitative Approach, Fourth Edition, by John L. Hennessy and David
A. Patterson, Morgan Kaufmann Publishers, 2006.
• Computer Organization and Design: The Hardware/Software Interface, Third Edition, by David
A. Patterson and John L. Hennessy, Morgan Kaufmann Publishers, 2007.
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 Programmer's Reference Manual for Freescale Embedded Processors (EREFRM).
Describes the programming, memory management, cache, and interrupt models defined by the
Power ISA™ for embedded environment processors.
• Power ISA™. The latest version of the Power instruction set architecture can be downloaded from
the website www.power.org.
• Category-specific programming environments manuals. These books describe the three major
extensions to the Power ISA embedded environment of the Power ISA. These include the
following:
— AltiVec™ Technology Programming Environments Manual (ALTIVECPEM)
— Signal Processing Engine (SPE) Programming Environments Manual: A Supplement to the
EREF (SPEPEM)
— Variable-Length Encoding (VLE) Programming Environments Manual: A Supplement to the
EREF (VLEPEM)
• Core reference manuals—These books describe the features and behavior of individual
microprocessor cores and provide specific information about how functionality described in the
EREF is implemented by a particular core. They also describe implementation-specific features
and microarchitectural details, such as instruction timing and cache hardware details, that lie
outside the architecture specification.
• Integrated device reference manuals—These manuals describe the features and behavior of
integrated devices that implement and utilize a Power ISA processor core.
• Addenda/errata to reference manuals—When processors have follow-on parts, often an addendum
is provided that describes the additional features and functionality changes. These addenda are
intended for use with the corresponding 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.
e200z4 Power Architecture™ Core Reference Manual, Rev. A
Freescale Semiconductor

xxxix

•

•

Technical summaries—Each device has a technical summary that provides an overview 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.

Acronyms and Abbreviations
Table i contains acronyms and abbreviations that are used in this document. Note that the meanings for
some acronyms (such as XER) are historical, and the words for which an acronym stands may not be
intuitively obvious.
Table i. Acronyms and Abbreviated Terms
Term

Meaning

CR

Condition register

CTR

Count register

DCR

Data control register

DTLB

Data translation lookaside buffer

EA

Effective address

ECC

Error checking and correction

FPR

Floating-point register

GPR

General-purpose register

IEEE

Institute of Electrical and Electronics Engineers

LR

Link register

LRU

Least recently used

LSB

Least-significant byte

lsb

Least-significant bit

MMU

Memory management unit

MSB

Most-significant byte

msb

Most-significant bit

MSR

Machine state register

NaN

Not a number

No-op

No operation

OnCE

On-chip emulation logic

PTE

Page table entry

PVR

Processor version register

e200z4 Power Architecture™ Core Reference Manual, Rev. A
xl

Freescale Semiconductor

Table i. Acronyms and Abbreviated Terms (continued)
Term

Meaning

RISC

Reduced instruction set computing

RTL

Register transfer language

SIMM

Signed immediate value

SPR

Special-purpose register

SRR0

Machine status save/restore register 0

SRR1

Machine status save/restore register 1

TB

Time base facility

TBL

Time base lower register

TBU

Time base upper register

TLB

Translation lookaside buffer

UIMM

Unsigned immediate value

UISA

User instruction set architecture

VA

Virtual address

VLE

Variable-length encoding

XER

Register used for indicating conditions such as carries and overflows for integer operations

Terminology Conventions
Table ii lists certain terms used in this manual that differ from the architecture terminology conventions.
Table ii. Terminology Conventions
The Architecture Specification

This Manual

Extended mnemonics

Simplified mnemonics

Fixed-point unit (FXU)

Integer unit (IU)

Privileged mode (or privileged state)

Supervisor-level privilege

Problem mode (or problem state)

User-level privilege

Real address

Physical address

Relocation

Translation

Storage (locations)

Memory

Storage (the act of)

Access

Store in

Write back

Store through

Write through

e200z4 Power Architecture™ Core Reference Manual, Rev. A
Freescale Semiconductor

xli

Table iii describes instruction field notation conventions used in this manual.
Table iii. Instruction Field Conventions
The Architecture Specification

Equivalent to:

BA, BB, BT

crbA, crbB, crbD (respectively)

BF, BFA

crfD, crfS (respectively)

D

d

DS

ds

/, //, ///

0...0 (shaded)

RA, RB, RT, RS

rA, rB, rD, rS (respectively)

SI

SIMM

U

IMM

UI

UIMM

e200z4 Power Architecture™ Core Reference Manual, Rev. A
xlii

Freescale Semiconductor

Chapter 1
e200z4 Core Complex Overview
This chapter provides an overview of the e200z4 microprocessor core built on Power Architecture™
technology for embedded processors. It includes the following:
• An overview of the core, including the block diagram (Figure 1-1)
• A summary of the feature set for this core (see Section 1.2, “Features”)
— A description of the execution units (see Section 1.2.1, “Execution Unit Features”)
— A description of the memory management architecture (see Section 1.2.3, “Memory
Management Unit Features”)
— High-level details of the core memory and coherency model (see Section 1.2.4, “System Bus
(Core Complex Interface) Features”)
— High-level details of the Nexus 3+ features (see Section 1.2.5, “Nexus 3+ Features”)
• A summary of the programming model for this core (see Section 1.3, “Programming Model”)
— An overview of the register set (see Section 1.3.1, “Register Set”)
— An overview of the instruction set (see Section 1.3.2, “Instruction Set”)
— An overview of interrupts and exception handling (see Section 1.3.3, “Interrupts and Exception
Handling”)
• A summary of instruction pipeline and flow (see Section 1.4, “Microarchitecture Summary”)

1.1

Overview

The e200z4 processor family is a set of CPU cores that implement low-cost versions of Power Architecture
technology. The e200z4 core is a dual-issue, 32-bit design with 64-bit general-purpose registers (GPRs).
The e200z446n3 integrates an e200z4 CPU core, a memory management unit (MMU), a 4-Kbyte
instruction cache, and a Nexus Class 3+ real-time debug unit. Separate instruction and data AHB 2.v6
system interfaces are provided.
The e200z4 is compliant with the PowerPC™ instruction set architecture (ISA). It does not support Power
ISA floating-point instructions in hardware, but traps them so they can be emulated by software.
Instructions of the embedded floating-point category are provided to support real-time single-precision
embedded numerics operations using the general-purpose registers.
Instructions of the signal processing extension (SPE) category are provided to support real-time SIMD
fixed-point and single-precision embedded numerics operations using the general-purpose registers. All
arithmetic instructions that execute in the core operate on data in the general-purpose registers (GPRs).
The GPRs have been extended to 64-bits in order to support vector instructions defined by the SPE
category. These instructions operate on a vector pair of 16-bit or 32-bit data types and deliver vector and
scalar results.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-1

In addition to the base Power ISA embedded category instruction set, the core also implements the
variable-length encoding category (VLE), which provides improved code density. See the EREF and
supplementary VLE Programming Environments Manual (VLEPEM) for more information about the VLE
extension.
The processor integrates a pair of integer execution units, a branch control unit, instruction fetch unit and
load/store unit, and a multi-ported register file capable of sustaining six read and three write operations per
clock cycle. Most integer instructions execute in a single clock cycle. Branch target prefetching is
performed by the branch unit to allow single-cycle branches in many cases.
Throughout the remainder of this document, the core is referred to as the “e200z4” when speaking of
e200z4-specific implementations, the “e200z4xx” when speaking of a specific variety of e200z4 core, or
“e200” when referring to the whole e200 family.
Figure 1-1 shows the block diagram for the device.
Additional Features
• OnCe/Nexus 1/Nexus 3
control logic
• Dual AHB 2.v6 buses
• SPE (SIMD)
• Embedded scalar/
vector floating-point
• Power management
• Time base/decrementer
counter

Instruction/Control Unit
Fetch Unit
Program Counter

Instruction Buffer
(8/16 Instructions)

Instruction Memory Unit
Two/Four
Instructions

16-Entry
Fully Associative
TLB

One-Stage
Fetch

Decode
Stage

EA Calc
8-Entry Branch
Target Buffer

Two-Instruction, In-Order Dispatch

MAS
Registers

Execution Units
Execute Stage

32 GPRs
(64-Bit)

Two-stage,
single-path
execute pipeline
with overlapped
execution and
feed forwarding

Executes all e200z446n3 instructions (including
Power ISA base, SPE, and VLE categories) as
described in Chapter 3, “Instruction Model.” As
many as two instructions can execute
simultaneously, as described in Chapter 4,
“Instruction Pipeline and Execution Timing.”

Load/Store
Unit

CR
XER
LR
CTR

••
•

1-, 4-, 16-, 64-,
256-Kbyte, 1-, 4-, 16-,
64-, 256-Mbyte, 1-,
4-Gbyte page sizes

Branch Processing Unit

+

Software-Managed
L1 Unified MMU

2- or 4-Way Set-Associative
4-Kbyte Instruction Cache

Instruction Bus Interface Unit
32

64

N

+ EA Calc
Address

Data

Control

Write-Back Stage

Additional
SPRs

Data Bus Interface Unit
Two-Instruction, In-Order Write-Back

32
Address

64
Data

N
Control

Figure 1-1. e200z446n3 Block Diagram

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-2

Freescale Semiconductor

1.2

Features

Key features of the e200z446n3 are summarized as follows:
• Dual-issue, 32-bit Power ISA-compliant core
• Implementation of the VLE category for reduced code footprint
• In-order execution and retirement
• Precise exception handling
• Branch processing unit (BPU)
— Dedicated branch address calculation adder
— Branch target prefetching using an 8-entry branch target buffer (BTB)
• Supports independent instruction and data accesses to different memory subsystems, such as
SRAM and flash memory by means of independent instruction and data bus interface units.
• Load/store unit
• 64-bit general-purpose register file
• Dual advanced high-performance (AHB) 2.v6 64-bit system buses
• Memory management unit (MMU) with 16-entry fully associative TLB and multiple page-size
support
• 4 Kbyte, 2/4-way set-associative instruction cache
• Signal processing extension unit, version 1.1 supporting SIMD fixed-point operations using the
64-bit general-purpose register file.
• Embedded floating-point (FPU) unit, version 2 supporting scalar and vector SIMD
single-precision floating-point operations using the 64-bit general-purpose register file.
• Nexus Class 3+ real-time development unit
• Power management
— Low power design—extensive clock gating
— Power saving modes: doze, nap, sleep, wait
— Dynamic power management of execution units, cache, and MMU
• Testability
— Synthesizeable, MuxD scan design
— ABIST/MBIST for arrays
— Built-in parallel signature unit
See the following sections for more details about specific units.

1.2.1

Execution Unit Features

The following subsections describes the execution units’ main features.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-3

1.2.1.1

Instruction Unit Features

The instruction unit features the following:
• 64-bit path to cache supports fetching of two 32-bit Power ISA instructions or four 16-bit VLE
instructions per clock cycle.
• Instruction buffer holds up to eight 32-bit Power ISA instructions or sixteen 16-bit VLE
instructions.
• Dedicated program counter (PC) incrementer supports instruction prefetches.
• Branch unit with dedicated branch address adder and branch target buffer supports single-cycle
execution of successfully predicted branches.

1.2.1.2

Integer Unit Features

The integer units feature support for single-cycle execution of most integer instructions, as follows:
• 32-bit AU for arithmetic and comparison operations
• 32-bit LU for logical operations
• 32-bit priority encoder for count-leading-zeros function
• 32-bit single-cycle barrel shifter for static shifts and rotates
• 32-bit mask unit for data masking and insertion
• Divider logic for signed and unsigned divide in ≤ 14 clock cycles with minimized execution timing
(integer unit 1 only)
• Pipelined 32 × 32 hardware multiplier array supports 32 × 32→32 multiply with 2 clock latency,
1 clock throughput

1.2.1.3

Load/Store Unit Features

The load/store unit supports load, store, and load multiple/store multiple instructions by means of the
following:
• 32-bit effective address adder for data memory address calculations
• Pipelined operation supports throughput of one load or store operation per cycle
• Dedicated 64-bit interface to memory supports saving and restoring of up to two registers per cycle
for load multiple and store multiple word instructions
• Fully pipelined
• Two-cycle load latency
• Big- and little-endian support
• Misaligned access support

1.2.2

L1 Cache Features

The L1 cache features the following:
• 4 Kbyte, 2- or 4-way configurable set-associative instruction cache
• 64-bit data, 32-bit address bus plus attributes and control
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-4

Freescale Semiconductor

•
•
•
•
•
•
•
•
•
•
•

1.2.3

32-byte line size
Cache line locking
Way allocation
Tag and data parity or multi-bit EDC protection with correction/auto-invalidation capability
Virtually indexed, physically tagged
Pseudo round-robin replacement algorithm
Line-fill buffer
Hit under fill
Supports tag and data parity
Supports tag and data double error detection
Correction/auto-invalidation capability

Memory Management Unit Features

The memory management unit features the following:
• Virtual memory support
• 32-bit virtual and physical addresses
• 8-bit process identifier
• 16-entry fully associative TLB
• Hardware assist for TLB miss exceptions
• Per-entry multiple page size support from 1 Kbyte to 4 Gbyte
• Entry flush protection
• Software managed by tlbre, tlbwe, tlbsx, tlbsync, and tlbivax instructions
• Freescale EIS MMU architecture compliant
• Support for external control of entry matching for a subset of TID values to support non-intrusive
runtime mapping modifications

1.2.4

System Bus (Core Complex Interface) Features

The core complex interface features the following:
• Independent instruction and data buses
• Advanced microcontroller bus architecture (AMBA) AHB 2.v6 protocol
• 32-bit address bus, 64-bit data bus, plus attributes and control
• Separate unidirectional 64-bit read and write data buses
• Support for HCLK running at a slower rate than CPU clock

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-5

1.2.5

Nexus 3+ Features

The Nexus 3+ module provides real-time development capabilities for e200z4 processors in compliance
with the IEEE-ISTO 5001-2008™ standard. The ‘3+’ suffix indicates that some Nexus Class 4 features
are available. A portion of the pin interface (the JTAG port) is also shared with the OnCE/Nexus 1 unit.
The following features are implemented:
• Program trace by means of branch trace messaging.
— Branch trace messaging displays program flow discontinuities (direct and indirect branches,
exceptions, etc.), allowing the development tool to interpolate what transpires between the
discontinuities. Thus, static code may be traced.
• Data trace by means of data write messaging and data read messaging.
— Provides the capability for the development tool to trace reads and/or writes to selected internal
memory resources.
• Ownership trace by means of ownership trace messaging (OTM).
— OTM facilitates ownership trace by providing visibility of which process ID or operating
system task is activated.An ownership trace message is transmitted when a new process/task is
activated, allowing the development tool to trace ownership flow.
— Allows enhanced download/upload capabilities.
• Data acquisition messaging
— Allows code to be instrumented to export customized information to the Nexus auxiliary output
port.
• Watchpoint messaging by means of the auxiliary interface
• Watchpoint trigger enable of program and/or data trace messaging
• Run-time access to the processor memory map by means of the JTAG port
• Auxiliary interface for higher data input/output
— Configurable (min/max) message data out pins (nex_mdo[n:0])
— One or two message start/end out pins (nex_mseo_b[1:0])
— One read/write ready pin (nex_rdy_b) pin
— One watchpoint event pin (nex_evto_b)
— Three additional watchpoint event output pins (nex_wevt[2:0]) for SoC use
— One event-in pin (nex_evti_b)
— One MCKO (Message Clock Out) pin
All features are controllable and configurable by means of the JTAG port.

1.3

Programming Model

This section describes the register model, instruction model, and the interrupt model as they are defined
by the Power ISA, Freescale EIS, and the e200z446n3 implementation.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-6

Freescale Semiconductor

1.3.1

Register Set

Figure 1-2 and Figure 1-3 show the complete e200z446n3 register set, including the sets of the registers
that are accessible in supervisor mode and the set of registers that are accessible in user mode. The number
to the right of the special-purpose registers (SPRs) is the decimal number used in the instruction syntax to
access the register. For example, the integer exception register (XER) is SPR 1.
Figure 1-2 shows the registers that can be accessed by supervisor-level software. User-level software can
access only those registers listed in Figure 1-3.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-7

Exception Handling/Control Registers

General Registers
Condition Register

SPR General

General-Purpose Registers

Interrupt Vector Prefix

Save and Restore

IVPR

SPR 63

SPRG0

SPR 272

SRR0

SPR 26

CR

GPR0

SPRG1

SPR 273

SRR1

SPR 27

Count Register

GPR1

SPRG2

SPR 274

CSRR0

SPR 58

IVOR0

SPR 400

SPRG3

SPR 275

CSRR1

SPR 59

IVOR1

SPR 401

SPRG4

SPR 276

DSRR02

SPR 574

SPRG5

SPR 277

DSRR12

CTR

SPR 9

Link Register

GPR31

LR

SPR 8
Accumulator

XER

ACC

XER

SPR 1

Processor Control Registers
Machine State
MSR
Processor Version
PVR

HID1

SPR 287

Processor ID
SPR 286

PIR

Debug

SVR

Instruction Address Compare

SPR 256

SPR 22

DECAR

SPR 54

DEAR

MCAR

SPR 573

SPR 61

BTB Register
BTB Control1

TBL

SPR 284

TBU

SPR 285

IAC2

SPR 313

DBCR2

SPR 310

IAC3

SPR 314

1

TCR

SPR 340

DBCR3

SPR 561

IAC4

SPR 315

DBCR41

TSR

SPR 336

SPR 563

IAC5

SPR 565

DBCR51

SPR 564

IAC6

SPR 566

DBCR61

SPR 603

IAC7

SPR 567

DBERC01

SPR 569

IAC8

SPR 568

BUCSR

SPR 1013

SPE Register

Control and Status

SP E Status and Control
SPEFSCR

SPR 512

Memory Management Registers
MMU Assist1

Data Address Compare

MAS0

SPR 624

MMUCSR0

SPR 1012

MAS1

SPR 625

MMUCFG

SPR 1015

MAS2

SPR 626

TLB0CFG

SPR 688

TLB1CFG

SPR 689

SPR 316

MAS3

SPR 627

DAC2

SPR 317

MAS4

SPR 628

MAS6

SPR 630

DVC1

SPR 318

DVC2

SPR 319

Control & Configuration

Process ID

DAC1

Data Value Compare (64-bit)

SPR 562

SPR 572

Machine Check
Address Register

Data Exception Address

DEC

SPR 312

DBCNT

SPR 62

Machine Check
Syndrome Register
MCSR

IAC1

Debug Counter

Exception Syndrome
ESR

SPR 309

1

SPR 530

SPR 605

DBCR1

SPR 304

IVOR342

SPRG9

DBCR0

DBSR

SPR 528

SPR 604

SPR 308

Debug Status

IVOR32

SPRG8

Time Base (write only)

Registers2

Debug Control

SPR 415

2

MCSRR12

Decrementer

SPR 1023

IVOR15

SPR 571

MCSRR0

SPR 279

Timers

System Version2

SPR 570

SPR 278

SPRG7

USPRG0

SPR 1009

SPR 575
2

SPRG6

User SPR

Hardware Implementation
Dependent1
HID0
SPR 1008

Interrupt Vector Offset

Device Control Registers (DCRs)1
Cache Access Registers
PSU Registers

PID0

SPR 48

Cache Registers
Cache Configuration
(Read-only)

Cache Control1

L1CFG0

SPR 515

L1CSR1

SPR 1011

L1CFG1

SPR 516

L1FINV1

SPR 959

CDACNTL

DCR 351

PSCR

DCR 272

PSCTR

DCR 276

CDADATA

DCR 350

PSSR

DCR 273

PSUHR

DCR 277

PSHR

DCR 274

PSULR

DCR 278

PSLR

DCR 275

1 - These e200-specific registers may not be supported by other processors built on Power Architecture technology
2 - Optional registers defined by the Power ISA embedded architecture
3 - Read-only registers

Figure 1-2. e200z446n3 Supervisor Mode Programmer’s Model
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-8

Freescale Semiconductor

Figure 1-3 shows the user-mode special-purpose registers.
General Registers

Time Base

Condition Register
General-Purpose Registers

CR
Count Register
CTR

SPR 9

SPR 268

TBU

SPR 269

GPR1
•

•
•

SPR 8

GPR31
XER
XER

TBL

GPR0

Link
LR

Timers (Read only)

SPR 1
Accumulator
ACC

Control Registers

Cache Register
(Read-only)
Cache Configuration
L1CFG0

SPR 515

L1CFG1

SPR 516

SPR General (Read-only)
SPRG4

SPR 260

SPRG5

SPR 261

Category Registers

SPRG6

SPR 262

SPRG7

SPR 263

SPE Status and
Control Register

User SPR
USPRG0

SPEFSCR

SPR 512

SPR 256

Figure 1-3. e200z446n3 User Mode Programmer’s Model SPRs

The GPRs are accessed through instruction operands. Access to other registers can be explicit, by using
instructions for that purpose such as the Move to Special-Purpose Register (mtspr) and Move from
Special-Purpose Register (mfspr) instructions. Access to other registers can also be implicit, as part of the
execution of an instruction. Some registers are accessed both explicitly and implicitly.

1.3.2

Instruction Set

The e200z4 supports the Power ISA instruction set for 32-bit embedded implementations. This is
composed primarily of the user-level instructions defined by the user instruction set architecture (UISA).
The e200z4 does not include the Power ISA floating-point, load string, or store string instructions.
The e200z446n3 core implements the following architectural extensions:
•
•
•
•
•
•
•
•
•
•

The VLE category
The integer select category (ISEL)
Enhanced debug and the debug notify halt instruction categories
The machine check category
The WAIT category
The volatile context save/restore category
The embedded floating-point unit, version 2
The signal processing extension unit, version 1.1
The cache line locking category
The enhanced reservations category

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-9

1.3.3

Interrupts and Exception Handling

The e200z4 core supports an extended exception handling model with nested interrupt capability and
extensive interrupt vector programmability. In general, interrupt processing begins with an exception that
occurs due to external conditions, errors, or program execution problems. When an exception occurs, the
processor checks whether 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 begins 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 bits in the exception syndrome
register (ESR), the machine check syndrome register (MCSR), or the signal processing and embedded
floating-point status and control register (SPEFSCR) to verify the specific cause of the exception and take
appropriate action.
The core complex supports the interrupts described in Table 1-1.
Table 1-1. Interrupt Registers
Register

Description
Noncritical Interrupt Registers

SRR0

Save/restore register 0—On noncritical interrupts, stores either the address of the instruction causing the exception
or the address of the instruction that executes after the rfi instruction.

SRR1

Save/restore register 1—Saves machine state on noncritical interrupts and restores machine state after an rfi
instruction is executed.
Critical Interrupt Registers

CSRR0

Critical save/restore register 0—On critical interrupts, stores either the address of the instruction causing the
exception or the address of the instruction that executes after the rfci instruction.

CSRR1

Critical save/restore register 1—Saves machine state on critical interrupts and restores machine state after an rfci
instruction is executed.
Debug Interrupt Registers

DSRR0

Debug save/restore register 0—On debug interrupts, stores either the address of the instruction causing the
exception or the address of the instruction that executes after the rfdi instruction.

DSRR1

Debug save/restore register 1—Saves machine state on debug interrupts and restores machine state after an rfdi
instruction is executed.
Machine Check Interrupts

MCSRR0

Machine check save/restore register 0—On machine check interrupts, stores either the address of the instruction
causing the exception or the address of the instruction that executes after the rfmci instruction.

MCSRR1

Machine check save/restore register 1—Saves machine state on machine check interrupts and restores those
values when an rfmci instruction is executed
Syndrome Registers

MCSR
ESR

Machine check syndrome register—Saves machine check syndrome information on machine check interrupts.
Exception syndrome register—Provides a syndrome to differentiate among the different kinds of exceptions that
generate the same interrupt type. Upon generation of a specific exception type, the associated bits are set and all
other bits are cleared.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-10

Freescale Semiconductor

Table 1-1. Interrupt Registers (Continued)
Register

Description
SPE 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. See Table 1-2 for a list of
the associated IVORs.
Other Interrupt Registers
DEAR

Data exception address register—Contains 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] || IVORn [48–59] || 0b0000 define the address of an interrupt-processing routine. See
Table 1-2 and Chapter 5, “Interrupts and Exceptions,” for more information.

MSR

Machine state register—Defines the state of the processor. When an interrupt occurs, it is updated to preclude
unrecoverable interrupts from occurring during the initial portion of the interrupt handler

Each interrupt has an associated interrupt vector address, obtained by concatenating IVPR[32–47] with the
address index in the associated IVOR (that is, IVPR[32–47] || IVORn[48–59] || 0b0000). The resulting
address is that of the instruction to be executed when that interrupt occurs. IVPR and IVOR values are
indeterminate on reset and must be initialized by the system software using mtspr.
Table 1-2 lists IVOR registers implemented on the e200z446n3 and the associated interrupts.
Table 1-2. Exceptions and Conditions

1
2

IVORn

Interrupt Type

IVORn

None1

System reset (not an interrupt)

9

AP unavailable (not used by this core)

02

Critical input

10

Decrementer

1

Machine check

11

Fixed-interval timer

Machine check (non-maskable interrupt)

12

Watchdog timer

2

Data storage

13

Data TLB error

3

Instruction storage

14

Instruction TLB error

42

External input

15

Debug

5

Alignment

6

Program

32

SPE unavailable

7

Floating-point unavailable

33

SPE data exception

8

System call

34

SPE round exception

16–31

Interrupt Type

Reserved

Vector to [p_rstbase[0:29]] || 0xFFC.
Autovectored external and critical input interrupts use this IVOR. Vectored interrupts supply an interrupt vector offset
directly.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-11

1.4

Microarchitecture Summary

The e200z4 processor utilizes a five-stage pipeline for instruction execution. These stages operate in an
overlapped fashion, allowing single clock-cycle instruction execution for most instructions. The stages are
as follows:
1. Instruction fetch
2. Instruction decode/register file read/effective address calculation
3. Execute 0/memory access 0
4. Execute 1/memory access 1
5. Register write-back
The integer execution units consist of a 32-bit arithmetic unit, a logic unit, a 32-bit barrel shifter, a
mask-insertion unit, a condition register manipulation unit, a count-leading-zeros unit, a 32 × 32 hardware
multiplier array, and result feed-forward hardware. Integer unit 1 also supports hardware division.
Most arithmetic and logical operations are executed in a single cycle with the exception of multiply, which
is implemented with a 2-cycle pipelined hardware array, and the divide instructions. A count-leading-zeros
unit operates in a single clock cycle.
The instruction unit contains a program counter incrementer and dedicated branch address adder to
minimize delays during change-of-flow operations. Sequential prefetching is performed to ensure a supply
of instructions into the execution pipeline. Branch target prefetching using the BTB is performed to
accelerate taken branches. Prefetched instructions are placed into an 8-entry instruction buffer, with each
entry capable of holding a single 32-bit instruction or a pair of 16-bit instructions.
Branch target addresses are calculated in parallel with branch instruction decode. Conditional branches
that are not taken execute in a single clock cycle. Branches with successful BTB target prefetching have
an effective execution time of one clock cycle if correctly predicted. All other taken branches have an
execution time of two clock cycles.
Memory load and store operations are provided for byte, half-word, word (32-bit), and double-word data
with automatic zero or sign extension of byte and half-word load data as well as optional byte reversal of
data. These instructions can be pipelined to allow effective single-cycle throughput. Load and store
multiple word instructions allow low-overhead context save and restore operations. The load/store unit
contains a dedicated effective address adder to allow effective address generation to be optimized. There
is a single load-to-use bubble for load instructions.
The condition register unit supports the condition register (CR) and condition register operations defined
by the architecture. The condition register consists of eight 4-bit fields that reflect the results of certain
operations, such as move, integer and floating-point compare, arithmetic, and logical instructions. It also
provides a mechanism for testing and branching.
Vectored and autovectored interrupts are supported by the CPU. Vectored interrupt support is provided to
allow multiple interrupt sources to have unique interrupt handlers invoked with no software overhead.
The SPE or SPE2 category supports vector instructions operating on 8-, 16-, and 32-bit fixed-point data
types, as well as 32-bit IEEE Std. 754™ single-precision floating-point formats. It supports
single-precision floating-point operations in a pipelined fashion.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-12

Freescale Semiconductor

The 64-bit general-purpose register file is used for source and destination operands, and there is a unified
storage model for single-precision floating-point data types of 32-bits and the normal integer type. Low
latency fixed-point and floating-point add, subtract, multiply, multiply-add, multiply-sub, divide,
compare, and conversion operations are provided. Most operations can be pipelined.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

1-13

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
1-14

Freescale Semiconductor

Chapter 2
Register Model
This section describes the registers implemented in the e200z4 core. It includes an overview of registers
defined by the Power ISA embedded category architecture and highlights differences in how these
registers are implemented in the e200z4 core. This section also provides a detailed description of
e200-specific registers. Full descriptions of the architecture-defined register set are provided in the EREF.
The architecture defines register-to-register operations for all computational instructions. Source data for
these instructions are accessed from the on-chip registers or are provided as immediate values embedded
in the opcode. The three-register instruction format allows specification of a target register distinct from
the two source registers, thus preserving the original data for use by other instructions. Data is transferred
between memory and registers with explicit load and store instructions only.
The e200z446n3 extends the general-purpose registers to 64-bits for supporting SPE operations. Power
ISA embedded category instructions operate on the lower 32 bits of the GPRs only, and the upper 32 bits
are unaffected by these instructions. SPE vector instructions operate on the entire 64-bit register. The SPE
defines load and store instructions for transferring 64-bit values to/from memory.
The following figures show the complete e200 register set including the sets of the registers that are
accessible while in supervisor mode, and the set of registers that are accessible while in user mode. The
number to the right of the special-purpose registers (SPRs) is the decimal number used in the instruction
syntax to access the register. For example, the integer exception register (XER) is SPR 1.
NOTE
The e200z4 is a 32-bit implementation of the Power ISA embedded
category. In this document, register bits are sometimes numbered from bit 0
(most significant bit) to 31 (least significant bit), rather than the Book E
numbering scheme of 32–63; thus register bit numbers for some registers in
Book E are 32 higher.
Where appropriate, the Book E defined bit numbers are shown in
parentheses.
Figure 2-1 shows the supervisor-mode special-purpose registers.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-1

Exception Handling/Control Registers

General Registers
Condition Register

SPR General

General-Purpose Registers

Save and Restore

SPRG0

SPR 272

Interrupt Vector Prefix

SRR0

SPR 26

IVPR

SPR 63

CR

GPR0

SPRG1

SPR 273

SRR1

SPR 27

Count Register

GPR1

SPRG2

SPR 274

CSRR0

SPR 58

IVOR0

SPR 400

SPRG3

SPR 275

CSRR1

SPR 59

IVOR1

SPR 401

SPRG4

SPR 276

DSRR02

SPR 574

SPRG5

SPR 277

DSRR12

CTR

SPR 9

Link Register
LR

GPR31
SPR 8
Accumulator

XER

ACC

XER

SPR 1

Processor Control Registers
Machine State
MSR
Processor Version
PVR

HID1

SPR 287

Processor ID
SPR 286

PIR

Debug

SPR 308

DBCR1

SPR 309

DBCR2

SPR 310

1

DBCR3

SPR 561

DBCR41

SPR 563

DBCR51

SPR 564

DBCR61

SPR 603

DBERC01

SPR 569

DEVENT1
DDAM1

IVOR32

SPR 528

IVOR342

SPR 530

SPRG8

SPR 604

SPRG9

SPR 605

Exception Syndrome
ESR

SPR 256

SPR 62

Machine Check
Syndrome Register
MCSR

Machine Check
Address Register

SPR 572

MCAR

SPR 573

Data Exception Address

DEC

SPR 22

DECAR

SPR 54

DEAR

SPR 61

BTB Register

Time Base (write only)

Instruction Address Compare

DBCR0

BTB Control1

TBL

SPR 284

TBU

SPR 285

IAC1

SPR 312

IAC2

SPR 313

IAC3

SPR 314

TCR

SPR 340

IAC4

SPR 315

TSR

SPR 336

IAC5

SPR 565

IAC6

SPR 566

IAC7

SPR 567

IAC8

SPR 568

BUCSR

SPR 1013

SPE Register

Control and Status

SPE Status and Control
SPEFSCR

SPR 512

Memory Management Registers
MMU Assist1

Control & Configuration

Process ID

MAS0

SPR 624

MMUCSR0

SPR 1012

SPR 975

MAS1

SPR 625

MMUCFG

SPR 1015

SPR 576

MAS2

SPR 626

TLB0CFG

SPR 688

MAS3

SPR 627

TLB1CFG

SPR 689

Data Address Compare

Debug Status
SPR 304

Debug Counter1
DBCNT

SPR 1023

SPR 415

2

MCSRR12

Timers

Registers2

Debug Control

DBSR

SVR

IVOR15

SPR 571

MCSRR0

SPR 279

Decrementer

System Version2

SPR 570

SPR 278

SPRG7

USPRG0

SPR 1009

SPR 575
2

SPRG6

User SPR

Hardware Implementation
Dependent1
HID0
SPR 1008

Interrupt Vector Offset

DAC1

SPR 316

MAS4

SPR 628

DAC2

SPR 317

MAS6

SPR 630

Data Value Compare (64-bit)

SPR 562

DCR 351

CDADATA

DCR 350

SPR 48

Cache Registers
Cache Configuration
(Read-only)

Cache Control1

DVC1

SPR 318

L1CFG0

SPR 515

L1CSR1

SPR 1011

DVC2

SPR 319

L1CFG1

SPR 516

L1FINV1

SPR 959

Device Control Registers (DCRs)1
Cache Access Registers
PSU Registers
CDACNTL

PID0

PSCR

DCR 272

PSCTR

DCR 276

PSSR

DCR 273

PSUHR

DCR 277

PSHR

DCR 274

PSULR

DCR 278

PSLR

DCR 275

1 - These e200-specific registers may not be supported by other processors built on Power Architecture technology
2 - Optional registers defined by the Power ISA embedded architecture
3 - Read-only registers

Figure 2-1. e200z446n3 Supervisor Mode Programmer’s Model SPRs
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-2

Freescale Semiconductor

Figure 2-2 shows the user-mode special-purpose registers.
General Registers

Time Base

Condition Register
General-Purpose Registers

CR
Count Register
CTR

SPR 9

SPR 268

TBU

SPR 269

GPR1
•

•
•

SPR 8

GPR31
XER
XER

TBL

GPR0

Link
LR

Timers (Read only)

SPR 1

Accumulator

Control Registers

Cache Configuration
L1CFG0

SPR 515

L1CFG1

SPR 516

SPR General (Read-only)
SPRG4

SPR 260

SPRG5

SPR 261

Category Registers

SPRG6

SPR 262

SPRG7

SPR 263

SPE Status and
Control Register

User SPR

ACC

Cache Register
(Read-only)

USPRG0

SPEFSCR SPR 512
SPR 256

Debug
DEVENT

SPR 975

DDAM

SPR 576

Figure 2-2. e200z446n3 User-Mode Programmer’s Model SPRs

General-purpose registers (GPRs) are accessed through instruction operands. Access to other registers can
be explicit—by using instructions for that purpose such as Move to Special Purpose Register (mtspr) and
Move from Special Purpose Register (mfspr) instructions—or implicit, as part of the execution of an
instruction. Some registers are accessed both explicitly and implicitly.

2.1

Power ISA Embedded Category Registers

The core supports most of the registers defined by Power ISA embedded category architecture. Notable
exceptions are the floating-point registers FPR0–FPR31 and FPSCR. The e200z4 does not support the
Power ISA floating-point architecture in hardware. The general-purpose registers have been extended to
64-bits. e200-specific registers are described in Section 2.2, “e200-Specific Special Purpose Registers,”
and the Power ISA embedded registers are described in the following sections. For complete descriptions,
see the EREF.

2.1.1

User-level Registers

The user-level registers can be accessed by all software with either user- or supervisor-privileges. They
include the following:
• General-purpose registers (GPRs).
— The thirty-two 64-bit GPRs (GPR0–GPR31) serve as data source or destination registers for
integer instructions and provide data for generating addresses. Power ISA embedded category
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-3

•

instructions affect only the lower 32 bits of the GPRs. SPE and EFP instructions are provided
that operate on the entire 64-bit register.
Condition register (CR).
— The 32-bit CR consists of eight 4-bit fields, CR0–CR7, that reflect results of certain arithmetic
operations and provide a mechanism for testing and branching. See “Condition Register (CR),”
in Chapter 3, “Branch and Condition Register Operations of the EREF.

The remaining user-level registers are SPRs. Note that the Power ISA embedded category architecture
provides the mtspr and mfspr instructions for accessing SPRs.
• Integer exception register (XER).
— The XER indicates overflow and carries for integer operations. See “XER Register (XER),” in
Chapter 4, “Integer Operations” of the EREF for more information.
• Link register (LR).
— The LR provides the branch target address for the branch [conditional] to link register
instructions (bclr, bclrl, se_blr, se_blrl). It holds the address of the instruction that follows a
branch and link instruction, typically used for linking to subroutines. See “Link Register (LR)”,
in Chapter 3, “Branch and Condition Register Operations” of the EREF.
• Count register (CTR).
— The CTR holds a loop count that can be decremented during execution of appropriately coded
branch instructions. The CTR also provides the branch target address for the branch
[conditional] to count register instructions (bcctr, bcctrl, se_bctr, se_bctrl). See “Count
Register (CTR)”, in Chapter 3, “Branch and Condition Register Operations” of the EREF.
• Time base upper (TBU) and time base lower (TBL)
— The time base facility (TB) consists of two 32-bit registers. These two registers are accessible
in a read-only fashion to user-level software. See “Time Base”, in Chapter 8, “Timer Facilities”
of the EREF.
• SPRG4—SPRG7
— The Power ISA embedded category architecture defines software-use special purpose registers
(SPRGs). SPRG4 through SPRG7 are accessible in a read-only fashion by user-level software.
e200 does not allow user mode access to the SPRG3 register (defined as implementation
dependent by Power ISA).
• USPRG0
— The Power ISA embedded category architecture defines user software-use special purpose
register USPRG0, which is accessible in a read-write fashion by user-level software.

2.1.2

Supervisor-level Registers

Supervisor-level software has access to additional control and status registers used for configuration,
exception handling, and other operating system functions in addition to the registers accessible in
user-mode. The Power ISA embedded category architecture defines the following supervisor-level
registers:
• Processor Control registers
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-4

Freescale Semiconductor

•

•

— Machine state register (MSR)
The MSR defines the state of the processor. The MSR can be modified by the move to machine
state register instruction (mtmsr), system call instructions (sc, se_sc), and return from
exception instructions (rfi, rfci, rfdi, rfmci, se_rfi, se_rfci, se_rfdi, se_rfmci). It can be read
by the move from machine state register instruction (mfmsr) . When an interrupt occurs, the
contents of the MSR are saved to one of the machine state save/restore registers: SRR1,
CSRR1, DSRR1, MCSRR1.
— Processor version register (PVR)
This register is a read-only register that identifies the version (model) and revision level of the
processor.
— Processor Identification Register (PIR)
This read/write register is provided to distinguish the processor from other processors in the
system.
Storage Control register
— Process ID Register (PID, also referred to as PID0).
This register is provided to indicate the current process or task identifier. It is used by the MMU
as an extension to the effective address, and by external Nexus 2/3 modules for ownership trace
message generation. The Power ISA allows multiple PIDs; the e200z4 implements only one.
Interrupt Registers
— Data exception address register (DEAR)
After most Data Storage Interrupts (DSI), or on an Alignment Interrupt or Data TLB Miss
Interrupt, the DEAR is set to the effective address (EA) generated by the faulting instruction.
— SPRG0–SPRG7, USPRG0
The SPRG0–SPRG7 and USPRG0 registers are provided for operating system use. The e200
does not allow user-mode access to the SPRG3 register (defined as implementation dependent
by Power ISA embedded category architecture).
— Exception syndrome register (ESR)
The ESR register provides a syndrome to differentiate between the different kinds of
exceptions which can generate the same interrupt.
— Interrupt vector prefix register (IVPR) and the interrupt vector offset registers
(IVOR0-IVOR15, IVOR32-IVOR34)
These registers together provide the address of the interrupt handler for different classes of
interrupts.
— Save/restore register 0 (SRR0)
The SRR0 register is used to save machine state on a non-critical interrupt. It contains the
address of the instruction at which execution resumes when an rfi or se_rfi instruction is
executed at the end of a non-critical class interrupt handler routine.
— Critical save/restore register 0 (CSRR0)
The CSRR0 register is used to save machine state on a critical interrupt. It contains the address
of the instruction at which execution resumes when an rfci or se_rfci instruction is executed at
the end of a critical class interrupt handler routine.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

2-5

•

•

2.2

— Save/restore register 1 (SRR1)
The SRR1 register is used to save machine state from the MSR on non-critical interrupts and
to restore machine state when an rfi or se_rfi executes.
— Critical save/restore register 1 (CSRR1)
The CSRR1 register is used to save machine state from the MSR on critical interrupts and to
restore machine state when rfci or se_rfci executes.
Debug facility registers
— Debug control registers (DBCR0–DBCR2)
These registers provide control for enabling and configuring debug events.
— Debug status register (DBSR)
This register contains debug event status.
— Instruction address compare registers (IAC1–IAC4)
These registers contain addresses and/or masks which are used to specify instruction address
compare debug events.
— Data address compare registers (DAC1–2)
These registers contain addresses and/or masks which are used to specify data address compare
debug events.
— Data value compare registers (DVC1–2)
These registers contain data values which are used to specify data value compare debug events.
Timer Registers
— Time base (TB)
The TB is a 64-bit structure provided for maintaining the time of day and operating interval
timers. The TB consists of two 32-bit registers: TBU and TBL. The time base registers can be
written to only by supervisor-level software, but can be read by both user and supervisor-level
software.
— Decrementer register (DEC)
This register is a 32-bit decrementing counter that provides a mechanism for causing a
decrementer exception after a programmable delay.
— Decrementer auto-reload (DECAR)
This register is provided to support the auto-reload feature of the decrementer.
— Timer control register (TCR)
This register controls decrementer, fixed-interval timer, and watchdog timer options.
— Timer status register (TSR)
This register contains status on timer events and the most recent watchdog timer-initiated
processor reset.

e200-Specific Special Purpose Registers

The Power ISA embedded category architecture allows implementation-specific special purpose registers.
Those incorporated in the e200 core are as explained in the following sections.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-6

Freescale Semiconductor

2.2.1

User-Level Registers

The user-level registers can be accessed by all software with either user or supervisor privileges. They
include the following:
• Signal processing extension/embedded floating-point status and control register (SPEFSCR).
The SPEFSCR contains all fixed-point and floating-point exception signal bits, exception
summary bits, exception enable bits, and rounding control bits needed for compliance with the
IEEE Std. 754 standard. See “SPE Status and Control Register (SPEFSCR),” in Chapter 7, “Signal
Processing Extension Unit.”
• The L1 cache configuration registers (L1CFG0, L1CGF1)
These read-only registers allows software to query the configuration of the L1 cache structure.

2.2.2

Supervisor-Level Registers

In addition to the Power ISA embedded category registers described above, the following supervisor-level
registers are defined in the e200:
• Configuration Registers
— Hardware implementation-dependent register 0 (HID0)
This register controls various processor and system functions.
— Hardware implementation-dependent register 1 (HID1)
This register controls various processor and system functions.
• Exception handling and control registers
— Machine check save/restore register 0 (MCSRR0)
The MCSRR0 register is used to save machine state on a machine check interrupt, and contains
the address of the instruction at which execution resumes when an rfmci or se_rfmci
instruction is executed.
— Machine Check save/restore register 1 (MCSRR1)
The MCSRR1 register is used to save machine state from the MSR on machine check
interrupts, and to restore machine state when an rfmci or se_rfmci instruction is executed.
— Machine check syndrome register (MCSR)
This register provides a syndrome to differentiate between the different kinds of conditions
which can generate a machine check.
— Machine check address register (MCAR)
This register provides an address associated with certain machine checks.
— Debug save/restore register 0 (DSRR0)
When enabled, the DSRR0 register is used to save the address of the instruction at which
execution continues when an rfdi or se_rfdi instruction executes at the end of a debug interrupt
handler routine.
— Debug save/restore register 1 (DSRR1)
When enabled, the DSRR1 register is used to save machine status on debug interrupts and to
restore machine status when an rfdi or se_rfdi instruction executes.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-7

•

•

•

— SPRG8, SPRG9
The SPRG8 and SPRG9 registers are provided for operating system use for the machine check
and Debug APUs.
Debug Facility Registers
— Instruction address compare registers (IAC5–IAC8)
These registers contain addresses and/or masks which are used to specify instruction address
compare debug events.
— Debug control register 3–6 (DBCR3, DBCR4, DBCR5, DBCR6)
These registers provides control for debug functions not described in Power ISA embedded
category architecture.
— Debug external resource control register 0 (DBERC0)
This register provides control for debug functions not described in PowerPC Book E
architecture.
— Debug counter register (DBCNT)
This register provides counter capability for debug functions.
— Branch unit control and status register (BUCSR)
This register controls operation of the BTB
Cache Registers
— L1 cache configuration registers (L1CFG0, L1CFG1)
These are read-only registers that allow software to query the configuration of the L1 Cache.
— L1 cache control and status registers (L1CSR0, L1CSR1)
These registers control operations of the L1 Cache, such as cache enabling, cache invalidation,
and cache locking.
— L1 cache flush and invalidate register (L1FINV1)
This register controls software flushing and invalidation of the L1 Caches.
Memory management unit registers
— MMU configuration register (MMUCFG)
This is a read-only register that allows software to query the configuration of the MMU.
— MMU assist (MAS0-MAS4, MAS6) registers
These registers provide the interface to the e200 core from the Memory Management Unit.
— MMU control and status register (MMUCSR0)
This register controls invalidation of the MMU.
— TLB configuration registers (TLB0CFG, TLB1CFG)
These are read-only registers that allow software to query the configuration of the TLBs.
— System version register (SVR)
This register is a read-only register that identifies the version (model) and revision level of the
system that includes the e200 processor.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-8

Freescale Semiconductor

Note that it is not guaranteed that the implementation of e200 core-specific registers is consistent among
the Power ISA embedded category processors, although other processors may implement similar or
identical registers.
All e200 SPR definitions are compliant with the Freescale EIS definitions.

2.3

e200-Specific Device Control Registers

In addition to the SPRs described above, implementations may also choose to implement one or more
device control registers (DCRs). The core implements a set of device control registers to perform a parallel
signature capability in the parallel signature unit (PSU). These registers are described in Section 11.9,
“Parallel Signature Unit.”

2.4

Special Purpose Register Descriptions

The following sections provide a register figure and accompanying field descriptions table for each of the
SPRs in the core.

2.4.1

Machine State Register (MSR)

The machine state register defines the state of the processor. Chapter 5, “Interrupts and Exceptions,” of
this document describes how interrupts affect the MSR, and the EREF contains a complete description.

0

1

2

3

4

7

8

0

RI

IS

0

DS

FE1

0

DE

FE0

FP

ME

PR

0

EE

6

CE

5

0

WE

SPE

0

UCLE

Figure 2-3 shows the e200 MSR.
0

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Read/ Write; Reset - 0x0

Figure 2-3. Machine State Register (MSR)

Table 2-1 defines the MSR bits.
Table 2-1. MSR Field Descriptions
Bit(s)

Name

0–4
(32–36)

—

5
(37)

UCLE

6
(38)

SPE

Description
Reserved1
User Cache Lock Enable
0 Execution of the cache locking instructions in user mode (MSRPR=1) disabled; DSI exception
taken instead, and ILK or DLK set in ESR.
1 Execution of the cache lock instructions in user mode enabled.
SPE Available
0 Execution of SPE APU vector instructions is disabled; SPE Unavailable exception taken
instead, and SPE bit is set in ESR.
1 Execution of SPE APU vector instructions is enabled.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-9

Table 2-1. MSR Field Descriptions (Continued)
Bit(s)

Name

Description

7–12
(39–44)

—

13
(45)

WE

Wait State (Power management) enable.
0 Power management is disabled.
1 Power management is enabled. The processor can enter a power-saving mode when
additional conditions are present. The mode chosen is determined by the DOZE, NAP, and
SLEEP bits in the HID0 register, described in Section 2.4.11, “Hardware Implementation
Dependent Register 0 (HID0).”

14
(46)

CE

Critical Interrupt Enable
0 Critical Input and Watchdog Timer interrupts are disabled.
1 Critical Input and Watchdog Timer interrupts are enabled.

15
(47)

—

Preserved1

16
(48)

EE

External Interrupt Enable
0 External Input, Decrementer, and Fixed-Interval Timer interrupts are disabled.
1 External Input, Decrementer, and Fixed-Interval Timer interrupts are enabled.

17
(49)

PR

Problem State
0 The processor is in supervisor mode, can execute any instruction, and can access any
resource (e.g. GPRs, SPRs, MSR, etc.).
1 The processor is in user mode, cannot execute any privileged instruction, and cannot access
any privileged resource.

18
(50)

FP

Floating-Point Available
0 Floating point unit is unavailable. The processor cannot execute floating-point instructions,
including floating-point loads, stores, and moves. (A FP Unavailable interrupt will be generated
on attempted execution of floating point instructions).
1 Floating Point unit is available. The processor can execute floating-point instructions.
Note: For the e200, the floating point unit is not supported in hardware, and an unimplemented
operation exception will be generated for attempted execution of Power ISA embedded
category floating point instructions when FP is set.

19
(51)

ME

Machine Check Enable
0 Asynchronous Machine Check interrupts are disabled.
1 Asynchronous Machine Check interrupts are enabled.

20
(52)

FE0

Floating-point exception mode 0 (not used by the e200)

21
(53)

—

Reserved1

22
(54)

DE

Debug Interrupt Enable
0 Debug interrupts are disabled.
1 Debug interrupts are enabled.

23
(55)

FE1

Floating-point exception mode 1 (not used by the e200)

24
(56)

—

Reserved1

25
(57)

—

Preserved1

Reserved1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-10

Freescale Semiconductor

Table 2-1. MSR Field Descriptions (Continued)
Bit(s)

Name

26
(58)

IS

Instruction 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).

27
(59)

DS

Data Address Space
0 The processor directs all data storage accesses to address space 0 (TS=0 in the relevant TLB
entry).
1 The processor directs all data storage accesses to address space 1 (TS=1 in the relevant TLB
entry).

28–29
(60–61)

—

Reserved1

30
(62)

RI

Recoverable Interrupt
This bit is provided for software use to detect nested exception conditions. This bit is cleared by
hardware when a Machine Check interrupt is taken.

31
(63)

—

Preserved1

1

Description

These bits are not implemented, will be read as zero, and writes are ignored.

2.4.2

Processor ID Register (PIR)

The processor ID for the CPU core is contained in the processor ID register (PIR). The contents of the PIR
register are a reflection of hardware input signals to the core following reset. This register may be written
by software to modify the default reset value.
ID
0

1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

SPR - 286; Read/Write; Reset: - bits 24:31 updated to reflect the values on p_cpuid[0–7], bits 0–23 reset to 0

Figure 2-4. Processor ID Register (PIR)

The PIR fields are defined in Table 2-2.
Table 2-2. PIR Field Descriptions
Bits

Name

0–23

ID

24–31

Description
These bits are reset to 0. These bits are writable by software.
These bit are reset to the values provided on the p_cpuid[0–7] input signals. These bits are
writable by software.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-11

2.4.3

Processor Version Register (PVR)

The processor version register (PVR) contains the processor version number for the CPU core.
1

0

0

0

0

0

0

1

0

1

0

1

Version

MBG
Reserved

Minor Rev

Major Rev

MBG ID

0

1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 287; Read-only

Figure 2-5. Processor Version Register (PVR)

This register contains fields to specify a particular implementation of an e200 family member as well as
allocating fields to be used by a particular business unit at their discretion. This register is read-only.
Interface signals p_pvrin[16–31] provide the contents of a portion of this register.
Table 2-3 shows the PVR field descriptions.
Table 2-3. PVR Field Descriptions
Bits

Name

0–3

Description

Manuf. ID These bits identify the Manufacturer ID. Freescale is 4`b1000.

4–5

—

6–11

Type

12–15

Version

16–19

These bits are reserved (00)
These bits identify the processor type. e200z4 is 6`b010101.
These bits identify the version of the processor and inclusion of optional elements. For the
e200z446n3, these are tied to 4`b0101.

MBG Use These bits are allocated for use by Freescale Business Groups to distinguish different system
variants, and are provided by the p_pvrin[16–19] input signals.

20–23

Minor
Rev

These bits distinguish between implementations of the version, and are provided by the
p_pvrin[20–23] input signals.

24–27

Major
Rev

These bits distinguish between implementations of the version, and are provided by the
p_pvrin[24–27] input signals.

28–31

MBG ID

2.4.4

These bits identify the Freescale Business Group responsible for a particular mask set, and are
provided by the p_pvrin[28–31] input signals.
MBG value of 4`b0000 is reserved.

System Version Register (SVR)

The system version register (SVR) contains system version information for an e200-based SoC.
System Version
0

1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 1023; Read-only

Figure 2-6. System Version Register (SVR)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-12

Freescale Semiconductor

This register is used to specify a particular implementation of an e200-based system by a particular
business unit at their discretion. This register is read-only.
Table 2-4 shows the SVR field descriptions.
Table 2-4. SVR Field Descriptions
Bits

Name

0–31

Version

2.4.5

Description
These bits are allocated for use by Freescale Business Groups to distinguish different system
variants, and are provided by the p_sysvers[0–31] input signals

Integer Exception Register (XER)

The EREF contains a complete description of the integer exception register (XER).

OV

CA

0

1

2

Bytecnt

SO

The XER bit assignments are shown in Figure 2-7.
0

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 1; Read/Write; Reset - 0x0

Figure 2-7. Integer Exception Register (XER)

The XER fields are defined in Table 2-5.
Table 2-5. XER Field Descriptions

1
2

Bits

Name

0
(32)

SO

1
(33)

OV

2
(34)

CA

3–24
(35–56)

—

25–31
(57–63)

Bytecnt2

Description
Summary Overflow (per the Power ISA embedded category)
Overflow (per the Power ISA embedded category)
Carry (per the Power ISA embedded category)
Reserved1
Preserved for lswi, lswx, stswi, stswx string instructions

These bits are not implemented, will be read as zero, and writes are ignored.
These bits are implemented to support emulation of the string instructions.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-13

2.4.6

Exception Syndrome Register

0

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

MIF

0

VLEMI

0

SPE

7

PIE

6

BO

5

AP

4

ILK

0

DLK

ST

3

FP

2

PTR

1

PPR

0

PIL

0

PUO

The exception syndrome register (ESR) provides a syndrome to differentiate between exceptions that can
generate the same interrupt type. The EREF contains a complete description of the ESR. The e200 adds
some implementation specific bits to this register, as seen in Figure 2-8.
0

SPR - 62; Read/Write; Reset - 0x0

Figure 2-8. Exception Syndrome Register (ESR)

The ESR fields are defined in Table 2-6.
Table 2-6. ESR Field Descriptions
Bit(s)

Name

Description

Associated Interrupt Type

0–3
(32–35)

—

Allocated1

—

4
(36)

PIL

Illegal Instruction exception

Program

5
(37)

PPR

Privileged Instruction exception

Program

6
(38)

PTR

Trap exception

Program

7
(39)

FP

Floating-point operation

Alignment
Data Storage
Data TLB
Program

8
(40)

ST

Store operation

Alignment
Data Storage
Data TLB

9
(41)

—

Reserved2

—

10
(42)

DLK

Data Cache Locking3

Data Storage

11
(43)

ILK

Instruction Cache Locking

Data Storage

12
(44)

AP

Auxiliary Processor operation
(Currently unused in the e200)

Alignment
Data Storage
Data TLB
Program

13
(45)

PUO

Unimplemented Operation exception

Program

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-14

Freescale Semiconductor

Table 2-6. ESR Field Descriptions (Continued)
Bit(s)

Name

Description

Associated Interrupt Type

14
(46)

BO

Byte Ordering exception
Mismatched Instruction Storage exception

Data Storage
Instruction Storage

15
(47)

PIE

Program Imprecise exception
(Reserved)

Currently unused in the e200

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-15

Table 2-6. ESR Field Descriptions (Continued)
Bit(s)

Name

Description

Associated Interrupt Type

16–23
(48–55)

—

Reserved2

—

24
(56)

SPE

SPE Operation

SPE Unavailable
SPE Floating-point Data
Exception
SPE Floating-point Round
Exception
Alignment
Data Storage
Data TLB

25
(57)

—

Allocated1

—

26
(58)

VLEMI

VLE Mode Instruction

SPE Unavailable
SPE Floating-point Data
Exception
SPE Floating-point Round
Exception
Data Storage
Data TLB
Instruction Storage
Alignment
Program
System Call

27:29
(59–61)

—

Allocated1

—

30
(62)

MIF

Misaligned Instruction Fetch

Instruction Storage
Instruction TLB

31
(63)

—

Allocated1

—

1

These bits are not implemented and should be written with zero for future compatibility.
These bits are not implemented, and should be written with zero for future compatibility.
3 This bit is implemented, but not set by hardware
2

2.4.6.1

Power ISA VLE Mode Instruction Syndrome

The ESR[VLEMI] bit is provided to indicate that an interrupt was caused by a Power ISA VLE instruction.
This syndrome bit is set on an exception associated with execution or attempted execution of a Power ISA
VLE instruction. This bit is updated for the interrupt types indicated in Table 2-6.

2.4.6.2

Misaligned Instruction Fetch Syndrome

The ESR[MIF] bit is provided to indicate that an Instruction Storage Interrupt was caused by an attempt
to fetch an instruction from a Power ISA page that was not aligned on a word boundary. The fetch may
have been caused by execution of a branch class instruction from a VLE page to a non-VLE page, a branch
to LR instruction with LR[62] = 1, a branch to CTR instruction with CTR[62] = 1, execution of an rfi or

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-16

Freescale Semiconductor

se_rfi instruction with SRR0[62] = 1, execution of an rfci or se_rfci instruction with CSRR0[62] = 1,
execution of an rfdi or se_rfdi instruction with DSRR0[62] = 1, or execution of an rfmci or se_rfmci
instruction with MCSRR0[62] = 1, where the destination address corresponds to an instruction page that
is not marked as a Power ISA VLE page.
The ESR[MIF] bit is also used to indicate that an instruction TLB interrupt was caused by a TLB miss on
the second half of a misaligned 32-bit Power ISA VLE instruction. For this case, SRR0 points to the first
half of the instruction, which resides on the previous page from the miss at page offset 0xFFE. The ITLB
handler may need to realize that the miss corresponds to the next page, although MMU MAS2 contents
will correctly reflect the page corresponding to the miss.

2.4.7

Machine Check Syndrome Register (MCSR)

2

3

8

BUS_WRERR

BUS_DRERR

BUS_IRERR

G

ST

IF

7

0
LD

6

MAV

5

0
MEA

4

0
NMI

0

IC_LKERR

1

IC_TPERR

IC_DPERR

0

0

EXCP_ERR

MCP

When the core complex takes a machine check interrupt, it updates the machine check syndrome register
(MCSR) to differentiate between machine check conditions. The MCSR is shown in Figure 2-9.
0

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 572; Read/Clear; Reset - 0x0

Figure 2-9. Machine Check Syndrome Register (MCSR)

Table 2-7 describes MCSR fields. The MCSR indicates the source of a machine check condition. When an
“Async Mchk” or “Error Report” syndrome bit in the MCSR is set, the core complex asserts p_mcp_out
for system information. Note that the bits in the MCSR are implemented as “write 1 to clear.” Therefore,
software must write ones into those bit positions it wishes to clear, typically by writing back what was
originally read. See Section 5.7.2, “Machine Check Interrupt (IVOR1) for more details of the MCSR
settings.
Table 2-7. Machine Check Syndrome Register (MCSR)
Bit

Name

0
(32)

MCP

1
(33)

IC_DPERR

2–3
(34–35
)

—

4
(36)

EXCP_ERR

5
(37)

IC_TPERR

Exception Type1

Recoverable

Machine check input pin

Async Mchk

Maybe

Instruction Cache data array parity error

Async Mchk

Precise

—

—

ISI, ITLB, or Bus Error on first instruction fetch for an
exception handler

Async Mchk

Precise

Instruction Cache Tag parity error

Async Mchk

Precise

Description

Reserved, should be cleared.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-17

Table 2-7. Machine Check Syndrome Register (MCSR) (Continued)
Exception Type1

Recoverable

—

—

Status

—

—

—

NMI

—

MCAR Address Valid
Indicates that the address contained in the MCAR was
updated by hardware to correspond to the first detected
Async Mchk error condition

Status

—

MCAR holds Effective Address
If MAV=1,MEA=1 indicates that the MCAR contains an
effective address and MEA=0 indicates that the MCAR
contains a physical address

Status

—

—

—

Instruction Fetch Error Report
An error occurred during the attempt to fetch an
instruction. MCSRR0 contains the instruction address.

Error Report

Precise

LD

Load type instruction Error Report
An error occurred during the attempt to execute the load
type instruction located at the address stored in
MCSRR0.

Error Report

Precise

17
(49)

ST

Store type instruction Error Report
An error occurred during the attempt to execute the
store type instruction located at the address stored in
MCSRR0.

Error Report

Precise

18
(50)

G

Guarded Load or Store instruction Error Report
An error occurred during the attempt to execute the load
or store type instruction located at the address stored in
MCSRR0 and the guarded access encountered an
error on the external bus.

Error Report

Precise

19–26
(51–58
)

—

Reserved, should be cleared.

—

—

27
(59)

BUS_IRERR

Read bus error on Instruction fetch or linefill

Async Mchk

Precise if data
used

28
(60)

BUS_DRERR

Read bus error on data load

Async Mchk

Precise

Bit

Name

Description

6
(38)

—

7
(39)

IC_LKERR

8–10
(40–42
)

—

11
(43)

NMI

NMI input pin

12
(44)

MAV

13
(45)

MEA

14
(46)

—

Reserved, should be cleared.

15
(47)

IF

16
(48)

Reserved, should be cleared.
Instruction Cache Lock error
Indicates a cache control operation or invalidation
operation invalidated one or more locked lines in the
Icache
Reserved, should be cleared.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-18

Freescale Semiconductor

Table 2-7. Machine Check Syndrome Register (MCSR) (Continued)

1

Bit

Name

Description

29
(61)

BUS_WRERR

30–31
(62–63
)

—

Write bus error on store

Exception Type1

Recoverable

Async Mchk

Unlikely

—

—

Reserved, should be cleared.

The Exception Type indicates the exception type associated with a given syndrome bit
- “Error Report” indicates that this bit is only set for error report exceptions which cause machine check interrupts. These
bits are only updated when the machine check interrupt is actually taken. Error report exceptions are not gated by MSRME.
These are synchronous exceptions. These bits will remain set until cleared by software writing a “1” to the bit position(s) to
be cleared.
- “Status” indicates that this bit is provides additional status information regarding the logging of an asynchronous machine
check exception. These bits will remain set until cleared by software writing a “1” to the bit position(s) to be cleared.
- “NMI” indicates that this bit is only set for the non-maskable interrupt type exception which causes a machine check
interrupt. This bit is only updated when the machine check interrupt is actually taken. NMI exceptions are not gated by
MSR ME. This is an asynchronous exception. This bit will remain set until cleared by software writing a “1” to the bit position.
- “Async Mchk” indicates that this bit is set for an asynchronous machine check exception. These bits are set immediately
upon detection of the error. Once any “Async Mchk” bit is set in the MCSR, a machine check interrupt will occur if
MSR ME=1. If MSRME=0, the machine check exception will remain pending. These bits will remain set until cleared by
software writing a “1” to the bit position(s) to be cleared.

2.4.8

Timer Control Register (TCR)

The timer control register (TCR) provides control information for the CPU timer facilities. The EREF
contains a complete description of the TCR. The TCR[WRC] field functions are defined to be
implementation-dependent and are described below. In addition, the e200 core implements two fields not
specified in the Power ISA, TCR[WPEXT] and TCR[FPEXT].

6

7

FPEXT

5

WPEXT

4

0

FIE

3

0

ARE

2

FP

1

DIE

0

WIE

WP

WRC

The TCR is shown in Figure 2-10.

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 340; Read/Write; Reset - 0x0

Figure 2-10. Timer Control Register (TCR)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-19

The TCR fields are defined in Table 2-8.
Table 2-8. Timer Control Register Field Descriptions

1

Bits

Name

Description

0–1
(32–33)

WP

Watchdog Timer Period
When concatenated with WPEXT, specifies one of 64 bit locations of the time base used to signal
a watchdog timer exception on a transition from 0 to 1.
TCRwpext[0–3],TCRwp[0–1] == 6’b000000 selects TBU[0]
TCRwpext[0–3],TCRwp[0–1] == 6’b111111 selects TBL[31]

2–3
(34–35)

WRC

Watchdog Timer Reset Control
00 No Watchdog Timer reset will occur
01 Assert watchdog reset status output 1 (p_wrs[1]) on second time-out of Watchdog Timer
10 Assert watchdog reset status output 0 (p_wrs[0]) on second time-out of Watchdog Timer
11 Assert watchdog reset status outputs 0 and 1 (p_wrs[0], p_wrs[1]) on second time-out of
Watchdog Timer
TCRWRC resets to 0b00. This field may be set by software, but cannot be cleared by software
(except by a software-induced reset). Once written to a non-zero value, this field may no longer
be altered by software.

4
(36)

WIE

Watchdog Timer Interrupt Enable

5
(37)

DIE

Decrementer Interrupt Enable

6–7
(38–39)

FP

Fixed-Interval Timer Period
When concatenated with FPEXT, specifies one of 64 bit locations of the time base used to signal
a fixed-interval timer exception on a transition from 0 to 1.
TCRfpext[0–3],TCRfp[0–1] == 6’b000000 selects TBU[0]
TCRfpext[0–3],TCRfp[0–1] == 6’b111111 selects TBL[31]

8
(40)

FIE

Fixed-Interval Timer Interrupt Enable

9
(41)

ARE

Auto-Reload Enable

10
(42)

—

Reserved1

11–14
(43–46)

WPEXT Watchdog Timer Period Extension (see above description for WP)
These bits get prepended to the TCRWP bits to allow selection of the one of the 64 Time Base
bits used to signal a Watchdog Timer exception.
tb0:63 ← TBU0:31 || TBL0:31
wp ← TCRWPEXT || TCRWP
tb_wp_bit ← tbwp

15–18
(47–50)

FPEXT

19–31
(51–63)

—

Fixed-Interval Timer Period Extension (see above description for FP)
These bits get prepended to the TCRFP bits to allow selection of the one of the 64 Time Base bits
used to signal a Fixed-Interval Timer exception.
tb0:63 ← TBU0:31 || TBL0:31
fp ← TCRFPEXT || TCR FP
tb_fp_bit ← tbfp
Reserved1

These bits are not implemented and should be written with zero for future compatibility.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-20

Freescale Semiconductor

2.4.9

Timer Status Register (TSR)

The timer status register (TSR) provides status information for the CPU timer facilities. A complete
description of the TSR is in the EREF. TSR[WRS] is defined to be implementation-dependent and is
described below.

WRS

1

2

3

FIS

WIS

0

DIS

ENW

The TSR is shown in Figure 2-11.

4

5

0
6

7

8

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 336; Read/Clear; Reset - 0x0

Figure 2-11. Timer Status Register (TSR)

The TSR fields are defined in Table 2-9.
Table 2-9. Timer Status Register Field Descriptions

1

Bits

Name

Description

0
(32)

ENW

Enable Next Watchdog

1
(33)

WIS

Watchdog timer interrupt status

2–3
(34–35)

WRS

Watchdog timer reset status
00 No second time-out of Watchdog Timer has occurred
01 Assertion of watchdog reset status output 1 (p_wrs[1]) on second time-out of Watchdog
Timer has occurred
10 Assertion of watchdog reset status output 0 (p_wrs[0]) on second time-out of Watchdog
Timer has occurred
11 Assertion of watchdog reset status outputs 0 and 1 (p_wrs[0], p_wrs[1]) on second time-out
of Watchdog Timer has occurred

4
(36)

DIS

Decrementer interrupt status

5
(37)

FIS

Fixed-Interval Timer interrupt status

6–31
(38–63)

—

Reserved1

These bits are not implemented and should be written with zero for future compatibility.

NOTE
The timer status register can be read using mfspr RT,TSR. The Timer
Status Register cannot be directly written to. Instead, bits in the timer status
register corresponding to 1 bits in GPR[RS] can be cleared using mtspr
TSR,RS.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-21

2.4.10

Debug Registers

The debug facility registers are described in Chapter 11, “Debug Support.”

2.4.11

Hardware Implementation Dependent Register 0 (HID0)

1

2

3

4

5

6

7

NOPTI

0

DAPUEN

MCCLRDE

DCLRCE

CICLRDE

DCLREE

SEL_TBCLK

0
TBEN

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

ICR

8

NHR

NAP

0

0

DOZE

EMCP

0

SLEEP

The HID0 register is an e200 implementation-dependent register used for various configuration and
control functions, as shown in Figure 2-12.

SPR - 1008; Read/Write; Reset - 0x0

Figure 2-12. Hardware Implementation Dependent Register 0 (HID0)

The HID0 fields are defined in Table 2-10.
Table 2-10. Hardware Implementation Dependent Register 0
Bits

Name

Description

0
[32]

EMCP

1–7
[33–39]

—

8
[40]

DOZE

Configure for Doze power management mode
0 Doze mode is disabled
1 Doze mode is enabled
Doze mode is invoked by setting MSRWE while this bit is set.

9
[41]

NAP

Configure for Nap power management mode
0 Nap mode is disabled
1 Nap mode is enabled
Nap mode is invoked by setting MSRWE while this bit is set.

10
[42]

SLEEP

11–13
[43–45]

—

Enable machine check pin (p_mcp_b)
0 p_mcp_b pin is disabled.
1 p_mcp_b pin is enabled. Asserting p_mcp_b causes a machine check interrupt to be
reported.
The primary purpose of this bit is to mask out further machine check exceptions caused by
assertion of p_mcp_b.
Reserved1

Configure for Sleep power management mode
0 Sleep mode is disabled
1 Sleep mode is enabled
Sleep mode is invoked by setting MSRWE while this bit is set.
Only one of DOZE, NAP, or SLEEP should be set for proper operation.
Reserved1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-22

Freescale Semiconductor

Table 2-10. Hardware Implementation Dependent Register 0 (Continued)
Bits

Name

Description

14
[46]

ICR

Interrupt Inputs Clear Reservation
0 External Input, Critical Input, and Non-Maskable Interrupts do not affect reservation status
1 External Input, Critical Input, and Non-Maskable Interrupts clear an outstanding
reservation

15
[47]

NHR

Not hardware reset
0 indicates to a reset exception handler that a reset occurred if software had previously set
this bit
1 indicates to a reset exception handler that no reset occurred if software had previously set
this bit
Provided for software use—set anytime by software, cleared by reset.

16
[48]

—

17
[49]

TBEN

18
[50]

Reserved1
TimeBase Enable
0 TimeBase is disabled
1 TimeBase is enabled

SEL_TBCLK Select TimeBase Clock
0 TimeBase is based on processor clock
1 TimeBase is based on p_tbclk input
This bit controls the clock source for the TimeBase. Altering this bit must be done while the
time base is disabled to preclude glitching of the counter. Timer interrupts should be disabled
prior to alteration, and the TBL and TBU registers re-initialized following a change of
TimeBase clock source.

19
[51]

DCLREE

Debug Interrupt Clears MSREE
0 MSREEunaffected by Debug Interrupt
1 MSREE cleared by Debug Interrupt
This bit controls whether Debug interrupts force External Input interrupts to be disabled, or
whether they remain unaffected.

20
[52]

DCLRCE

Debug Interrupt Clears MSRCE
0 MSRCE unaffected by Debug Interrupt
1 MSRCE cleared by Debug Interrupt
This bit controls whether Debug interrupts force Critical interrupts to be disabled, or whether
they remain unaffected.

21
[53]

CICLRDE

Critical Interrupt Clears MSR DE
0 MSRDE unaffected by Critical class interrupt
1 MSRDE cleared by Critical class interrupt
This bit controls whether certain Critical interrupts (Critical Input, Watchdog Timer) force
Debug interrupts to be disabled, or whether they remain unaffected. Machine Check interrupts
have a separate control bit.
Note: If Critical Interrupt Debug events are enabled (DBCR0CIRPT set, which should only be
done when the Debug functionality is enabled), and MSRDE is set at the time of a
(Critical Input, Watchdog Timer) Critical interrupt, a debug event will be generated after
the Critical Interrupt Handler has been fetched, and the Debug handler will be executed
first. In this case, DSRR0DE will have been cleared, such that after returning from the
debug handler, the Critical interrupt handler will not be run with MSRDE enabled.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-23

Table 2-10. Hardware Implementation Dependent Register 0 (Continued)
Bits

Name

Description

22
[54]

MCCLRDE

Machine Check Interrupt Clears MSRDE
0 MSRDE unaffected by Machine Check interrupt
1 MSRDE cleared by Machine Check interrupt
This bit controls whether machine check interrupts force debug interrupts to be disabled, or
whether they remain unaffected.

23
[55]

DAPUEN

Debug APU enable
0 Debug APU disabled
1 Debug APU enabled
This bit controls whether the Debug APU is enabled. When enabled, Debug interrupts use the
DSRR0/DSRR1 registers for saving state, and the rfdi instruction is available for returning
from a debug interrupt.
When disabled, Debug Interrupts use the critical interrupt resources CSRR0/CSRR1 for
saving state, the rfci instruction is used for returning from a debug interrupt, and the rfdi
instruction is treated as an illegal instruction.
When disabled, the settings of the DCLREE, DCLRCE, CICLRDE, and MCCLRDE bits are
ignored and are assumed to be ‘1’s
Read and write access to DSRR0/DSRR1 by means of the mfspr and mtspr instructions is
not affected by this bit.

24
[56]

—

Reserved1

25–30
[58–62]

—

Reserved1

31
[63]

NOPTI

1

No-op Touch Instructions
0 icbt instruction operates normally
1 icbt instruction is no-oped
This bit only affects the icbt instruction.

These bits are not implemented and should be written with zero for future compatibility.

2.4.12

Hardware Implementation Dependent Register 1 (HID1)

0

0

1

2

3

4

5

6

7

8

0

ATS

SYSCTL

The HID1 register is used for bus configuration and system control. HID1 is shown in Figure 2-13.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 1009; Read/Write; Reset - 0x0

Figure 2-13. Hardware Implementation Dependent Register 1 (HID1)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-24

Freescale Semiconductor

The HID1 fields are defined in Table 2-11.
Bits

Name

Description

0–15
[32–47]

—

16–23
[48–56]

SYSCTL

24
[56]

ATS

25–31
[57–63]

—

Reserved1
System Control
These bits are reflected on the outputs of the p_hid1_sysctl[0–7] output signals for use in
controlling the system. They may need external synchronization.
Atomic status (read-only)
Indicates state of the reservation bit in the load/store unit. See Section 3.6, “Memory
Synchronization and Reservation Instructions for more detail.
Reserved1

Table 2-11. Hardware Implementation Dependent Register 1
1

These bits are not implemented and should be written with zero for future compatibility.

2.4.13

Branch Unit Control and Status Register (BUCSR)

0

1

2

3

4

5

6

7

8

BPEN

0

BPRED

0

BALLOC

0

BBFI

The BUCSR register is used for general control and status of the branch target buffer (BTB), as shown in
Figure 2-14.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 1013; Read/Write; Reset - 0x0

Figure 2-14. Branch Unit Control and Status Register (BUCSR)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-25

The BUCSR fields are defined in Table 2-12.
Bits

Name

0–21
[32–53]

—

22
[54]

BBFI

23–25
[55–57]

—

26–27
[58–59]

Description
Reserved1
Branch target buffer flash invalidate.
When written to a ‘1’, BBFI flash clears the valid bit of all entries in the branch buffer; clearing
occurs regardless of the value of the enable bit (BPEN). Note: BBFI is always read as 0.
Reserved1

BALLOC Branch Target Buffer Allocation Control
00 Branch Target Buffer allocation for all branches is enabled.
01 Branch Target Buffer allocation is disabled for backward branches.
10 Branch Target Buffer allocation is disabled for forward branches.
11 Branch Target Buffer allocation is disabled for both branch directions.
This field controls BTB allocation for branch acceleration when BPEN = 1. Note that BTB hits are
not affected by the settings of this field. Note that for branches with “AA’ = ‘1’, the MSB of the
displacement field is still used to indicate forward/backward, even though the branch is absolute.
Reserved1

28
[60]

—

29–30
[61–62]

BPRED

Branch Prediction Control (Static)
00 Branch predicted taken on BTB miss for all branches.
01 Branch predicted taken on BTB miss only for forward branches.
10 Branch predicted taken on BTB miss only for backward branches.
11 Branch predicted not taken on BTB miss for both branch directions.
This field controls operation of static prediction mechanism on a BTB miss. Unless disabled,
fetching of the predicted target location will be performed for branch acceleration. BPRED
operates independently of BPEN, and with a BPEN setting of 0, will be used to perform static
prediction of all unresolved branches.
Note that BTB hits are not affected by the settings of this field. Note that for certain applications,
setting BPRED to a non-default value may result in improved performance.

31
[63]

BPEN

Branch target buffer prediction enable.
0 Branch target buffer prediction disabled
1 Branch target buffer prediction enabled (enables BTB to predict branches)
When the BPEN bit is cleared, no hits will be generated from the BTB, and no new entries will be
allocated. Entries are not automatically invalidated when BPEN is cleared; the BBFI bit controls
entry invalidation. BPEN operates independently of BPRED, and will be used even with a BPRED
setting of 00.

Table 2-12. Branch Unit Control and Status Register
1

These bits are not implemented and should be written with zero for future compatibility.

2.4.14

L1 Cache Control and Status Registers (L1CSR0, L1CSR1)

The L1CSR0 and L1CSR1 registers are used for general control and status of the L1 cache. A description
of the L1CSR0 and L1CSR1 registers can be found in Chapter 9, “L1 Cache.”

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-26

Freescale Semiconductor

2.4.15

L1 Cache Configuration Registers (L1CFG0, L1CFG1)

The L1CFG0 and L1CGF1 registers provide configuration information for the L1 caches supplied with
this version of the e200 CPU core. A description of the L1CFG0 and L1CGF1 registers can be found in
Chapter 9, “L1 Cache.”

2.4.16

L1 Cache Flush and Invalidate Register (L1FINV1)

The L1FINV0 and L1FINV1 registers provide software-based flush and invalidation control for the L1
instruction cache supplied with this version of the e200 CPU core. A description of the L1FINV1 register
can be found in Chapter 9, “L1 Cache.”

2.4.17

MMU Control and Status Register (MMUCSR0)

The MMUCSR0 register is used for general control of the MMU. A description of the MMUCSR register
can be found in Chapter 10, “Memory Management Unit.”

2.4.18

MMU Configuration Register (MMUCFG)

The MMUCFG register provides configuration information for the MMU supplied with this version of the
e200 CPU core. A description of the MMUCFG register can be found in Chapter 10, “Memory
Management Unit.”

2.4.19

TLB Configuration Registers (TLB0CFG, TLB1CFG)

The TLB0CFG and TLB1CFG registers provide configuration information for the MMU TLBs supplied
with this version of the e200 CPU core. A description of these registers can be found in Chapter 10,
“Memory Management Unit.”

2.5

SPR Register Access

SPRs are accessed with the mfspr and mtspr instructions. The following sections outline additional access
requirements.”

2.5.1

Invalid SPR References

System behavior when an invalid SPR is referenced depends on the apparent privilege level of the register.
The register privilege level is determined by bit 5 in the SPR address. If the invalid SPR is accessible in
user mode, then an illegal exception is generated. If the invalid SPR is accessible only in supervisor mode
and the CPU core is in supervisor mode (MSR[PR] = 0), then an illegal exception is generated. If the
invalid SPR address is accessible only in supervisor mode and the CPU is not in supervisor mode
(MSR[PR] = 1), then a privilege exception is generated.
Note that writes to read-only SPRs and reads of write-only SPRs are treated as invalid SPR references.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-27

Table 2-13 lists the system response to an invalid SPR.
Table 2-13. System Response to Invalid SPR Reference

2.5.2

SPR address bit 5

Mode

MSRPR

Response

0

—

—

Illegal exception

1

Supervisor

0

Illegal exception

1

User

1

Privilege exception

Synchronization Requirements for SPRs

With the exception of the following registers, there are no synchronization requirements for accessing
SPRs beyond those stated in the Power ISA embedded category. The EREF contains a complete
description of synchronization requirements.
Software requirements for synchronization before or after accessing these registers are shown in
Table 2-14. The notation CSI in the table refers to a Context Synchronizing instruction which include sc,
isync, rfi, rfci, and rfdi.
Table 2-14. Additional synchronization requirements for SPRs
Context Altering Event or Instruction

Required
Before

Required
After

mtmsr[UCLE]

none

CSI

mtmsr[SPE]

none

CSI

Debug Counter register

msync

none

DBSR

Debug Status register

msync

none

HID0

Hardware implementation dependent reg 0

none

none

HID1

Hardware implementation dependent reg 1

msync

none

L1CSR0,
L1CSR1

L1 cache control and status registers 0,1

msync

none

L1FINV1

L1 cache flush and invalidate control register 1

msync

none

CSI

none

Notes

mfspr
DBCNT

MMUCSR

MMU control and status register 0

1

mtspr
BUCSR

Branch Unit Control and Status Register

none

CSI

DBCNT

Debug Counter register

none

CSI

DBCR0

Debug Control Register 0

none

CSI

DBCR1

Debug Control Register 1

none

CSI

DBCR2

Debug Control Register 2

none

CSI

DBCR3

Debug control register 3

none

CSI

DBCR4

Debug control register 4

none

CSI

1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-28

Freescale Semiconductor

Table 2-14. Additional synchronization requirements for SPRs (Continued)
Context Altering Event or Instruction

Required
Before

Required
After

DBCR5

Debug control register 5

none

CSI

DBCR6

Debug control register 6

none

CSI

DBSR

Debug Status Register

msync

none

HID0

Hardware implementation dependent reg 0

CSI

isync

HID1

Hardware implementation dependent reg 1

msync,
isync

CSI

L1CSR0

L1 cache control and status register 0

msync,
isync

CSI

L1CSR1

L1 cache control and status registers 1

none

CSI

L1FINV1

L1 cache flush and invalidate control register 1

msync

CSI

MMU MAS registers

none

CSI

MMU control and status register 0

CSI

CSI

PID0 register

none

CSI

SPEFSCR register

none

CSI2

MASx
MMUCSR
PID
SPEFSCR

Notes

Notes:
1. not required if counter is not currently enabled
2. not required for status bit clearing, required for altering exception enable or rounding mode bits

2.5.3

Special Purpose Register Summary

Power ISA embedded category and implementation-specific SPRs for the e200 core are listed in
Table 2-15. All registers are 32-bits in size. Register bits are numbered from bit 0 to bit 31 (most significant
to least significant). Shaded entries represent optional registers. An SPR register may be read or written
with the mfspr and mtspr instructions. In the instruction syntax, compilers should recognize the
mnemonic name given in the table below.
Table 2-15. Special Purpose Registers
Mnemonic

Name

SPR
Number

Access

Privileged

e200
Specific

1013

R/W

Yes

Yes

BUCSR

Branch Unit Control and Status Register

CSRR0

Critical Save/Restore Register 0

58

R/W

Yes

No

CSRR1

Critical Save/Restore Register 1

59

R/W

Yes

No

CTR

Count Register

9

R/W

No

No

DAC1

Data Address Compare 1

316

R/W

Yes

No

DAC2

Data Address Compare 2

317

R/W

Yes

No

Debug Counter register

562

R/W

Yes

Yes

DBCNT

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-29

Table 2-15. Special Purpose Registers (Continued)
Mnemonic

Name

SPR
Number

Access

Privileged

e200
Specific

DBCR0

Debug Control Register 0

308

R/W

Yes

No

DBCR1

Debug Control Register 1

309

R/W

Yes

No

DBCR2

Debug Control Register 2

310

R/W

Yes

No

DBCR3

Debug control register 3

561

R/W

Yes

Yes

DBCR4

Debug control register 4

563

R/W

Yes

Yes

DBCR5

Debug control register 5

564

R/W

Yes

Yes

DBCR6

Debug control register 5

603

R/W

Yes

Yes

Debug external resource control register 0

569

Read-only

Yes

Yes

Yes

No

DBERC0
DBSR

Debug Status Register

304

Read/Clear1

DDAM

Debug Data Acquisition Messaging register

576

R/W

No

Yes

DEAR

Data Exception Address Register

61

R/W

Yes

No

Decrementer

22

R/W

Yes

No

DECAR

Decrementer Auto-Reload

54

R/W

Yes

No

DEVENT

Debug Event register

975

R/W

No

Yes

DSRR0

Debug save/restore register 0

574

R/W

Yes

Yes

DSRR1

Debug save/restore register 1

575

R/W

Yes

Yes

DVC1

Data Value Compare 1

318

R/W

Yes

No

DVC2

Data Value Compare 2

319

R/W

Yes

No

ESR

Exception Syndrome Register

62

R/W

Yes

No

HID0

Hardware implementation dependent reg 0

1008

R/W

Yes

Yes

HID1

Hardware implementation dependent reg 1

1009

R/W

Yes

Yes

IAC1

Instruction Address Compare 1

312

R/W

Yes

No

IAC2

Instruction Address Compare 2

313

R/W

Yes

No

IAC3

Instruction Address Compare 3

314

R/W

Yes

No

IAC4

Instruction Address Compare 4

315

R/W

Yes

No

IAC5

Instruction Address Compare 5

565

R/W

Yes

Yes

IAC6

Instruction Address Compare 6

566

R/W

Yes

Yes

IAC7

Instruction Address Compare 7

567

R/W

Yes

Yes

IAC8

Instruction Address Compare 8

568

R/W

Yes

Yes

IVOR0

Interrupt Vector Offset Register 0

400

R/W

Yes

No

IVOR1

Interrupt Vector Offset Register 1

401

R/W

Yes

No

IVOR2

Interrupt Vector Offset Register 2

402

R/W

Yes

No

DEC

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-30

Freescale Semiconductor

Table 2-15. Special Purpose Registers (Continued)
Mnemonic

Name

SPR
Number

Access

Privileged

e200
Specific

IVOR3

Interrupt Vector Offset Register 3

403

R/W

Yes

No

IVOR4

Interrupt Vector Offset Register 4

404

R/W

Yes

No

IVOR5

Interrupt Vector Offset Register 5

405

R/W

Yes

No

IVOR6

Interrupt Vector Offset Register 6

406

R/W

Yes

No

IVOR7

Interrupt Vector Offset Register 7

407

R/W

Yes

No

IVOR8

Interrupt Vector Offset Register 8

408

R/W

Yes

No

IVOR9

Interrupt Vector Offset Register 9

409

R/W

Yes

No

IVOR10

Interrupt Vector Offset Register 10

410

R/W

Yes

No

IVOR11

Interrupt Vector Offset Register 11

411

R/W

Yes

No

IVOR12

Interrupt Vector Offset Register 12

412

R/W

Yes

No

IVOR13

Interrupt Vector Offset Register 13

413

R/W

Yes

No

IVOR14

Interrupt Vector Offset Register 14

414

R/W

Yes

No

IVOR15

Interrupt Vector Offset Register 15

415

R/W

Yes

No

IVOR32

Interrupt vector offset register 32

528

R/W

Yes

Yes

IVOR33

Interrupt vector offset register 33

529

R/W

Yes

Yes

IVOR34

Interrupt vector offset register 34

530

R/W

Yes

Yes

Interrupt Vector Prefix Register

63

R/W

Yes

No

Link Register

8

R/W

No

No

IVPR
LR
L1CFG0

L1 cache config register 0

515

Read-only

No

Yes

L1CFG1

L1 cache config register 1

516

Read-only

No

Yes

L1CSR0

L1 cache control and status register 0

1010

R/W

Yes

Yes

L1CSR1

L1 cache control and status register 1

1011

R/W

Yes

Yes

L1FINV1

L1 cache flush and invalidate control register 0

959

R/W

Yes

Yes

MAS0

MMU assist register 0

624

R/W

Yes

Yes

MAS1

MMU assist register 1

625

R/W

Yes

Yes

MAS2

MMU assist register 2

626

R/W

Yes

Yes

MAS3

MMU assist register 3

627

R/W

Yes

Yes

MAS4

MMU assist register 4

628

R/W

Yes

Yes

MAS6

MMU assist register 6

630

R/W

Yes

Yes

MCAR

Machine Check Address Register

573

R/W

Yes

Yes

Machine Check Syndrome Register

572

R/Clear2

Yes

Yes

Machine Check Save/Restore Register 0

570

R/W

Yes

Yes

MCSR
MCSRR0

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-31

Table 2-15. Special Purpose Registers (Continued)
Mnemonic

Name

SPR
Number

Access

Privileged

e200
Specific

MCSRR1

Machine Check Save/Restore Register 1

571

R/W

Yes

Yes

MMUCFG

MMU configuration register

1015

Read-only

Yes

Yes

MMUCSR

MMU control and status register 0

1012

R/W

Yes

Yes

PID0

Process ID Register

48

R/W

Yes

No

PIR

Processor ID Register

286

R/W

Yes

No

PVR

Processor Version Register

287

Read-only

Yes

No

SPE APU status and control register

512

R/W

No

No

SPRG0

SPR General 0

272

R/W

Yes

No

SPRG1

SPR General 1

273

R/W

Yes

No

SPRG2

SPR General 2

274

R/W

Yes

No

SPRG3

SPR General 3

275

R/W

Yes

No

SPRG4

SPR General 4

260

Read-only

No

No

276

R/W

Yes

No

261

Read-only

No

No

277

R/W

Yes

No

262

Read-only

No

No

278

R/W

Yes

No

263

Read-only

No

No

279

R/W

Yes

No

SPEFSCR

SPRG5

SPRG6

SPRG7

SPR General 5

SPR General 6

SPR General 7

SPRG8

SPR General 8

604

R/W

Yes

Yes

SPRG9

SPR General 9

605

R/W

Yes

Yes

SRR0

Save/Restore Register 0

26

R/W

Yes

No

SRR1

Save/Restore Register 1

27

R/W

Yes

No

SVR

System Version Register

1023

Read-only

Yes

Yes

TBL

Time Base Lower

268

Read-only

No

No

284

Write-only

Yes

No

269

Read-only

No

No

285

Write-only

Yes

No

Timer Control Register

340

R/W

Yes

No

TLB0CFG

TLB0 configuration register

688

Read-only

Yes

Yes

TLB1CFG

TLB1 configuration register

689

Read-only

Yes

Yes

Timer Status Register

336

Read/Clear3

Yes

No

TBU

TCR

TSR

Time Base Upper

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-32

Freescale Semiconductor

Table 2-15. Special Purpose Registers (Continued)
Mnemonic
USPRG0
XER

Name
User SPR General 0
Integer Exception Register

SPR
Number

Access

Privileged

e200
Specific

256

R/W

No

No

1

R/W

No

No

Notes:
1

The Debug Status Register can be read using mfspr RT,DBSR. The Debug Status Register cannot be directly
written to. Instead, bits in the Debug Status Register corresponding to ‘1’ bits in GPR(RS) can be cleared using
mtspr DBSR,RS.
2
The Machine Check Syndrome Register can be read using mfspr RT,MCSR. The Machine Check Syndrome
Register cannot be directly written to. Instead, bits in the Machine Check Syndrome Register corresponding to ‘1’
bits in GPR(RS) can be cleared using mtspr MCSR,RS.
3
The Timer Status Register can be read using mfspr RT,TSR. The Timer Status Register cannot be directly written
to. Instead, bits in the Timer Status Register corresponding to ‘1’ bits in GPR(RS) can be cleared using mtspr
TSR,RS.

2.6

Reset Settings

Table 2-16 shows the state of the Power ISA architected registers and other optional resources immediately
following a system reset.
Table 2-16. Reset Settings for e200 Resources
Resource

system reset setting

Program Counter

p_rstbase[0–29] || 2’b00

GPRs

Unaffected1

CR

Unaffected1

BUCSR

0x0000_0000

CSRR0

Unaffected1

CSRR1

Unaffected1

CTR

Unaffected1

DAC1

0x0000_00002

DAC2

0x0000_00002

DBCNT

Unaffected1

DBCR0

0x0000_00002

DBCR1

0x0000_00002

DBCR2

0x0000_00002

DBCR3

0x0000_00002

DBCR4

0x0000_00002

DBCR5

0x0000_00002

DBCR6

0x0000_00002

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-33

Table 2-16. Reset Settings for e200 Resources (Continued)
Resource

system reset setting

DBSR

0x1000_00002

DDAM

0x0000_00002

DEAR

Unaffected1

DEC

Unaffected1

DECAR

Unaffected1

DEVENT

0x0000_0002

DSRR0

Unaffected1

DSRR1

Unaffected1

DVC1

Unaffected1

DVC2

Unaffected1

ESR

0x0000_0000

HID0

0x0000_0000

HID1

0x0000_0000

IAC1

0x0000_00002

IAC2

0x0000_00002

IAC3

0x0000_00002

IAC4

0x0000_00002

IAC5

0x0000_00002

IAC6

0x0000_00002

IAC7

0x0000_00002

IAC8

0x0000_00002

IVOR0

Unaffected1

IVOR1

Unaffected1

IVOR2

Unaffected1

IVOR3

Unaffected1

IVOR4

Unaffected1

IVOR5

Unaffected1

IVOR6

Unaffected1

IVOR7

Unaffected1

IVOR8

Unaffected1

IVOR9

Unaffected1

IVOR10

Unaffected1

IVOR11

Unaffected1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-34

Freescale Semiconductor

Table 2-16. Reset Settings for e200 Resources (Continued)
Resource

system reset setting

IVOR12

Unaffected1

IVOR13

Unaffected1

IVOR14

Unaffected1

IVOR15

Unaffected1

IVPR

Unaffected1

LR

Unaffected1

L1CFG0, L1CFG13

—

L1CSR0, 1

0x0000_0000

L1FINV1

0x0000_0000

MAS0

Unaffected1

MAS1

Unaffected1

MAS2

Unaffected1

MAS3

Unaffected1

MAS4

Unaffected1

MAS6

Unaffected1

MCAR

Unaffected1

MCSR

0x0000_0000

MCSRR0

Unaffected1

MCSRR1

Unaffected1

MMUCFG3

—

MSR

0x0000_0000

PID0

0x0000_0000

PIR

0x0000_00 || p_cpuid[0–7]

PVR3

—

SPEFSCR

0x0000_0000

SPRG0

Unaffected1

SPRG1

Unaffected1

SPRG2

Unaffected1

SPRG3

Unaffected1

SPRG4

Unaffected1

SPRG5

Unaffected1

SPRG6

Unaffected1

SPRG7

Unaffected1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

2-35

Table 2-16. Reset Settings for e200 Resources (Continued)
Resource

system reset setting

SPRG8

Unaffected1

SPRG9

Unaffected1

SRR0

Unaffected1

SRR1

Unaffected1

SVR3

—

TBL

Unaffected1

TBU

Unaffected1

TCR

0x0000_0000

TSR

0x0000_0000

TLB0CFG3

—

TLB1CFG3

—

USPRG0

Unaffected1

XER

0x0000_0000

1

Undefined on m_por assertion, unchanged on p_reset_b assertion
Reset by processor reset p_reset_b if DBCR0[EDM]=0, as well as
unconditionally by m_por.
3 Read-only registers
2

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
2-36

Freescale Semiconductor

Chapter 3
Instruction Model
This chapter provides additional information about Power Architecture technology as it relates specifically
to the e200z4.
The e200z4 is a 32-bit implementation of Power Architecture technology as defined in the Power ISA.
This architecture specification includes a recognition that different processor implementations may require
clarifications, extensions, or deviations from the architectural descriptions.

3.1

Unsupported Instructions and Instruction Forms

Because the e200z4 is a 32-bit Power ISA embedded core, all of the instructions defined for 64-bit
implementations of the Power ISA architecture are illegal on the e200. See the EREF for more information
on 64-bit instructions. The e200 takes an illegal instruction exception type program interrupt upon
encountering a 64-bit Power ISA instruction.
The e200z4 core does not support the instructions listed in Table 3-1. An unimplemented instruction or
FP-unavailable exception is generated if the processor attempts to execute one of these instructions.
Table 3-1. List of Unsupported Instructions
Type/Name

Mnemonics

String Instructions

lswi, lswx,
stswi, stswx

Floating Point
Instructions

fxxxx, lfxxx,
sfxxxx, mcrfs,
mffs, mtfxxx

Device control register
and Move from APID

mfapidi, mfdcrx,
mtdcrx

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-1

3.2

Optionally Supported Instructions and Instruction Forms

e200 cores optionally support the instructions listed in Table 3-2 if a cache and/or TLB is present. An
instruction exception may be generated if the processor attempts to execute one of these instructions and
the related functional block is not present. The specific instruction may also be treated as a no-op.
Table 3-2. List of Optionally Supported Instructions
Type / Name

Mnemonics

Unit

Cache Management
Instructions1

dcba, dcbf,
dcbi, dcbt,
dcbtst, dcbst,
dcbz

Data Cache

Cache Management
Instructions2

icbi, icbt

Instruction
Cache

Cache Locking
Instructions3

dcbtls,
dcbtstls,
dcblc

Data Cache

Cache Locking
Instructions2

icbtls, icblc

Instruction
Cache

TLB Management
Instructions2

tlbivax, tlbre,
tlbsx, tlbsync,
tlbwe

TLB

DCR Management 2

mfdcr, mtdcr

DCR

1

These instructions are not supported and are treated as
no-ops, with the exception of dcbz which results in an
Alignment Interrupt, and dcbi, which is treated as a
privileged no-op.
2
These instructions are supported by e200z446n3
3 These instructions are not supported and are treated as
no-ops.

3.3

Implementation Specific Instructions

Several instructions defined in the Power ISA are implementation specific. Table 3-3 summarizes the e200
implementation-specific instructions.
Table 3-3. Implementation-specific Instruction Summary
Mnemonic

Implementation Details

mfapidi
mfdcrx

Unimplemented instructions

mtdcrx

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-2

Freescale Semiconductor

Table 3-3. Implementation-specific Instruction Summary
Mnemonic

Implementation Details

stbcx., sthcx., stwcx.

Address match with prior
lbarx, lharx, or lwarx not
required for store to be
performed

mfdcr, mtdcr1

Optionally supported
instructions

1

3.4

The e200 CPU takes an illegal instruction exception
for unsupported DCR values

Power ISA Instruction Extensions

This section describes the various extensions to the architecture to support the VLE functionality.
• rfci, rfdi, rfi, rfmci—No longer mask bit 62 of CSRR0, DSRR0, or SRR0 respectively. The
destination address is [D,C, MC]SRR0[32:62] || 0b0.
• bclr, bclrl, bcctr, bcctrl—No longer mask bit 62 of the LR or CTR respectively. The destination
address is [LR,CTR][32:62] || 0b0.

3.5

Memory Access Alignment Support

The e200 core provides hardware support for unaligned memory accesses. However, there is a
performance degradation for accesses which cross a 64-bit (8 byte) boundary; the throughput of the
load/store unit is degraded to 1 misaligned load every 2 cycles. Stores which are misaligned across a 64-bit
(8 byte) boundary can be translated at a rate of 2 cycles per store. Frequent use of unaligned memory
accesses is discouraged because of the impact on performance.
NOTE
Accesses which cross a translation boundary may be restarted. A misaligned
access which crosses a page boundary is restarted in its entirety in the event
of a TLB miss of the second portion of the access. This may result in the first
portion being accessed twice.
Accesses that cross a translation boundary where the endianness changes
cause a byte ordering DSI exception.

3.6

Memory Synchronization and Reservation Instructions

The msync instruction provides a synchronization function and a memory barrier function. This
instruction waits for all preceding instructions and data memory accesses to complete before the msync
instruction completes. Subsequent instructions in the instruction stream are not initiated until after the
msync instruction completes to ensure these functions have been performed.
On the e200 core, the mbar instruction with MO = 0, 1, or 2 behaves similarly to the msync instruction,
but only waits for previous data memory accesses rather than all previous instructions to complete before
completing. The mbar instruction may be preferred for most memory synchronization operations, since it
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-3

does not stall instruction execution if no load or store operations remain in the execution pipeline, unlike
the msync instruction. The mbar instruction with the MO field not equal to 0, 1, or 2 is treated as illegal
by the e200 core.
The e200 core implements the lwarx and stwcx. instructions as described in the Power ISA embedded
category, as well as the lharx, lbarx, sthcx., and stbcx. instructions defined by the Freescale EIS enhanced
reservation instruction set. If the EA is not a multiple of the access size for these instructions, an alignment
interrupt is invoked. The e200 allows reservation instructions to access a page that is marked as
write-through required or cache-inhibited, and no data storage interrupt is invoked.
As allowed by the Power ISA embedded category, the e200 core does not require that for a reservation
store-type instruction to succeed, the EA of the store-type instruction must be to the same reservation
granule as the EA of a preceding reservation load-type instruction. Reservation granularity is
implementation-dependent. The e200 core does not define a reservation granule explicitly; reservation
granularity is defined by external logic. When no external logic is provided, the e200 core performs no
address comparison checking, thus the effective implementation granularity is null.
The e200 core implements an internal status flag (HID1[ATS]) representing reservation status. This flag
is set when a load-type reservation instruction is executed and completes without error, and it remains set
until it is cleared by one of the following mechanisms:
• Execution of a store-type reservation instruction is completed without error.
• The e200 core p_rsrv_clr input signal is asserted.
• The reservation is invalidated when an external input, critical input, or non-maskable interrupt is
signaled and the HID0[ICR] bit is set.
When the e200 core decodes a store-type reservation instruction, it checks the value of the local reservation
flag (HID1[ATS]). If the status indicates that no reservation is active, then the store-type reservation
instruction is treated as a nop. No exceptions will be taken, and no access is performed, thus no data
breakpoint will occur, regardless of matching the data breakpoint attributes.
The e200 core provides the input signal p_xfail_b, which is sampled at termination of a st[b,h,w]cx. store
transfer to allow an external agent or mechanism to indicate that the st[b,h,w]cx. instruction has failed to
update memory, even though a reservation existed for the store at the time it was issued. This is not
considered an error, and will cause the condition codes for the st[b,h,w]cx. instruction to be written as if
a reservation did not exist for the st[b,h,w]cx. instruction. In addition, any outstanding reservation will be
cleared.
The p_rsrv_clr input signal is not intended for normal use in managing reservations. It is provided for
specialized system applications. The normal bus protocol is used to manage reservations using external
reservation logic in systems with multiple coherent bus masters, using the transfer type and transfer
response signals. In single coherent master systems, no external logic is required, and the internal
reservation flag is sufficient to support multi-tasking applications.

3.7

Branch Prediction

The e200z4 instruction fetching mechanism uses a branch target buffer (BTB) that holds branch target
addresses combined with a 2-bit saturating up-down counter scheme for branch prediction. Branch paths

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-4

Freescale Semiconductor

are predicted by either the branch target buffer (BTB hit) or a selectable static prediction algorithm (BTB
miss) and subsequently checked to see if the prediction was correct. This enables operation beyond a
conditional branch without waiting for the branch to be decoded and resolved.
The instruction fetch unit predicts the direction of the branch as follows:
• Predict taken for any backward branch whose fetch address hits in the BTB and is predicted taken
by the counter or misses in the BTB and static prediction control in BUCSR for backward branches
indicates “predict taken.” Otherwise predict not-taken.
• Predict taken for any forward branch whose fetch address hits in the BTB and is predicted taken
by the counter or misses in the BTB and static prediction control in BUCSR for forward branches
indicates “predict taken.” Otherwise predict not-taken.

3.8

Interruption of Instructions by Interrupt Requests

In general, the core samples pending non-maskable interrupts, external input, and critical input interrupt
requests at instruction boundaries. However, in order to reduce interrupt latency, long running instructions
may be interrupted prior to completion. Instructions in this class include divides (divw[uo][.], efsdiv,
evfsdiv, evdivw[su]), floating square root (efssqrt, evfssqrt), load multiple word (lmw, e_lmw), and store
multiple word (stmw, e_stmw). In addition, the e_lmvgprw, e_stmvgprw, e_lmvsprw, and e_stmvsprw
Volatile Context Save/Restore instructions may also be interrupted prior to completion. When interrupted
prior to completion, the value saved in SRR0/CSRR0/MCSRR0 will be the address of the interrupted
instruction. The instruction will be restarted from the beginning after returning to it from the interrupt
handler.

3.9

New e200z4 Categories

The e200z4 core implements the following Freescale EIS categories that extend the Power ISA:
• The ISEL category, which is described in Section 3.10, “ISEL Instruction.”
• The Enhanced Debug category and the Debug Notify Halt Instruction, which are described in
Section 3.11, “Enhanced Debug.”
• The Machine Check category ,which is described in Section 3.12, “Machine Check.”
• The WAIT category, which is described in Section 3.13, “WAIT Instruction.”
• The Volatile Context Save/Restore category, which is described in Section 3.15, “Volatile Context
Save/Restore.”
• The Embedded Floating-Point category version 2, described along with supporting instructions in
Chapter 6, “Embedded Floating-Point Unit, Version 2.”
• The Signal Processing Extension (SPE) category version 1.1, described along with supporting
instructions in Chapter 7, “Signal Processing Extension Unit.”
• The Cache Line-Locking category, which is described in Section 9.10, “Cache Line
Locking/Unlocking.”
• The Enhanced Reservations category, which is described in Section 3.14, “Enhanced
Reservations.”

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-5

3.10

ISEL Instruction

The isel instruction provides a way to select one of two registers and place the result in a destination
register under the control of a predicate value supplied by a bit in the condition register. This instruction
can be used to eliminate branches in software and in many cases improve performance. This instruction
can also increase program execution time determinism by eliminating the need to predict the target and
direction of the branches replaced by the integer select function. The instruction form and definition is as
follows:

isel

isel

Integer Select

isel

RT, RA, RB, crb
31
0

RT
5

6

RA
10 11

RB
15 16

crb
20 21

01111
25 26

0
30 31

if RA=0 then a ← 320 else a ← GPR(RA)
c = CRcrb
if c then GPR(RT) ← a
else GPR(RT) ← GPR(RB)

For isel, if the bit of the CR specified by (crb) is set, the contents of RA|0 are copied into RT. If the bit of
the CR specified by (crb) is clear, the contents of RB are copied into RT.
Other registers altered:
• None

3.11

Enhanced Debug

The e200z4 implements the Power ISA embedded debug architecture to support the capability to handle
the debug interrupt as an additional interrupt level. To support this interrupt level, a new ‘return from
debug interrupt’ (rfdi, se_rfdi) instruction is defined as part of the debug instruction set, along with a new
pair of save/restore registers, DSRR0, and DSRR1.
When the debug capability is enabled (HID0[DAPUEN] = 1), the rfdi or se_rfdi instruction provides a
means to return from a debug interrupt. See Section 2.4.11, “Hardware Implementation Dependent
Register 0 (HID0)” for more information about enabling the debug functionality.
The instruction form and definition is as follows.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-6

Freescale Semiconductor

rfdi

rfdi

Return From Debug Interrupt

rfdi
19
0

///
5

0000100111

6

0

20 21

30 31

MSR ←DSRR1
PC ←DSRR00:30 || 10

The rfdi instruction is used to return from a debug interrupt, or as a means of simultaneously establishing
a new context and synchronizing on that new context.
The contents of debug save/restore register 1 are placed into the machine state register. If the new machine
state register value does not enable any pending exceptions, then the next instruction is fetched, under
control of the new machine state register value from the address DSRR0[0–30]|| 1’b0. If the new machine
state register value enables one or more pending exceptions, the interrupt associated with the highest
priority pending exception is generated; in this case the value placed into save/restore register 0 or critical
save/restore register 0 by the interrupt processing mechanism is the address of the instruction that would
have been executed next had the interrupt not occurred (that is, the address in debug save/restore register
0 at the time of the execution of the rfdi).
Execution of this instruction is privileged and context synchronizing.
Special registers altered:
• MSR
When the debug functionality is disabled (HID0[DAPUEN] = 0), this instruction is treated as an illegal
instruction.

se_rfdi

se_rfdi

Return From Debug Interrupt

se_rfdi
0
0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0
15

MSR ←DSRR1
PC ←DSRR032:62 || 0b0

The rfdi or se_rfdi instruction is used either to return from a debug interrupt or as a means of
simultaneously establishing a new context and synchronizing on that new context.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-7

The contents of debug save/restore register 1 are placed into the machine state register. If the new machine
state register value does not enable any pending exceptions, then the next instruction is fetched, under
control of the new machine state register value from the address DSRR0[32–62]|| 0b0. If the new machine
state register value enables one or more pending exceptions, the interrupt associated with the highest
priority pending exception is generated; in this case the value placed into save/restore register 0 or critical
save/restore register 0 by the interrupt processing mechanism is the address of the instruction that would
have been executed next had the interrupt not occurred (that is, the address in debug save/restore register
0 at the time of the execution of the rfdi or se_rfdi).
Execution of this instruction is privileged and context synchronizing.
Special registers altered:
• MSR
When the debug functionality is disabled (HID0[DAPUEN] = 0), this instruction is treated as an illegal
instruction.

3.11.1

Debug Notify Halt Instructions

The dnh, e_dnh, and se_dnh instructions provide a bridge between the execution of instructions on the
core in a non-halted mode and an external debug facility. dnh, e_dnh, and se_dnh allows software to
transition the core from a running state to a debug halted state if enabled by an external debugger. dnh
provides the external debugger with bits reserved in the instruction itself to pass additional information.
When the e200z4 CPU enters a debug halted state due to a dnh, e_dnh, or se_dnh instruction, the
instruction is stored in the CPUSCR[IR] portion and the CPUSCR[PC] value points to the instruction.
Prior to exiting the debug halted state, the external debugger should update the CPUSCR to point past the
dnh, e_dnh, or se_dnh instruction.
Note that the dnh instruction is only available in the Power ISA embedded category instruction pages, and
the e_dnh and se_dnh instructions are only available in VLE instruction pages.

dnh

dnh

Debugger Notify Halt
dnh
0

5

0 1 0 0 1 1

dui, duis

6

10

dui

11

15

16

duis

20

21

0

0

1

1

0

0

0

1

1

30

31

0

/

if EDBCR[DNH_EN] = 1 then
implementation dependent register ¨ dui
halt processor
else
illegal instruction exception

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-8

Freescale Semiconductor

Execution of the dnh instruction causes the processor to halt if the external debug facility has enabled such
action by previously setting the EDBCR[DNH_EN] bit. If the processor is halted, the contents of the dui
field are provided to the external debug facility to identify the reason for the halt.
If EDBCR[DNH_EN] has not been previously set by the external debug facility, executing the dnh
instruction produces an illegal instruction exception.
The duis field is provided to pass additional information about the halt, but requires that actions be
performed by the external debug facility to access the dnh instruction to read the contents of the field.
The dnh instruction is not privileged, and executes the same regardless of the state of MSR[PR].
Whether the processor is in IDM or EDM mode has no effect on the execution of the dnh instruction.
Other registers altered:
• None
NOTE
After the dnh instruction has executed, the instruction itself can be read
back by the Illegal Instruction Interrupt handler or the external debug
facility if the contents of the dui and duis field are of interest. If the
processor entered the Illegal Instruction Interrupt handler, software can use
SRR0 to obtain the address of the dnh instruction which caused the handler
to be invoked. If the processor is halted in debug mode, the external debug
facility can access the CPUSCR register to obtain the dnh instruction which
caused the processor to halt.

e_dnh

e_dnh

Debugger Notify Halt
e_dnh
0

5

0 1 1 1 1 1

dui, duis

6

10

dui

11

15

16

duis

20

21

0

0

0

1

1

0

0

0

0

30

31

1

/

if EDBCR[DNH_EN] = 1 then
implementation dependent register ¨ dui
halt processor
else
illegal instruction exception

Execution of the e_dnh instruction causes the processor to halt if the external debug facility has enabled
such action by previously setting the EDBCR[DNH_EN] bit. If the processor is halted, the contents of the
dui field are provided to the external debug facility to identify the reason for the halt.
If EDBCR[DNH_EN] has not been previously set by the external debug facility, executing the e_dnh
instruction produces an illegal instruction exception.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-9

The duis field is provided to pass additional information about the halt, but requires that actions be
performed by the external debug facility to access the e_dnh instruction to read the contents of the field.
The e_dnh instruction is not privileged; it executes the same regardless of the state of MSR[PR].
Whether the processor is in IDM or EDM mode has no effect on the execution of the e_dnh instruction.
Other registers altered:
• None

se_dnh

se_dnh

Debugger Notify Halt

se_dnh
0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1
15

if EDBCRDNH_EN = 1 then
halt processor
else
illegal instruction exception

Execution of the se_dnh instruction causes the processor to halt if the external debug facility has enabled
such action by previously setting the EDBCR[DNH_EN] bit.
If EDBCR[DNH_EN] has not been previously set by the external debug facility, executing the se_dnh
instruction produces an illegal instruction exception.
The se_dnh instruction is not privileged; it executes the same regardless of the state of MSR[PR].
Whether the processor is in IDM or EDM mode has no effect on the execution of the se_dnh instruction.
Other registers altered:
• None

3.12

Machine Check

The e200z4 implements the Power ISA embedded category machine check functionality to support the
capability to handle the machine check interrupt as an additional interrupt level. To support this interrupt
level, a new “return from machine check interrupt” (rfmci, se_rfmci) instruction is defined as part of the
machine check instruction set, along with a new pair of save/restore registers, MCSRR0, and MCSRR1, a
machine check syndrome register MCSR, and a machine check address register MCAR.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-10

Freescale Semiconductor

The rfmci and se_rfmci instructions provide a means to return from a machine check interrupt. The
instruction form and definitions is as follows:

rfmci

rfmci

Return From Machine Check Interrupt

rfmci
19

///

0

5

0000100110

6

20 21

0
30 31

MSR ←MCSRR1
PC ←MCSRR00:30 || 10

The rfmci instruction is used either to return from a machine check interrupt or as a means of
simultaneously establishing a new context and synchronizing on that new context.
The contents of machine check save/restore register 1 are place into the machine state register. If the new
machine state register value does not enable any pending exceptions, then the next instruction is fetched,
under control of the new machine state register value from the address MCSRR0[0–30]|| 1’b0. If the new
machine state register value enables one or more pending exceptions, the interrupt associated with the
highest priority pending exception is generated; in this case the value placed into the appropriate
save/restore register 0 by the interrupt processing mechanism is the address of the instruction that would
have been executed next had the interrupt not occurred (i.e. the address in machine check save/restore
register 0 at the time of the execution of the rfmci).
Execution of this instruction is privileged and context synchronizing.
Special registers altered:
• MSR
NOTE
This instruction is only available in 32-bit Power ISA embedded category
instruction pages, it is not available in VLE instruction pages.

se_rfmci

se_rfmci

Return From Machine Check Interrupt

se_rfmci
0
0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1
15

MSR ←MCSRR1
PC ←MCSRR00:30 || 10
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-11

The se_rfmci instruction is used to return from a machine check interrupt, or as a means of simultaneously
establishing a new context and synchronizing on that new context.
The contents of machine check save/restore register 1 are placed into the machine state register. If the new
machine state register value does not enable any pending exceptions, the next instruction is fetched under
control of the new machine state register value from the address MCSRR0[0–30]|| 1’b0. If the new
Machine State Register value enables one or more pending exceptions, the interrupt associated with the
highest priority pending exception is generated; in this case the value placed into the appropriate
Save/Restore Register 0 by the interrupt processing mechanism is the address of the instruction that would
have been executed next had the interrupt not occurred (that is, the address in Machine Check Save/Restore
Register 0 at the time of the execution of the se_rfmci).
Execution of this instruction is privileged and context synchronizing.
Special Registers Altered:
• MSR
NOTE
This instruction is only available in VLE instruction pages, it is not available
in 32-bit Power ISA embedded category instruction pages.

3.13

WAIT Instruction

The wait instruction allows software to cease all synchronous activity, waiting for an asynchronous
interrupt or debug interrupt to occur. The instruction can be used to cease processor activity in both user
and supervisor modes. Asynchronous interrupts which will cause the waiting state to be exited if enabled
are critical input, external input, machine check pin (p_mcp_b). Non-maskable interrupts (p_nmi_b) will
also cause the waiting state to be exited.

wait

wait

Wait for Interrupt
wait
0

0

5

1

1

1

1

1

6

10 11

15 16

///

20 21

0

31

0

0

0

1

1

1

1

1

0

/

The wait instruction provides an ordering function for the effects of all instructions executed by the
processor executing the wait instruction and stops synchronous processor activity. Executing a wait
instruction ensures that all instructions have completed before the wait instruction completes, causes
processor instruction fetching to cease, and ensures that no subsequent instructions are initiated until an
asynchronous interrupt or a debug interrupt occurs.
Once the wait instruction has completed, the program counter will point to the next sequential instruction.
The saved value in xSRR0 when the processor re-initiates activity will point to the instruction following
the wait instruction.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-12

Freescale Semiconductor

Execution of a wait instruction places the CPU in the waiting state and is indicated by assertion of the
p_waiting output signal. The signal will be negated after leaving the waiting state.
Software must ensure that interrupts responsible for exiting the waiting state are enabled before executing
a wait instruction.
Architecture Note: The wait instruction can be used in verification test cases to signal the end of a test
case. The encoding for the instruction is the same in both big- and little-endian modes.

3.14

Enhanced Reservations

The e200 implements the Freescale EIS enhanced reservations functionality, which extends the load and
reserve and store conditional instructions to support byte and half word data types. These instructions
operate in the same manner as the lwarx and stwcx. instructions, except for the size of the access.

Load Byte And Reserve Indexed
lbarx

RT,RA,RB
0 1 1 1 1 1
0

(X-mode)

RT
6

RA
11

RB
16

0 0 0 0 1 1 0 1 0 0 /
21

31

if RA=0 then a ← 640 else a ← GPR(RA)
if X-mode then EA ← 320 || (a + GPR(RB))32:63
RESERVE ← 1
RESERVE_ADDR ← real_addr(EA)
GPR(RT) ← 560 || MEM(EA,1)

Let the effective address (EA) be calculated as follows:
For lbarx, let EA be 32 0s concatenated with bits 32:63 of the sum of the contents of GPR[RA], or 64 0s
if RA = 0, and the contents of GPR[RB].
The byte in storage addressed by EA is loaded into GPR[RT]56:63. GPR[RT]0:55 are set to 0.
This instruction creates a reservation for use by a store byte conditional instruction. An address computed
from the EA is associated with the reservation and replaces any address previously associated with the
reservation.
Special registers altered:
None

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-13

Load Half Word And Reserve Indexed
lharx

RT,RA,RB
0 1 1 1 1 1
0

(X-mode)

RT
6

RA
11

RB
16

0 0 0 1 1 1 0 1 0 0 /
21

31

if RA=0 then a ← 640 else a ← GPR(RA)
EA ← 320 || (a + GPR(RB))32:63
RESERVE ← 1
RESERVE_ADDR ← real_addr(EA)
GPR(RT) ← 480 || MEM(EA,2)

Let the effective address (EA) be calculated as follows:
For lharx, let EA be 32 zeros concatenated with bits 32–63 of the sum of the contents of GPR[RA], or 64
zeros if RA = 0 and the contents of GPR[RB].
The half word in storage addressed by EA is loaded into GPR[RT]48:63. GPR[RT]0:47 are set to 0.
This instruction creates a reservation for use by a Store Half Word Conditional instruction. An address
computed from the EA is associated with the reservation and replaces any address previously associated
with the reservation.
EA must be a multiple of two. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers altered:
None

Store Byte Conditional Indexed
stbcx.

RS,RA,RB
0 1 1 1 1 1
0

(X-mode)

RS
6

RA
11

RB
16

1 0 1 0 1 1 0 1 1 0 1
21

31

if RA=0 then a ← 640 else a ← GPR(RA)
EA ← 320 || (a + GPR(RB))32:63
if RESERVE then
if RESERVE_ADDR = real_addr(EA) then
MEM(EA,1) ← GPR(RS)56:63
CR0 ← 0b00 || 0b1 || XERSO
else
u ← undefined 1-bit value
if u then MEM(EA,1) ← GPR(RS)56:63
CR0 ← 0b00 || u || XERSO
RESERVE ← 0
else
CR0 ← 0b00 || 0b0 || XERSO

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-14

Freescale Semiconductor

Let the effective address (EA) be calculated as follows:
For stbcx., let EA be 32 zeros concatenated with bits 32–63 of the sum of the contents of GPR[RA], or 64
zeros if RA = 0 and the contents of GPR[RB].
If a reservation exists and the storage address specified by the stbcx. is the same as that specified by the
lbarx instruction that established the reservation, the contents of bits 56–63 of GPR[RS] are stored into
the byte in storage addressed by EA and the reservation is cleared.
If a reservation exists but the storage address specified by the stbcx. is not the same as that specified by
the load and reserve instruction that established the reservation, the reservation is cleared, and it is
undefined whether the instruction completes without altering storage.
If a reservation does not exist, the instruction completes without altering storage.
CR Field 0 is set to reflect whether the store operation was performed, as follows.
CR0[LT GT EQ SO] = 0b00 || store_performed || XER[SO]
Special registers altered:
CR0

Store Half Word Conditional Indexed
sthcx.

RS,RA,RB
0 1 1 1 1 1
0

(X-mode)

RS
6

RA
11

RB
16

1 0 1 1 0 1 0 1 1 0 1
21

31

if RA=0 then a ← 640 else a ← GPR(RA)
EA ← 320 || (a + GPR(RB))32:63
if RESERVE then
if RESERVE_ADDR = real_addr(EA) then
MEM(EA,2) ← GPR(RS)48:63
CR0 ← 0b00 || 0b1 || XERSO
else
u ← undefined 1-bit value
if u then MEM(EA,2) ← GPR(RS)48:63
CR0 ← 0b00 || u || XERSO
RESERVE ← 0
else
CR0 ← 0b00 || 0b0 || XERSO

Let the effective address (EA) be calculated as follows:
For sthcx., let EA be 32 zeros concatenated with bits 32–63 of the sum of the contents of GPR[RA], or 64
zeros if RA = 0 and the contents of GPR[RB].
If a reservation exists and the storage address specified by the sthcx. is the same as that specified by the
lharx instruction that established the reservation, the contents of bits 48–63 of GPR[RS] are stored into
the half word in storage addressed by EA and the reservation is cleared.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-15

If a reservation exists but the storage address specified by the sthcx. is not the same as that specified by
the load and reserve instruction that established the reservation, the reservation is cleared, and it is
undefined whether the instruction completes without altering storage.
If a reservation does not exist, the instruction completes without altering storage.
CR Field 0 is set to reflect whether the store operation was performed, as follows.
CR0[LT GT EQ SO] = 0b00 || store_performed || XER[SO]
EA must be a multiple of two. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers altered:
CR0

3.15

Volatile Context Save/Restore

The e200 implements the Power ISA embedded category volatile context save/restore instruction set to
support the capability to quickly save and restore volatile register context on entry into an interrupt handler.
To support this functionality, a new set of instructions has been defined as part of the volatile context
save/restore instruction set, as shown in Table 3-4.
Table 3-4. Volatile Context Save/Restore Instruction Set
Instruction

Definition

e_lmvgprw, e_stmvgprw

Load/Store Multiple Volatile GPRS (r0, r3:r12)

e_lmvsprw, e_stmvsprw

Load/Store Multiple Volatile SPRS (CR, LR, CTR, and XER)

e_lmvsrrw, e_stmvsrrw

Load/Store Multiple Volatile SRRS (SRR0, SRR1)

e_lmvcsrrw, e_stmvcsrrw

Load/Store Multiple Volatile CSRRS (CSRR0, CSRR1)

e_lmvdsrrw, e_stmvdsrrw

Load/Store Multiple Volatile DSRRS (DSRR0, DSRR1)

e_lmvmcsrrw, e_stmvmcsrrw

Load/Store Multiple Volatile MCSRRS (MCSRR0, MCSRR1)

These instructions are available in VLE instruction pages to perform a multiple register load or store to a
word aligned memory address.

Load Multiple Volatile GPR Word
e_lmvgprw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 0 0 0
0

6

RA
11

0 0 0 1 0 0 0 0
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-16

Freescale Semiconductor

GPR(r0)32:63 ← MEM(EA,4)
EA ← (EA+4)
r ← 3
do while r ≤ 12
GPR(r)32:63 ← MEM(EA,4)
EA ← (EA+4)
r ← r + 1

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers GPR[R0] and GPR[R3] through GPR[12] are loaded from n consecutive words in
storage starting at address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
None

Store Multiple Volatile GPR Word
e_stmvgprw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 0 0 0
0

6

RA
11

0 0 0 1 0 0 0 1
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MEM(EA,4) ← GPR(r0)32:63
EA ← (EA+4)
r ← 3
do while r ≤ 12
MEM(EA,4) ← GPR(r)32:63
r ← r + 1
EA ← (EA+4)

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers GPR[R0] and GPR[R3] through GPR[12] are stored in n consecutive words in
storage starting at address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
None
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-17

Load Multiple Volatile SPR Word
e_lmvsprw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 0 0 1
0

6

RA
11

0 0 0 1 0 0 0 0
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
CR32:63 ← MEM(EA,4)
EA ← (EA+4)
LR32:63 ← MEM(EA,4)
EA ← (EA+4)
CTR32:63 ← MEM(EA,4)
EA ← (EA+4)
XER32:63 ← MEM(EA,4)

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers CR, LR, CTR, and XER are loaded from n consecutive words in storage starting at
address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
CR, LR, CTR, XER

Store Multiple Volatile SPR Word
e_stmvsprw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 0 0 1
0

6

RA
11

0 0 0 1 0 0 0 1
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MEM(EA,4) ← CR32:63
EA ← (EA+4)
MEM(EA,4) ← LR32:63
EA ← (EA+4)
MEM(EA,4) ← CTR32:63

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-18

Freescale Semiconductor

EA ← (EA+4)
MEM(EA,4) ← XER32:63

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA=0 and the sign-extended
value of the D8 instruction field.
Bits 32–63 of registers CR, LR, CTR, and XER are stored in n consecutive words in storage starting at
address EA.
EA must be a multiple of 4. If it is not, either an Alignment interrupt is invoked or the results are boundedly
undefined.
Special registers affected:
None

Load Multiple Volatile SRR Word
e_lmvsrrw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 1 0 0
0

6

RA
11

0 0 0 1 0 0 0 0
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
EA ← (GPR(RA)+EXTS(D8))

else

SRR032:63 ← MEM(EA,4)
EA ← (EA+4)
SRR132:63 ← MEM(EA,4)

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers SRR0 and SRR1 are loaded from consecutive words in storage starting at address
EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
SRR0, SRR1

Store Multiple Volatile SRR Word
e_stmvsrrw

D8(RA)
0 0 0 1 1 0 0 0 1 0 0

(D8-mode)
RA

0 0 0 1 0 0 0 1

D8

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-19

0

6

11

16

24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MEM(EA,4) ← SRR032:63
EA ← (EA+4)
MEM(EA,4) ← SRR132:63

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers SRR0 and SRR1 are stored in consecutive words in storage starting at address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
None

Load Multiple Volatile CSRR Word
e_lmvcsrrw

D8(RA)
0
0

0

0

1 1

0

0
6

(D8-mode)
0

1

0

1

RA
11

0 0
16

0

1

0

0

0

0

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
CSRR032:63 ← MEM(EA,4)
EA ← (EA+4)
CSRR132:63 ← MEM(EA,4)

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers CSRR0 and CSRR1 are loaded from consecutive words in storage starting at
address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
CSRR0, CSRR1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-20

Freescale Semiconductor

Store Multiple Volatile CSRR Word
e_stmvcsrrw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 1 0 1
0

6

RA
11

0 0 0 1 0 0 0 1
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MEM(EA,4) ← CSRR032:63
EA ← (EA+4)
MEM(EA,4) ← CSRR132:63

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers CSRR0 and CSRR1 are stored in consecutive words in storage starting at address
EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
None

Load Multiple Volatile DSRR Word
e_lmvdsrrw

D8(RA)
0
0

0

0

1 1

0

0
6

(D8-mode)
0

1

1

0

RA
11

0 0
16

0

1

0

0

0

0

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
DSRR032:63 ← MEM(EA,4)
EA ← (EA+4)
DSRR132:63 ← MEM(EA,4)

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers DSRR0 and DSRR1 are loaded from consecutive words in storage starting at
address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
DSRR0, DSRR1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-21

Store Multiple Volatile DSRR Word
e_stmvdsrrw

D8(RA)
0

0

0

1 1

0

0

0

0

1

1

(D8-mode)
0

6

RA
11

0 0

0

1

0

0

0

1

16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MEM(EA,4) ← DSRR032:63
EA ← (EA+4)
MEM(EA,4) ← DSRR132:63

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers DSRR0 and DSRR1 are stored in consecutive words in storage starting at address
EA.
EA must be a multiple of four. If it is not, either an Alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
None

Load Multiple Volatile MCSRR Word
e_lmvmcsrrw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 1 1 1
0

6

RA
11

0 0 0 1 0 0 0 0
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MCSRR032:63 ← MEM(EA,4)
EA ← (EA+4)
MCSRR132:63 ← MEM(EA,4)

Let the effective address (EA) be the sum of the contents of GPR[RA], or 0 if RA = 0 and the
sign-extended value of the D8 instruction field.
Bits 32–63 of registers MCSRR0 and MCSRR1 are loaded from consecutive words in storage starting at
address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-22

Freescale Semiconductor

Special registers affected:
MCSRR0, MCSRR1

Store Multiple Volatile MCSRR Word
e_stmvmcsrrw

D8(RA)

(D8-mode)

0 0 0 1 1 0 0 0 1 1 1
0

6

RA
11

0 0 0 1 0 0 0 1
16

D8
24

31

if RA=0 then EA ← EXTS(D8)
else
EA ← (GPR(RA)+EXTS(D8))
MEM(EA,4) ← MCSRR032:63
EA ← (EA+4)
MEM(EA,4) ← MCSRR132:63

Let the effective address (EA) be the sum of the contents of GPR(RA), or 0 if RA=0, and the sign-extended
value of the D8 instruction field.
Bits 32–63 of registers MCSRR0 and MCSRR1 are stored in consecutive words in storage starting at
address EA.
EA must be a multiple of four. If it is not, either an alignment interrupt is invoked or the results are
boundedly undefined.
Special registers affected:
None

3.16

Unimplemented SPRs and Read-Only SPRs

The e200 fully decodes the SPR field of the mfspr and mtspr instructions. If the SPR specified is undefined
and not privileged, an illegal instruction exception is generated. If the SPR specified is undefined and
privileged and the CPU is in user mode (MSRPR = 1), a privileged instruction exception is generated. If
the SPR specified is undefined and privileged and the CPU is in supervisor mode (MSRPR = 0), an illegal
instruction exception is generated.
For the mtspr instruction, if the SPR specified is read-only and not privileged, an illegal instruction
exception is generated. If the SPR specified is read-only and privileged and the CPU is in user mode
(MSR[PR] = 1), a privileged instruction exception is generated. If the SPR specified is read-only and
privileged and the CPU is in supervisor mode (MSR[PR] = 0), an illegal instruction exception is generated.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-23

3.17

Invalid Forms of Instructions

This section discusses the following invalid forms of instructions:
• Section 3.17.1, “Load and Store with Update Instructions”
• Section 3.17.2, “Load Multiple Word (lmw, e_lmw) Instruction”
• Section 3.17.3, “Branch Conditional To Count Register Instructions”
• Section 3.17.4, “Instructions With Reserved Fields Non-Zero”

3.17.1

Load and Store with Update Instructions

Power ISA defines the case when a load with update instruction specifies the same register in the RT and
RA field of the instruction as an invalid format. For this invalid case, the e200 core will perform the
instruction and update the register with the load data. In addition, if RA = 0 for any load or store with
update instruction, the e200 core will update RA (GPR0).

3.17.2

Load Multiple Word (lmw, e_lmw) Instruction

The Power ISA embedded category defines as invalid any form of the lmw or e_lmw instruction in which
RA is in the range of registers to be loaded, including the case in which RA = 0. On the e200, invalid forms
of the lmw or e_lmw instruction are executed as follows:
• Case 1—RA is in the range of RT, RA!=0.
In this case, address generation for individual loads to register targets is done using the
architectural value of RA that existed when beginning execution of this lmw or e_lmw instruction.
RA is overwritten with a value fetched from memory as if it had not been the base register. Note
that if the instruction is interrupted and restarted, the base address may be different if RA has been
overwritten.
• Case 2—RA = 0 and RT = 0.
In this case, address generation for all loads to register targets RT = 0 to RT = 31 is done
substituting the value of 0 for the RA operand.

3.17.3

Branch Conditional To Count Register Instructions

The Power ISA embedded category defines as invalid any bcctr or bcctrl instruction that specifies the
decrement and test CTR (BO[2] = 0) option. For these invalid forms of instructions, the core executes the
instruction by decrementing the CTR and branch to the location specified by the pre-decremented CTR
value if all CR and CTR conditions are met as specified by the other BO field settings.

3.17.4

Instructions With Reserved Fields Non-Zero

The Power ISA embedded category defines certain bit fields in various instructions as reserved and
specifies that these fields be set to zero. Per the Power ISA embedded category recommendation, the e200
ignores the value of the reserved field (bit 31) in X-form integer load and store instructions. The e200
ignores the value of the reserved z bits in the BO field of branch instructions. For all other instructions, the
e200 generates an illegal instruction exception if a reserved field is non-zero.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-24

Freescale Semiconductor

3.18

Instruction Summary

Table 3-5 and Table 3-6 list all 32-bit instructions in the Power ISA embedded category, as well as certain
e200-specific instructions, sorted by mnemonic. Format, opcode, mnemonic, instruction name, and page
number in the EREF are included in the table. For e200-specific instructions, page number is not shown.
Instructions not listed here, but which are part of the Power ISA embedded category will either signal an
illegal unimplemented or FP unavailable exception. Implementation-dependent instructions are noted with
a footnote. Instructions which are optionally supported (when an optional function is added to the base
core) are shown with shaded entries.
Note that specific areas of functionality are not included in the table below:
• Cache maintenance instructions
• SPE
• VLE
• WAIT
• Enhanced reservation functionality
• Volatile context save/restore functionality

3.18.1

Instruction Index Sorted by Mnemonic

Table 3-5 shows the instructions sorted by mnemonic.

Format

Opcode
Mnemonic

Instruction

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

01000 01010 0

add

Add

223

X

011111

01000 01010 1

add.

Add & record CR

223

X

011111

00000 01010 0

addc

Add Carrying

224

X

011111

00000 01010 1

addc.

Add Carrying & record CR

224

X

011111

10000 01010 0

addco

Add Carrying & record OV

224

X

011111

10000 01010 1

addco.

Add Carrying & record OV & CR

224

X

011111

00100 01010 0

adde

Add Extended with CA

225

X

011111

00100 01010 1

adde.

Add Extended with CA & record CR

225

X

011111

10100 01010 0

addeo

Add Extended with CA & record OV

225

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-25

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Format

Opcode
Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

10100 01010 1

addeo.

D

001110

----- ----- -

D

001100

D

Instruction

Add Extended with CA & record OV & CR

225

addi

Add Immediate

226

----- ----- -

addic

Add Immediate Carrying

227

001101

----- ----- -

addic.

Add Immediate Carrying & record CR

227

D

001111

----- ----- -

addis

Add Immediate Shifted

226

X

011111

00111 01010 0

addme

Add to Minus One Extended with CA

228

X

011111

00111 01010 1

addme.

Add to Minus One Extended with CA & record CR

228

X

011111

10111 01010 0

addmeo

Add to Minus One Extended with CA & record OV

228

X

011111

10111 01010 1

addmeo.

Add to Minus One Extended with CA & record OV & CR

228

X

011111

11000 01010 0

addo

Add & record OV

223

X

011111

11000 01010 1

addo.

Add & record OV & CR

223

X

011111

00110 01010 0

addze

Add to Zero Extended with CA

229

X

011111

00110 01010 1

addze.

Add to Zero Extended with CA & record CR

229

X

011111

10110 01010 0

addzeo

Add to Zero Extended with CA & record OV

229

X

011111

10110 01010 1

addzeo.

Add to Zero Extended with CA & record OV & CR

229

X

011111

00000 11100 0

and

AND

230

X

011111

00000 11100 1

and.

AND & record CR

230

X

011111

00001 11100 0

andc

AND with Complement

230

X

011111

00001 11100 1

andc.

AND with Complement & record CR

230

D

011100

----- ----- -

andi.

AND Immediate & record CR

230

D

011101

----- ----- -

andis.

AND Immediate Shifted & record CR

230

I

010010

----- ----0 0

b

Branch

231

I

010010

----- ----1 0

ba

Branch Absolute

231

B

010000

----- ----0 0

bc

Branch Conditional

232

B

010000

----- ----1 0

bca

Branch Conditional Absolute

232

XL

010011

10000 10000 0

bcctr

Branch Conditional to Count Register

233

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-26

Freescale Semiconductor

Format

Opcode
Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

XL

010011

10000 10000 1

bcctrl

B

010000

----- ----0 1

B

010000

XL

Instruction

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Branch Conditional to Count Register & Link

233

bcl

Branch Conditional & Link

232

----- ----1 1

bcla

Branch Conditional & Link Absolute

232

010011

00000 10000 0

bclr

Branch Conditional to Link Register

234

XL

010011

00000 10000 1

bclrl

Branch Conditional to Link Register & Link

234

I

010010

----- ----0 1

bl

Branch & Link

231

I

010010

----- ----1 1

bla

Branch & Link Absolute

231

X

011111

00000 00000 /

cmp

Compare

235

D

001011

----- ----- -

cmpi

Compare Immediate

235

X

011111

00001 00000 /

cmpl

Compare Logical

236

D

001010

----- ----- -

cmpli

Compare Logical Immediate

236

X

011111

00000 11010 0

cntlzw

Count Leading Zeros Word

237

X

011111

00000 11010 1

cntlzw.

Count Leading Zeros Word & record CR

237

XL

010011

01000 00001 /

crand

Condition Register AND

238

XL

010011

00100 00001 /

crandc

Condition Register AND with Complement

238

XL

010011

01001 00001 /

creqv

Condition Register Equivalent

238

XL

010011

00111 00001 /

crnand

Condition Register NAND

239

XL

010011

00001 00001 /

crnor

Condition Register NOR

239

XL

010011

01110 00001 /

cror

Condition Register OR

239

XL

010011

01101 00001 /

crorc

Condition Register OR with Complement

240

XL

010011

00110 00001 /

crxor

Condition Register XOR

240

X

011111

10111 10110 /

dcba

Data Cache Block Allocate

241

X

011111

00010 10110 /

dcbf

Data Cache Block Flush

242

X

011111

01110 10110 /

dcbi

Data Cache Block Invalidate

243

X

011111

01100 00110 /

dcblc1

Data Cache Block Lock Clear

----

X

011111

00001 10110 /

dcbst

Data Cache Block Store

245

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-27

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Format

Opcode

X

Primary
(Inst0:5)

Extended
(Inst21:31)

011111

01000 10110 /

Mnemonic

dcbt
1

X

011111

00101 00110 /

dcbtls

X

011111

00111 10110 /

dcbtst

Instruction

Data Cache Block Touch

246

Data Cache Block Touch and Lock Set

----

Data Cache Block Touch for Store

247

Data Cache Block Touch for Store and Lock Set

----

X

011111

00100 00110 /

dcbtstls1

X

011111

11111 10110 /

dcbz

Data Cache Block set to Zero

248

X

011111

01111 01011 0

divw

Divide Word

251

X

011111

01111 01011 1

divw.

Divide Word & record CR

251

X

011111

11111 01011 0

divwo

Divide Word & record OV

251

X

011111

11111 01011 1

divwo.

Divide Word & record OV & CR

251

X

011111

01110 01011 0

divwu

Divide Word Unsigned

252

X

011111

01110 01011 1

divwu.

Divide Word Unsigned & record CR

252

X

011111

11110 01011 0

divwuo

Divide Word Unsigned & record OV

252

X

011111

11110 01011 1

divwuo.

Divide Word Unsigned & record OV & CR

252

X

011111

01000 11100 0

eqv

Equivalent

253

X

011111

01000 11100 1

eqv.

Equivalent & record CR

253

X

011111

11101 11010 0

extsb

Extend Sign Byte

254

X

011111

11101 11010 1

extsb.

Extend Sign Byte & record CR

254

X

011111

11100 11010 0

extsh

Extend Sign Half Word

254

X

011111

11100 11010 1

extsh.

Extend Sign Half Word and record CR

254

X

011111

11110 10110 /

icbi

Instruction Cache Block Invalidate

280

X

011111

00111 00110 /

icblc1

Instruction Cache Block Lock Clear

----

X

011111

00000 10110 /

icbt

Instruction Cache Block Touch

281

X

011111

01111 00110 /

icbtls1

Instruction Cache Block Touch and Lock Set

----

Integer Select

----

Instruction Synchronize

282

Load Byte & Zero

283

??

011111

----- 01111 /

isel2

XL

010011

00100 10110 /

isync

D

100010

----- ----- -

lbz

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-28

Freescale Semiconductor

Format

Opcode
Mnemonic

Instruction

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

D

100011

----- ----- -

lbzu

Load Byte & Zero with Update

283

X

011111

00011 10111 /

lbzux

Load Byte & Zero with Update Indexed

283

X

011111

00010 10111 /

lbzx

Load Byte & Zero Indexed

283

D

101010

----- ----- -

lha

Load Half Word Algebraic

288

D

101011

----- ----- -

lhau

Load Half Word Algebraic with Update

288

X

011111

01011 10111 /

lhaux

Load Half Word Algebraic with Update Indexed

288

X

011111

01010 10111 /

lhax

Load Half Word Algebraic Indexed

288

X

011111

11000 10110 /

lhbrx

Load Half Word Byte-Reverse Indexed

289

D

101000

----- ----- -

lhz

Load Half Word and Zero

290

D

101001

----- ----- -

lhzu

Load Half Word & Zero with Update

290

X

011111

01001 10111 /

lhzux

Load Half Word & Zero with Update Indexed

290

X

011111

01000 10111 /

lhzx

Load Half Word & Zero Indexed

290

D

101110

----- ----- -

lmw

Load Multiple Word

291

Load Word & Reserve Indexed

294

Load Word Byte-Reverse Indexed

296

X

011111

00000 10100 /

lwarx3

X

011111

10000 10110 /

lwbrx

D

100000

----- ----- -

lwz

Load Word & Zero

297

D

100001

----- ----- -

lwzu

Load Word & Zero with Update

297

X

011111

00001 10111 /

lwzux

Load Word & Zero with Update Indexed

297

X

011111

00000 10111 /

lwzx

Load Word & Zero Indexed

297

Memory Barrier

298

X

011111

11010 10110 /

mbar3

XL

010011

00000 00000 /

mcrf

Move Condition Register Field

299

X

011111

10000 00000 /

mcrxr

Move to Condition Register from XER

300

X

011111

00000 10011 /

mfcr

Move From Condition Register

301

XFX

011111

01010 00011 /

mfdcr

Move From Device Control Register

302

X

011111

00010 10011 /

mfmsr

Move From Machine State Register

303

XFX

011111

01010 10011 /

mfspr

Move From Special Purpose Register

304

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-29

Format

Opcode
Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

10010 10110 /

msync3

XFX

011111

00100 10000 /

XFX

011111

X

Instruction

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Memory Synchronize

305

mtcrf

Move To Condition Register Fields

306

01110 00011 /

mtdcr

Move To Device Control Register

307

011111

00100 10010 /

mtmsr

Move To Machine State Register

311

XFX

011111

01110 10011 /

mtspr

Move To Special Purpose Register

312

X

011111

/0010 01011 0

mulhw

Multiply High Word

314

X

011111

/0010 01011 1

mulhw.

Multiply High Word & record CR

314

X

011111

/0000 01011 0

mulhwu

Multiply High Word Unsigned

314

X

011111

/0000 01011 1

mulhwu.

Multiply High Word Unsigned & record CR

314

D

000111

----- ----- -

mulli

Multiply Low Immediate

315

X

011111

00111 01011 0

mullw

Multiply Low Word

316

X

011111

00111 01011 1

mullw.

Multiply Low Word & record CR

316

X

011111

10111 01011 0

mullwo

Multiply Low Word & record OV

316

X

011111

10111 01011 1

mullwo.

Multiply Low Word & record OV & CR

316

X

011111

01110 11100 0

nand

NAND

317

X

011111

01110 11100 1

nand.

NAND & record CR

317

X

011111

00011 01000 0

neg

Negate

318

X

011111

00011 01000 1

neg.

Negate & record CR

318

X

011111

10011 01000 0

nego

Negate & record OV

318

X

011111

10011 01000 1

nego.

Negate & record OV & record CR

318

X

011111

00011 11100 0

nor

NOR

319

X

011111

00011 11100 1

nor.

NOR & record CR

319

X

011111

01101 11100 0

or

OR

320

X

011111

01101 11100 1

or.

OR & record CR

320

X

011111

01100 11100 0

orc

OR with Complement

320

X

011111

01100 11100 1

orc.

OR with Complement & record CR

320

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-30

Freescale Semiconductor

Format

Opcode
Mnemonic

Instruction

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

D

011000

----- ----- -

ori

OR Immediate

320

D

011001

----- ----- -

oris

OR Immediate Shifted

320

XL

010011

00001 10011 /

rfci

Return From Critical Interrupt

321

Return From Debug Interrupt

----

4

XL

010011

00001 00111 /

rfdi

XL

010011

00001 10010 /

rfi

Return From Interrupt

322

Return From Machine Check Interrupt

----

XL

010011

00001 00110 /

rfmci5

M

010100

----- ----- 0

rlwimi

Rotate Left Word Immediate then Mask Insert

327

M

010100

----- ----- 1

rlwimi.

Rotate Left Word Immediate then Mask Insert & record CR

327

M

010101

----- ----- 0

rlwinm

Rotate Left Word Immediate then AND with Mask

328

M

010101

----- ----- 1

rlwinm.

Rotate Left Word Immediate then AND with Mask & record CR

328

M

010111

----- ----- 0

rlwnm

Rotate Left Word then AND with Mask

328

M

010111

----- ----- 1

rlwnm.

Rotate Left Word then AND with Mask & record CR

328

SC

010001

///// ////1 /

sc

System Call

330

X

011111

00000 11000 0

slw

Shift Left Word

332

X

011111

00000 11000 1

slw.

Shift Left Word & record CR

332

X

011111

11000 11000 0

sraw

Shift Right Algebraic Word

334

X

011111

11000 11000 1

sraw.

Shift Right Algebraic Word & record CR

334

X

011111

11001 11000 0

srawi

Shift Right Algebraic Word Immediate

334

X

011111

11001 11000 1

srawi.

Shift Right Algebraic Word Immediate & record CR

334

X

011111

10000 11000 0

srw

Shift Right Word

336

X

011111

10000 11000 1

srw.

Shift Right Word & record CR

336

D

100110

----- ----- -

stb

Store Byte

337

D

100111

----- ----- -

stbu

Store Byte with Update

337

X

011111

00111 10111 /

stbux

Store Byte with Update Indexed

337

X

011111

00110 10111 /

stbx

Store Byte Indexed

337

D

101100

----- ----- -

sth

Store Half Word

343

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-31

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Format

Opcode
Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

11100 10110 /

sthbrx

D

101101

----- ----- -

X

011111

X

Instruction

Store Half Word Byte-Reverse Indexed

344

sthu

Store Half Word with Update

343

01101 10111 /

sthux

Store Half Word with Update Indexed

343

011111

01100 10111 /

sthx

Store Half Word Indexed

343

D

101111

----- ----- -

stmw

Store Multiple Word

345

D

100100

----- ----- -

stw

Store Word

347

X

011111

10100 10110 /

stwbrx

Store Word Byte-Reverse Indexed

348

3

Store Word Conditional Indexed & record CR

349

X

011111

00100 10110 1

stwcx.

D

100101

----- ----- -

stwu

Store Word with Update

347

X

011111

00101 10111 /

stwux

Store Word with Update Indexed

347

X

011111

00100 10111 /

stwx

Store Word Indexed

347

X

011111

00001 01000 0

subf

Subtract From

351

X

011111

00001 01000 1

subf.

Subtract From & record CR

351

X

011111

00000 01000 0

subfc

Subtract From Carrying

352

X

011111

00000 01000 1

subfc.

Subtract From Carrying & record CR

352

X

011111

10000 01000 0

subfco

Subtract From Carrying & record OV

352

X

011111

10000 01000 1

subfco.

Subtract From Carrying & record OV & CR

352

X

011111

00100 01000 0

subfe

Subtract From Extended with CA

353

X

011111

00100 01000 1

subfe.

Subtract From Extended with CA & record CR

353

X

011111

10100 01000 0

subfeo

Subtract From Extended with CA & record OV

353

X

011111

10100 01000 1

subfeo.

Subtract From Extended with CA & record OV & CR

353

D

001000

----- ----- -

subfic

Subtract From Immediate Carrying

354

X

011111

00111 01000 0

subfme

Subtract From Minus One Extended with CA

355

X

011111

00111 01000 1

subfme.

Subtract From Minus One Extended with CA & record CR

355

X

011111

10111 01000 0

subfmeo

Subtract From Minus One Extended with CA & record OV

355

X

011111

10111 01000 1

subfmeo.

Subtract From Minus One Extended with CA & record OV & CR

355

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-32

Freescale Semiconductor

Format

Opcode
Mnemonic

Instruction

BooK E 0.99 Page

Table 3-5. Instructions Sorted by Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

10001 01000 0

subfo

Subtract From & record OV

351

X

011111

10001 01000 1

subfo.

Subtract From & record OV & CR

351

X

011111

00110 01000 0

subfze

Subtract From Zero Extended with CA

356

X

011111

00110 01000 1

subfze.

Subtract From Zero Extended with CA & record CR

356

X

011111

10110 01000 0

subfzeo

Subtract From Zero Extended with CA & record OV

356

X

011111

10110 01000 1

subfzeo.

Subtract From Zero Extended with CA & record OV & CR

356

X

011111

11000 10010 /

tlbivax

TLB Invalidate Virtual Address Indexed

358

X

011111

11101 10010 /

tlbre

TLB Read Entry

359

X

011111

11100 10010 ?

tlbsx

TLB Search Indexed

360

X

011111

10001 10110 /

tlbsync

TLB Synchronize

361

X

011111

11110 10010 /

tlbwe

TLB Write Entry

362

X

011111

00000 00100 /

tw

Trap Word

363

D

000011

----- ----- -

twi

Trap Word Immediate

363

X

011111

00100 00011 /

wrtee

Write External Enable

364

X

011111

00101 00011 /

wrteei

Write External Enable Immediate

364

X

011111

01001 11100 0

xor

XOR

365

X

011111

01001 11100 1

xor.

XOR & record CR

365

D

011010

----- ----- -

xori

XOR Immediate

365

D

011011

----- ----- -

xoris

XOR Immediate Shifted

365

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation
1

Motorola Book E cache locking APU, refer to Section 9.10, “Cache Line Locking/Unlocking” on page 9-19
Motorola Book E isel APU, refer to Section 3.10, “ISEL Instruction” on page 3-6
3
See Section 3.6, “Memory Synchronization and Reservation Instructions” on page 3-3
4 See Section 3.11, “Enhanced Debug” on page 3-6
5 See Section 3.12, “Machine Check” on page 3-10
2

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-33

3.18.2

Instruction Index Sorted by Opcode

Table 3-6 lists instructions sorted by opcode.

Format

Opcode

Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

D

000011

----- ----- -

twi

D

000111

----- ----- -

D

001000

D

Instruction

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode

Trap Word Immediate

363

mulli

Multiply Low Immediate

315

----- ----- -

subfic

Subtract From Immediate Carrying

354

001010

----- ----- -

cmpli

Compare Logical Immediate

236

D

001011

----- ----- -

cmpi

Compare Immediate

235

D

001100

----- ----- -

addic

Add Immediate Carrying

227

D

001101

----- ----- -

addic.

Add Immediate Carrying & record CR

227

D

001110

----- ----- -

addi

Add Immediate

226

D

001111

----- ----- -

addis

Add Immediate Shifted

226

B

010000

----- ----0 0

bc

Branch Conditional

232

B

010000

----- ----0 1

bcl

Branch Conditional & Link

232

B

010000

----- ----1 0

bca

Branch Conditional Absolute

232

B

010000

----- ----1 1

bcla

Branch Conditional & Link Absolute

232

SC

010001

///// ////1 /

sc

System Call

330

I

010010

----- ----0 0

b

Branch

231

I

010010

----- ----0 1

bl

Branch & Link

231

I

010010

----- ----1 0

ba

Branch Absolute

231

I

010010

----- ----1 1

bla

Branch & Link Absolute

231

XL

010011

00000 00000 /

mcrf

Move Condition Register Field

299

XL

010011

00000 10000 0

bclr

Branch Conditional to Link Register

234

XL

010011

00000 10000 1

bclrl

Branch Conditional to Link Register & Link

234

XL

010011

00001 00001 /

crnor

Condition Register NOR

239

XL

010011

00001 00110 /

rfmci

Return From Machine Check Interrupt

----

XL

010011

00001 00111 /

rfdi

Return From Debug Interrupt

----

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-34

Freescale Semiconductor

Format

Opcode

Mnemonic

Instruction

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Primary
(Inst0:5)

Extended
(Inst21:31)

XL

010011

00001 10010 /

rfi

Return From Interrupt

322

XL

010011

00001 10011 /

rfci

Return From Critical Interrupt

321

XL

010011

00100 00001 /

crandc

Condition Register AND with Complement

238

XL

010011

00100 10110 /

isync

Instruction Synchronize

282

XL

010011

00110 00001 /

crxor

Condition Register XOR

240

XL

010011

00111 00001 /

crnand

Condition Register NAND

239

XL

010011

01000 00001 /

crand

Condition Register AND

238

XL

010011

01001 00001 /

creqv

Condition Register Equivalent

238

XL

010011

01101 00001 /

crorc

Condition Register OR with Complement

240

XL

010011

01110 00001 /

cror

Condition Register OR

239

XL

010011

10000 10000 0

bcctr

Branch Conditional to Count Register

233

XL

010011

10000 10000 1

bcctrl

Branch Conditional to Count Register & Link

233

M

010100

----- ----- 0

rlwimi

Rotate Left Word Immediate then Mask Insert

327

M

010100

----- ----- 1

rlwimi.

Rotate Left Word Immediate then Mask Insert & record CR

327

M

010101

----- ----- 0

rlwinm

Rotate Left Word Immediate then AND with Mask

328

M

010101

----- ----- 1

rlwinm.

Rotate Left Word Immediate then AND with Mask & record CR

328

M

010111

----- ----- 0

rlwnm

Rotate Left Word then AND with Mask

328

M

010111

----- ----- 1

rlwnm.

Rotate Left Word then AND with Mask & record CR

328

D

011000

----- ----- -

ori

OR Immediate

320

D

011001

----- ----- -

oris

OR Immediate Shifted

320

D

011010

----- ----- -

xori

XOR Immediate

365

D

011011

----- ----- -

xoris

XOR Immediate Shifted

365

D

011100

----- ----- -

andi.

AND Immediate & record CR

230

D

011101

----- ----- -

andis.

AND Immediate Shifted & record CR

230

??

011111

----- 01111 /

isel

Integer Select

----

X

011111

00000 00000 /

cmp

Compare

235

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-35

Format

Opcode

Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

00000 00100 /

tw

X

011111

00000 01000 0

X

011111

X

Instruction

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Trap Word

363

subfc

Subtract From Carrying

352

00000 01000 1

subfc.

Subtract From Carrying & record CR

352

011111

00000 01010 0

addc

Add Carrying

224

X

011111

00000 01010 1

addc.

Add Carrying & record CR

224

X

011111

/0000 01011 0

mulhwu

Multiply High Word Unsigned

314

X

011111

/0000 01011 1

mulhwu.

Multiply High Word Unsigned & record CR

314

X

011111

00000 10011 /

mfcr

Move From Condition Register

301

X

011111

00000 10100 /

lwarx

Load Word & Reserve Indexed

294

X

011111

00000 10110 /

icbt

Instruction Cache Block Touch

281

X

011111

00000 10111 /

lwzx

Load Word & Zero Indexed

297

X

011111

00000 11000 0

slw

Shift Left Word

332

X

011111

00000 11000 1

slw.

Shift Left Word & record CR

332

X

011111

00000 11010 0

cntlzw

Count Leading Zeros Word

237

X

011111

00000 11010 1

cntlzw.

Count Leading Zeros Word & record CR

237

X

011111

00000 11100 0

and

AND

230

X

011111

00000 11100 1

and.

AND & record CR

230

X

011111

00001 00000 /

cmpl

Compare Logical

236

X

011111

00001 01000 0

subf

Subtract From

351

X

011111

00001 01000 1

subf.

Subtract From & record CR

351

X

011111

00001 10110 /

dcbst

Data Cache Block Store

245

X

011111

00001 10111 /

lwzux

Load Word & Zero with Update Indexed

297

X

011111

00001 11100 0

andc

AND with Complement

230

X

011111

00001 11100 1

andc.

AND with Complement & record CR

230

X

011111

/0010 01011 0

mulhw

Multiply High Word

314

X

011111

/0010 01011 1

mulhw.

Multiply High Word & record CR

314

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-36

Freescale Semiconductor

Format

Opcode

Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

00010 10011 /

mfmsr

X

011111

00010 10110 /

X

011111

X

Instruction

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Move From Machine State Register

303

dcbf

Data Cache Block Flush

242

00010 10111 /

lbzx

Load Byte & Zero Indexed

283

011111

00011 01000 0

neg

Negate

318

X

011111

00011 01000 1

neg.

Negate & record CR

318

X

011111

00011 10111 /

lbzux

Load Byte & Zero with Update Indexed

283

X

011111

00011 11100 0

nor

NOR

319

X

011111

00011 11100 1

nor.

NOR & record CR

319

X

011111

00100 00011 /

wrtee

Write External Enable

364

Data Cache Block Touch for Store and Lock Set

----

X

011111

00100 00110 /

dcbtstls1

X

011111

00100 01000 0

subfe

Subtract From Extended with CA

353

X

011111

00100 01000 1

subfe.

Subtract From Extended with CA & record CR

353

X

011111

00100 01010 0

adde

Add Extended with CA

225

X

011111

00100 01010 1

adde.

Add Extended with CA & record CR

225

XFX

011111

00100 10000 /

mtcrf

Move To Condition Register Fields

306

X

011111

00100 10010 /

mtmsr

Move To Machine State Register

311

X

011111

00100 10110 1

stwcx.

Store Word Conditional Indexed & record CR

349

X

011111

00100 10111 /

stwx

Store Word Indexed

347

X

011111

00101 00011 /

wrteei

Write External Enable Immediate

364

Data Cache Block Touch and Lock Set

----

X

011111

00101 00110 /

dcbtls1

X

011111

00101 10111 /

stwux

Store Word with Update Indexed

347

X

011111

00110 01000 0

subfze

Subtract From Zero Extended with CA

356

X

011111

00110 01000 1

subfze.

Subtract From Zero Extended with CA & record CR

356

X

011111

00110 01010 0

addze

Add to Zero Extended with CA

229

X

011111

00110 01010 1

addze.

Add to Zero Extended with CA & record CR

229

X

011111

00110 10111 /

stbx

Store Byte Indexed

337

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-37

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Format

Opcode

Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

00111 00110 /

icblc1

X

011111

00111 01000 0

X

011111

X

Instruction

Instruction Cache Block Lock Clear

----

subfme

Subtract From Minus One Extended with CA

355

00111 01000 1

subfme.

Subtract From Minus One Extended with CA & record CR

355

011111

00111 01010 0

addme

Add to Minus One Extended with CA

228

X

011111

00111 01010 1

addme.

Add to Minus One Extended with CA & record CR

228

X

011111

00111 01011 0

mullw

Multiply Low Word

316

X

011111

00111 01011 1

mullw.

Multiply Low Word & record CR

316

X

011111

00111 10110 /

dcbtst

Data Cache Block Touch for Store

247

X

011111

00111 10111 /

stbux

Store Byte with Update Indexed

337

X

011111

01000 01010 0

add

Add

223

X

011111

01000 01010 1

add.

Add & record CR

223

X

011111

01000 10110 /

dcbt

Data Cache Block Touch

246

X

011111

01000 10111 /

lhzx

Load Half Word & Zero Indexed

290

X

011111

01000 11100 0

eqv

Equivalent

253

X

011111

01000 11100 1

eqv.

Equivalent & record CR

253

X

011111

01001 10111 /

lhzux

Load Half Word & Zero with Update Indexed

290

X

011111

01001 11100 0

xor

XOR

365

X

011111

01001 11100 1

xor.

XOR & record CR

365

XFX

011111

01010 00011 /

mfdcr

Move From Device Control Register

302

XFX

011111

01010 10011 /

mfspr

Move From Special Purpose Register

304

X

011111

01010 10111 /

lhax

Load Half Word Algebraic Indexed

288

X

011111

01011 10111 /

lhaux

Load Half Word Algebraic with Update Indexed

288

X

011111

01100 00110 /

dcblc1

Data Cache Block Lock Clear

----

X

011111

01100 10111 /

sthx

Store Half Word Indexed

343

X

011111

01100 11100 0

orc

OR with Complement

320

X

011111

01100 11100 1

orc.

OR with Complement & record CR

320

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-38

Freescale Semiconductor

Format

Opcode

Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

01101 10111 /

sthux

X

011111

01101 11100 0

X

011111

XFX

Instruction

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Store Half Word with Update Indexed

343

or

OR

320

01101 11100 1

or.

OR & record CR

320

011111

01110 00011 /

mtdcr

Move To Device Control Register

307

X

011111

01110 01011 0

divwu

Divide Word Unsigned

252

X

011111

01110 01011 1

divwu.

Divide Word Unsigned & record CR

252

XFX

011111

01110 10011 /

mtspr

Move To Special Purpose Register

312

X

011111

01110 10110 /

dcbi

Data Cache Block Invalidate

243

X

011111

01110 11100 0

nand

NAND

317

X

011111

01110 11100 1

nand.

NAND & record CR

317

X

011111

01111 00110 /

icbtls1

Instruction Cache Block Touch and Lock Set

----

X

011111

01111 01011 0

divw

Divide Word

251

X

011111

01111 01011 1

divw.

Divide Word & record CR

251

X

011111

10000 00000 /

mcrxr

Move to Condition Register from XER

300

X

011111

10000 01000 0

subfco

Subtract From Carrying & record OV

352

X

011111

10000 01000 1

subfco.

Subtract From Carrying & record OV & CR

352

X

011111

10000 01010 0

addco

Add Carrying & record OV

224

X

011111

10000 01010 1

addco.

Add Carrying & record OV & CR

224

X

011111

10000 10110 /

lwbrx

Load Word Byte-Reverse Indexed

296

X

011111

10000 11000 0

srw

Shift Right Word

336

X

011111

10000 11000 1

srw.

Shift Right Word & record CR

336

X

011111

10001 01000 0

subfo

Subtract From & record OV

351

X

011111

10001 01000 1

subfo.

Subtract From & record OV & CR

351

X

011111

10001 10110 /

tlbsync

TLB Synchronize

361

X

011111

10010 10110 /

msync

Memory Synchronize

305

X

011111

10011 01000 0

nego

Negate & record OV

318

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-39

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Format

Opcode

Mnemonic

Instruction

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

10011 01000 1

nego.

Negate & record OV & record CR

318

X

011111

10100 01000 0

subfeo

Subtract From Extended with CA & record OV

353

X

011111

10100 01000 1

subfeo.

Subtract From Extended with CA & record OV & CR

353

X

011111

10100 01010 0

addeo

Add Extended with CA & record OV

225

X

011111

10100 01010 1

addeo.

Add Extended with CA & record OV & CR

225

X

011111

10100 10110 /

stwbrx

Store Word Byte-Reverse Indexed

348

X

011111

10110 01000 0

subfzeo

Subtract From Zero Extended with CA & record OV

356

X

011111

10110 01000 1

subfzeo.

Subtract From Zero Extended with CA & record OV & CR

356

X

011111

10110 01010 0

addzeo

Add to Zero Extended with CA & record OV

229

X

011111

10110 01010 1

addzeo.

Add to Zero Extended with CA & record OV & CR

229

X

011111

10111 01000 0

subfmeo

Subtract From Minus One Extended with CA & record OV

355

X

011111

10111 01000 1

subfmeo.

Subtract From Minus One Extended with CA & record OV & CR

355

X

011111

10111 01010 0

addmeo

Add to Minus One Extended with CA & record OV

228

X

011111

10111 01010 1

addmeo.

Add to Minus One Extended with CA & record OV & CR

228

X

011111

10111 01011 0

mullwo

Multiply Low Word & record OV

316

X

011111

10111 01011 1

mullwo.

Multiply Low Word & record OV & CR

316

X

011111

10111 10110 /

dcba

Data Cache Block Allocate

241

X

011111

11000 01010 0

addo

Add & record OV

223

X

011111

11000 01010 1

addo.

Add & record OV & CR

223

X

011111

11000 10010 /

tlbivax

TLB Invalidate Virtual Address Indexed

358

X

011111

11000 10110 /

lhbrx

Load Half Word Byte-Reverse Indexed

289

X

011111

11000 11000 0

sraw

Shift Right Algebraic Word

334

X

011111

11000 11000 1

sraw.

Shift Right Algebraic Word & record CR

334

X

011111

11001 11000 0

srawi

Shift Right Algebraic Word Immediate

334

X

011111

11001 11000 1

srawi.

Shift Right Algebraic Word Immediate & record CR

334

X

011111

11010 10110 /

mbar

Memory Barrier

298

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-40

Freescale Semiconductor

Format

Opcode

Mnemonic

Primary
(Inst0:5)

Extended
(Inst21:31)

X

011111

11100 10010 ?

tlbsx

X

011111

11100 10110 /

X

011111

X

Instruction

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

TLB Search Indexed

360

sthbrx

Store Half Word Byte-Reverse Indexed

344

11100 11010 0

extsh

Extend Sign Half Word

254

011111

11100 11010 1

extsh.

Extend Sign Half Word & record CR

254

X

011111

11101 10010 /

tlbre

TLB Read Entry

359

X

011111

11101 11010 0

extsb

Extend Sign Byte

254

X

011111

11101 11010 1

extsb.

Extend Sign Byte & record CR

254

X

011111

11110 01011 0

divwuo

Divide Word Unsigned & record OV

252

X

011111

11110 01011 1

divwuo.

Divide Word Unsigned & record OV & CR

252

X

011111

11110 10010 /

tlbwe

TLB Write Entry

362

X

011111

11110 10110 /

icbi

Instruction Cache Block Invalidate

280

X

011111

11111 01011 0

divwo

Divide Word & record OV

251

X

011111

11111 01011 1

divwo.

Divide Word & record OV & CR

251

X

011111

11111 10110 /

dcbz

Data Cache Block set to Zero

248

D

100000

----- ----- -

lwz

Load Word & Zero

297

D

100001

----- ----- -

lwzu

Load Word & Zero with Update

297

D

100010

----- ----- -

lbz

Load Byte & Zero

283

D

100011

----- ----- -

lbzu

Load Byte & Zero with Update

283

D

100100

----- ----- -

stw

Store Word

347

D

100101

----- ----- -

stwu

Store Word with Update

347

D

100110

----- ----- -

stb

Store Byte

337

D

100111

----- ----- -

stbu

Store Byte with Update

337

D

101000

----- ----- -

lhz

Load Half Word & Zero

290

D

101001

----- ----- -

lhzu

Load Half Word & Zero with Update

290

D

101010

----- ----- -

lha

Load Half Word Algebraic

288

D

101011

----- ----- -

lhau

Load Half Word Algebraic with Update

288

Legend:
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

3-41

BooK E 0.99 Page

Table 3-6. Instructions Sorted by Opcode (Continued)

Format

Opcode

Mnemonic

Instruction

Primary
(Inst0:5)

Extended
(Inst21:31)

D

101100

----- ----- -

sth

Store Half Word

343

D

101101

----- ----- -

sthu

Store Half Word with Update

343

D

101110

----- ----- -

lmw

Load Multiple Word

291

D

101111

----- ----- -

stmw

Store Multiple Word

345

1Legend:

Freescale Power ISA cache locking category, refer to Section 9.10, “Cache Line Locking/Unlocking.”
- Don’t care, usually part of an operand field
/ Reserved bit, invalid instruction form if encoded as 1
? Allocated for implementation-dependent use. See User’ Manual for the implementation

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
3-42

Freescale Semiconductor

Chapter 4
Instruction Pipeline and Execution Timing
This section describes the e200z4 instruction pipeline and instruction timing information. The core is
partitioned into the following subsystems:
• Instruction unit
• Control unit
• Branch unit
• Instruction decode unit
• Exception handling unit
• Execution units
• Core interface

4.1

Overview of Operation

A block diagram of the e200z446n3 core is shown in Figure 4-1. The instruction fetch unit prefetches
instructions from memory into the instruction buffers. The decode unit decodes each instruction and
generates information needed by the branch unit and the execution units. Prefetched instructions are
written into the instruction buffers.
The instruction issue unit attempts to issue a pair of instructions each cycle to the execution units. Source
operands for each of the instructions are provided from the GPRs or from the operand feed-forward muxes.
Data or resource hazards may create stall conditions that cause instruction issue to be stalled for one or
more cycles until the hazard is eliminated.
The execution units write the result of a finished instruction onto the proper result bus and into the
destination registers. The writeback logic retires an instruction when the instruction has finished
execution. Up to three results can be simultaneously written, depending on the size of the result.
Two execution units are provided to allow dual issue of most instructions. Only a single load/store unit is
provided. Only a single integer divide unit is provided, thus a pair of divide instructions cannot issue
simultaneously. In addition, the divide unit is blocking.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-1

Instruction/Control Unit

Additional Features
• OnCe/Nexus 1/Nexus 3
control logic
• Dual AHB 2.v6 buses
• SPE (SIMD)
• Embedded scalar/
vector floating-point
• Power management
• Time base/decrementer
counter

Instruction Memory Unit

Fetch Unit
Program Counter

Instruction Buffer
(8/16 Instructions)

One-Stage
Fetch

16-Entry
Fully Associative
TLB

+

Decode
Stage

EA Calc
8-Entry Branch
Target Buffer

Two-Instruction, In-Order Dispatch

Execute Stage
Two-stage,
single-path
execute pipeline
with overlapped
execution and
feed forwarding

MAS
Registers

2- or 4-Way Set-Associative
4-Kbyte Instruction Cache

Executes all e200z446n3 instructions (including
Power ISA base, SPE, and VLE categories) as
described in Chapter 3, “Instruction Model.” As
many as two instructions can execute
simultaneously, as described in Chapter 4,
“Instruction Pipeline and Execution Timing.”

Instruction Bus Interface Unit

Load/Store
Unit

CR
XER
LR
CTR

••
•

1-, 4-, 16-, 64-,
256-Kbyte, 1-, 4-, 16-,
64-, 256-Mbyte, 1-,
4-Gbyte page sizes

Branch Processing Unit

Execution Units
32 GPRs
(64-Bit)

Software-Managed
L1 Unified MMU

Two/Four
Instructions

32

64

N

+ EA Calc
Address

Data

Control

Write-Back Stage

Additional
SPRs

Data Bus Interface Unit
Two-Instruction, In-Order Write-Back

32

64

Address

N

Data

Control

Figure 4-1. e200z4 Block Diagram

Table 4-1 shows the e200z446n3 concurrent instruction issue capabilities. Note that data dependencies
between instructions generally preclude dual issue. In particular, read after write dependencies are handled
by stalling the issue pipeline as required to ensure the proper execution ordering.
Table 4-1. Concurrent Instruction Issue Capabilities
Branch

Load/Store

Scalar
Integer

Scalar Float

Vector
Integer

Vector Float

Special

Branch

—

4

4

4

4

4

—

Load/store

4

—

4

4

4

4

—

Scalar Integer

4

4

41

4

42

4

—

Scalar Float

4

4

4

4

4

—

—

Vector Integer

4

4

42

4

43

4

—

Vector Float

4

4

4

—

4

—

—

Special

—

—

—

—

—

—

—

Class Of
Instruction

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-2

Freescale Semiconductor

1

Excludes divide class instructions occurring in both issue slots
Excludes vector MAC/multiply class instructions occurring with scalar multiply, or divide class instructions occurring in
both issue slots
3
Excludes vector MAC/multiply class instructions occurring in both issue slots, or divide class instructions occurring in
both issue slots
2

4.2

Core Subsystems

This section provides a brief overview of the core subsystems.

4.2.1

Control Unit

The control unit coordinates the instruction fetch unit, branch unit, instruction decode unit, instruction
issue unit, completion unit and exception handling logic.

4.2.2

Instruction Unit

The instruction unit controls the flow of instructions from the cache to the instruction buffers and decode
unit. Eight instruction prefetch buffers allow the instruction unit to fetch instructions ahead of actual
execution and serve to decouple memory and the execution pipeline.

4.2.3

Branch Unit

The branch unit executes branch instructions, predicts conditional branches, and provides branch target
addresses for instruction fetches. It contains an 8-entry branch target buffer to accelerate execution of
branch instructions.

4.2.4

Instruction Decode Unit

The decode unit includes the instruction buffers. A pair of instructions can be decoded each clock cycle.
The major functions of the decode logic are:
• Opcode decoding to determine the instruction class and resource requirements for each instruction
being decoded.
• Source and destination register dependency checking.
• Execution unit assignment.
• Determine any decode serializations, and inhibit subsequent instruction decoding.
The decode unit operates in a single processor clock cycle.

4.2.5

Exception Handling

The exception handling unit includes logic to handle exceptions, interrupts, and traps.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-3

4.3

Execution Units

The core data execution units consist of the integer units, SPE floating-point units, and the load/store unit.
Included in the execution units section are the 32 general-purpose registers (GPRs). Instructions with data
dependencies begin execution when all such dependencies are resolved.

4.3.1

Integer Execution Units

Each integer execution unit is used to process arithmetic and logical instructions. Adds, subtracts,
compares, count leading zeros, shifts and rotates execute in a single cycle.
Multiply instructions have a latency of 2 cycles with a maximum throughput of 1 per cycle.
Divide instructions have a variable latency (4–14 cycles) depending upon the operand data. The worst case
integer divide will take 14 cycles. While the divide is running, the rest of the pipeline is unavailable for
additional instructions (blocking divide).

4.3.2

Load/Store Unit

The load/store unit executes instructions that move data between the GPRs and the memory subsystem.
Loads, when free of data dependencies, execute with a maximum throughput of one per cycle and have a
two cycle latency. Stores also execute with a maximum throughput of one per cycle and two cycle latency.
Store data can be fed-forward from an immediately preceding load with no stall.

4.3.3

Embedded Floating-point Execution Units

The embedded floating-point execution units are used to process EFPU floating-point arithmetic
instructions. Adds, subtracts, compares, multiply, and multiply-accumulate pipelines have a latency of 2
cycles with a maximum throughput of 1 per cycle. SPE floating-point divide instructions have a latency
of 13 cycles. While the divide is running, the rest of the pipeline is unavailable for additional instructions
(blocking divide).

4.4

Instruction Pipeline

The processor pipeline consists of stages for instruction fetch, instruction decode, register read,
execution, and result writeback. Certain stages involve multiple clock cycles of execution. The processor
also contains an instruction prefetch buffer to allow buffering of instructions prior to the decode stage.
Instructions proceed from this buffer to the instruction decode stage by entering the instruction decode
register.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-4

Freescale Semiconductor

Table 4-2 explains the five pipeline stages.
Table 4-2. Pipeline Stages
STAGE

Description

IFETCH

Instruction Fetch From Memory

DECODE/RF READ/FF/
MEM EA

Instruction Decode/Register Read/Operand Forwarding/
Memory Effective Address Generation

EXECUTE0/MEM0

Instruction Execution stage 0/Memory Access stage 0

EXECUTE1/MEM1

Instruction Execution stage 1/Memory Access stage 1

WB

Write Back to Registers

Figure 4-2 shows the pipeline diagram.
Simple Instructions

I0,I1

I2,I3

Decode1/ Reg read/ FFwd

I0,I1

IFetch

I2,I3
I0,I1

Execute0

I2,I3
I0,I1

Feedforward

I2,I3
I0,I1

Writeback

I2,I3

Load Instructions

IFetch

L0,L1

I2,I3

Decode1/ Reg read / EA calc L0,L1
Memory0
Memory1
Writeback

L1,I2
L0

L1
L0

L1
L0

L1

Figure 4-2. Pipeline Diagram

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-5

4.4.1

Description of Pipeline Stages

The IFetch pipeline stage retrieves instructions from the memory system and determines where the next
instruction fetch is performed. Up to two 32-bit instructions or four 16-bit instructions are sent from
memory to the instruction buffers each cycle.
The decode pipeline stage decodes instructions, reads operands from the register file, and performs
dependency checking.
Execution occurs in one or both of the execute pipeline stages in each execution unit (perhaps over
multiple cycles). Execution of most load/store instructions is pipelined. The load/store unit has three
pipeline stages: effective address calculation (EA Calc), initial memory access (MEM0), and final memory
access, data format, and forward (MEM1).
Simple integer instructions complete execution in the Execute 0 stage of the pipeline. Multiply instructions
require both the Execute 0 and Execute 1 stages but may be pipelined as well. Most condition-setting
instructions complete in the Execute 0 stage of the pipeline, thus conditional branches dependent on a
condition-setting instruction may be resolved by an instruction in this stage.
Result feed-forward hardware forwards the result of one instruction into the source operand(s) of a
following instruction so that the execution of data-dependent instructions does not wait until the
completion of the result write-back. Feed forward hardware is supplied to allow bypassing of completed
instructions from both execute stages into the first execution stage for a subsequent data-dependent
instruction.

4.4.2

Instruction Prefetch Buffers and Branch Target Buffer

The e200z4 contains an eight-entry instruction prefetch buffer, which supplies instructions into the
instruction register (IR) for decoding. Each slot in the prefetch buffer is 32 bits wide, capable of holding a
single 32-bit instruction or a pair of 16-bit instructions.
Instruction prefetches request a 64-bit double word, and the prefetch buffer is filled with a pair of
instructions at a time, except for the case of a change of flow fetch where the target is to the second (odd)
word. In that case only a 32-bit prefetch is performed to load the instruction prefetch buffer. This 32-bit
fetch may be immediately followed by a 64-bit prefetch to fill slots 0 and 1 in the event that the branch is
resolved to be taken.
In normal sequential execution, instructions are loaded into the IR from prefetch buffer slots 0 and 1. As
a pair of slots are emptied, they are refilled. Whenever a pair of slots is empty, a 64-bit prefetch is initiated,
which fills the earliest empty slot pairs beginning with slot 0.
If the instruction prefetch buffer empties, instruction issue stalls, and the buffer is refilled. The first
returned instruction is forwarded directly to the IR. Open cycles on the memory bus are utilized to keep
the buffer full when possible.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-6

Freescale Semiconductor

Figure 4-3 shows the instruction prefetch buffers.

IR

MUX

SLOT1

SLOT3

SLOT5

SLOT7

DECODE

SLOT0

SLOT2

SLOT4

SLOT6

DATA 0:63

.
.

Figure 4-3. e200z4 Instruction Prefetch Buffers

To resolve branch instructions and improve the accuracy of branch predictions, the e200z4 implements a
dynamic branch prediction mechanism using an 8-entry branch target buffer (BTB).
An entry is allocated in the BTB whenever a branch resolves as taken and the BTB is enabled. Entries in
the BTB are allocated on taken branches using a FIFO replacement algorithm.
Each BTB entry holds the branch target address and a 2-bit branch history counter whose value is
incremented or decremented on a BTB hit depending on whether the branch was taken. The counter can
assume four different values: strongly taken, weakly taken, weakly not taken, and strongly not taken. On
initial allocation of an entry to the BTB for a taken branch, the counter is initialized to the weakly-taken
state.
A branch will be predicted as taken on a hit in the BTB with a counter value of strongly or weakly taken.
In this case the target address contained in the BTB is used to redirect the instruction fetch stream to the
target of the branch prior to the branch reaching the instruction decode stage. In the case of a BTB miss,
static prediction is used to predict the outcome of the branch. In the case of a mispredicted branch, the
instruction fetch stream will return to the proper instruction stream after the branch has been resolved.
When a branch is predicted taken and the branch is later resolved (in the branch execute stage), the value
of the appropriate BTB counter is updated. If a branch whose counter indicates weakly taken is resolved
as taken, the counter increments so that the prediction becomes strongly taken. If the branch resolves as
not taken, the prediction changes to weakly not-taken. The counter saturates in the strongly taken states
when the prediction is correct.
The e200z4 does not implement the static branch prediction that is defined by the Power ISA embedded
category architecture. The BO prediction bit in branch encodings is ignored.
Dynamic branch prediction is enabled by setting BUCSR[BPEN]. Allocation of branch target buffer
entries may be controlled using the BUCSR[BALLOC] field to control whether forward or backward
branches (or both) are candidates for entry into the BTB, and thus for branch prediction. Once a branch is
in the BTB, BUCSR[ALLOC] has no further effect on that branch entry. Clearing BUCSR[BPEN]
disables dynamic branch prediction, in which case the e200z4 reverts to a static prediction mechanism
using the BUCSR[BPRED] field to control whether forward or backward branches (or both) are predicted
taken or not taken.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-7

The BTB uses virtual addresses for performing tag comparisons. On allocation of a BTB entry, the
effective address of a taken branch, along with the current Instruction Space (as indicated by MSR[IS]) is
loaded into the entry and the counter value is set to weakly taken. The current PID value is not maintained
as part of the tag information.
The e200z4 does support automatic flushing of the BTB when the current PID value is updated by a mtcr
PID0 instruction. Software is otherwise responsible for maintaining coherency in the BTB when a change
in effective to real (virtual to physical) address mapping is changed. This is supported by the
BUCSR[BBFI] control bit.
Figure 4-4 shows the branch target buffer.
TAG

DATA

branch addr[0:30]

IS

target address[0:30]

counter

entry 0

branch addr[0:30]

IS

target address[0:30]

counter

entry 1

...

...

...

...

...

branch addr[0:30]

IS

target address[0:30]

counter

entry 7

IS = Instruction Space

Figure 4-4. e200z4 Branch Target Buffer

4.4.3

Single-Cycle Instruction Pipeline Operation

Sequences of single-cycle execution instructions follow the flow in Figure 4-5. Instructions are issued and
completed in program order. Most arithmetic and logical instructions fall into this category. Instructions
may feed-forward results of execution at the end of the E0 or FF stage.
Time Slot

1st, 2ndInst.

3rd, 4th Inst.

5th, 6th Inst.

IF

DEC

E0

FF

WB

IF

DEC

E0

FF

IF

DEC

E0

WB

FF

WB

Figure 4-5. Basic Pipe Line Flow, Single Cycle Instructions

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-8

Freescale Semiconductor

4.4.4

Basic Load and Store Instruction Pipeline Operation

For load and store instructions, the effective address is calculated in the EA Calc stage, and memory is
accessed in the MEM0–MEM1 stages. Data selection and alignment is performed in MEM1, and the result
is available at the end of MEM1 for the following instruction. If the instruction has a data dependency on
the result of a load, there is a single stall cycle. Data will be fed-forward from the preceding load at the end
of the MEM1 stage.
Figure 4-6 shows the basic pipe line flow for the load/store instructions.
Time Slot

1st LD Inst.

IF

DEC/
EA
IF

2nd LD Inst.

M0

M1

WB

DEC/
EA

M0

M1

WB

DEC

stall

E0

IF

3rd single cycle Inst.
(data dependent)

FF

WB

Figure 4-6. Basic Pipe Line Flow, Load/Store Instructions

4.4.5

Change-of-Flow Instruction Pipeline Operation

Simple change of flow instructions require 2 clock cycles to refill the pipeline with the target instruction
for taken branches and branch and link instructions with no BTB hit and correct branch prediction.
Figure 4-7 shows the basic pipe line flow for the change of flow instructions.
Time Slot

BR Inst.

Target Inst.

IF

DEC

(E0)

(E1)

TF

DEC

WB

E0

E1

WB

Figure 4-7. Basic Pipe Line Flow, Branch Instructions (BTB Miss, Correct Prediction, Branch Taken)

This 2 cycle timing may be reduced for branch type instructions by performing the target fetch
speculatively while the branch instruction is still being fetched into the instruction buffer if the branch

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-9

target address can be obtained from the BTB. The resulting branch timing is reduced to a single clock when
the target fetch is initiated early enough and the branch is correctly predicted.
Figure 4-8 shows the basic pipe line flow for the reduced timing.
Time Slot

BR Inst.

Target Inst.

IF
DEC
(BTB hit)
TF

(E0)

DEC

(E1)

WB

E0

E1

WB

Figure 4-8. Basic Pipe Line Flow, Branch Instructions (BTB Hit, Correct Prediction, Branch Taken)

For certain cases where the branch is incorrectly predicted, 3 cycles are required for the not-taken branch,
which must correct the misprediction outcome. Figure 4-9 shows one example.
Time Slot

BR Inst.

Target Inst.

Next seq. Inst.

IF
DEC
(BTB hit)
TF

(E0)

DEC

(E1)

WB

abort -IF

DEC

-E0

E1

WB

Figure 4-9. Basic Pipe Line Flow, Branch Instruction (BTB Hit, Predict Taken, Incorrect Prediction)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-10

Freescale Semiconductor

For certain other cases where the branch is incorrectly predicted as taken, a stall cycle is required to correct
the misprediction outcome and begin refilling the instruction buffer. Figure 4-10 shows one example.

Time Slot

IF
DEC
(BTB miss)

BR Inst.

IF

Next Inst.

Target Inst.

Next Seq Inst.

(E0)

(E1)

WB

DEC

E0

E1

TF

abort -IF

DEC

WB
-E0

E1

WB

Figure 4-10. Basic Pipe Line Flow, Branch Instructions
(BTB Miss, Predict Taken, Incorrect Prediction, Instruction Buffer Empty)

4.4.6

Basic Multi-Cycle Instruction Pipeline Operation

Most multi-cycle instructions may be pipelined so that the effective execution time is smaller than the
overall number of clock cycles spent in execution. The restrictions to this execution overlap are that no
data dependencies between the instructions are present and that instructions must complete and write back
results in order. A single cycle instruction which follows a multi-cycle instruction must wait for
completion of the multi-cycle instruction prior to its write-back in order to meet the in-order requirement.
Result feed-forward paths are provided so that execution may continue prior to result write-back.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-11

Figure 4-11 shows the basic pipe line flow for multi-cycle instruction.
Time Slot

IF

1st Mul
Inst.

2nd Inst.
single cycle.

DEC

E0

E1

WB

IF

DEC

E0

FF

IF

3rd Inst.
(data dependent
single-cycle)

DEC

E0

WB

FF

WB

Figure 4-11. Basic Pipe Line Flow, Multiply Class Instructions

Since load and store instructions calculate the effective address in the DEC stage, any dependency on a
previous instruction for EA calculation may stall the load or store in DEC until the result is available.
Figure 4-12 shows the infrequent case of a load instruction dependent on a multiply instruction.
Time Slot

IF

1st Mul
Inst.

2nd Inst.
single cycle

3rd Inst.
(data dependent
load)

DEC

E0

E1

WB

IF

DEC

E0

FF

IF

DEC DEC
(stall)

WB

FF

WB

Figure 4-12. Pipe Line Flow, Multiply with Data Dependent Load Instruction

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-12

Freescale Semiconductor

The divide and load and store multiple instructions require multiple cycles in the execute stage as shown
in Figure 4-13.
Time Slot

long inst.

IF

DEC E0

IF

next inst.
(single cycle)

E1

....

....

....

....

....

Elast WB

DEC —

—

—

—

—

—

—

E0

FF

WB

Figure 4-13. Basic Pipe Line Flow, long instruction

4.4.7

Additional Examples of Instruction Pipeline Operation for Load and
Store

Figure 4-14 shows an example of pipelining a data-dependent add instruction following a load with update
instruction. While the first load begins accessing memory in the M0 stage, the next load with update can
be calculating a new effective address in the EA Calc stage. Following the EA Calc, the updated base
register value can be fed-forward to subsequent instructions, even during the MEM0 or MEM1 stage. The
add in this example will not stall, even though a data dependency exists on the updated base register of
the load with update.
Time Slot

1st LD Inst.

2nd LD Inst.

3rd single cycle Inst.
(data dependent
on EA calc)

IF

DEC/
EA
IF

M0

M1

WB

DEC/
EA

M0

M1

IF

DEC

E0

WB

FF

WB

Figure 4-14. Pipe Line Flow, Load/Store Instructions with Base Register Update

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-13

Figure 4-15 shows an example of pipelining a data-dependent store instruction following a load
instruction. The store in this example will stall, due to the store data dependency existing on the load data
of the load instruction.
Time Slot

IF

1st LD Inst.

DEC/
EA
IF

2nd LD Inst.

3rd Inst.
(data dependent
store data)

M0

M1

WB

DEC/
EA

M0

M1

IF

DEC DEC/
(stall) EA

WB

M0

M1

WB

Figure 4-15. Pipelined Store Instruction with Store Data Dependency

4.4.8

Move To/From SPR Instruction Pipeline Operation

Many mtspr and mfspr instructions are treated like single cycle instructions in the pipeline and do not
cause stalls. The following SPRs are exceptions and do cause stalls:
• MSR
• Debug SPRs
• The SPE unit
• Cache/MMU SPRs
Figure 4-16–Figure 4-18 show examples of mtspr and mfspr instruction timing.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-14

Freescale Semiconductor

Figure 4-16 applies to the debug SPRs and SPEFSCR. These instructions do not begin execution until all
previous instructions have finished their execute stage(s). In addition, execution of subsequent instructions
is stalled until the mfspr and mtspr instructions complete.
Time Slot

IF

Prev Inst.

DEC/
EA
IF

mtspr, mfspr
Debug, SPE

E0

DEC stall
(stall)
IF

Next Inst.

E1

WB

E0

DEC stall
(stall)

E1

WB

stall stall

E0

E1

WB

Figure 4-16. mtspr, mfspr Instruction Execution, Debug and SPE SPRs

Figure 4-17 applies to the mtmsr instruction and the wrtee and wrteei instructions. Execution of
subsequent instructions is stalled until the cycle after these instructions write-back.
Time Slot

Prev Inst.

mtmsr, wrtee,
wrteei Inst.

Next Inst.

IF

DEC/
EA
IF

E0

E1

WB

DEC

E0

E1

IF

DEC stall
(stall)

WB

stall E0

E1

WB

Figure 4-17. mtmsr, wrtee[i] Instruction Execution

Access to cache and MMU SPRs are stalled until all outstanding bus accesses have completed on both
interfaces and the Cache and MMU are idle (p_[d,i]_cmbusy negated) to allow an access window where
no translations or cache cycles are required. Other situations such as a cache linefill may cause the cache
to be busy even when the processor interface is idle (p_[d,i]_tbusy[0]_b is negated). In these cases
execution stalls until the cache and MMU are idle as signaled by negation of p_[d,i]_cmbusy. Processor
access requests will be held off during execution of a Cache/MMU SPR instruction. A subsequent access
request may be generated the cycle following the last execute stage (i.e. during the WB cycle). This same

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-15

protocol applies to cache and MMU management instructions (e.g. icbi, tlbre, tlbwe, etc.) as well as the
DCRs.
Figure 4-18 shows an example where an outstanding bus access causes mtspr/mfspr execution to be
delayed until the bus becomes idle.
Time Slot

S3
prev
Instruction

IF

mtspr, mfspr

DEC

E0

....

E1last

WB

IF

DEC

stall

stall

E0

E1

IF

DEC

stall

stall

stall

Next Instruction

WB
E0

E1

WB

p_rd_spr,
p_wr_spr
p_[i,d]_treq_b
p_[i,d]_tbusy[0]_b
p_[i,d]_ta_b

p_[i,d]_cmbusy
Figure 4-18. Cache/DCR, MMU mtspr, mfspr and MMU Management Instruction Execution

4.5

Control Hazards

Internal control hazards exist in the e200z4 that can cause certain instruction sequences to incur one or
more stall cycles. One such hazard is an mfspr instruction preceded by a mtspr instruction. This causes
issue stalls until the mtspr completes.

4.6

Instruction Serialization

There are three types of serialization required by the core:
• Completion
• Dispatch (Decode/Issue)
• Refetch

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-16

Freescale Semiconductor

4.6.1

Completion Serialization

A completion serialized instruction is held for execution until all prior instructions have completed. The
instruction will then execute once it is next to complete in program order. Results from these instructions
will not be available for or forwarded to subsequent instructions until the instruction completes.
Instructions which are completion serialized are:
• Instructions that access or modify system control or status registers, such as mcrxr, mtmsr, wrtee,
wrteei, mtspr, mfspr (except to CTR/LR)
• Instructions that manage caches and TLBs
• Instructions defined by the architecture as context or execution synchronizing, such as isync,
se_isync, msync, rfi, rfci, rfdi, rfmci, se_rfi, se_rfci, se_rfdi, se_rfmci, sc, se_sc.
• wait

4.6.2

Dispatch Serialization

Some instructions are dispatch serialized by the core. An instruction that is dispatch serialized prevents the
next instruction from decoding until all instructions, up to and including the dispatch serialized instruction,
complete. Instructions that are dispatch serialized are isync, se_isync, msync, rfi, rfci, rfdi, rfmci, se_rfi,
se_rfci, se_rfdi, se_rfmci, sc, se_sc.
The mbar instruction is “pseudo-dispatch” serialized; it prevents the next instruction from decoding until
all previous load and store class instructions have completed.

4.6.3

Refetch Serialization

Refetch serialized instructions inhibit dispatching of subsequent instructions and force a pipeline refill to
refetch subsequent instructions after completion. These include:
• The context synchronizing instructions isync, se_isync.
• The rfi, rfci, rfdi, rfmci, se_rfi, se_rfci, se_rfdi, se_rfmci, sc, se_sc instructions.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-17

4.7

Interrupt Recognition and Exception Processing

Figure 4-19 shows timing for interrupt recognition and exception processing overhead. This example
shows best-case response timing when an interrupt is received and processed during execution of a
sequence of single-cycle instructions. The handler is present in the cache and proceeds with no bubbles.
Time Slot
1

2

3

4

5

DEC

E0

E1

WB

IF

DEC

Abort

--

--

IF

Stall

Stall

Stall

6

7

8

9

10

11

S3
Single cycle
Instructions

WB

Stall

final sample point
p_extint_b

p_iack

1st Instruction of handler

IF

DEC

E0

E1

WB

WB

Figure 4-19. Interrupt Recognition and Handler Instruction Execution

Figure 4-20 shows timing for interrupt recognition and exception processing overhead. This example
shows best-case response timing when an interrupt is received and processed during execution of a load

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-18

Freescale Semiconductor

or store instruction. The fetch for the handler is delayed until completion of any outstanding load or store,
regardless of the number of wait-states.
Time Slot
1

2

3

4

5

M0

wait

wait

M1

WB

DEC

E0

Abort

--

--

DEC

Abort

--

--

6

7

8

9

10

11

S3
Load/Store
Instruction

WB

--

final sample point
p_extint_b
p_iack

IF

DEC

E0

E1

WB

EX2

WB

1st Instruction of handler
Figure 4-20. Interrupt Recognition and Handler Instruction Execution—Load/Store in Progress

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-19

Figure 4-21 shows timing for interrupt recognition and exception processing overhead. This example
shows best-case response timing when an interrupt is received and processed during execution of a
multicycle interruptible instructions. The handler is present in the cache and proceeds with no bubbles.
Time Slot

S3

1

2

3

4

5

6

DEC

E0

E1

Abort

--

--

DEC

stall

7

8

9

10
S3

Multi-cycle
Interruptible
Instruction

Next Instruction

Abort

--

--

final sample point

WB

p_extint_b

p_iack

IF

1st Instruction of handler

DEC

E0

E1

WB

EX2

WB

Figure 4-21. Interrupt Recognition and Handler Instruction Execution—Multi-Cycle Instruction Abort

4.8

Concurrent Instruction Execution

The core effectively has several execution units:
• Branch unit
• Dual scalar integer units
• Dual vector integer units
• Dual scalar embedded floating-point units/single vector embedded floating-point unit
• Load/store unit
These executions units are pipelined and support overlapped execution of instructions. In certain cases, the
branch unit predicts branches and supplies a speculative instruction stream to the instruction buffer unit.
The following instruction timing section accurately indicates the number of cycles an instruction executes
in the appropriate unit, however, determining the elapsed time or cycles to execute a sequence of
instructions is beyond the scope of this document.

4.9

Instruction Timings

Table 4-3 shows instruction timing in number of processor clock cycles for various instruction classes.
Pipelined instructions are shown with cycles of total latency and throughput cycles. Divide instructions are
not pipelined and block other instructions from executing during divide execution. Timing for SPE

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-20

Freescale Semiconductor

instructions is detailed in Section 7.6, “SPE Instruction Timing.” Timing for EFPU2 instructions is
detailed in Section 6.5, “EFPU Instruction Timing.”
Load/store multiple instruction cycles are represented as a fixed number of cycles plus a variable number
of cycles where ‘n’ is the number of words accessed by the instruction. In addition, cycle times marked
with a ‘&’ require a variable number of additional cycles due to serialization.
Table 4-3. Instruction Class Cycle Counts
Class of Instructions

Latency

Throughput

integer: add, sub, shift, rotate, logical,
cntlzw

1

1

—

integer: compare

1

1

—

3/2/1

3/2/1

2

1

4–14

4–14

CR logical

1

1

—

loads (non-multiple)

2

1

—

Branch

multiply
divide

load multiple
stores (non-multiple)
store multiple
mtmsr, wrtee, wrteei

2 + n ÷ 2 (max)
2
2 + n ÷ 2 (max)

Special Notes

Correct branch lookahead allows
single cycle execution
worst-case mispredicted branch
is 3 cycles
—
data dependent timing

1 + n ÷ 2 (max) Actual timing depends on n and
address alignment.
1

—

1 + n ÷ 2 (max) Actual timing depends on n and
address alignment.

3&

3

—

1

1

—

mfspr, mtspr

4&

4&

mfspr, mfmsr

1

1

applies to internal, non Debug
SPRs

mfcr, mtcr

1

1

—

rfi, rfci, rfdi, rfmci

3

—

—

sc

4

—

—

tw, twi

4

—

Trap taken timing

mcrf

applies to Debug SPRs, optional
unit SPRS

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-21

Detailed timing for each instruction mnemonic along with serialization requirements is shown in
Table 4-4.
Table 4-4. Instruction Timing by Mnemonic
Mnemonic

Latency

Serialization

add[o][.]

1

none

addc[o][.]

1

none

adde[o][.]

1

none

addi

1

none

addic[.]

1

none

addis

1

none

addme[o][.]

1

none

addze[o][.]

1

none

and[.]

1

none

andc[.]

1

none

andi.

1

none

andis.

1

none

b[l][a]

3/2/1

none

bc[l][a]

3/2/1

none

bcctr[l]

3/2

none

bclr[l]

3/2

none

cmp

1

none

cmpi

1

none

cmpl

1

none

cmpli

1

none

cntlzw[.]

1

none

crand

1

none

crandc

1

none

creqv

1

none

crnand

1

none

crnor

1

none

cror

1

none

crorc

1

none

crxor

1

none

divw[o][.]

4-141

none

divwu[o][.]

4-141

none

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-22

Freescale Semiconductor

Table 4-4. Instruction Timing by Mnemonic (Continued)
Mnemonic

Latency

Serialization

eqv[.]

1

none

extsb[.]

1

none

extsh[.]

1

none

isel

1

none

isync

32

refetch

lbarx

2

none

lbz

23

none

lbzu

23

none

lbzux

23

none

lbzx

23

none

lha

23

none

lharx

23

none

lhau

23

none

lhaux

23

none

lhax

23

none

lhbrx

23

none

lhz

23

none

lhzu

23

none

lhzux

23

none

lhzx

23

none

lmw

2 +(n/2)

none

lwarx

23

none

lwbrx

23

none

lwz

23

none

lwzu

23

none

lwzux

23

none

lwzx

23

none

mbar

12

pseudodispatch

mcrf

1

none

mcrxr

1

completion

mfcr

1

none

mfmsr

1

none

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-23

Table 4-4. Instruction Timing by Mnemonic (Continued)
Mnemonic

Latency

Serialization

mfspr (except
DEBUG)

1

none

mfspr
(DEBUG)

42

completion

msync

12

completion

mtcrf

2

none

mtmsr

32

completion

mtspr
(DEBUG)

42

completion

mtspr (except
DEBUG, msr,
hid0/1)

1

none

mulhw[.]

2

none

mulhwu[.]

2

none

mulli

2

none

mullw[o][.]

2

none

nand[.]

1

none

neg[o][.]

1

none

nop (ori
r0,r0,0)

1

none

nor[.]

1

none

or[.]

1

none

orc[.]

1

none

ori

1

none

oris

1

none

rfci

3

refetch

rfdi

3

refetch

rfi

3

refetch

rfmci

3

refetch

rlwimi[.]

1

none

rlwinm[.]

1

none

rlwnm[.]

1

none

sc

4

refetch

slw[.]

1

none

sraw[.]

1

none

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-24

Freescale Semiconductor

Table 4-4. Instruction Timing by Mnemonic (Continued)
Mnemonic

Latency

Serialization

srawi[.]

1

none

srw[.]

1

none

stb

23

none

stbcx.

2

none

stbu

23

none

stbux

23

none

stbx

23

none

sth

23

none

sthbrx

23

none

sthcx.

23

none

sthu

23

none

sthux

23

none

sthx

23

none

stmw

2 + (n ÷ 2)

none

stw

23

none

stwbrx

23

none

stwcx.

23

none

stwu

23

none

stwux

23

none

stwx

23

none

subf[o][.]

1

none

subfc[o][.]

1

none

subfe[o][.]

1

none

subfic

1

none

subfme[o][.]

1

none

subfze[o][.]

1

none

tw

4

none

twi

4

none

wrtee

3

completion

wrteei

3

completion

xor[.]

1

none

xori

1

none

xoris

1

none

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

4-25

1

With early-out capability, timing is data dependent
Plus additional synchronization time
3
Aligned
2

4.10

Operand Placement On Performance

The placement (location and alignment) of operands in memory affects the relative performance of
memory accesses, in some cases significantly. Table 4-5 indicates the effects for the e200z4 core.
In Table 4-5, optimal means that one effective address (EA) calculation occurs during the memory
operation. Good means that multiple EA calculations occur during the memory operation that may cause
additional bus activities with multiple bus transfers. Poor means that an alignment interrupt is generated
by the storage operation.
Table 4-5. Performance Effects of Storage Operand Placement
Operand

Boundary Crossing*

Size

Byte
Align.

None

—

Protection
Boundary

4 Byte

4
<4

Optimal
Good

—

-Good

2 Byte

2
<2

Optimal
Good

—

-Good

1 Byte

1

Optimal

—

--

lmw, stmw

4
<4

Good
Poor

—

Good
Poor

string

N/A

—

—

—

Note:
Optimal: One EA calculation occurs.
Good: Multiple EA calculations occur that may cause additional bus activities with multiple bus transfers.
Poor: Alignment interrupt occurs.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
4-26

Freescale Semiconductor

Chapter 5
Interrupts and Exceptions
The Power ISA embedded category architecture defines the mechanisms by which the e200 core
implements interrupts and exceptions. The document uses the word ‘interrupt’ to mean the action in which
the processor saves its old context and begins execution at a predetermined interrupt handler address.
Exceptions are referred to as events that, when enabled, cause the processor to take an interrupt. This
section uses the same terminology.
The Power ISA embedded category architecture exception mechanism allows the processor to change to
supervisor state as a result of unusual conditions arising either in the execution of instructions or from
external signals, bus errors, or various internal conditions. When interrupts occur, information about the
state of the processor is saved to machine state save/restore registers (SRR0/SRR1, CSRR0/CSRR1,
DSRR0/DSRR1, or MCSRR0/MCSRR1) and the processor begins execution at an address (interrupt
vector) determined by the interrupt vector prefix register (IVPR) and one of the interrupt vector offset
registers (IVOR). The processing of instructions within the interrupt handler begins in supervisor mode.
Multiple exception conditions can map to a single interrupt vector and may be distinguished by examining
registers associated with the interrupt. The exception syndrome register (ESR) is updated with information
specific to the exception type when an interrupt occurs.
To prevent loss of state information, interrupt handlers must save the information stored in the machine
state save/restore registers, soon after the interrupt has been taken. Four sets of these registers are
implemented: SRR0 and SRR1 for non-critical interrupts, CSRR0 and CSRR1 for critical interrupts,
DSRR0 and DSRR1 for debug interrupts (when the debug functionality is enabled), and MCSRR0 and
MCSRR1 for machine check interrupts. Hardware supports the nesting of critical interrupts within
non-critical interrupts, machine check interrupts within both critical and non-critical interrupts, and debug
interrupts within both critical, non-critical, and machine check interrupts. It is up to the interrupt handler
to save necessary state information if interrupts of a given class are re-enabled within the handler.
The following terms are used to describe the stages of exception processing:
Recognition
Exception recognition occurs when a condition that can cause an exception is
identified by the processor. This is also referred to as an exception event.
Taken
An interrupt is described as taken when control of instruction execution is passed
to the interrupt handler; that is, the context is saved, the instruction at the
appropriate vector offset is fetched, and the interrupt handler routine begins.
Handling
Interrupt handling is performed by the software linked to the appropriate vector
offset. Interrupt handling begins in supervisor mode.
Returning from an interrupt is performed by executing an rfi, rfci, rfdi, or rfmci instruction (or se_rfi,
se_rfci, se_rfdi, or se_rfmci VLE instruction) to restore state information from the respective machine
state save/restore register pair.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-1

5.1

Interrupts

This section discusses interrupt classes and types.

5.1.1

Interrupt 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 are further divided into precise and imprecise types.
— 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 allow determination of
which of the two instructions has been addressed in the appropriate save/restore register.
— Synchronous imprecise interrupts are those that may indicate the address of the instruction
causing the exception that generated the interrupt or some instruction after the instruction
causing the interrupt. If the interrupt was caused by either the context synchronizing
mechanism or the execution synchronizing mechanism, the address in the appropriate
save/restore register is the address of the interrupt-forcing instruction. If the interrupt was not
caused by either of those mechanisms, the address in the save/restore register is the last
instruction to start execution and may not have completed. No instruction following the
instruction in the save/restore register has executed.

5.1.2

Interrupt Types

The e200z4 core processes all interrupts as either debug, machine check, critical, or noncritical types.
Separate control and status register sets are provided for each type of interrupt. Table 5-1 describes the
interrupt types.
Table 5-1. Interrupt Types
Category

Description

Programming Resources

Noncritical First-level interrupts that let the processor change program flow
interrupts 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 defined by the OEA.

SRR0/SRR1 SPRs and rfi instruction.
Asynchronous noncritical interrupts can be
masked by the external interrupt enable bit,
MSR[EE].

Critical
interrupts

Critical save and restore SPRs (CSRR0/CSRR1)
and rfci. Critical input and watchdog timer critical
interrupts can be masked by the critical enable
bit, MSR[CE]. Debug events can be masked by
the debug enable bit MSR[DE].

Critical input, watchdog timer, and debug interrupts. These
interrupts can be taken during a noncritical interrupt or during
regular program flow. The critical input and watchdog timer
interrupts are treated as critical interrupts. If the debug interrupt
is not enabled, it is also treated as a critical interrupt.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-2

Freescale Semiconductor

Table 5-1. Interrupt Types
Category

Description

Programming Resources

Machine
check
interrupt

Provides a separate set of resources for the machine check
Machine check save and restore SPRs
interrupt. See Section 5.7.2, “Machine Check Interrupt (IVOR1).” (MCSRR0/MCSRR1) and rfmci. Maskable with
the machine check enable bit, MSR[ME].
Includes the machine check syndrome register
(MCSR).

Debug
interrupt

Provides a separate set of resources for the debug interrupt. See Debug save and restore SPRs (DSRR0/DSRR1)
Section 5.7.16, “Debug Interrupt (IVOR15).”
and rfdi. Can be masked by the machine check
enable bit, MSR[DE]. Includes the debug
syndrome register (DBSR).

Because save/restore register pairs are serially reusable, care must be taken to preserve program state that
may be lost when an unordered interrupt is taken.

As specified by the Power ISA embedded category architecture, interrupts can be either precise or
imprecise, synchronous or asynchronous, and critical or non-critical. A precise interrupt architecturally
guarantees that no instruction beyond the instruction causing the exception has (visibly) executed.
Asynchronous exceptions are caused by events external to the processor’s instruction execution;
synchronous exceptions are directly caused by instructions or an event somehow synchronous to the
program flow, such as a context switch. Critical interrupts are provided with a separate save/restore register
pair (CSRR0/CSRR1) to allow certain critical exceptions to be handled within a non-critical interrupt
handler. Machine check interrupts are also provided with a separate save/restore register pair
(MCSRR0/MCSRR1) to allow machine check exceptions to be handled within a non-critical or critical
interrupt handler.
The types of interrupts handled are shown in Table 5-2. Refer to the interrupt chapter in the EREF for exact
details of each interrupt type.
Table 5-2. Interrupt Classifications

Synchronous/Asynchronous

Precise/Imprecise

Critical/Non-critical/
Debug/Machine
Check

Asynchronous, non-maskable

Imprecise

—

—

—

Machine Check

Asynchronous, non-maskable

Imprecise

Machine Check

Critical Input Interrupt
Watchdog Timer Interrupt

Asynchronous, maskable

Imprecise

Critical

External Input Interrupt
Fixed-Interval Timer Interrupt
Decrementer Interrupt

Asynchronous, maskable

Imprecise

Non-critical

Synchronous

Precise

Critical/Debug

Interrupt Types

System Reset
Machine Check
Non-Maskable Input Interrupt

Instruction-based Debug Interrupts

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-3

Table 5-2. Interrupt Classifications (Continued)

Synchronous/Asynchronous

Precise/Imprecise

Critical/Non-critical/
Debug/Machine
Check

Debug Interrupt (UDE)
Debug Imprecise Interrupt

Asynchronous

Imprecise

Critical/Debug

Data Storage/Alignment/TLB
Interrupts
Instruction Storage/TLB Interrupts

Synchronous

Precise

Non-critical

Interrupt Types

These classifications are discussed in greater detail in Section 5.7, “Interrupt Definitions.” Interrupts
implemented in the e200 and the exception conditions that cause them are listed in Table 5-3.
Table 5-3. Exceptions and Conditions

Interrupt Type

Interrupt Vector
Offset
Register

Causing Conditions

Reset by assertion of p_reset_b.

System reset

none,
vector to
[p_rstbase[0:29]] ||
2’b00

Critical Input

IVOR 01

p_critint_b is asserted and MSR CE = 1.

Machine check

IVOR 1

•
•
•
•

Machine check
(NMI)

IVOR 1

p_nmi_b transitions from negated to asserted.

Data Storage

IVOR 2

• Access control.
• Byte ordering due to misaligned access across page boundary to pages
with mismatched E bits
• Cache locking exception

Instruction Storage

IVOR 3

• Access control.
• Byte ordering due to misaligned instruction across page boundary to
pages with mismatched VLE bits, or access to page with VLE set, and E
indicating little-endian.
• Misaligned Instruction fetch due to a change of flow to an odd half-word
instruction boundary on a Power ISA (non-VLE) instruction page

External Input

IVOR 41

p_extint_b is asserted and MSREE=1.

Alignment

IVOR 5

•
•
•
•

Program

IVOR 6

Illegal, Privileged, Trap, FP enabled, AP enabled, Unimplemented
Operation.

Floating-point
unavailable

IVOR 7

MSR FP = 0 and attempt to execute a Book E floating point operation

p_mcp_b transitions from negated to asserted
ISI, ITLB Error on first instruction fetch for an exception handler
Parity Error signaled on cache access
External bus error

lmw, stmw not word aligned
lwarx or stwcx. not word aligned, lharx or sthcx. not half-word aligned
dcbz with disabled cache, or to W or I storage
SPE ld and st instructions not properly aligned

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-4

Freescale Semiconductor

Table 5-3. Exceptions and Conditions (Continued)

Interrupt Type

Interrupt Vector
Offset
Register

System call

IVOR 8

AP unavailable

IVOR 9

Decrementer

IVOR 10

As specified in the EREF

Fixed Interval Timer

IVOR 11

As specified in the EREF

Watchdog Timer

IVOR 12

As specified in the EREF

Data TLB Error

IVOR 13

Data translation lookup did not match a valid entry in the TLB

Instruction TLB
Error

IVOR 14

Instruction translation lookup did not match a valid entry in the TLB

Debug

IVOR 15

Trap, instruction address compare, data address compare, instruction
complete, branch taken, return from interrupt, interrupt taken, debug
counter, external debug event, unconditional debug event

Reserved

IVOR 16–31

SPE Unavailable
Exception

IVOR 32

See Section 7.2.6.1, “SPE Unavailable Exception

EFP Data Exception

IVOR 33

See Section 6.2.5.2, “Embedded Floating-point Data Exception

EFP Round
Exception

IVOR 34

See Section 6.2.5.3, “Embedded Floating-Point Round Exception

1

Causing Conditions

Execution of the System Call (sc, se_sc) instruction

—

Autovectored external and critical input interrupts use this IVOR. Vectored interrupts supply an interrupt vector offset
directly.

5.2

Exception Syndrome Register

VLEMI

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

0

0

MIF

8

0

SPE

7

PIE

6

BO

5

AP

4

ILK

0

DLK

ST

3

FP

2

PTR

1

PPR

0

PIL

0

PUO

The exception syndrome register (ESR) provides a syndrome to differentiate between exceptions that can
generate the same interrupt type. The e200 adds some implementation specific bits to this register, as seen
in Figure 5-1.
0

SPR - 62; Read/Write; Reset - 0x0

Figure 5-1. Exception Syndrome Register (ESR)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-5

The ESR bits are defined in Table 5-4.
Table 5-4. ESR Bit Settings
Bit(s)

Name

Description

Associated Interrupt Type

0–3
(32–35)

—

Allocated1

4
(36)

PIL

Illegal Instruction exception

Program

5
(37)

PPR

Privileged Instruction exception

Program

6
(38)

PTR

Trap exception

Program

7
(39)

FP

Floating-point operation

8
(40)

ST

Store operation

9
(41)

—

Reserved2

10
(42)

DLK

Data Cache Locking3

Data Storage

11
(43)

ILK

Instruction Cache Locking

Data Storage

12
(44)

AP

Auxiliary Processor operation
(Not used by the e200)

13
(45)

PUO

14
(46)

BO

Byte Ordering exception
Mismatched Instruction Storage exception

15
(47)

PIE

Program Imprecise exception
(Reserved)

16–23
(48–55)

—

24
(56)

SPE

—

Alignment (not on the e200)
Data Storage (not on the e200)
Data TLB (not on the e200)
Program
Alignment
Data Storage
Data TLB
—

Alignment (not on the e200)
Data Storage (not on the e200)
Data TLB (not on the e200)
Program (not on the e200)

Unimplemented Operation exception

Program
Data Storage
Instruction Storage
Currently unused by the e200

Reserved2
SPE APU Operation

—
SPE Unavailable
SPE Floating-point Data
Exception
SPE Floating-point Round
Exception
Alignment
Data Storage
Data TLB

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-6

Freescale Semiconductor

Table 5-4. ESR Bit Settings (Continued)
Bit(s)

Name

25
(57)

—

26
(58)

VLEMI

27–29
(59–61)

—

30
(62)

MIF

31
(63)

—

Description

Associated Interrupt Type

Allocated1

—

VLE Mode Instruction

SPE Unavailable
SPE Floating-point Data
Exception
SPE Floating-point Round
Exception
Data Storage
Data TLB
Instruction Storage
Alignment
Program
System Call

Allocated1

—

Misaligned Instruction Fetch

Instruction Storage
Instruction TLB

Allocated1

—

1

These bits are not implemented and should be written with zero for future compatibility.
These bits are not implemented, and should be written with zero for future compatibility.
3 This bit is implemented, but not set by hardware
2

5.3

Machine State Register

0

1

2

3

4

7

8

0

RI

IS

0

DS

FE1

0

DE

FE0

FP

ME

PR

0

EE

6

0

CE

5

WE

SPE

0

UCLE

The machine state register defines the state of the processor. It is shown in Figure 5-2.
0

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Read/ Write; Reset - 0x0

Figure 5-2. Machine State Register (MSR)

The MSR bits are defined in Table 5-5.
Table 5-5. MSR Bit Settings
Bit(s)

Name

0–4
(32–36)

—

5
(37)

UCLE

Description
Reserved1
User Cache Lock Enable
0 Execution of the cache locking instructions in user mode (MSRPR=1) disabled; DSI
exception taken instead, and ILK or DLK set in ESR.
1 Execution of the cache lock instructions in user mode enabled.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-7

Table 5-5. MSR Bit Settings (Continued)
Bit(s)

Name

Description

6
(38)

SPE

SPE Available
0 Execution of SPE and EFP APU vector instructions is disabled; SPE Unavailable exception
taken instead, and SPE bit is set in ESR.
1 Execution of SPE and EFP APU vector instructions is enabled.

7–12
(39–44)

—

Reserved1

13
(45)

WE

Wait State (Power management) enable. This bit is defined as optional in the Power ISA
embedded category architecture.
0 Power management is disabled.
1 Power management is enabled. The processor can enter a power-saving mode when
additional conditions are present. The mode chosen is determined by the DOZE, NAP, and
SLEEP bits in the HID0 register, described in Section 2.4.11, “Hardware Implementation
Dependent Register 0 (HID0).”

14
(46)

CE

Critical Interrupt Enable
0 Critical Input and Watchdog Timer interrupts are disabled.
1 Critical Input and Watchdog Timer interrupts are enabled.

15
(47)

—

Reserved1

16
(48)

EE

External Interrupt Enable
0 External Input, Decrementer, and Fixed-Interval Timer interrupts are disabled.
1 External Input, Decrementer, and Fixed-Interval Timer interrupts are enabled.

17
(49)

PR

Problem State
0 The processor is in supervisor mode, can execute any instruction, and can access any
resource (e.g. GPRs, SPRs, MSR, etc.).
1 The processor is in user mode, cannot execute any privileged instruction, and cannot
access any privileged resource.

18
(50)

FP

Floating-Point Available
0 Floating-point unit is unavailable. The processor cannot execute floating-point instructions,
including floating-point loads, stores, and moves. (An FP Unavailable interrupt will be
generated on attempted execution of floating point instructions).
1 Floating-point unit is available. The processor can execute floating-point instructions. (Note
that for e200, the floating point unit is not supported, and an Unimplemented Operation
exception will be generated for attempted execution of floating-point instructions when FP
is set).

19
(51)

ME

Machine Check Enable
0 Asynchronous Machine Check interrupts are disabled.
1 Asynchronous Machine Check interrupts are enabled.

20
(52)

FE0

Floating-point exception mode 0 (not used by the e200)

21
(53)

—

Reserved1

22
(54)

DE

Debug Interrupt Enable
0 Debug interrupts are disabled.
1 Debug interrupts are enabled.

23
(55)

FE1

Floating-point exception mode 1 (not used by the e200)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-8

Freescale Semiconductor

Table 5-5. MSR Bit Settings (Continued)
Bit(s)

Name

24
(56)

—

Reserved1

25
(57)

—

Reserved1

26
(58)

IS

Instruction 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).

27
(59)

DS

Data Address Space
0 The processor directs all data storage accesses to address space 0 (TS=0 in the relevant
TLB entry).
1 The processor directs all data storage accesses to address space 1 (TS=1 in the relevant
TLB entry).

28–29
(60–61)

—

Reserved1

30
(62)

RI

Recoverable Interrupt
This bit is provided for software use to detect nested exception conditions. This bit is cleared
by hardware when a Machine Check interrupt is taken

31
(63)

—

Reserved1

1

Description

These bits are not implemented, will be read as zero, and writes are ignored.

5.4

Machine Check Syndrome Register (MCSR)

2

3

8

BUS_WRERR

BUS_DRERR

BUS_IRERR

G

ST

IF

7

0
LD

6

MAV

5

0
MEA

4

0
NMI

0

IC_LKERR

1

IC_TPERR

IC_DPERR

0

0

EXCP_ERR

MCP

When the processor takes a machine check interrupt, it updates the machine check syndrome register
(MCSR) to differentiate between machine check conditions. The MCSR is shown in Figure 5-3.
0

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 572; Read/Clear; Reset - 0x0

Figure 5-3. Machine Check Syndrome Register (MCSR)

Table 5-6 describes MCSR fields. The MCSR indicates the source of a machine check condition. When an
“Async Mchk” or “Error Report” syndrome bit in the MCSR is set, the core complex asserts p_mcp_out
for system information.
All bits in the MCSR are implemented as “write ‘1’ to clear”. Software in the machine check handler is
expected to clear the MCSR bits it has sampled prior to re-enabling MSRME to avoid a redundant machine
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-9

check exception and to prepare for updated status bit information on the next machine check interrupt.
Hardware will not clear a bit in the MCSR other than at reset. Software will typically sample MCSR early
in the machine check handler, and will use the sampled value to clear those bits which were set at the time
of sampling. Note that additional bits may become set during the handler after sampling if an asynchronous
event occurs. By writing back only the originally sampled bits, another machine check can be generated
to process the new conditions after the original handler re-enables MSRME either explicitly, or by restoring
the MSR from MSRR1 at the return.
Note that any set bit in the MCSR other than status-type bits will cause a subsequent machine check
interrupt once MSRME=1.
Table 5-6. Machine Check Syndrome Register (MCSR)
Exception
Type1

Recoverable

Machine check input pin

Async Mchk

Maybe

Instruction Cache data array parity error

Async Mchk

Precise

Reserved, should be cleared.

—

EXCP_ERR

ISI, ITLB, or Bus Error on first instruction fetch for an
exception handler

Async Mchk

Precise

5
(37)

IC_TPERR

Instruction Cache Tag parity error

Async Mchk

Precise

6
(38)

—

7
(39)

IC_LKERR

8–10
(40–42)

—

11
(43)

NMI

NMI input pin

12
(44)

MAV

Status
MCAR Address Valid
Indicates that the address contained in the MCAR was
updated by hardware to correspond to the first detected
Async Mchk error condition

—

13
(45)

MEA

Status
MCAR holds Effective Address
If MAV=1,MEA=1 indicates that the MCAR contains an
effective address and MEA=0 indicates that the MCAR
contains a physical address

—

14
(46)

—

Reserved, should be cleared.

—

Bit

Name

0
(32)

MCP

1
(33)

IC_DPERR

2–3
(34–35)

—

4
(36)

Description

Reserved, should be cleared.
Instruction Cache Lock error
Indicates a cache control operation or invalidation
operation invalidated one or more locked lines in the
Icache

—

—
Status

Reserved, should be cleared.

—

—
NMI

—

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-10

Freescale Semiconductor

Table 5-6. Machine Check Syndrome Register (MCSR) (Continued)

1

Description

Exception
Type1

Bit

Name

Recoverable

15
(47)

IF

Instruction Fetch Error Report
An error occurred during the attempt to fetch an
instruction. This could be due to a parity error, or an
external bus error. MCSRR0 contains the instruction
address.

Error
Report

Precise

16
(48)

LD

Error
Load type instruction Error Report
An error occurred during the attempt to execute the load Report
type instruction located at the address stored in
MCSRR0.

Precise

17
(49)

ST

Store type instruction Error Report
An error occurred during the attempt to execute the
store type instruction located at the address stored in
MCSRR0.

Error
Report

Precise

18
(50)

G

Error
Guarded Load or Store instruction Error Report
An error occurred during the attempt to execute the load Report
or store type instruction located at the address stored in
MCSRR0 and the guarded access encountered an
error on the external bus.

Precise

19–26
(51–58)

—

Reserved, should be cleared.

27
(59)

BUS_IRERR

Read bus error on Instruction fetch or linefill

Async Mchk

Precise if data
used

28
(60)

BUS_DRERR

Read bus error on data load

Async Mchk

Precise if data
used

29
(61)

BUS_WRERR

Write bus error on store

Async Mchk

Unlikely

30–31
(62–63)

—

—

Reserved, should be cleared.

—

The Exception Type indicates the exception type associated with a given syndrome bit
“Error Report” indicates that this bit is only set for error report exceptions which cause machine check interrupts. These
bits are only updated when the machine check interrupt is actually taken. Error report exceptions are not gated by
MSR[ME]. These are synchronous exceptions. These bits will remain set until cleared by software writing a “1” to the
bit position(s) to be cleared.
“Status” indicates that this bit is provides additional status information regarding the logging of an asynchronous
machine check exception. These bits will remain set until cleared by software writing a “1” to the bit position(s) to be
cleared.
“NMI” indicates that this bit is only set for the non-maskable interrupt type exception which causes a machine check
interrupt. This bit is only updated when the machine check interrupt is actually taken. NMI exceptions are not gated by
MSR ME. This is an asynchronous exception. This bit will remain set until cleared by software writing a “1” to the bit
position.
“Async Mchk” indicates that this bit is set for an asynchronous machine check exception. These bits are set immediately
upon detection of the error. Once any “Async Mchk” bit is set in the MCSR, a machine check interrupt will occur if
MSR[ME] = 1. If MSR[ME] = 0, the machine check exception will remain pending. These bits will remain set until
cleared by software writing a “1” to the bit position(s) to be cleared.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-11

5.5

Interrupt Vector Prefix Registers (IVPR)

The interrupt vector prefix register (IVPR) is used during interrupt processing for determining the starting
address of a software handler used to handle an interrupt. The value contained in the vector offset field of
the IVOR selected for a particular interrupt type is concatenated with the value held in the interrupt vector
prefix register to form an instruction address from which execution is to begin. The format of IVPR is
shown in Figure 5-4.
Vector Base
0

1

2

3

4

5

6

7

8

0

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR 63; Read/Write

Figure 5-4. e200 Interrupt Vector Prefix Register (IVPR)

The IVPR fields are defined in Table 5-7.
Table 5-7. IVPR Register Fields
Bit(s)

Name

0–15
(32–47)

Vec Base Vector Base
This field is used to define the base location of the vector table, aligned to a 64Kbyte boundary.
This field provides the high-order 16 bits of the location of all interrupt handlers. The contents of
the IVORxx register appropriate for the type of exception being processed are concatenated with
the IVPR Vector Base to form the address of the handler in memory.

16–31
(48–63)
1

Description

Reserved1

—

These bits are not implemented, will be read as zero, and writes are ignored.

5.6

Interrupt Vector Offset Registers (IVORxx)

The interrupt vector offset registers are used during interrupt processing for determining the starting
address of a software handler used to handle an interrupt. The value contained in the vector offset field of
the IVOR selected for a particular interrupt type is concatenated with the value held in the IVPR to form
an instruction address from which execution is to begin.
The format of an e200 IVOR is shown in Figure 5-5.
0
0

1

2

3

4

5

6

7

Vector Offset
8

0

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR 400–415, 528–530; Read/Write

Figure 5-5. e200 Interrupt Vector Offset Register (IVOR)

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-12

Freescale Semiconductor

The IVOR fields are defined in Table 5-8.
Table 5-8. IVOR Register Fields
Bit(s)

Name

0–15
(32–47)

—

16–27
(48–59)

Vector
Offset

28–31
(60–63)

—

1

Description
Reserved1
Vector Offset
This field is used to provide a quadword index from the base address provided by the IVPR to
locate an interrupt handler.
Reserved1

These bits are not implemented, will be read as zero, and writes are ignored.

5.7

Interrupt Definitions

This section discusses IVOR0–IVOR32.

5.7.1

Critical Input Interrupt (IVOR0)

A critical input exception is signalled to the processor by the assertion of the critical interrupt pin
(p_critint_b). When the e200 detects the exception and the exception is enabled by MSR[CE], it takes the
critical input interrupt. The p_critint_b input is a level-sensitive signal expected to remain asserted until
the the processor acknowledges the interrupt. If p_critint_b is negated early, recognition of the interrupt
request is not guaranteed. After the e200 begins execution of the critical interrupt handler, the system can
safely negate p_critint_b.
A critical input interrupt may be delayed by other higher priority exceptions or if MSR[CE] is cleared
when the exception occurs.
Table 5-9 lists register settings when a critical input interrupt is taken.
Table 5-9. Critical Input Interrupt—Register Settings
Register

Setting Description

CSRR0

Set to the effective address of the instruction that the processor would have attempted to execute next
if no exception conditions were present.

CSRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE0
WE0
CE0
EE0
PR0

ESR

Unchanged

MCSR

Unchanged

FP0
ME—
FE00
DE—/01

FE10
IS 0
DS0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-13

Table 5-9. Critical Input Interrupt—Register Settings (Continued)
DEAR

Unchanged

Vector

IVPR0–15 || IVOR016–27 || 4b0000 (autovectored)
IVPR0–15 || p_voffset[0–11] || 4b0000 (non-autovectored)

1

DE is cleared when the Debug APU is disabled. Clearing of DE is optionally supported by control in HID0 when the
Debug APU is enabled.

When the debug instructions set is enabled, the MSR[DE] bit is not automatically cleared by a critical input
interrupt, but can be configured to be cleared via the HID0 register (HID0[CICLRDE]). Refer to
Section 2.4.11, “Hardware Implementation Dependent Register 0 (HID0).”
IVOR0 is the vector offset register used by autovectored critical input interrupts to determine the interrupt
handler location. The e200 also provides the capability to directly vector critical input interrupts to
multiple handlers by allowing a critical input interrupt request to be accompanied by a vector offset. The
p_voffset[0:11] input signals are used in place of the value in IVOR0 to form the interrupt vector when a
critical input interrupt request is not autovectored (p_avec_b negated when p_critint_b asserted).

5.7.2

Machine Check Interrupt (IVOR1)

The e200z446n3 implements the machine check exception as defined in the Freescale EIS machine check
instruction set except for automatic clearing of the MSR[DE] bit (see later paragraph). This behavior is
different from the definition in the Power ISA embedded category architecture. The e200 initiates a
machine check interrupt if any of the machine check sources listed in Table 5-3 is detected.
As defined in Freescale EIS machine check instruction set, a machine check interrupt is taken for error
report and NMI-type machine check conditions even if MSR[ME] is cleared, without the processor
generating an internal checkstop condition. Processing of asynchronous type machine check sources (the
sources reflected in the MCSR “async mchk” syndrome bits) is gated by MSR[ME].
The Freescale EIS machine check instruction set defines a separate set of save/restore registers
(MCSRR0/1), a machine check syndrome register (MCSR) to record the source(s) of machine checks, and
a machine check address register (MCAR) to hold an address associated with a machine check for certain
classes of machine checks. Return from machine check instructions (rfmci, se_rfmci) are also provided
to support returns using MCSRR0/1.
The MSR[RI] status bit is provided for software use in determining if multiple nested machine check
exceptions have occurred. Software may interrogate the MCSRR1[RI] bit to determine if a machine check
occurred during the initial portion of a machine check handler prior to handler code which sets MSR[RI]
to ‘1’ to indicate that the handler can now tolerate another machine check condition without losing state
necessary for recovery.
The MSR[DE] bit is not automatically cleared by a machine check exception, but can be configured to be
cleared or left unchanged by the HID0 register (HID0[MCCLRDE]). Refer to Section 2.4.11, “Hardware
Implementation Dependent Register 0 (HID0).”

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-14

Freescale Semiconductor

5.7.2.1

Machine Check Causes

Machine check causes are divided into different types:
• Error report machine check conditions
• Non-maskable interrupt (NMI) machine check exceptions
• Asynchronous machine check exceptions
This division is intended to facilitate machine check handling in uniprocessor, multiprocessor, and
multithreaded systems. Although the initial implementation of the e200z4 does not implement
multithreading, future versions are expected to, and the machine check model will remain compatible. In
addition, the model is equally applicable to a single-threaded design.
5.7.2.1.1

Error Report Machine Check Exceptions

Error report machine check exceptions are directly associated with the current instruction execution
stream, and are presented to the interrupt mechanism in a manner analogous to an instruction storage or
data storage interrupt. Since the execution stream cannot continue execution without suffering from
corruption of architectural state, these exceptions are not masked by MSR[ME]. Error report machine
check exceptions are not necessarily recoverable if they occur during the initial portion of a machine check
handler. The MSR[RI] and MCSRR1[RI] bits are provided to assist software in determining recoverability.
For error report machine check exceptions, the MCSR is updated only when the machine check interrupt
is actually taken. The MCAR is not updated for error report machine check exceptions.
Error report machine check exceptions encountered by program execution can be flushed if an older
exception exists or if an asynchronous interrupt or machine check is taken before the instruction that
encountered the error becomes the oldest instruction in the machine. In this case the corresponding MCSR
bit is not set due to the flushed exception condition (although the corresponding bit may have already been
set by a previous instruction’s exception). Note that an asynchronous machine check condition may occur
for the same error condition prior to the error report machine check, and the error report machine check
may be discarded.
Depending on the type of error, the MCSR IF, LD, G, or ST bits are set by hardware to reflect the error
being reported. Software is responsible for clearing these syndrome bits by writing a ‘1’ to the bits to be
cleared. Hardware will not clear an error report bit once it is set.
• MCSR[IF] is set if the error occurred during an instruction fetch
• MCSR[LD] is set if the error occurred for a load instruction. If the error occurred for a guarded
load and the error source was from the external bus, MCSR[G] will also be set.
• MCSR[ST] is set if the error occurred in the MMU (DTLB Error or DSI) for a store type
instruction, if an external termination error was received on a cache-inhibited guarded store or on
a store conditional instruction. If an external termination error occurred on a cache-inhibited
guarded store, or on a guarded store conditional, MCSR[G] is also set.
Note that most (if not all) error report machine check exceptions are accompanied by an associated
asynchronous machine check exception on a single-threaded e200z446n3, although this may not generally
be the case for a multithreaded version.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-15

Table 5-10 lists the error report machine check exceptions.
Table 5-10. Error Report Machine Check Exceptions
Synchronous Machine
Check Source
Instruction Fetch

Error Type

MCSR Updates

Precise1

IF

yes

(Icache tag array parity error or data array
parity error) & L1CSR1ICEA=’00’
Icache uncorrectable tag array parity error
L1CSR1ICEA=’01’ & and locked line was
invalidated

yes

External termination error

yes

External termination error on load

LD, [G]2

yes

Load and reserve instruction External termination error on load

[G]2

yes

ST, [G]5

yes

ST, G

yes

ST, [G]5

yes

IF

yes

Load instruction

Store instruction

External termination error on unbuffered
store3
External termination error on CI+G store4

Store conditional instruction
icblc instruction

External termination error on store
conditional

LD,

Icache tag array parity error & at least one
line locked & L1CSR1ICEA=‘00’
Icache tag array uncorrectable parity error &
L1CSR1ICEA=‘01’ & locked line was
invalidated

icbtls instruction

Icache tag array parity error &
L1CSR1ICEA=‘00’

yes

IF

yes

Icache tag array uncorrectable parity error &
L1CSR1ICEA=‘01’ & locked line was
invalidated

Exception Vectoring

yes

External termination error on linefill

IF

yes

ISI, ITLB, or Bus Error on first instruction
fetch for an exception handler

IF

yes

1

MCSRR0 will point to the instruction associated with the machine check condition
G will be set if the load was a guarded load.
3
Store may be unbuffered if the store buffer is disabled
4 Only reported if the store was a cache-inhibited guarded store
5 Only reported if the store was a guarded store.

2

5.7.2.1.2

Non-Maskable Interrupt Machine Check Exceptions

Non-maskable interrupt exceptions are reported by means of the p_nmi_b input pin, which is transition
sensitive. NMI exceptions are not gated by MSR[ME], thus they are not necessarily recoverable if an NMI
exception occurs during the initial part of a machine check exception handler. The MSR[RI] and
MCSRR1[RI] bits are provide to assist software in determining recoverability.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-16

Freescale Semiconductor

For NMI machine check exceptions, MCSR[NMI] is updated (set) only when the machine check interrupt
is actually taken. Hardware does not clear the MCSR[NMI] syndrome bit. Software is responsible for
clearing this syndrome bit by writing a ‘1’ to the bits to be cleared. Hardware will not clear an NMI bit
once it is set.
The MCAR is not updated for NMI machine check exceptions.
5.7.2.1.3

Asynchronous Machine Check Exceptions

The remainder of machine check exceptions are classified as asynchronous machine check exceptions, as
they are reported directly by the subsystem or resource that detected the condition. For many cases, the
asynchronous condition will be reported simultaneously with a corresponding error report condition.
These conditions are reported by immediately setting the corresponding MCSR “async mchk” syndrome
bit, regardless of the state of MSR[ME]. Interrupts due to asynchronous machine check exceptions are
gated by MSR[ME]. If MSR[ME] = 0 at the time an asynchronous machine check bit is set, the interrupt
is postponed until MSR[ME] is later set to ‘1,’ although a machine check interrupt may occur at the time
of the event due to an error report exception. Asynchronous events are cumulative; hardware does not clear
an asynchronous machine check syndrome bit. Software is responsible for clearing these syndrome bits by
writing a ‘1’ to the bit or bits to be cleared. Hardware will not clear an asynchronous machine check bit
once it is set.
If MCSR[MAV] is cleared at the time an asynchronous machine check exception occurs that has a
corresponding address (either an effective or real address) to log in the MCAR, then the MCAR and the
MCSR[MEA] bit are updated and the MCSR[MAV] bit is set. If MCSR[MAV] was previously set, the
MCAR and the MCSR[MEA] bit are not affected.
Table 5-11 details all asynchronous machine check sources.
Table 5-11. Asynchronous Machine Check Exceptions
Asynchronous
Machine Check
Source

Transaction
Source

Error Type

MCSR Update1

MCAR
Update2

External

n/a

Machine Check Input Pin3

MCP

none

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-17

Table 5-11. Asynchronous Machine Check Exceptions (Continued)
Asynchronous
Machine Check
Source

Transaction
Source

Instruction Cache

Instruction Fetch

BIU

Error Type

Tag array parity error and
L1CSR1[ICEA] = 00

IC_TPERR

RA

Icache hit, data array
parity error and
L1CSR1[ICEA] = 00

IC_DPERR

RA

L1CSR1[ICEA] = 01 and
Auto-invalidation of locked
line due to uncorrectable
tag parity error

IC_TPERR,
IC_LKERR

RA

icblc

Tag array parity error and
L1CSR1[ICEA] = 00 and
at least one line locked

IC_TPERR

RA

icbtls

Tag array parity error and
L1CSR1[ICEA] = 00

IC_TPERR

RA

icblc
icbtls

L1CSR1[ICEA] = 01 and
Auto-invalidation of locked
line due to uncorrectable
tag parity error

IC_TPERR,
IC_LKERR

RA

store

Bus error on write

MAV

BUS_WRERR

RA

load

Bus error

MAV

BUS_DRERR

RA

MAV

BUS_IRERR

RA

Bus error on locked line
error recovery refill

MAV

BUS_IRERR,
IC_LKERR

RA

first instruction fetch ISI or Bus Error on first
for an exception
instruction fetch for an
handler
exception handler

MAV

EXCP_ERR

RA

first instruction fetch ITLB Error on first
instruction fetch for an
for an exception
exception handler
handler

MAV

EXCP_ERR

EA

Bus error on linefill
icbtls
CI or cache disabled Bus error on CI Ifetch
Bus error on cache
Ifetch
disabled Ifetch
instruction fetch or
icbtls
Exception
Vectoring

MCAR
Update2

MCSR Update1

MAV

1

The MCSR update column indicates which bits in the MCSR will be updated when the exception is logged.
The MCAR update column indicates whether or not the error will provide either a real address (RA), effective
address (EA), or no address (none) which is associated with the error.
3
The machine check input pin is used by the platform logic to indicate machine check type errors which are detected
by the platform. Software must query error logging information within the platform logic to determine the specific
error condition and source.
2

Table 5-12 details the priority of asynchronous machine check updates to the MCAR when multiple
simultaneous asynchronous machine check conditions occur. Note that because a higher priority condition
can occur after a lower priority condition occurs but before the machine check interrupt handler reads the
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-18

Freescale Semiconductor

MCSR and MCAR, the interrupt handler may not necessarily see the higher priority MCAR value, even
though multiple MCSR bits are set.
Table 5-12. Asynchronous Machine Check MCAR update Priority
Priority
(0 = highest)
0

1
2

3

Asynchronous
Machine Check
Source
Exception
Vectoring

BIU

BIU

Error Type

(MCSR Update)

first instruction fetch ISI or Bus Error on first
instruction fetch for an
for an exception
exception handler
handler

EXCP_ERR

first instruction fetch ITLB Error on first
for an exception
instruction fetch for an
handler
exception handler

EXCP_ERR

store

Instruction Cache icblc
icbtls
instruction fetch
instruction fetch

Bus error on write

BUS_WRERR

Uncorrectable tag array
parity error &
L1CSR1ICEA=01 & locked
line invalidated

IC_TPERR,
IC_LKERR

Bus error on refill of locked
line with data parity error
& L1CSR1ICEA=01

BUS_IRERR,
IC_LKERR

Instruction Cache icbtls

Tag array parity error &
L1CSR1ICEA=00

IC_TPERR

icblc

Tag array parity error &
L1CSR1ICEA=00 & at
least one line is locked

IC_TPERR

Bus error on load

4

5.7.2.2

Transaction
Source

5

BIU

load

6

BIU

Bus error on linefill
icbtls
CI or cache disabled Bus error on CI Ifetch
Bus error on cache
Ifetch
disabled Ifetch

BUS_DRERR
BUS_IRERR

7

Instruction Cache Instruction Fetch

Tag array parity error &
L1CSR1ICEA=00

IC_TPERR

8

Instruction Cache

Data array parity error &
L1CSR1ICEA=00

IC_DPERR

Machine Check Interrupt Actions

Machine check interrupts for “error report” conditions and NMI are enabled and taken regardless of the
state of MSR[ME]. Machine check interrupts due to an “async mchk” syndrome bit being set in MCSR

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-19

are only taken when MSR[ME] = 1. When a machine check interrupt is taken, registers are updated as
shown in Table 5-13.
Table 5-13. Machine Check Interrupt—Register Settings
Register

Setting Description

MCSRR0

On a best-effort basis the e200 sets this to the address of some instruction that was executing or about
to be executing when the machine check condition occurred.

MCSRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE0
WE0
CE0
EE0
PR0

ESR

Unchanged

MCSR

Updated to reflect the source(s) of a machine check. Hardware only sets appropriate bits, no previously
set bits are cleared by hardware.

MCAR

See Table 5-12

Vector

IVPR0–15 || IVOR116–27 || 4b0000

1

FP0
ME0
FE00
DE0/—1

FE10
IS 0
DS0
RI 0

DE is cleared when the debug functionality is disabled. Clearing of DE is optionally supported by control in HID0
when the debug functionality is enabled.

The machine check syndrome register is provided to identify the source(s) of a machine check, and in
conjunction with MCSRR1[RI], may be used to identify recoverable events.
The MSR[RI] status bit is provided for software use in determining if multiple nested machine check
exceptions have occurred. Software may interrogate the MCSRR1[RI] bit to determine whether a machine
check occurred during the initial portion of a machine check handler prior to handler code, which sets
MSR[RI] to ‘1’ to indicate that the handler can now tolerate another machine check condition without
losing state necessary for recovery. The interrupt handler should set MSR[RI] as soon as possible after
saving off working registers and MCSRR0,1 to avoid loss of state if another machine check condition were
to occur.
The machine check input pin p_mcp_b can be masked by HID0[EMCP].
The non-maskable interrupt machine check input pin p_nmi_b is never masked.
Precise external termination errors occur when a load or cache-inhibited or guarded store is terminated by
assertion of p_tea_b (external bus ERROR termination response); these result in both an “error report” and
an “async mchk” machine check exception.
Some machine check exceptions are unrecoverable in the sense that execution cannot resume in the
context that existed before the interrupt; however, system software can use the machine check interrupt
handler to try to identify and recover from the machine check condition.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-20

Freescale Semiconductor

5.7.2.3

Checkstop State

Machine checks no longer result in a checkstop, and there is no checkstop state implemented on e200z4
cores.

5.7.3

Data Storage Interrupt (IVOR2)

A data storage interrupt (DSI) may occur if no higher priority exception exists and one of the following
exception conditions exists:
• Read or write access control
• Byte ordering
• Cache locking
Access control is defined as in the Power ISA embedded category architecture. A byte ordering exception
condition occurs for any misaligned access across a page boundary to pages with mismatched E bits. Cache
locking exception conditions occur for any attempt to execute a icbtls or icblc in user mode with
MSR[UCLE] = 0.
Table 5-14 lists register settings when a DSI is taken.
Table 5-14. Data Storage Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting load/store instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE0
WE0
CE—
EE0
PR0

FP0
ME—
FE00
DE—

ESR

Access:
Byte ordering:
Cache locking:

[ST], [SPE], [VLEMI]. All other bits cleared.
[ST], [SPE], [VLEMI], BO. All other bits cleared.
(DLK, ILK), [VLEMI], [ST]. All other bits cleared.

MCSR

Unchanged

DEAR

For Access and Byte ordering exceptions, set to the effective address of a byte within the page whose
access caused the violation. Undefined on Cache locking exceptions

Vector

IVPR0–15 || IVOR216–27 || 4b0000

5.7.4

FE10
IS 0
DS0
RI —

Instruction Storage Interrupt (IVOR3)

An instruction storage interrupt (ISI) occurs when no higher priority exception exists and an execute
access control exception occurs. This interrupt is implemented as defined by the PowerISA embedded
category architecture, with the addition of misaligned instruction fetch exceptions and the extension of the
byte ordering exception status to also cover mismatched instruction storage exceptions.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-21

Exception extensions implemented in the e200 for PowerPC VLE involve extending the definition of the
instruction storage interrupt to include byte ordering exceptions for instruction accesses, and misaligned
instruction fetch exceptions, and corresponding updates to the ESR.
Table 5-15 shows ISI exceptions and conditions.
Table 5-15. ISI Exceptions and Conditions

Interrupt Type

Interrupt Vector
Offset
Register

Instruction Storage

IVOR 3

Causing Conditions

• Access control.
• Byte ordering due to misaligned instruction across page boundary to
pages with mismatched VLE bits, or access to page with VLE set, and E
indicating little-endian.
• Misaligned Instruction fetch due to a change of flow to an odd half word
instruction boundary on a Power ISA (non-VLE) instruction page

Table 5-16 lists register settings when an ISI is taken.
Table 5-16. Instruction Storage Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE0
WE0
CE—
EE0
PR0

ESR

[BO, MIF, VLEMI]. All other bits cleared.

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR316–27 || 4b0000

5.7.5

FP0
ME—
FE00
DE—

FE10
IS 0
DS0
RI —

External Input Interrupt (IVOR4)

An External Input exception is signalled to the processor by the assertion of the external interrupt pin
(p_extint_b). The p_extint_b input is a level-sensitive signal expected to remain asserted until the e200
acknowledges the external interrupt. If p_extint_b is negated early, recognition of the interrupt request is
not guaranteed. When the e200 detects the exception, if the exception is enabled by MSR[EE], the e200
takes the external input interrupt.
An external input interrupt may be delayed by other higher priority exceptions or if MSR[EE] is cleared
when the exception occurs.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-22

Freescale Semiconductor

Table 5-17 lists register settings when an external input interrupt is taken.
Table 5-17. External Input Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the instruction that the processor would have attempted to execute next
if no exception conditions were present.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE0
WE0
CE —
EE 0
PR 0

ESR

Unchanged

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR416–27 || 4b0000
IVPR0–15 || p_voffset[0:11] || 4b0000 (non-autovectored)

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

IVOR4 is the vector offset register used by autovectored external input interrupts to determine the interrupt
handler location. The e200 also provides the capability to directly vector external input interrupts to
multiple handlers by allowing an external input interrupt request to be accompanied by a vector offset. The
p_voffset[0:11] input signals are used in place of the value in IVOR4 when a external input interrupt
request is not autovectored (p_avec_b negated when p_extint_b asserted).

5.7.6

Alignment Interrupt (IVOR5)

The core implements the alignment interrupt as defined by the Power ISA. An alignment exception is
generated when any of the following occurs:
• The operand of lmw or stmw not word aligned.
• The operand of lwarx or stwcx. not word aligned.
• The operand of lharx or sthcx. not half word aligned.
• Execution of a dcbz instruction is attempted.
• Execution of an SPE load or store instruction which is not properly aligned.
Table 5-18 lists register settings when an alignment interrupt is taken.
Table 5-18. Alignment Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting load/store instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-23

Table 5-18. Alignment Interrupt—Register Settings (Continued)
FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

[ST], [SPE], [VLEMI]. All other bits cleared.

MCSR

Unchanged

DEAR

Set to the effective address of a byte of the load or store whose access caused the violation.

Vector

IVPR0–15 || IVOR516–27 || 4b0000

5.7.7

Program Interrupt (IVOR6)

The core implements the program interrupt as defined by the Power ISA. A program interrupt occurs when
no higher priority exception exists and one or more of the following exception conditions defined in the
Power ISA occur:
• Illegal Instruction
• Privileged Instruction
• Trap
• Unimplemented Operation
The core invokes an illegal instruction program exception on attempted execution of the following
instructions:
•
•
•

Instruction from the illegal instruction class
mtspr and mfspr instructions with an undefined SPR specified
mtdcr and mfdcr instructions with an undefined DCR specified

The core invokes a privileged instruction program exception on attempted execution of the following
instructions when MSR[PR] = 1 (user mode):
• A privileged instruction
• mtspr and mfspr instructions which specify a SPRN value with SPRN[5] = 1 (even if the SPR is
undefined).
The core invokes an trap exception on execution of the tw and twi instructions if the trap conditions are
met and the exception is not also enabled as a debug interrupt.
The core invokes an unimplemented operation program exception on attempted execution of the
instructions lswi, lswx, stswi, stswx, mfapidi, mfdcrx, mtdcrx, or on any Power ISA floating point
instruction when MSR[FP] = 1. All other defined or allocated instructions that are not implemented by the
core cause an illegal instruction program exception.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-24

Freescale Semiconductor

Table 5-19 lists register settings when a program interrupt is taken.
Table 5-19. Program Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

FP 0
ME —
FE 00
DE —

ESR

Illegal:
Privileged:
Trap:
Unimplemented:

PIL, [VLEMI]. All other bits cleared.
PPR, [VLEMI]. All other bits cleared.
PTR, [VLEMI]. All other bits cleared.
PUO, [FP], [VLEMI]. All other bits cleared.

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR616–27 || 4b0000

5.7.8

FE 10
IS 0
DS 0
RI —

Floating-Point Unavailable Interrupt (IVOR7)

The floating-point unavailable exception is implemented as defined in the Power ISA. A floating-point
unavailable interrupt occurs when no higher priority exception exists, an attempt is made to execute a
floating-point instruction (including floating-point load, store, or move instructions), and the
floating-point available bit in the MSR is disabled (MSR[FP] = 0).
Table 5-20 lists register settings when a floating-point unavailable interrupt is taken.
Table 5-20. Floating-Point Unavailable Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

Unchanged

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR716–27 || 4b0000

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-25

5.7.9

System Call Interrupt (IVOR8)

A system call interrupt occurs when a system call (sc, se_sc) instruction is executed and no higher priority
exception exists.
Exception extensions implemented in e200 for PowerPC VLE include modification of the system call
interrupt definition to include updating the ESR.
Table 5-21 lists register settings when a system call interrupt is taken.
Table 5-21. System Call Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the instruction following the sc instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

[VLEMI] All other bits cleared.

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR816–27 || 4b0000

5.7.10

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

Auxiliary Processor Unavailable Interrupt (IVOR9)

An auxiliary processor unavailable exception is defined by the Power ISA to occur when an attempt is
made to execute an APU instruction which is implemented but configured as unavailable, and no higher
priority exception condition exists.
The e200 does not utilize this interrupt.

5.7.11

Decrementer Interrupt (IVOR10)

The e200 implements the decrementer exception as described in the EREF. A decrementer interrupt occurs
when no higher priority exception exists, a decrementer exception condition exists (TSR[DIS] = 1), and
the interrupt is enabled (both TCR[DIE] and MSR[EE] = 1).
The timer status register (TSR) holds the decrementer interrupt bit set by the timer facility when an
exception is detected. Software must clear this bit in the interrupt handler to avoid repeated decrementer
interrupts.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-26

Freescale Semiconductor

Table 5-22 lists register settings when a decrementer interrupt is taken.
Table 5-22. Decrementer Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the instruction that the processor would have attempted to execute next
if no exception conditions were present.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

Unchanged

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR1016–27 || 4b0000

5.7.12

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

Fixed-Interval Timer Interrupt (IVOR11)

The e200 implements the fixed-interval timer (FIT) exception as described in the EREF. The triggering of
the exception is caused by selected bits in the time base register changing from 0 to 1.
A fixed-interval timer interrupt occurs when no higher priority exception exists, a FIT exception exists
(TSR[FIS] = 1), and the interrupt is enabled (both TCR[FIE] and MSR[EE] = 1).
The timer status register (TSR) holds the FIT interrupt bit set by the timer facility when an exception is
detected. Software must clear this bit in the interrupt handler to avoid repeated FIT interrupts.
Table 5-23 lists register settings when a FIT interrupt is taken.
Table 5-23. Fixed-Interval Timer Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the instruction that the processor would have attempted to execute next
if no exception conditions were present.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

Unchanged

MCSR

Unchanged

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-27

Table 5-23. Fixed-Interval Timer Interrupt—Register Settings (Continued)
DEAR

Unchanged

Vector

IVPR0–15 || IVOR1116–27 || 4b0000

5.7.13

Watchdog Timer Interrupt (IVOR12)

The e200 implements the watchdog timer (WDT) exception as described in the EREF. The triggering of
the exception is caused by the first enabled watchdog time-out.
A watchdog timer interrupt occurs when no higher priority exception exists, a watchdog timer exception
exists (TSR[WIS] = 1), and the interrupt is enabled (both TCR[WIE] and MSR[CE] = 1).
The timer status register (TSR) holds the watchdog interrupt bit set by the timer facility when an exception
is detected. Software must clear this bit in the interrupt handler to avoid repeated watchdog interrupts.
Table 5-24 lists register settings when a watchdog timer interrupt is taken.
Table 5-24. Watchdog Timer Interrupt—Register Settings
Register

Setting Description

CSRR0

Set to the effective address of the instruction that the processor would have attempted to execute next
if no exception conditions were present.

CSRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE0
EE 0
PR 0

ESR

Unchanged

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR1216–27 || 4b0000

1

FP 0
ME —
FE 00
DE 0/—1

FE 10
IS 0
DS 0
RI —

DE is cleared when the debug functionality is disabled. Clearing of DE is optionally supported by control in HID0
when the debug functionality is enabled.

The MSR[DE] bit is not automatically cleared by a Watchdog Timer interrupt, but can be configured to be
cleared via the HID0 register (HID0[CICLRDE]). Refer to Section 2.4.11, “Hardware Implementation
Dependent Register 0 (HID0).”

5.7.14

Data TLB Error Interrupt (IVOR13)

A Data TLB error interrupt occurs when no higher priority exception exists and a Data TLB error
exception exists due to a data translation lookup miss in the TLB.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-28

Freescale Semiconductor

Table 5-25 lists register settings when a DTLB interrupt is taken.
Table 5-25. Data TLB Error Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting load/store instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

[ST], [SPE], [VLEMI]. All other bits cleared.

MCSR

Unchanged

DEAR

Set to the effective address of a byte of the load or store whose access caused the violation.

Vector

IVPR0–15 || IVOR1316–27 || 4b0000

5.7.15

FP 0
ME —
FE 00
DE —

FE1 0
IS 0
DS 0
RI —

Instruction TLB Error Interrupt (IVOR14)

An instruction TLB error interrupt occurs when no higher priority exception exists and an instruction TLB
error exception exists due to an instruction translation lookup miss in the TLB.
Exception extensions implemented in the e200 for PowerPC VLE involve extending the definition of the
instruction TLB error interrupt to include updating the ESR.
Table 5-26 lists register settings when an ITLB interrupt is taken.
Table 5-26. Instruction TLB Error Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

[MIF] All other bits cleared.

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR1416–27 || 4b0000

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-29

5.7.16

Debug Interrupt (IVOR15)

The e200 implements the debug interrupt as defined in the Power ISA embedded category architecture
with the following changes:
• When the debug functionality is enabled, debug is no longer a critical interrupt, but uses DSRR0
and DSRR1 for saving machine state on context switch
• A return from debug interrupt instruction (rfdi or se_rfdi) is implemented to support the new
machine state registers
• A critical interrupt taken debug event is defined to allow critical interrupts to generate a debug
event
• A critical return debug event is defined to allow debug events to be generated for rfci and se_rfci
instructions
There are multiple sources that can signal a debug exception. A debug interrupt occurs when no higher
priority exception exists, a debug exception exists in the debug status Register, and debug interrupts are
enabled (both DBCR0[IDM] = 1 (internal debug mode) and MSR[DE] = 1). Enabling debug events and
other debug modes are discussed further in Chapter 11, “Debug Support.” With the debug functionality
enabled (see Section 2.4.11, “Hardware Implementation Dependent Register 0 (HID0)”), the debug
interrupt has its own set of machine state save/restore registers (DSRR0, DSRR1) to allow debugging of
both critical and non-critical interrupt handlers. In addition, the capability is provided to allow interrupts
to be handled while in a debug software handler. External and critical interrupts are not automatically
disabled when a debug interrupt occurs but can be configured to be cleared by the HID0 register
(HID0[DCLREE, DCLRCE]). Refer to Section 2.4.11, “Hardware Implementation Dependent Register 0
(HID0).”
When the debug functionality is disabled, debug interrupts use the CSRR0 and CSRR1 registers to save
machine state.

The following list describes the debug exception types. For additional details, refer to Section 11.2,
“Software Debug Events and Exceptions.”
• Instruction Address Compare (IAC)
This exception occurs when there is an instruction address match as defined by the debug control
registers and Instruction Address Compare events are enabled. This could either be a direct
instruction address match or a selected set of instruction addresses. IAC has the highest interrupt
priority of all instruction-based interrupts, even if the instruction itself may have encountered an
Instruction TLB error or Instruction Storage exception.
• Branch Taken (BRT)
This exception is signalled when a branch instruction is considered taken by the branch unit and
branch taken events are enabled. The debug interrupt is taken when no higher priority exception is
pending.
• Data Address Compare (DAC)
This exception is signalled when there is a data access address match as defined by the debug
control registers and data address compare events are enabled. This could either be a direct data
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-30

Freescale Semiconductor

•

•

•

•

•

•

•

•

address match or a selected set of data addresses, or a combination of data address and data value
matching. The debug interrupt is taken when no higher priority exception is pending.
IAC linked with DAC exceptions
This results in a DAC exception only if one or more IAC conditions are also met. See Chapter 11,
“Debug Support for more details.
Trap (TRAP)
This exception occurs when a program trap exception is generated while trap events are enabled.
If MSR[DE] is set, the debug exception has higher priority than the program exception in this case,
and will be taken instead of a trap type program interrupt. The debug interrupt is taken when no
higher priority exception is pending. If MSR[DE] is cleared when a trap debug exception occurs,
a trap exception type program interrupt occurs instead.
Return (RET)
This exception occurs when executing an rfi or se_rfi instruction and return debug events are
enabled. Return debug exceptions are not generated for rfci or se_rfci instructions. If
MSR[DE] = 1 at the time of the execution of the rfi or se_rfi, a debug interrupt occurs provided
there exists no higher priority exception that is enabled to cause an interrupt. CSRR0 (debug
functionality disabled) or DSRR0 (debug functionality enabled) will be set to the address of the rfi
or se_rfi instruction. If MSR[DE] = 0 at the time of the execution of the rfi or se_rfi, a debug
interrupt does not occur immediately, but the event is recorded by setting the DBSR[RET] and
DBSR[IDE] status bits.
Critical Return (CRET)
This exception occurs when executing an rfci or se_rfci instruction and critical return debug events
are enabled. Critical return debug exceptions are only generated for rfci or se_rfci instructions. If
MSR[DE] = 1 at the time of the execution of the rfci or se_rfci, a debug interrupt will occur
provided there exists no higher priority exception which is enabled to cause an interrupt. CSRR0
(debug functionality disabled) or DSRR0 (debug functionality enabled) is set to the address of the
rfci or se_rfci instruction. If MSR[DE] = 0 at the time of the execution of the rfci or se_rfci, a
debug interrupt does not occur immediately, but the event is recorded by setting the DBSR[CRET]
and DBSR[IDE] status bits. Note that critical return debug events should not normally be enabled
unless the debug functionality is enabled to avoid corrupting CSRR0/1.
Instruction Complete (ICMP)
This exception is signalled following execution and completion of an instruction while this event
is enabled.
mtmsr or mtdbcr0 causing both MSR[DE] and DBCR0[IDM] to end up set
This enables precise debug mode, which may cause an imprecise (delayed) debug exception to be
generated due to an earlier recorded event in the debug status register.
Interrupt Taken (IRPT)
This exception occurs when a non-critical interrupt context switch is detected. It is imprecise and
unordered with respect to the program flow. Note that an IRPT Debug interrupt will only occur
when detecting a non-critical interrupt on e200. The value saved in CSRR0/DSRR0 will be the
address of the non-critical interrupt handler.
Critical Interrupt Taken (CIRPT)
e200z4 Power Architecture™ Core Reference Manual, Rev. 0

Freescale Semiconductor

5-31

•

•
•

This exception occurs when a critical interrupt context switch is detected. This exception is
imprecise and unordered with respect to the program flow. Note that a CIRPT Debug interrupt will
only occur when detecting a critical interrupt on e200. The value saved in CSRR0/DSRR0 will be
the address of the critical interrupt handler. Note that Critical Interrupt Taken debug events should
not normally be enabled unless the Debug APU is enabled to avoid corruption of CSRR0/1.
Unconditional Debug Event (UDE)
This exception occurs when the unconditional debug event pin (p_ude) transitions to the asserted
state.
Debug Counter Debug
These exceptions occur when enabled, and one of the debug counters decrements to zero.
External Debug
These exceptions occur when enabled and one of the external debug event pins (p_devt1, p_devt2)
transitions to the asserted state.

The debug status register (DBSR) provides a syndrome to differentiate between debug exceptions that can
generate the same interrupt. For more details see Chapter 11, “Debug Support.”
Table 5-27 lists register settings when a debug interrupt is taken.
Table 5-27. Debug Interrupt—Register Settings
Register

Setting Description

CSRR0/
DSRR01

Set to the effective address of the excepting instruction for IAC, BRT, RET, CRET, and TRAP.
Set to the effective address of the next instruction to be executed following the excepting instruction for DAC
and ICMP.
For a UDE, IRPT, CIRPT, DCNT, or DEVT type exception, set to the effective address of the instruction that
the processor would have attempted to execute next if no exception conditions were present.

CSRR1/
DSRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —/02
EE —/02
PR 0

FP 0
ME —
FE 00
DE 0

DBSR3

Unconditional Debug Event
Instr. Complete Debug Event
Branch Taken Debug Event
Interrupt Taken Debug Event
Critical Interrupt Taken Debug Event
Trap Instruction Debug Event
Instruction Address Compare
Data Address Compare
Return Debug Event
Critical Return Debug Event
Debug Counter Event
External Debug Event
and optionally, an Imprecise Debug
Event flag

UDE
ICMP
BRT
IRPT
CIRPT
TRAP
{IAC1, IAC2, IAC3, IAC4}
{DAC1R, DAC1W, DAC2R, DAC2W}
RET
CRET
{DCNT1, DCNT2}
{DEVT1, DEVT2}
{IDE}

FE 10
IS 0
DS 0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-32

Freescale Semiconductor

Table 5-27. Debug Interrupt—Register Settings (Continued)
ESR

Unchanged

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0:15 || IVOR1516–27 || 4b0000

1

Assumes that the Debug interrupt is precise
Conditional based on control bits in HID0
3
Note that multiple DBSR bits may be set
2

5.7.17

System Reset Interrupt

The e200 implements the system reset interrupt as defined in the Power ISA embedded category
architecture. The system reset exception is a non-maskable, asynchronous exception signalled to the
processor through the assertion of system-defined signals.
A system reset may be initiated by either asserting the p_reset_b input signal or during power-on reset by
asserting m_por. The m_por signal must be asserted during power up and must remain asserted for a period
that allows internal logic to be reset. The p_reset_b signal must also remain asserted for a period that
allows internal logic to be reset. This period is specified in the hardware specifications. If m_por or
p_reset_b are asserted for less than the required interval, the results are not predictable.
When a reset request occurs, the processor branches to the system reset exception vector (value on
p_rstbase[0:29] concatenated with 2’b00) without attempting to reach a recoverable state. If reset occurs
during normal operation, all operations cease and the machine state is lost. CPU internal state after a reset
is defined in Section 2.6, “Reset Settings.”
Reset may also be initiated by watchdog timer or debug reset control. Watchdog timer and debug reset
control provide the capability to assert the p_wrs[0:1] and p_dbrstc[0:1] signals. External logic may factor
this into the p_reset_b input signal to cause an e200 reset to occur.
Table 5-28 shows the TSR register bits associated with watchdog timer reset status. Note that these bits
will be cleared when a processor reset occurs; thus if the p_wrs[0:1] outputs are factored into p_reset_b,
they will only be seen in the “00” state by software.
Table 5-28. TSR Watchdog Timer Reset Status
Bit(s)

Name

2–3
(34–35)

WRS

Function
00
01
10
11

No action performed by Watchdog Timer
Watchdog Timer second time-out caused p_wrs[1] to be asserted
Watchdog Timer second time-out caused p_wrs[0] to be asserted
Watchdog Timer second time-out caused p_wrs[0] and p_wrs[1] to be asserted

Table 5-29 shows the DBSR register bits associated with reset status.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-33

Table 5-29. DBSR Most Recent Reset
Bit(s)

Name

2–3
(34–35)

MRR

Function
00
01
10
11

No reset occurred since these bits were last cleared by software
A reset occurred since these bits were last cleared by software
Reserved
Reserved

Table 5-30 lists register settings when a system reset interrupt is taken.
Table 5-30. System Reset Interrupt—Register Settings
Register

Setting Description

CSRR0

Undefined.

CSRR1

Undefined.

MSR

UCLE 0
SPE 0
WE 0
CE 0
EE 0
PR 0

ESR

Cleared

DEAR

Undefined

Vector

[p_rstbase[0:29]] || 2’b00

5.7.18

FE 10
IS 0
DS 0
RI 0

FP 0
ME 0
FE 00
DE 0

SPE Unavailable Interrupt (IVOR32)

The SPE unavailable exception is taken if MSR[SPE] is cleared and execution of an SPE instruction other
than the scalar floating-point instructions (efsxxx) or brinc is attempted, or execution of a EFPU evfsxx
instruction is attempted. When the SPE APU Unavailable exception occurs, the processor suppresses
execution of the instruction causing the exception. Table 5-31 lists register settings when a SPE
unavailable interrupt is taken.
Table 5-31. SPE Unavailable Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting SPE or EFP instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

SPE, [VLEMI]. All other bits cleared.

MCSR

Unchanged

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-34

Freescale Semiconductor

Table 5-31. SPE Unavailable Interrupt—Register Settings (Continued)
DEAR

Unchanged

Vector

IVPR0–15 || IVOR3216–27 || 4b0000

5.7.19

EFP Floating-point Data Interrupt (IVOR33)

The EFP floating-point data interrupt is taken if no higher priority exception exists and an EFP
floating-point data exception is generated. When a floating-point data exception occurs, the processor
suppresses execution of the instruction causing the exception.
Table 5-32 lists register settings when an SPE floating-point data interrupt is taken.
Table 5-32. SPE Floating-point Data Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the excepting EFP instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

ESR

SPE, [VLEMI]. All other bits cleared.

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR3316–27 || 4b0000

5.7.20

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

EFP Floating-point Round Interrupt (IVOR34)

The EFP floating-point round interrupt is taken when an EFP floating-point instruction generates an
inexact result and inexact exceptions are enabled.
Table 5-33 lists register settings when an EFP Floating-point Round interrupt is taken.
Table 5-33. SPE Floating-point Round Interrupt—Register Settings
Register

Setting Description

SRR0

Set to the effective address of the instruction following the excepting EFP instruction.

SRR1

Set to the contents of the MSR at the time of the interrupt

MSR

UCLE 0
SPE 0
WE 0
CE —
EE 0
PR 0

FP 0
ME —
FE 00
DE —

FE 10
IS 0
DS 0
RI —

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-35

Table 5-33. SPE Floating-point Round Interrupt—Register Settings (Continued)

5.8

ESR

SPE, [VLEMI]. All other bits cleared.

MCSR

Unchanged

DEAR

Unchanged

Vector

IVPR0–15 || IVOR3416–27 || 4b0000

Exception Recognition and Priorities

The following list of exception categories describes how the e200 handles exceptions up to the point of
signaling the appropriate interrupt to occur. Instruction completion is defined as updating all architectural
registers associated with that instruction as necessary and then removing the instruction from the pipeline.
• Interrupts caused by asynchronous events (exceptions). These exceptions are further distinguished
by whether they are maskable and recoverable.
— Asynchronous, non-maskable, non-recoverable:
– System reset by assertion of p_reset_b
Has highest priority and is taken immediately regardless of other pending exceptions or
recoverability. (Includes watchdog timer reset control and debug reset control)
— Asynchronous, non-maskable, possibly non-recoverable:
– Non-maskable interrupt by assertion of p_nmi_b
Has priority over any other pending exception except system reset conditions.
Recoverability is dependent on whether MCSRR0/1 are holding essential state info and are
overwritten when the NMI occurs.
— Asynchronous, maskable/non-maskable, recoverable/non-recoverable:
– Machine check interrupt
Has priority over any other pending exception except system reset conditions.
Recoverability is dependent on the source of the exception.
— Asynchronous, maskable, recoverable:
– External Input, Fixed-Interval Timer, Decrementer, Critical Input, Unconditional Debug,
External Debug Event, Debug Counter Event, and Watchdog Timer interrupts
Before handling this type of exception, the processor needs to reach a recoverable state. A
maskable recoverable exception will remain pending until taken or cancelled by software.
• Synchronous, non instruction-based interrupts. The only exception is this category is the Interrupt
Taken debug exception, recognized by an interrupt taken event. It is not considered
instruction-based but is synchronous with respect to the program flow.
— Synchronous, maskable, recoverable:
– Interrupt Taken debug event.
The machine will be in a recoverable state due to the state of the machine at the context
switch triggering this event.
• Instruction-based interrupts. These interrupts are further organized by the point in instruction
processing in which they generate an exception.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-36

Freescale Semiconductor

— Instruction Fetch:
– Instruction Storage, Instruction TLB, and Instruction Address Compare debug exceptions.
Once these types of exceptions are detected, the excepting instruction is tagged. When the
excepting instruction is next to begin execution and a recoverable state has been reached,
the interrupt is taken. If an event prior to the excepting instruction causes a redirection of
execution, the instruction fetch exception is discarded (but may be encountered again).
— Instruction Dispatch/Execution:
– Program, System Call, Data Storage, Alignment, Floating-point Unavailable, SPE
Unavailable, Data TLB, EFP Floating-point Data, EFP Floating-point Round, Debug (Trap,
Branch Taken, Ret) interrupts.
These types of exceptions are determined during decode or execution of an instruction. The
exception remains pending until all instructions before the exception causing instruction in
program order complete. The interrupt is then taken without completing the
exception-causing instruction. If completing previous instructions causes an exception, that
exception takes priority over the pending instruction dispatch/execution exception, which is
discarded (but may be encountered again when instruction processing resumes).
— Post-Instruction Execution
– Debug (Data Address Compare, Instruction Complete) interrupt.
These Debug exceptions are generated following execution and completion of an instruction
while the event is enabled. If executing the instruction produces conditions for another type
of exception with higher priority, that exception is taken and the post-instruction exception
is discarded for the instruction (but may be encountered again when instruction processing
resumes)

5.8.1

Exception Priorities

Exceptions are prioritized as described in Table 5-34. Some exceptions may be masked or imprecise which
will affect their priority. Non-maskable exceptions, such as reset and machine check, may occur at any
time and are not delayed even if an interrupt is being serviced; thus state information for any interrupt may
be lost. Reset and certain machine checks are non-recoverable.
Table 5-34. e200 Exception Priorities
Priority

Exception

Cause

IVOR

Asynchronous Exceptions
0

System reset

Assertion of p_reset_b, Watchdog Timer Reset Control, or Debug
Reset Control

Machine check

Assertion of p_mcp_b, assertion of p_nmi_b, Cache Parity errors,
exception on fetch of first instruction of an interrupt handler, external
bus errors

—

—

1

2

none
1

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-37

Table 5-34. e200 Exception Priorities (Continued)
Priority
31

Exception
Debug:
1.UDE
2.DEVT1
3.DEVT2
4.DCNT1
5.DCNT2
6.IDE

Cause

IVOR
15

1. Assertion of p_ude (Unconditional Debug Event)
2. Assertion of p_devt1 and event enabled (External Debug
Event 1)
3. Assertion of p_devt2 and event enabled (External Debug
Event 2)
4. Debug Counter 1 exception
5. Debug Counter 2 exception
6. Imprecise Debug Event (event imprecise due to previous
higher priority interrupt

41

Critical Input

Assertion of p_critint_b

0

51

Watchdog Timer

Watchdog Timer first enabled time-out

12

61

External Input

Assertion of p_extint_b

4

Fixed-Interval Timer

Posting of a FIT exception in TSR due to programmer-specified bit
transition in the Time Base register

11

Decrementer

Posting of a Decrementer exception in TSR due to
programmer-specified Decrementer condition

10

71
81
9

—

—
Instruction Fetch Exceptions

10

Debug:
IAC (unlinked)

Instruction address compare match for enabled IAC debug event
and DBCR0IDM asserted

15

11

ITLB Error

Instruction translation lookup miss in the TLB

14
3

Instruction Storage

1. Access control.
2. Byte ordering due to misaligned instruction across page
boundary to pages with mismatched VLE bits, or access to
page with VLE set, and E indicating little-endian.
3. Misaligned Instruction fetch due to a change of flow to an odd
half-word instruction boundary on a Power ISA (non-VLE)
instruction page, due to value in LR, CTR, or xSRR0

12

Instruction Dispatch/Execution Interrupts
13
14
15

16

Program:
Illegal

Attempted execution of an illegal instruction.

6

Program:
Privileged

Attempted execution of a privileged instruction in user-mode

6

Floating-point
Unavailable

Any floating-point unavailable exception condition.

7

SPE Unavailable

Any SPE unavailable exception condition.

32

Program:
Unimplemented

Attempted execution of an unimplemented instruction.

6

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-38

Freescale Semiconductor

Table 5-34. e200 Exception Priorities (Continued)
Priority
17

18

Exception

Cause

IVOR
15

Debug:
1.BRT
2.Trap
3.RET
4.CRET

1. Attempted execution of a taken branch instruction
2. Condition specified in tw or twi instruction met.
3. Attempted execution of a rfi instruction.
4. Attempted execution of an rfci instruction.
Note: Exceptions requires corresponding debug event enabled,
MSR[DE] = 1, and DBCR0[IDM] = 1.
6

Program:
Trap

Condition specified in tw or twi instruction met and not trap
debug.

System Call

Execution of the System Call (sc, se_sc) instruction.

8

EFP Floating-point
Data

Denormalized, NaN, or Infinity data detected as input or output, or
underflow, overflow, divide by zero, or invalid operation in the EFP
APU.

33

EFP Round

Inexact Result

34

19

Alignment

lmw, stmw, lwarx, or stwcx. not word aligned.
lharx, or sthcx. not half word aligned.
dcbz

5

20

Debug:
Debug with
concurrent DTLB or
DSI exception:
1.DAC/IAC
linked2
2.DAC unlinked2

21

1. Data Address Compare linked with Instruction Address
Compare
2. Data Address Compare unlinked
Note: Exceptions requires corresponding debug event enabled,
MSR[DE] = 1, and DBCR0[IDM] = 1. In this case, the Debug
exception is considered imprecise, and DBSR[IDE] will be set.
Saved PC will point to the load or store instruction causing the
DAC event.

Data TLB Error

Data translation lookup miss in the TLB.

13
2

Data Storage

1. Access control.
2. Byte ordering due to misaligned access across page boundary
to pages with mismatched E bits.
3. Cache locking due to attempt to execute a icbtls or icblc in
user mode with MSR[UCLE] = 0.

22

24

15
Debug with concurrent DTLB or DSI exception. DBSR[IDE] also
set.

Debug:
1.IRPT
2.CIRPT

15
1. Interrupt taken (non-critical)
2. Critical Interrupt taken (critical only)
Note: Exceptions requires corresponding debug event enabled,
MSR[DE] = 1, and DBCR0[IDM] = 1.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-39

Table 5-34. e200 Exception Priorities (Continued)
Priority

Exception

Cause

IVOR

Post-Instruction Execution Exceptions
25

26

Debug:
1.DAC/IAC
linked2
2.DAC unlinked2

Debug:
1.ICMP

15
1. Data Address Compare linked with Instruction Address
Compare
2. Data Address Compare unlinked
Notes: Exceptions requires corresponding debug event enabled,
MSR[DE] = 1, and DBCR0[IDM] = 1. Saved PC will point to the
instruction following the load or store instruction causing the DAC
event.
15
1. Completion of an instruction.
Note: Exceptions requires corresponding debug event enabled,
MSR[DE] = 1, and DBCR0[IDM] = 1.

1

These exceptions are sampled at instruction boundaries, thus may actually occur after exceptions which are due
to a currently executing instruction. If one of these exceptions occurs during execution of an instruction in the
pipeline, it is not processed until the pipeline has been flushed, and the exception associated with the excepting
instruction may occur first.
2 When no data storage interrupt or data TLB error occurs, the e200 implements the data address compare debug
exceptions as post-instruction exceptions which differs from the Power ISA definition. When a TEA (either a DTLB
error or DSI or machine check (external TEA)) occurs in conjunction with an enabled DAC or linked DAC/IAC on
a load or store class instruction, or a Debug Counter event based on a counted DAC, the debug interrupt takes
priority, and the saved PC value points to the load or store class instruction, rather than to the next instruction.

5.9

Interrupt Processing

When an interrupt is taken, the processor uses SRR0/SRR1 for non-critical interrupts, CSRR0/CSRR1 for
critical interrupts, MCSRR0/MCSRR1 for machine check interrupts, and either CSRR0/CSRR1 or
DSRR0/DSRR1 for debug interrupts to save the contents of the MSR and to assist in identifying where
instruction execution should resume after the interrupt is handled.
When an interrupt occurs, one of SRR0/CSRR0/DSRR0/MCSRR0 is set to the address of the instruction
that caused the exception, or to the following instruction if appropriate:
• SRR1 is used to save machine state (selected MSR bits) on non-critical interrupts and to restore
those values when an rfi instruction is executed.
• CSRR1 is used to save machine status (selected MSR bits) on critical interrupts and to restore those
values when an rfci instruction is executed.
• DSRR1 is used to save machine status (selected MSR bits) on debug interrupts when the debug
functionality is enabled and to restore those values when an rfdi instruction is executed.
• MCSRR1 is used to save machine status (selected MSR bits) on machine check interrupts and to
restore those values when an rfmci instruction is executed.
The exception syndrome register is loaded with information specific to the exception type. Some interrupt
types can only be caused by a single exception type, and thus do not use an ESR setting to indicate the
interrupt cause.
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-40

Freescale Semiconductor

The machine state register is updated to preclude unrecoverable interrupts from occurring during the initial
portion of the interrupt handler. Specific settings are described in Table 5-35.
For alignment, data storage, or data TLB miss interrupts, the data exception address register (DEAR) is
loaded with the address which caused the interrupt to occur.
For machine check interrupts, the machine check syndrome register is loaded with information specific to
the exception type. For certain machine checks, the MCAR is loaded with an address corresponding to the
machine check.
Instruction fetch and execution resumes, using the new MSR value, at a location specific to the exception
type. The location is determined by the interrupt vector prefix register and an interrupt vector offset
register specific for each type of interrupt (see Table 5-3).
Table 5-35 shows the MSR settings for different interrupt categories.
Table 5-35. MSR Setting Due to Interrupt
MSR
Definition

Reset
Setting

Non-Critical
Interrupt

Critical
Interrupt

Debug Interrupt

Machine Check
Interrupt

5 (37)

UCLE

0

0

0

0

0

6 (38)

SPE

0

0

0

0

0

13 (45)

WE

0

0

0

0

0

14 (46)

CE

0

—

0

—/01

0
0

Bit(s)

16 (48)

EE

0

0

0

—/01

17 (49)

PR

0

0

0

0

0

18 (50)

FP

0

0

0

0

0

19 (51)

ME

0

—

—

—

0

20 (52)

FE0

0

0

0

0

0

22 (54)

DE

0

—

—/01

0

—/01

23 (55)

FE1

0

0

0

0

0

26 (58)

IS

0

0

0

0

0

27 (59)

DS

0

0

0

0

0

30 (62)

RI

0

—

—

—

0

Reserved and preserved bits are unimplemented and read as 0.
1

5.9.1

Conditionally cleared based on control bits in HID0

Enabling and Disabling Exceptions

When a condition exists that may cause an exception to be generated, it must be determined whether the
exception is enabled for that condition.
•

System reset exceptions cannot be masked.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-41

•

•

•

•

•

5.9.2

Machine check exceptions cannot be masked from sources other than the machine check pin, and
certain other async machine check status settings. Assertion of p_mcp_b is only recognized if the
machine check pin enable bit (HID0[EMCP]) is set. Certain machine check exceptions can be
enabled and disabled through bits in the HID0 register.
Asynchronous, maskable non-critical exceptions (such as the external input and decrementer) are
enabled by setting MSR[EE]. When MSR[EE] = 0, recognition of these exception conditions is
delayed. MSR[EE] is cleared automatically when a non-critical or critical interrupt is taken to mask
further recognition of conditions causing those exceptions.
Asynchronous, maskable critical exceptions (such as critical input and watchdog timer) are
enabled by setting MSR[CE]. When MSR[CE] = 0, recognition of these exception conditions is
delayed. MSR[CE] is cleared automatically when a critical interrupt is taken to mask further
recognition of conditions causing those exceptions.
Synchronous and asynchronous debug exceptions are enabled by setting MSR[DE]. When
MSR[DE] = 0, recognition of these exception conditions is masked. MSR[DE] is cleared
automatically when a debug interrupt is taken to mask further recognition of conditions causing
those exceptions. See Chapter 11, “Debug Support,” for more details on individual control of
debug exceptions.
The floating point unavailable exception can be prevented by setting MSR[FP] (although an
unimplemented instruction exception will be generated by the e200 instead).

Returning from an Interrupt Handler

The return from interrupt (rfi, se_rfi), return from critical interrupt (rfci, se_rfci), return from debug
interrupt (rfdi, se_rfdi), and return from machine check interrupt (rfmci, se_rfmci) instructions perform
context synchronization by allowing previously issued instructions to complete before returning to the
interrupted process. In general, execution of return from interrupt type instructions ensures the following:
• All previous instructions have completed to a point where they can no longer cause an exception.
This includes post-execute type exceptions.
• Previous instructions complete execution in the context (privilege and protection) under which
they were issued.
• The rfi and se_rfi instructions copy SRR1 bits back into the MSR.
• The rfci and se_rfci instructions copy CSRR1 bits back into the MSR.
• The rfdi and se_rfdi instructions copy DSRR1 bits back into the MSR.
• The rfmci and se_rfmci instructions copy MCSRR1 bits back into the MSR.
• Instructions fetched after this instruction execute in the context established by this instruction.
• Program execution resumes at the instruction indicated by SRR0 for rfi and se_rfi, CSRR0 for rfci
and se_rfci, MCCSRR0 for rfmci and se_rfmci, and DSRR0 for rfdi and se_rfdi.
Note that the return instructions rfi and se_rfi may be subject to a return type debug exception, and that
the return from critical interrupt instructions rfci and se_rfci may be subject to a critical return type debug
exception. For a complete description of context synchronization, refer to the EREF.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-42

Freescale Semiconductor

5.10

Process Switching

The following instructions are useful for restoring proper context during process switching:
• The msync instruction orders the effects of data memory instruction execution. All instructions
previously initiated appear to have completed before the msync instruction completes, and no
subsequent instructions appear to be initiated until the msync instruction completes.
• The isync instruction waits for all previous instructions to complete and then discards any fetched
instructions, causing subsequent instructions to be fetched (or refetched) from memory and to
execute in the context (privilege, translation, and protection) established by the previous
instructions.
• The stwcx. instructions clears any outstanding reservations, ensuring that a load and reserve
instruction in an old process is not paired with a store conditional instruction in a new one.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

5-43

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
5-44

Freescale Semiconductor

Chapter 6
Embedded Floating-Point Unit, Version 2
This chapter describes the instruction set architecture of the embedded floating-point unit, version 2
implemented on the e200z4. This unit implements scalar and vector single-precision floating-point
instructions to accelerate signal processing and other algorithms. In comparison to version 1.1 of the EFPU
architecture, version 2 of the architecture implements additional operations such as minimum, maximum,
and square root, as well as an extensive set of vector operations with permuted operands and mixed
add/sub, sum, and differences. For the remainder of this chapter, the term EFPU implies version 2 of the
architecture unless otherwise noted.

6.1

Nomenclature and Conventions

Several conventions regarding nomenclature are used in this chapter:
• Bits 0 to 31 of a 64-bit register are referenced as field 0, upper half, or high-order element of the
register. Bits 32–63 are referred to as field 1, lower half, or lower-order element of the register.
Each half is an element of a GPR.
• Mnemonics for EFPU instructions begin with the letters ‘evfs’ (embedded vector floating single)
or ‘efs’ (embedded (scalar) floating single).

6.2

EFPU Programming Model

The e200z4 core provides a register file with thirty-two 64-bit registers. The Power ISA embedded
category 32-bit instructions operate on the lower (least significant) 32 bits of the 64-bit register. EFPU
instructions are defined that view the 64-bit register as being composed of a vector of two 32-bit elements,
or a single scalar 32-bit element. Vector floating-point instructions operate on a vector of two 32-bit
single-precision floating-point numbers resident in the 64-bit GPRs. Scalar floating-point instructions
operate on the lower half of GPRs. These single-precision floating-point instructions do not have a
separate register file; there is a single shared register file for all instructions.
There are no record forms of EFPU instructions. EFPU compare instructions store the result of the
comparison into the condition register (CR). The meaning of the CR bits is now overloaded for the vector
operations. Floating-point compare instructions treat NaNs, Infinity, and Denorm as normalized numbers
for the comparison calculation when default results are provided.

6.2.1

Signal Processing Extension/Embedded Floating-Point Status and
Control Register (SPEFSCR)

Status and control for embedded floating-point uses the SPEFSCR register. This register is also
used by the SPE. Status and control bits are shared for vector floating-point operations,
single-precision floating-point operations, and SPE vector operations. The SPEFSCR register is
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

6-1

8

FRMC

FOVFE

FUNFE

FINVE

FDBZE

0

FINXE

FOVF

FUNF

FINV

FDBZ

FX

FG

OV

SOV

MODE

7

FOVFS

6

FDBZS

5

FUNFS

4

0

FINVS

FINVH

3

FINXS

FXH

2

FOVFH

FGH

1

FDBZH

OVH

0

FUNFH

SOVH

implemented as special purpose register (SPR) number 512 and is read and written by the mfspr and
mtspr instructions. The SPEFSCR is shown in Figure 6-1.

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
SPR - 512; Read/Write; Reset - 0x0

Figure 6-1. SPE/EFPU Status and Control Register (SPEFSCR)

The SPEFSCR bits are defined in Table 6-1.
Table 6-1. SPE /EFPU Status and Control Register
Bits

Name

Description

0
(32)

SOVH

1
(33)

OVH

Integer Overflow High
Defined by SPE.

2
(34)

FGH

Embedded Floating-point Guard bit High
FGH is supplied for use by the Floating-point Round exception handler. FGH is zeroed if a
Floating-point Data Exception occurs for the high element(s). FGH corresponds to the high
element result. FGH is cleared by a scalar floating point instruction.

3
(35)

FXH

Embedded Floating-point Sticky bit High
FXH is supplied for use by the Floating-point Round exception handler. FXH is zeroed if a
Floating-point Data Exception occurs for the high element(s). FXH corresponds to the high
element result. FXH is cleared by a scalar floating point instruction.

4
(36)

FINVH

Embedded Floating-point Invalid Operation / Input error High
In mode 0, the FINVH bit is set to 1 if the A or B high element operand of a floating-point
instruction is Infinity, NaN, or Denorm, or if the operation is a divide and the high element
dividend and divisor are both 0.
In mode 1, the FINVH bit is set on an IEEE 754 invalid operation (IEEE 754-1985 sec7.1)
in the high element.
FINVHH is cleared by a scalar floating point instruction.

5
(37)

FDBZH

Embedded Floating-point Divide by Zero High
The FDBZH bit is set to 1 when a floating-point divide instruction executed with a high
element divisor of 0, and the high element dividend is a finite non-zero number. FDBZH is
cleared by a scalar floating point instruction.

6
(38)

FUNFH

Embedded Floating-point Underflow High
The FUNFH bit is set to 1 when the execution of a floating-point instruction results in an
underflow in the high element. FUNFH is cleared by a scalar floating point instruction.

7
(39)

FOVFH

Embedded Floating-point Overflow High
The FOVFH bit is set to 1 when the execution of a floating-point instruction results in an
overflow in the high element. FOVFH is cleared by a scalar floating point instruction.

8:9
(40:41)

—

Summary Integer Overflow High
Defined by SPE.

Reserved

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
6-2

Freescale Semiconductor

Table 6-1. SPE /EFPU Status and Control Register (Continued)
Bits

Name

Description

10
(42)

FINXS

Embedded Floating-point Inexact Sticky Flag
The FINXS bit is set to 1 whenever the execution of a floating-point instruction delivers an
inexact result for either the low or high element and no Floating-point Data exception is
taken for either element, or if the result of a Floating-point instruction results in overflow
(FOVF=1 or FOVFH=1), but Floating-point Overflow exceptions are disabled (FOVFE=0),
or if the result of a Floating-point instruction results in underflow (FUNF=1 or FUNFH=1),
but Floating-point Underflow exceptions are disabled (FUNFE=0), and no Floating-point
Data exception occurs. The FINXS bit remains set until it is cleared by a mtspr instruction
specifying the SPEFSCR register.

11
(43)

FINVS

Embedded Floating-point Invalid Operation Sticky Flag
The FINVS bit is set to a 1 when a floating-point instruction sets the FINVH or FINV bit to 1.
The FINVS bit remains set until it is cleared by a mtspr instruction specifying the SPEFSCR
register.

12
(44)

FDBZS

Embedded Floating-point Divide by Zero Sticky Flag
The FDBZS bit is set to 1 when a floating-point divide instruction sets the FDBZH or FDBZ
bit to 1. The FDBZS bit remains set until it is cleared by a mtspr instruction specifying the
SPEFSCR register.

13
(45)

FUNFS

Embedded Floating-point Underflow Sticky Flag
The FUNFS bit is set to 1 when a floating-point instruction sets the FUNFH or FUNF bit to
1. The FUNFS bit remains set until it is cleared by a mtspr instruction specifying the
SPEFSCR register.

14
(46)

FOVFS

Embedded Floating-point Overflow Sticky Flag
The FOVFS bit is set to 1 when a floating-point instruction sets the FOVFH or FOVF bit to
1. The FOVFS bit remains set until it is cleared by a mtspr instruction specifying the
SPEFSCR register.

15
(47)

MODE

Embedded Floating-point Operating Mode
0 Default hardware results operating mode
1 IEEE754 hardware results operating mode (not supported by Zen)
This bit controls the operating mode of the EFPU.
The e200 supports only mode 0.
Software should read the value of this bit after writing it to determine if the implementation
supports the selected mode. Implementations return the value written if the selected mode
is a supported mode, otherwise the value read will indicate the hardware supported mode.

16
(48)

SOV

Summary integer overflow
Defined by SPE.

17
(49)

OV

Integer overflow
Defined by SPE.

18
(50)

FG

Embedded Floating-point Guard bit
FG is supplied for use by the Floating-point Round exception handler. FG is zeroed if a
Floating-point Data Exception occurs for the low element(s). FG corresponds to the low
element result.

19
(51)

FX

Embedded Floating-point Sticky bit
FX is supplied for use by the Floating-point Round exception handler.FX is zeroed if a
Floating-point Data Exception occurs for the low element(s). FX corresponds to the low
element result.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

6-3

Table 6-1. SPE /EFPU Status and Control Register (Continued)
Bits

Name

Description

20
(52)

FINV

Embedded Floating-point Invalid Operation/Input error
In mode 0, the FINV bit is set to 1 if the A or B low element operand of a floating-point
instruction is Infinity, NaN, or Denorm, or if the operation is a divide and the low element
dividend and divisor are both 0.
In mode 1, the FINV bit is set on an IEEE754 invalid operation (IEEE754-1985 sec7.1) in
the low element.

21
(53)

FDBZ

Embedded Floating-point Divide by Zero
The FDBZ bit is set to 1 when a floating-point divide instruction executed with a low element
divisor of 0, and the low element dividend is a finite non-zero number.

22
(54)

FUNF

Embedded Floating-point Underflow
The FUNF bit is set to 1 when the execution of a floating-point instruction results in an
underflow in the low element.

23
(55)

FOVF

Embedded Floating-point Overflow
The FOVF bit is set to 1 when the execution of a floating-point instruction results in an
overflow in the low element.

24
(56)

—

25
(57)

FINXE

Embedded Floating-point Inexact Exception Enable
0 Exception disabled
1 Exception enabled
If the exception is enabled, a Floating-point Round exception is taken if for both elements,
the result of a Floating-point instruction does not result in overflow or underflow, and the
result for either element is inexact (FG | FX = 1, or FGH | FXH =1), or if the result of a
Floating-point instruction does result in overflow (FOVF=1 or FOVFH=1) for either element,
but Floating-point Overflow exceptions are disabled (FOVFE=0), or if the result of a
Floating-point instruction results in underflow (FUNF=1 or FUNFH=1), but Floating-point
Underflow exceptions are disabled (FUNFE=0), and no Floating-point Data exception
occurs.

26
(58)

FINVE

Embedded Floating-point Invalid Operation / Input Error Exception Enable
0 Exception disabled
1 Exception enabled
If the exception is enabled, a Floating-point Data exception is taken if the FINV or FINVH
bit is set by a floating-point instruction.

27
(59)

FDBZE

Embedded Floating-point Divide by Zero Exception Enable
0 Exception disabled
1 Exception enabled
If the exception is enabled, a Floating-point Data exception is taken if the FDBZ or FDBZH
bit is set by a floating-point instruction.

28
(60)

FUNFE

Embedded Floating-point Underflow Exception Enable
0 Exception disabled
1 Exception enabled
If the exception is enabled, a Floating-point Data exception is taken if the FUNF or FUNFH
bit is set by a floating-point instruction.

Reserved

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
6-4

Freescale Semiconductor

Table 6-1. SPE /EFPU Status and Control Register (Continued)
Bits

Name

Description

29
(61)

FOVFE

Embedded Floating-point Overflow Exception Enable
0 Exception disabled
1 Exception enabled
If the exception is enabled, a Floating-point Data exception is taken if the FOVF or FOVFH
bit is set by a floating-point instruction.

30:31
(62:63)

FRMC

Embedded Floating-point Rounding Mode Control
00 Round to Nearest
01 Round toward Zero
10 Round toward +Infinity
11 Round toward -Infinity

6.2.2

GPRs and Power ISA Instructions

The e200z4 core implements the 32-bit forms of the Power ISA embedded category instructions. All 32-bit
Power ISA instructions operate upon the lower half of the 64-bit GPR. These instructions do not affect the
upper half of a GPR.

6.2.3

SPE/EFPU Available Bit in MSR

MSR[SPE] is defined as the SPE/EFPU available bit. If this bit is clear and software attempts to execute
any of the EFPU vector instructions (evfsxxx) that affect the upper 32-bits of a GPR, the EFPU unavailable
exception is taken. If this bit is set, software can execute any of the EFPU instructions.

6.2.4

Embedded Floating-point Exception Bit in ESR

ESR[SPE] is defined as the SPE/EFPU exception bit. This bit is set whenever the processor takes an
exception related to the execution of the SPE APU instructions. This bit is also set whenever the processor
takes an interrupt related to the execution of the embedded floating-point instructions. (Note that the same
bit is used for SPE APU exceptions. Thus, SPE and embedded floating-point interrupts are
indistinguishable in the ESR).

6.2.5

EFPU Exceptions

The architecture defines the following embedded floating-point category exceptions:
• SPE/EFP Unavailable exception
• EFP Floating-point Data exception
• EFP Floating-point Round exception
Three interrupt vector offset registers (IVORs)—IVOR32, IVOR33, and IVOR34—are used by the
exception model. The SPR number for IVOR32 is 528, for IVOR33 it is 529, and for IVOR34 it is 530.
These registers are privileged.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

6-5

6.2.5.1

EFP Unavailable Exception

The EFP Unavailable exception is taken if MSR[SPE] is cleared and execution of an EFPU vector
instruction (evfsxxx) is attempted. When the EFP unavailable exception occurs, the processor suppresses
execution of the instruction causing the exception. The SRR0, SRR1, MSR, and ESR registers are
modified as follows:
• SRR0 is set to the effective address of the instruction causing the exception.
• SRR1 is set to the contents of the MSR at the time of the exception.
• MSR[CE, ME, DE] are unchanged. All other bits are cleared.
• The ESR[SPE ]bit is set. All other ESR bits are cleared.
Instruction execution resumes at address IVPR[0:15]||IVOR32[16:27]||0b0000.

6.2.5.2

Embedded Floating-point Data Exception

The embedded floating-point data exception vector is used for enabled floating-point invalid
operation/input error, underflow, overflow, and divide by zero exceptions (collectively called
floating-point data exceptions). When one of these enabled floating-point exceptions occurs, the processor
suppresses execution of the instruction causing the exception. The SRR0, SRR1, MSR, ESR and
SPEFSCR registers are modified as follows:
• SRR0 is set to the effective address of the instruction causing the exception.
• SRR1 is set to the contents of the MSR at the time of the exception.
• MSR bits CE, ME, and DE are unchanged. All other bits are cleared.
• The ESR[SPE] bit is set. All other ESR bits are cleared.
• One or more SPEFSCR status bits are set to indicate the type of exception. The affected bits are
FINVH, FINV, FDBZH, FDBZ, FOVFH, FOVF, FUNFH, and FUNF.
SPEFSCR[FG, FGH, FX, FXH] are cleared
Instruction execution resumes at address IVPR[0:15]||IVOR33[16:27]||0b0000.

6.2.5.3

Embedded Floating-Point Round Exception

The embedded floating-point round exception occurs if the SPEFSCR[FINXE] bit is set, no floating-point
data exception is taken, and either the unrounded result of an operation is not exact, an overflow occurs
and overflow exceptions are disabled (FOVF or FOVFH set with FOVFE cleared), or an underflow occurs
and underflow exceptions are disabled (FUNF set with FUNFE cleared). The embedded floating-point
round exception will not occur if an enabled embedded floating-point data exception occurs.
When the embedded floating-point round exception occurs, the unrounded (truncated) result of an inexact
high or low element is placed in the target register. If only a single element is inexact, the other exact
element will be updated with the correctly rounded result. The FG and FX bits corresponding to the other
exact element will both be ‘0’.
The bits FG and FX are provided so that an exception handler can round the result as it desires. FG (called
the ‘guard’ bit) is the value of the bit immediately to the right of the lsb of the destination format mantissa
from the infinitely precise intermediate calculation before rounding. FX (called the ‘sticky’ bit) is the value
e200z4 Power Architecture™ Core Reference Manual, Rev. 0
6-6

Freescale Semiconductor

of the ‘or’ of all the bits to the right of the guard bit (FG) of the destination format mantissa from the
infinitely precise intermediate calculation before rounding.
The SRR0, SRR1, MSR, ESR and SPEFSCR registers are modified as follows:
• SRR0 is set to the effective address of the instruction following the instruction causing the
exception.
• SRR1 is set to the contents of the MSR at the time of the exception.
• MSR bits CE, ME and DE are unchanged. All other bits are cleared.
• The ESR[SPE] bit is set. All other ESR bits are cleared.
• SPEFSCR[FGH, FG, FXH, FX] are set appropriately. SPEFSCR[FINXS] will be set.
Instruction execution resumes at address IVPR[0:15]||IVOR34[16:27]||0b0000.

6.2.6

Exception Priorities

The following list shows the priority order in which exceptions are taken:
1. EFP unavailable
2. EFP floating-point data
3. EFP floating-point round
An embedded floating-point data exception is taken if either element generates an embedded
floating-point data exception. An embedded floating-point round exception is taken if either element
generates an embedded floating-point round exception and neither element generates an embedded
floating-point data exception.

6.3

Embedded Floating-Point Unit Operations

The e200z4 implements floating-point instructions that operate upon the contents of a 64-bit register that
is a vector of two single-precision floating-point elements. The floating-point unit shares the same register
file as the integer unit. There is no separate floating-point register file. Floating-point instructions are also
provided to perform scalar single precision floating-point operations on the low elements of registers,
without affecting the high-order portion. The PowerPC ISA floating-point instructions are not
implemented in the e200z4.
The Freescale EIS architecture definition for embedded floating-point defines two operating modes: a
real-time, default results oriented mode (mode 0) and a true IEEE Std. 754 standard results operating mode
(mode 1). Implementations of the embedded floating-point unit may choose to implement one or both of
these modes. The e200z4 hardware implements mode 0. Operation that conforms to IEEE Std. 754
standard is still available in mode 0 with assistance of a software envelope.

6.3.1

Floating-Point Data Formats

The EFPU supports single precision scalar and vector floating-point data operations and conversions. In
addition, conversions between single-precision floating-point and the half-precision floating-point storage
format are supported. These formats are described in the following subsections.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
Freescale Semiconductor

6-7

6.3.1.1

Single-Precision Floating-point Format

Each single-precision floating-point data element is 32 bits wide with one sign bit (s), 8 bits of biased
exponent (e) and 23 bits of fraction (f).
In the IEEE 754 specification, single-precision floating point values are represented in a format consisting
of three explicit fields (sign field, biased exponent field, and fraction field) and an implicit hidden bit, as
shown in Figure 6-2.
Hidden Bit

0
S

8

1

31

9

exp

fraction

S—sign bit; 0—positive; 1—negative
exp—biased exponent field (excess 127 notation)
fraction—fractional portion of number

Figure 6-2. Single Precision Data Format

For normalized numbers, the biased exponent value ‘e’ lies in the range of 1 to 254 and corresponds to an
actual exponent value E in the range –126 to +127. The hidden bit is a ‘1,’ and the value of the number is
interpreted as:
S

( –1 ) × 2 E × ( 1.fraction )
where E is the unbiased exponent and 1.fraction is the significand consisting of a leading ‘1’ (the hidden
bit) and a fractional part (fraction field). With this format, the maximum positive normalized number
(pmax) is represented by the encoding 0x7F7F_FFFF, which is approximately 3.4E+38 ( 2 128 ), and the
minimum positive normalized value (pmin) is represented by the encoding 0x0080_0000, which is
approximately 1.2E-38 (2 –126 ).
Two specific values of the biased exponent, 0 and 255, are reserved for encoding special values of
± 0, ± ∞ , NaN , and Denorm .
Zeros of both positive and negative sign are represented by a biased exponent value e of zero and a fraction
f which is zero.
Infinities of both positive and negative sign are represented by a biased exponent value of 255 and a
fraction which is zero.
Denormalized numbers of both positive and negative sign are represented by a biased exponent value e of
0 and a fraction f which is non-zero. For these numbers, the hidden bit is defined by the IEEE Std. 754
standard to be ‘0.’ This number type is not directly supported in hardware. Instead, either a software
exception handler is invoked, or a default value is defined, depending on the operating mode.
Not a Numbers (NaNs) are represented by a biased exponent value e of 255 and a fraction f which is
non-zero.

e200z4 Power Architecture™ Core Reference Manual, Rev. 0
6-8

Freescale Semiconductor

Defining pmax to be the most positive normalized value (farthest from zero), pmin the smallest positive
normalized value (closest to zero), nmax the most negative normalized value (farthest from zero) and nmin
the smallest normalized negative value (closest to zero), an overflow is said to have occurred if the
numerically correct result of an instruction is such that r>pmax or r

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : No
Author                          : Freescale Semiconductor; Inc.
Modify Date                     : 2012:09:20 12:21:33-05:00
Keywords                        : "e200z4, Power Architecture, Power Architecture, general-purpose registers (GPRs), e200z446n3"
PXC Viewer Info                 : PDF-XChange Viewer;2.5.197.0;Jul  8 2011;20:50:13;D:20120920122133-05'00'
Page Count                      : 866
XMP Toolkit                     : XMP Core 4.1.1
Format                          : application/pdf
Creator                         : Freescale Semiconductor, Inc.
Title                           : e200z4 Power Architecture ™ Core - Reference ManuaL
Description                     : Supports e200z446n3. The primary objective of this manual is to describe the functionality of the e200z4 embedded microprocessor core for software and hardware developers. The e200z4 processor family is a set of CPU cores that implement low-cost versions of Power Architecture technology. The e200z4 core is a dual-issue, 32-bit design with 64-bit general-purpose registers (GPRs).
Subject                         : e200z4, Power Architecture, Power Architecture, general-purpose registers (GPRs), e200z446n3
Page Mode                       : UseOutlines
EXIF Metadata provided by EXIF.tools

Navigation menu