Page 2
Freescale Semiconductor product For Literature Requests Only: could create a situation where personal injury or death may occur. Should Buyer...
Page 3
Part I—e500 Core Core Complex Overview Register Model Instruction Model Execution Timing Interrupts and Exceptions Power Management Performance Monitor Debug Support Part II—e500 Core Complex Timer Facilities Auxiliary Processing Units (APUs) L1 Caches Memory Management Units Core Complex Bus (CCB) Appendix A—Programming Examples Appendix B—Guidelines for 32-Bit Book E Appendix C—Simplified Mnemonics for PowerPC Instructions...
Page 4
Part I—e500 Core Core Complex Overview Register Model Instruction Model Execution Timing Interrupts and Exceptions Power Management Performance Monitor Debug Support Part II—e500 Core Complex Timer Facilities Auxiliary Processing Units (APUs) L1 Caches Memory Management Units Core Complex Bus (CCB) Appendix A—Programming Examples Appendix B—Guidelines for 32-Bit Book E Appendix C—Simplified Mnemonics for PowerPC Instructions...
Processor Control Registers................... 2-10 2.5.1 Machine State Register (MSR) .................. 2-10 2.5.2 Processor ID Register (PIR) ..................2-12 2.5.3 Processor Version Register (PVR)................2-13 2.5.4 System Version Register (SVR)................. 2-13 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 7
L1 Cache Configuration Register 1 (L1CFG1) ............2-35 2.12 MMU Registers......................2-35 2.12.1 Process ID Registers (PID0–PID2)................2-36 2.12.2 MMU Control and Status Register 0 (MMUCSR0) ..........2-36 2.12.3 MMU Configuration Register (MMUCFG) .............. 2-37 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 8
2.16 Synchronization Requirements for SPRs............... 2-58 Chapter 3 Instruction Model Operand Conventions ...................... 3-1 3.1.1 Data Organization in Memory and Data Transfers............3-1 3.1.2 Alignment and Misaligned Accesses................3-2 PowerPC e500 Core Family Reference Manual, Rev. 1 viii Freescale Semiconductor...
Page 9
(MO = 1)....................3-31 3.3.1.7 Atomic Update Primitives Using lwarx and stwcx..........3-32 3.3.1.7.1 Reservations....................... 3-34 3.3.1.7.2 Forward Progress ....................3-36 3.3.1.7.3 Reservation Loss Due to Granularity ..............3-36 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 15
Floating-Point Conversion Models................10-22 10.4.5.1 Common Functions....................10-22 10.4.5.2 Convert from Double-Precision Floating-Point to Integer Word with Saturation....................10-23 10.4.5.3 Convert to Double-Precision Floating-Point from Integer Word with Saturation....................10-25 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 16
L1 Instruction and Data Cache Flash Invalidation ..........11-18 11.4.4 L1 Instruction and Data Cache Line Locking/Unlocking........11-19 11.4.4.1 Effects of Other Cache Instructions on Locked Lines......... 11-21 11.4.4.2 Flash Clearing of Lock Bits................. 11-21 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 17
Round-Robin Replacement for TLB0—e500v2..........12-14 12.3.3 Consistency Between L1 and L2 TLBs ..............12-15 12.3.4 L1 and L2 TLB Access Times ................. 12-16 12.3.5 The G Bit (of WIMGE) ................... 12-16 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor xvii...
Page 18
L2 Unlocking ......................13-8 13.5.3 L1 Overlock ....................... 13-8 13.6 Reservation Management ....................13-8 13.7 Remote Atomic Status Monitoring ................13-9 13.8 Proper Reporting of Bus Faults ..................13-9 PowerPC e500 Core Family Reference Manual, Rev. 1 xviii Freescale Semiconductor...
Page 19
Subtract ........................C-2 Rotate and Shift Simplified Mnemonics................C-2 C.3.1 Operations on Words ....................C-3 Branch Instruction Simplified Mnemonics..............C-4 C.4.1 Key Facts about Simplified Branch Mnemonics ............C-5 C.4.2 Eliminating the BO Operand ..................C-5 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 20
Instructions (Binary) by Mnemonic................D-1 Instructions (Decimal and Hexadecimal) by Opcode ........... D-22 Instructions by Form ..................... D-35 Appendix E Revision History Major Changes From Revision 0 to Revision 1.............. A-1 Index PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 22
Core Power Management State Diagram................6-2 Example Core Power Management Handshaking ..............6-5 Performance Monitor Global Control Register 0 (PMGC0)/ User Performance Monitor Global Control Register 0 (UPMGC0) ........7-4 PowerPC e500 Core Family Reference Manual, Rev. 1 xxii Freescale Semiconductor...
Page 23
MAS Register 7 (MAS7) ....................12-31 13-1 CCB Interface Signals......................13-2 Branch Conditional (bc) Instruction Format................C-4 BO Field (Bits 6–10 of the Instruction Encoding) ..............C-6 BI Field (Bits 11–14 of the Instruction Encoding)..............C-9 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor xxiii...
Page 28
JTAG Signal Details........................ 8-6 Debug Events .......................... 8-7 Instruction Address Compare Modes..................8-8 Data Address Compare Modes ..................... 8-10 10-1 BTB Locking APU Instructions.................... 10-2 11-1 Cache Line State Definitions ....................11-10 PowerPC e500 Core Family Reference Manual, Rev. 1 xxviii Freescale Semiconductor...
Page 29
Simplified Mnemonics for bclr and bcctr without LR Update..........C-13 C-14 Simplified Mnemonics for bcl and bcla with LR Update ............C-14 C-15 Simplified Mnemonics for bclrl and bcctrl with LR Update..........C-14 C-16 Standard Coding for Branch Conditions ................C-15 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor xxix...
Page 30
Additional Simplified Mnemonics for Accessing SPRGs ............C-24 C-29 Simplified Mnemonics......................C-26 Instructions (Binary) by Mnemonic..................D-1 Instructions (Decimal and Hexadecimal) by Opcode ............D-22 Instructions (Binary) by Form....................D-35 Revision History ........................A-1 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Freescale Book E implementation standards. This book describes all of the instructions and registers implemented on the e500, including those defined by Book E and those that are e500-specific. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor xxxi...
Book E–defined programming model that are supported on the e500 and describes the e500-specific branch target buffer locking APU. • Chapter 11, “L1 Caches,” provides specific hardware and software details regarding the e500 cache implementation. PowerPC e500 Core Family Reference Manual, Rev. 1 xxxii Freescale Semiconductor...
• Computer Architecture: A Quantitative Approach, Third Edition, by John L. Hennessy and David A. Patterson. • Computer Organization and Design: The Hardware/Software Interface, Second Edition, David A. Patterson and John L. Hennessy. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor xxxiii...
Internal signals are set in italics, for example, qual BG. Prefix to denote hexadecimal number Prefix to denote binary number rA, rB Instruction syntax used to identify a source GPR PowerPC e500 Core Family Reference Manual, Rev. 1 xxxiv Freescale Semiconductor...
APU that is defined by the Freescale Book E implementation standards. • Chapter 8, “Debug Support,” describes the e500 core complex internal debug capabilities and associated features. Included are important deviations to the Book E debug mode. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor Part I-1...
Page 38
PowerPC e500 Core Family Reference Manual, Rev. 1 Part I-2 Freescale Semiconductor...
Note that this conceptual diagram does not attempt to show how these features are physically implemented. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
APU (SPE APU), which includes a suite of vector instructions that use the upper and lower halves of the GPRs as a single two-element operand. Most APUs implemented on the e500 are defined by the Freescale Semiconductor Book E implementation standards (EIS).
Page 42
It can also support single-beat and burst data transfers for memory accesses and memory-mapped I/O operations. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The APU also provides resources for detecting and handling overlocking conditions. — Machine check. The machine check interrupt is treated as a separate level of interrupt. It uses its own save and restore registers (MCSRR0 and MCSRR1) and Return from PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
– If rA or rB is zero, a floating-point divide takes 4 cycles; all other cases take 29 cycles. – 4-cycle SIMD pipelined multiply-accumulate (MAC) – 64-bit accumulator for no-stall MAC operations PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 45
— Four-entry general instruction issue queue (GIQ) • Branch unit—The branch unit (BU) is an execution unit and is distinct from the BPU. It executes (resolves) all branch and CR logical instructions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
— Load miss queue allows up to four load misses before stalling (up to nine load misses in the e500v2). — Load hits can continue to be serviced when the load miss queue is full. — The seven-entry L1 store queue allows full pipelining of stores. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
— Two general-purpose read data buses and one write data bus • Extended exception handling — Supports Book E interrupt model – Less than 10-cycle interrupt latency – Interrupt vector prefix register (IVPR) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 48
) of physical memory on the e500v1 and 64 Gbytes (2 ) on the e500v2 — Support for big-endian and true little-endian memory on a per-page basis • Power management PowerPC e500 Core Family Reference Manual, Rev. 1 1-10 Freescale Semiconductor...
• TBSEL and TBEE bits have been added to the performance monitor global control register 0 (PMGC0) to support monitoring of time base events. • Minor modifications to the SPE APU. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-11...
CT, rA, rB Instruction Cache Block Touch and Lock Set icbtls CT, rA, rB — Machine check APU. This APU defines the Return from Machine Check Interrupt instruction (rfmci). PowerPC e500 Core Family Reference Manual, Rev. 1 1-12 Freescale Semiconductor...
Page 51
— BTB locking APU instructions. The core complex provides a 512-entry BTB for efficient processing of branch instructions. The BTB is a branch target address cache, PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-13...
Each of the 512 entries in the 4-way set associative address cache of branch target addresses includes a 2-bit saturating branch history counter, whose value is incremented or decremented depending on whether the branch was taken. These bits can take on four values PowerPC e500 Core Family Reference Manual, Rev. 1 1-14 Freescale Semiconductor...
Page 53
If a branch resolves as incorrect, instructions in the target stream are flushed from the execution pipeline, the branch history bits are updated in the BTB entry, and nonspeculative fetching begins from the correct path. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-15...
L2 cache (if implemented). Those factors increase when it is necessary to fetch instructions from system memory and include the processor-to-bus clock ratio, the amount of bus traffic, and whether any cache coherency operations are required. PowerPC e500 Core Family Reference Manual, Rev. 1 1-16 Freescale Semiconductor...
An instruction in GIQ1 destined for SU2 or the LSU need not wait for an MU instruction in GIQ0 that is stalled behind a long-latency divide. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-17...
The following section describes the e500 core registers defined in Book E, the Freescale Semiconductor Book E implementation standards (EIS), and registers that are specific to the e500. Figure 1-7 shows the e500 register set. PowerPC e500 Core Family Reference Manual, Rev. 1 1-18 Freescale Semiconductor...
L1CSR0 spr 1010 L1 Cache Control/Status 0/1 spr 1011 L1CSR1 These registers are defined by the EIS e500v2 only These registers are e500-specific Figure 1-7. e500 Core Programming Model PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-19...
(ESR) or the SPEFSCR, depending on the exception, to verify the specific cause of the exception and take appropriate action. The core complex provides the interrupts described in Section 1.8.5, “Interrupt Registers.” PowerPC e500 Core Family Reference Manual, Rev. 1 1-20 Freescale Semiconductor...
Power PC architecture. They use save and restore registers (SRR0/SRR1) to save state when they are taken and they use the rfi instruction to restore state. Asynchronous noncritical interrupts can be masked by the external interrupt enable bit, MSR[EE]. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-21...
CSRR1 Critical save/restore register 1—Holds machine state on critical interrupts and restores machine state after an rfci instruction is executed. PowerPC e500 Core Family Reference Manual, Rev. 1 1-22 Freescale Semiconductor...
Page 61
Instruction storage interrupt offset IVOR4 External input interrupt offset IVOR5 Alignment interrupt offset IVOR6 Program interrupt offset IVOR7 Floating-point unavailable interrupt offset (not supported on the e500) IVOR8 System call interrupt offset PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-23...
• User-definable (U0–U3), a 4-bit implementation-specific field The core complex employs a two-level memory management unit (MMU) architecture. There are separate instruction and data level-1 (L1) MMUs backed up by a unified level-2 (L2) MMU, PowerPC e500 Core Family Reference Manual, Rev. 1 1-24 Freescale Semiconductor...
• Hardware assist for TLB miss exceptions • Software managed by tlbre, tlbwe, tlbsx, tlbsync, tlbivax, and mtspr instructions • Supports snooping of TLB by both internal and external tlbivax instructions PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-25...
TLBs and information required to identify the TLB to be accessed. To ensure consistency among Freescale Semiconductor Book E processors, certain aspects of the implementation are defined by the Freescale Semiconductor Book E standard, whereas more specific details are left to individual implementations.
(CCB) if HID1[ABE] is set. The core complex also snoops TLB invalidate transactions on the CCB from other bus masters. PowerPC e500 Core Family Reference Manual, Rev. 1 1-28 Freescale Semiconductor...
• Data Cache Block Touch and Lock Set (dcbtls) • Data Cache Block Touch for Store and Lock Set (dcbtstls) • Instruction Cache Block Lock Clear (icblc) • Instruction Cache Block Touch and Lock Set (icbtls) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-29...
Two instructions, mtpmr and mfpmr, are provided for moving data to and from these registers. An overview of the performance monitoring registers is provided in the following sections. PowerPC e500 Core Family Reference Manual, Rev. 1 1-30 Freescale Semiconductor...
[threshold × multiplier] times. The contents of these registers are reflected to UPMLCb0–UPMLCb3, which can be read from user mode with mfpmr. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-31...
• The MMU architecture is different, so some TLB manipulation instructions have different semantics. • Instructions that support the BATs and segment registers are not implemented. PowerPC e500 Core Family Reference Manual, Rev. 1 1-32 Freescale Semiconductor...
Book E defines resources for fixed 4-Kbyte pages and multiple, variable page sizes that can be configured in a single implementation. TLB management is provided with new instructions and SPRs. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 1-33...
Unlike the AIM version of the PowerPC architecture, where little-endian mode is controlled on a system basis, Book E allows control of byte ordering on a memory page basis. In addition, the little-endian mode used in Book E is true little endian. PowerPC e500 Core Family Reference Manual, Rev. 1 1-34 Freescale Semiconductor...
– Specified CR fields can be set by a move to the CR from a GPR (mtcrf). – A specified CR field can be set by a move to the CR from another CR field (mcrf), or from the XER (mcrxr). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
— Machine state register (MSR)—Used by the operating system to configure parameters such as user/supervisor mode, address space, and enabling of asynchronous interrupts. MSR is described in Section 2.5.1, “Machine State Register (MSR).” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Local control b0–b3 L1CSR0 spr 1010 L1 Cache Control/Status 0/1 spr 1011 L1CSR1 These registers are defined by the EIS e500v2 only These registers are e500-specific Figure 2-1. e500 Register Model PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 76
32-bit Book E implementation. SPE APU vector instructions return 64-bit values, as do DPFP APU instructions on the e500v2; SPFP APU instructions return single-precision 32-bit values. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
APU instructions at the assembly level or that uses SPE intrinsics will require rewriting for upward compatibility with next-generation PowerQUICC devices. Freescale Semiconductor offers a libmoto_e500 library that uses SPE instructions. Freescale will also provide libraries to support next-generation PowerQUICC devices.
Page 79
The TSR is read using mfspr. It cannot be directly written to. Instead, TSR bits corresponding to 1 bits in the GPR can be cleared using mtspr. USPRG0 is a separate physical register from SPRG0. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 80
PID, not PID0. PID1 Process ID register 1 Read/Write 2.12.1/2-36 PID2 Process ID register 2 Read/Write 2.12.1/2-36 SPEFSCR Signal processing and embedded floating-point Read/Write 2.14.1/2-49 status and control register PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
2.4.1 Condition Register (CR) The e500 implements the CR as it is defined by Book E for integer instructions. Note that the embedded floating-point instructions do not use the CR. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
MCSRR0 and MCSRR1 hold the return address and MSR information. The EIS defines the Return from Machine Check Interrupt instruction, rfmci, which restores MSR contents from MCSRR1 when it is executed. PowerPC e500 Core Family Reference Manual, Rev. 1 2-10 Freescale Semiconductor...
Page 83
GPRs, SPRs, and the MSR). 1 The processor is in user mode, cannot execute any privileged instruction, and cannot access any privileged resource. PR also affects memory access control. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-11...
The e500 implements the processor ID register (PIR) as defined by the Book E architecture. The PIR contains a value that can be used to distinguish the processor from other processors in the system. PowerPC e500 Core Family Reference Manual, Rev. 1 2-12 Freescale Semiconductor...
SPR 1023 Access: Supervisor read-only System version SoC-dependent value (determined by svr [0:31]. See Reset Section 13.2, “Signal Summary.”) Figure 2-4. System Version Register (SVR) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-13...
• Software can select one from of four TB bits to signal a fixed-interval interrupt whenever the bit transitions from 0 to 1. It is typically used to trigger periodic system maintenance functions. Bits that may be selected are implementation-dependent. PowerPC e500 Core Family Reference Manual, Rev. 1 2-14 Freescale Semiconductor...
0 to 1. FPEXT || FP = 0000_00 selects TBU[32] (the msb of the TB) FPEXT || FP = 1111_11 selects TBL[63] (the lsb of the TB) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-15...
The alternate time base counter (ATB), shown in Figure 2-7, is formed by concatenating the upper and lower alternate time base registers (ATBU and ATBL). ATBL (SPR 526) provides read-only PowerPC e500 Core Family Reference Manual, Rev. 1 2-16 Freescale Semiconductor...
Upper 32 bits of the alternate time base counter Interrupt Registers Section 2.7.1, “Interrupt Registers Defined by Book E,” Section 2.7.2, “e500-Specific Interrupt Registers,” describe registers used for interrupt handling. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-17...
The e500 implements DEAR as it is defined by the Book E architecture. DEAR is loaded with the effective address of a data access (caused by a load, store, or cache management instruction) that results in an alignment, data TLB miss, or DSI exception. PowerPC e500 Core Family Reference Manual, Rev. 1 2-18 Freescale Semiconductor...
Access: Supervisor-only 39 40 41 44 45 46 — PIL PPR PTR — ST — DLK ILK — — — Reset All zeros Figure 2-10. Exception Syndrome Register (ESR) PowerPC e500 Core Family Reference Manual, Rev. 1 2-20 Freescale Semiconductor...
Page 93
SPE/embedded floating-point exception bit (e500-specific) 0 Default 1 Any exception caused by an SPE or and SPFP instruction occurred. 57–63 — Reserved, should be cleared (defined by Book E as allocated). — PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-21...
MSR[UBLE], is defined to allow user-mode programs to lock or unlock BTB entries. Section 3.9.1, “Branch Target Buffer (BTB) Locking Instructions,” for more information about BTB locking. Section 2.5.1, “Machine State Register (MSR),” describes MSR bits that support the BTB. PowerPC e500 Core Family Reference Manual, Rev. 1 2-24 Freescale Semiconductor...
Branch direction prediction. The user can pick the direction of the predicted branch. 0 The locked address is always predicted as not taken. 1 The locked address is always predicted as taken. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-25...
Doze power management mode. If MSR[WE] is set, this bit controls the doze output signal. DOZE Interpretation of this bit is handled by integrated system logic. 0 doze is not asserted. 1 doze is asserted. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-27...
Page 100
NOPTI. If CT = 1, icbt does a touch load to the L2 cache. 1 dcbt, dcbtst, and icbt are treated as no-ops; dcblc and dcbtls are not treated as no-ops. PowerPC e500 Core Family Reference Manual, Rev. 1 2-28 Freescale Semiconductor...
Table 2-15 describes the HID1 fields. Table 2-15. HID1 Field Descriptions Bits Name Description 32–37 PLL_CFG Reflected directly from the PLL_CFG input pins (read-only) 38–46 — Reserved, should be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-29...
Page 102
0 R2 data bus parity checking disabled 1 R2 data bus parity checking enabled ASTME Address bus streaming mode enable 0 Address bus streaming mode disabled 1 Address bus streaming mode enabled PowerPC e500 Core Family Reference Manual, Rev. 1 2-30 Freescale Semiconductor...
Access: Supervisor-only Line Locking APU Bits — CPE CPI — CSLC CUL CLO CLFR — CFI CE Reset All zeros Figure 2-20. L1 Cache Control and Status Register 0 (L1CSR0) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-31...
Page 104
1 Cache invalidation operation. A cache invalidation operation is initiated by hardware. Once complete, CFI is cleared. Writing a 1 during an invalidation causes an undefined operation. (Data) Cache enable 0 The cache is neither accessed or updated. 1 Enables cache operation PowerPC e500 Core Family Reference Manual, Rev. 1 2-32 Freescale Semiconductor...
ICLFR Instruction cache lock bits flash reset. Writing 0 and then 1 flash clears the lock bit of all entries in the instruction cache; clearing occurs independently from the value of the enable bit (ICE). ICLFR is always read as 0. 56–61 — Reserved, should be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-33...
Cache locking APU available 0 Unavailable 1 Available Cache parity available 0 Unavailable 1 Available 45–49 — Reserved, should be cleared. 50–52 CNWAY Cache number of ways. 111 indicates eight ways PowerPC e500 Core Family Reference Manual, Rev. 1 2-34 Freescale Semiconductor...
1 TLB1 invalidation operation. Hardware initiates a TLB1 invalidation operation. When this operation is complete, this bit is cleared. Writing a 1 during an invalidation operation causes an undefined operation. This invalidation typically takes 1 cycle. — Reserved, should be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 2-36 Freescale Semiconductor...
0b00 indicates version 1.0. 2.12.4 TLB Configuration Registers (TLB n CFG) The TLBnCFG read-only registers provide information about each specific TLB that is visible to the programming model. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-37...
TLBs. They, along with MAS5 (which is not implemented in the e500), are defined by the Freescale implementation standard. Note that some fields in these registers are redefined on the e500. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-39...
MMU”). Note that for the e500v1, bit 62 should remain cleared and only bit 63 has significance. Note that this field is not defined for operations that specify TLB1 (when TLBSEL = 01). PowerPC e500 Core Family Reference Manual, Rev. 1 2-40 Freescale Semiconductor...
PowerPC architecture. 0 The page is accessed in big-endian byte order. 1 The page is accessed in true little-endian byte order. PowerPC e500 Core Family Reference Manual, Rev. 1 2-42 Freescale Semiconductor...
This section describes debug-related registers that are accessible to software running on the processor. These registers are intended for use by special debug tools and debug software, and not by general application or operating system code. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-45...
10 IAC2 debug events are based on effective addresses and can occur only if MSR[IS] = 0. 11 IAC2 debug events are based on effective addresses and can occur only if MSR[IS] = 1. PowerPC e500 Core Family Reference Manual, Rev. 1 2-46...
• Implementation-specific events that cause an unconditional debug event are defined in Table 2-34 (DBSR[UDE]). • The MRR field is affected by the e500 definition of the HRESET signal, as defined in Table 2-34. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-47...
APU instructions at the assembly level or that uses SPE intrinsics will require rewriting for upward compatibility with next-generation PowerQUICC devices. Freescale Semiconductor offers a libmoto_e500 library that uses SPE instructions. Freescale will also provide libraries to support next-generation PowerQUICC devices.
Page 122
FDBZS Embedded floating-point divide-by-zero sticky. FDBZS = FDBZS | FDBZH | FDBZ FUNFS Embedded floating-point underflow sticky. Storage location for software to use when implementing true IEEE floating point. PowerPC e500 Core Family Reference Manual, Rev. 1 2-50 Freescale Semiconductor...
Page 123
1 Exception enabled. a floating-point data exception is taken if FOVF or FOVFH is set by a floating-point instruction. 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 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-51...
User Performance Monitor Global Control Register 0 (UPMGC0) PMGC0 is cleared by a hard reset. Reading this register does not change its contents. Table 2-38 describes the PMGC0 fields. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-53...
2.15.2 User Global Control Register 0 (UPMGC0) The contents of PMGC0 are reflected to UPMGC0, which is read by user-level software. UPMGC0 is read with the mfpmr instruction using PMR384. PowerPC e500 Core Family Reference Manual, Rev. 1 2-54 Freescale Semiconductor...
It is recommended that CE be cleared when counter PMC x is selected for chaining. 38–40 — Reserved, should be cleared. 41–47 EVENT Event selector. Up to 128 events selectable. 48–63 — Reserved, should be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-55...
PMLCan[CE] are set and the mtpmr loads an overflowed value into PMCx, an interrupt may be generated without an event counting having taken place. PMC registers are accessed with mtpmr and mfpmr using the PMR numbers in Table 2-36. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 2-57...
The address of a memory operand is the address of its first byte (that is, of its lowest-numbered byte). Operand length is implicit for each instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• The scalar single-precision floating-point APU supports single-precision floating-point operations using the lower 32 bits of the GPRs. • The scalar double-precision floating-point APU (implemented on the e500v2) supports double-precision floating-point operations using both halves of the GPRs. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
APU instructions at the assembly level or that uses SPE intrinsics will require rewriting for upward compatibility with next-generation PowerQUICC devices. Freescale Semiconductor offers a libmoto_e500 library that uses SPE instructions. Freescale will also provide libraries to support next-generation PowerQUICC devices..
Page 134
Move To FPSCR Bit 0 [and record CR] mtfsb0[.] Move To FPSCR Bit 1 [and record CR] mtfsb1[.] Move To FPSCR Field [Immediate] [and record CR] mtfsf[i][.] Store Floating-Point Double [with Update] [Indexed] stfd[u][x] PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Integer instructions operate on word operands. The PowerPC architecture uses instructions that are 4 bytes long and word-aligned. It provides for byte, half-word, and word operand loads and stores between memory and a set of 32 general-purpose registers (GPRs). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Synchronization Requirements This section discusses synchronization requirements for special registers and TLBs. The synchronization described in this section refers to the state of the processor that is performing the synchronization. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 137
3-5, because all instructions before the context-altering instruction are fetched and decoded before the context-altering instruction is executed. (The processor must determine whether any of the preceding instructions are context-synchronizing.) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
SPRs beyond those stated in Book E and described in Section 3.2.3, “Synchronization Requirements.” Table 3-4. Synchronization Requirements for e500-Specific SPRs Registers Instruction Instruction Required Before Instruction Required After BBEAR mtspr bbear None isync BBTAR mtspr bbtar None isync PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 139
(DAC n ) — mtspr (DBCR n ) — mtspr (DBSR) — mtspr (DEC) None None mtspr (IAC n ) — mtspr (IVOR n ) None None mtspr (IVPR) None None PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The following sequence shows why, for data accesses, it is necessary to ensure that all memory accesses due to instructions before the tlbwe or tlbivax have completed to a point at which they PowerPC e500 Core Family Reference Manual, Rev. 1 3-10...
(see Section 3.2.3.3, “Context Synchronization”). msync is treated like isync with respect to item 1 (that is, the conditions described in item 1 apply to completion of msync). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-11...
• Execution of an allocated instruction that is not implemented by the implementation (illegal instruction exception or unimplemented operation exception-type program interrupt) PowerPC e500 Core Family Reference Manual, Rev. 1 3-12 Freescale Semiconductor...
Integer instructions use the content of the GPRs as source operands and place results into GPRs and the XER and CR fields. 3.3.1.1.1 Integer Arithmetic Instructions Table 3-6 lists the integer arithmetic instructions for the PowerPC processors. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-13...
Page 144
Timing,” describes how the e500 handles CR dependencies. The summary overflow (SO) and overflow (OV) bits in the XER are set to reflect an overflow condition of a 32-bit result only if the instruction’s OE bit is set. PowerPC e500 Core Family Reference Manual, Rev. 1 3-14 Freescale Semiconductor...
Mnemonic Syntax Shift Left Word slw (slw.) rA,rS,rB Shift Right Word srw (srw.) rA,rS,rB Shift Right Algebraic Word Immediate srawi (srawi.) rA,rS,SH Shift Right Algebraic Word sraw (sraw.) rA,rS,rB PowerPC e500 Core Family Reference Manual, Rev. 1 3-16 Freescale Semiconductor...
(Additional synchronization is needed when one processor modifies instructions that another processor will execute.) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-17...
The option to specify rA or 0 is shown in the instruction descriptions as (rA|0). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-19...
Load Half Word Algebraic Indexed lhax rD,rA,rB Load Half Word Algebraic with Update lhau rD,d(rA) Load Half Word Algebraic with Update Indexed lhaux rD,rA,rB Load Word and Zero rD,d(rA) PowerPC e500 Core Family Reference Manual, Rev. 1 3-20 Freescale Semiconductor...
= 1) to be an invalid form. Table 3-12 summarizes integer store instructions. Table 3-12. Integer Store Instructions Name Mnemonic Syntax Store Byte rS,d(rA) Store Byte Indexed stbx rS,rA,rB PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-21...
The Book E architecture defines the Load Multiple Word (lmw) instruction with rA in the range of registers to be loaded as an invalid form. Load and store multiple accesses must be word aligned; otherwise, they cause an alignment exception. PowerPC e500 Core Family Reference Manual, Rev. 1 3-22 Freescale Semiconductor...
Decrement the CTR, then branch if the decremented CTR ≠ 0 and the condition is FALSE. 0000 y 0001 y Decrement the CTR, then branch if the decremented CTR = 0 and the condition is FALSE. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-23...
Interrupt.” If the tested conditions are not met, instruction execution continues normally. See Appendix C, “Simplified Mnemonics for PowerPC Instructions.” Table 3-19. Trap Instructions Name Mnemonic Syntax Trap Word Immediate TO,rA,SIMM Trap Word TO,rA,rB PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-25...
Table 3-22 lists the mtspr and mfspr instructions. Table 3-22. Move to/from Special-Purpose Register Instructions Name Mnemonic Syntax Move to Special-Purpose Register mtspr SPR,rS Move from Special-Purpose Register mfspr rD,SPR PowerPC e500 Core Family Reference Manual, Rev. 1 3-26 Freescale Semiconductor...
Page 157
Link register 00000 01000 Read/Write 2.4.2/2-10 Process ID register 00001 10000 Read/Write 2.12.1/2-36 Processor ID register 01000 11110 Read only 2.5.2/2-12 Processor version register 01000 11111 Read only 2.5.3/2-13 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-27...
Page 158
The TSR is read using mfspr. It cannot be directly written to. Instead, TSR bits corresponding to 1 bits in the GPR can be cleared using mtspr. USPRG0 is a separate physical register from SPRG0. PowerPC e500 Core Family Reference Manual, Rev. 1 3-28 Freescale Semiconductor...
Read/Write SPEFSCR Signal processing and embedded floating-point status Read/Write 2.14.1/2-49 and control register TLB0CFG TLB configuration register 0 Read only 2.12.4/2-37 TLB1CFG TLB configuration register 1 Read only 2.12.4.2/2-39 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-29...
No ordering is performed for dcbz if the instruction causes the system alignment error handler to be invoked. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-31...
The lwarx and stwcx. instructions together permit atomic update of a memory location. Book E provides word and double-word forms of each of these instructions. Described here is the operation of lwarx and stwcx.. PowerPC e500 Core Family Reference Manual, Rev. 1 3-32 Freescale Semiconductor...
Page 163
However, a subsequent lwarx from the given location on the other processor followed by a successful stwcx. on that processor is PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• Another processor executes a store or dcbz to the same reservation granule. • Another processor executes a dcbtst, dcbst, or dcbf to the same reservation granule; whether the reservation is lost is undefined. PowerPC e500 Core Family Reference Manual, Rev. 1 3-34 Freescale Semiconductor...
Page 165
— Watchdog timer • Snoops — RWITM, RCLAIM — Writes, flush, kill, dkill • Another processor executes any of the following to the reservation granule: — dcbtst — dcbf — dcba PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-35...
Reservation granularity may vary for each implementation. There are no architectural restrictions bounding the granularity implementations must support, so reasonably portable code must PowerPC e500 Core Family Reference Manual, Rev. 1 3-36 Freescale Semiconductor...
On some implementations, HID1[ABE] must be set to allow management of external L2 caches as well as other L1 caches in the system. Section 3.8.4, “Cache Locking APU,” describes cache-locking APU instructions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-37...
Page 168
Otherwise, if no data is in the cache location, the e500 requests a cache line fill. Data brought into the cache is validated as if it were a load instruction. The memory reference of a dcbt sets the reference bit. PowerPC e500 Core Family Reference Manual, Rev. 1 3-38 Freescale Semiconductor...
The supervisor-level rfi instruction is used for returning from an interrupt handler. The rfci instruction is used for critical interrupts; rfmci is used for machine check interrupts. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-39...
The RTL for the Freescale implementation of tlbre is as follows: tlb_entry_id = MAS0(TLBSEL, ESEL | MAS2(EPN) result = MMU(tlb_entry_id) MAS0, MAS1, MAS2, MAS3, (and MAS7 if HID0[EN_MAS7_UPDATE] = 1) = result PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-41...
Programs written to be portable across the various assemblers for the Book E architecture should not assume the existence of mnemonics not described in this document. PowerPC e500 Core Family Reference Manual, Rev. 1 3-42 Freescale Semiconductor...
If lwarx and stwcx. instructions are used to obtain a pointer into a shared data structure, an import barrier is not needed if all the accesses to the shared data structure depend on the value obtained for the pointer. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The msync ensures that the store that releases the lock are not performed with respect to any other processor until all stores caused by instructions preceding the msync have been performed with respect to that processor. PowerPC e500 Core Family Reference Manual, Rev. 1 3-46 Freescale Semiconductor...
The update portion of the instruction is executed by one of the simple units, and the load portion is executed by the load/store unit. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
EIS-Defined Instructions and APUs Implemented on the e500 Instructions that are specific to the e500 core are implemented as auxiliary processing units (APUs) and are described in the following sections. PowerPC e500 Core Family Reference Manual, Rev. 1 3-48 Freescale Semiconductor...
The embedded double-precision floating-point APU (e500v2 only) uses the 64-bit GPRs to hold 64-bit, double-precision operands. Figure 3-4 shows how the SPE and floating-point APU programming models compare, indicating how each APU uses the GPRs. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-49...
Vector compare instructions specify a CR field and two source registers as well as the type of compare: greater than, less than, or equal. Two bits in the CR field PowerPC e500 Core Family Reference Manual, Rev. 1 3-50...
• The most negative number is represented by SF(0) = 1 and SF[1:N–1] = 0 (that is, N=32; 0x8000_0000 = –1.0). • The most positive number is represented by SF(0) = 0 and SF[1:N–1] = all 1s (that is, N=32; –(N–1) 0x7FFF_FFFF = 1.0 – 2 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-51...
(32x32→64) Low word versions of signed saturate and signed modulo fractional instructions are not supported. Attempting to execute an opcode corresponding to these instructions causes boundedly undefined results. PowerPC e500 Core Family Reference Manual, Rev. 1 3-52 Freescale Semiconductor...
Page 184
Vector Load Half Word into Half Word Odd Unsigned and Splat Indexed evlhhousplatx rD,rA,rB Vector Load Half Word into Half Words Even and Splat evlhhesplat rD,d(rA) Vector Load Half Word into Half Words Even and Splat Indexed evlhhesplatx rD,rA,rB PowerPC e500 Core Family Reference Manual, Rev. 1 3-54 Freescale Semiconductor...
Page 185
Vector Multiply Half Words, Even, Unsigned, Saturate, Integer and Accumulate into Words evmheusiaaw rD,rA,rB Vector Multiply Half Words, Even, Unsigned, Saturate, Integer and Accumulate Negative into evmheusianw rD,rA,rB Words PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-55...
Page 186
Vector Multiply Word Low Unsigned, Modulo, Integer evmwlumi rD,rA,rB Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate evmwlumia rD,rA,rB Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate in Words evmwlumiaaw rD,rA,rB PowerPC e500 Core Family Reference Manual, Rev. 1 3-56 Freescale Semiconductor...
Page 187
Vector Shift Right Word Unsigned evsrwu rD,rA,rB Vector Splat Fractional Immediate evsplatfi rD,SIMM Vector Splat Immediate evsplati rD,SIMM Vector Store Double of Double evstdd rS,d(rA) Vector Store Double of Double Indexed evstddx rS,rA,rB PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-57...
FPRs, these instructions use GPRs to offer improved performance for converting between floating-point, integer, and fractional values. Sharing GPRs allows vector floating-point instructions to use SPE load and store instructions. PowerPC e500 Core Family Reference Manual, Rev. 1 3-58 Freescale Semiconductor...
If CT=1 and the block already exists in the L2 cache, icbtls marks it such that it should not Lock Set be selected for replacement. If CT is not 0 or 1, icbtls is no-oped. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-61...
Page 192
The e500 implements a flash clear for all data cache lock bits (using L1CSR0[CLFR]) and in the instruction cache (using L1CSR1[ICLFR]). This allows system software to clear all data cache locking bits without knowing the addresses of the lines locked. PowerPC e500 Core Family Reference Manual, Rev. 1 3-62 Freescale Semiconductor...
They can be read and written in both user and supervisor modes with mfspr and mtspr. The user branch locking enable bit, MSR[UBLE], is defined to allow user mode programs to lock or unlock entries in the BTB. See Chapter 4, “Execution Timing.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-63...
Page 194
This instruction can always be executed in supervisor mode. In user mode, if MSR[UBLE] is cleared, a privileged instruction exception is taken; if MSR[UBLE] is set, the instruction executes without a privileged instruction exception. PowerPC e500 Core Family Reference Manual, Rev. 1 3-64 Freescale Semiconductor...
Page 195
This instruction can always be executed in supervisor mode. In user mode, if MSR[UBLE] is cleared, a privileged instruction exception is taken; if MSR[UBLE] is set, the instruction executes without a privileged instruction exception. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 3-65...
• Complete—An instruction is eligible to complete after it finishes executing and makes its results available for subsequent instructions. Instructions must complete in order from the bottom two entries of the completion queue (CQ). The completion unit coordinates how PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 204
The ability to forward results to rename registers allows subsequent instructions to access the new values before they have been written back to the architectural registers. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 205
Results in the write-back buffer cannot be flushed. If an exception occurs, results from previous instructions must write back before the exception is taken. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Completion queue (in program order) CQ13 CQ12 CQ11 • • • 1 or 2 instructions complete per clock cycle. Last event in the completion stage is retirement. Figure 4-2. e500 Instruction Flow Diagram—Details PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 208
— Space must be available in the CQ for an instruction to decode and dispatch. In this chapter, dispatch is treated as an event at the end of the decode stage. Dispatch dependencies are described in Section 4.7.2, “Dispatch Unit Resource Requirements.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
— Two simple units (SU1 and SU2)—execute move to/from SPR instructions, logical instructions, and all computational instructions except multiply and divide instructions. These execution units also execute all vector and scalar computational instructions PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 210
If no dependencies exist, as many as two instructions are retired in program order. Section 4.7.4, “Completion Unit Resource Requirements” describes completion dependencies. The write-back stage occurs in the clock cycle after the instruction is retired. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
CQ and in one of the two issue queues. • Issue (at the end of the issue stage)—The issue stage ends when the instruction is issued to the appropriate execution unit. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The e500 executes multiple instructions in parallel, using hardware to handle dependencies. When an instruction is issued, source data is provided to the appropriate reservation station from either the architected register (GPR or CRF) or from a rename register. PowerPC e500 Core Family Reference Manual, Rev. 1 4-10 Freescale Semiconductor...
The dispatch rate is affected by the serializing behavior of some instructions and the availability of issue queues and CQ entries. Instructions are dispatched in program order; an instruction in IQ1 cannot be dispatched ahead of one in IQ0. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-11...
• An instruction TLB error interrupt occurs when the effective address translation for a fetch is not found in the TLBs. This interrupt is described in detail in Section 5.7.13, “Instruction TLB Error Interrupt.” PowerPC e500 Core Family Reference Manual, Rev. 1 4-12 Freescale Semiconductor...
Where caching is permitted, memory is configured as either write-back or write-through, as described in Section 11.3.4, “WIMGE Settings and Effect on L1 Caches .” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-13...
Program-related exceptions are signaled when the instruction causing the exception reaches CQ0. Previous instructions are allowed to complete before the exception is taken, which ensures that any exceptions those instructions may cause are taken. PowerPC e500 Core Family Reference Manual, Rev. 1 4-14 Freescale Semiconductor...
Only mfcr and mfspr[XER] are move-from serialized, so that they do not examine architectural state until all older instructions that could affect the architectural state have completed. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-15...
• For guarded loads, the data must be returned. If a bus error occurs on a guarded load, the load is aborted and the interrupt is taken. PowerPC e500 Core Family Reference Manual, Rev. 1 4-16 Freescale Semiconductor...
It may be used, for example, to ensure that reads and writes to an I/O device or between I/O devices occur in program order or to ensure that memory updates occur before a semaphore is released. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-17...
Branch instructions are not folded on the e500; all branch instructions receive a CQ entry (and CRF and GPR renames) at dispatch and must write back in program order. PowerPC e500 Core Family Reference Manual, Rev. 1 4-18 Freescale Semiconductor...
GIQ. The cmp is retired from the CQ at the end of cycle 4. In cycle 5, bc, add1, and add2 finish execution, and bc and add1 retire. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-19...
(the branch execute unit, the BIQ, and the IQ). The presence of speculative branches allocated in the BTB slightly reduces speculation depth. PowerPC e500 Core Family Reference Manual, Rev. 1 4-20...
BTB locking APU can be used to lock all possible addresses whose fetch groups may contain the branch instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Possible FGAs are a0…ai Is an IB at location j where Possible FGAs are aj+1…ai j=i-1,i-2,i-3? Possible FGAs are ai-3, ai-2, ai-1, ai Figure 4-9. Fetch Group Addresses PowerPC e500 Core Family Reference Manual, Rev. 1 4-22 Freescale Semiconductor...
The typical sequence of instructions to clear locked entries individually is as follows: mtspr BBEAR, rS bbelr To guarantee atomicity, these instruction sequences should be protected by lwarx and stwcx. instructions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-23...
• BTB lock clearing. BUCSR[BBLFC] is used to perform a flash lock clear (unlocking) of all locked BTB entries. Writing BUCSR[BBLFC] with a 0 and then a 1 flash lock clears all locked BTB entries. PowerPC e500 Core Family Reference Manual, Rev. 1 4-24 Freescale Semiconductor...
Operations,” for more information on architectural coherency implications of load/store operations and the LSU on the core complex. Also, see Section 4.4.4, “Load/Store Execution,” for more information on other aspects of the LSU and instruction scheduling considerations. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-25...
• The LSU tries to perform a load miss, all of the DLFB entries are full, and the load is not to any of the cache lines that are represented in the DLFB. PowerPC e500 Core Family Reference Manual, Rev. 1 4-26...
0.0 All others efddiv x All double-precision floating-point divides (e500v2 only) evfsdiv x rA or rB are 0.0 for both upper and lower All others PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-27...
The LSU executes instructions that move data between the GPRs and the memory unit of the core (made up of the L1 caches and the core interface unit buffers). Figure 4-10 shows the block diagram for the LSU. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-29...
If a system has multiple bus devices, one device may experience long memory latencies while another device (for example, a direct-memory access controller) is using the external bus. PowerPC e500 Core Family Reference Manual, Rev. 1 4-30 Freescale Semiconductor...
Latency depends on bus response time. mfcr Move-from SU1 only mfspr[XER] mfmsr None mfpmr None SU1 only 3, 4 mfspr[CTR] None SU1 or SU2 mfspr[LR] mfspr[DBSR] Presync, postsync SU1 only mfspr[SSCR] Presync SU1 only PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-31...
Page 234
1 per 4 cycles for mtctr followed by mtctr. mtlr stalls in decode until any other outstanding mtlr finishes. Throughput of 1 per 4 cycles for mtlr followed by mtlr. PowerPC e500 Core Family Reference Manual, Rev. 1 4-32...
Page 235
SU1 or SU2 1 andi. SU1 or SU2 1 andis. SU1 or SU2 1 and[.] SU1 or SU2 1 SU1 or SU2 1 cmpi SU1 or SU2 1 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-33...
Page 236
SU1 or SU2 1 subfc[o][.] SU1 or SU2 1 subfe[o][.] SU1 or SU2 1 subfic SU1 or SU2 1 subfme[o][.] SU1 or SU2 1 subfze[o][.] SU1 or SU2 1 PowerPC e500 Core Family Reference Manual, Rev. 1 4-34 Freescale Semiconductor...
Page 238
Store serialized, icbt CT=0 0 (no-op ) — icbt CT=1 — icbtls Latency is long and depends on memory Pre- and postsync serialized. latency, as well as other resource availability. PowerPC e500 Core Family Reference Manual, Rev. 1 4-36 Freescale Semiconductor...
Page 239
Latency depends on bus response time. Store and postsync serialized. Store stbu Store stbux Store stbx Store Store sthbrx Store sthu Store sthux Store sthx Store stmw 3 + n Store Store stwbrx Store PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-37...
Page 241
SU1 or SU2 1 efssub efststeq SU1 or SU2 4:1 efststgt SU1 or SU2 1 efststlt SU1 or SU2 1 evabs evaddiw evaddsmiaaw evaddssiaaw evaddumiaaw evaddusiaaw evaddw evand PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-39...
Page 242
4 (if either rA or rB is 0.0) 29 (all other cases) evfsmul evfsnabs evfsneg evfssub PowerPC e500 Core Family Reference Manual, Rev. 1 4-40 Freescale Semiconductor...
• Avoid branches where possible; favor not-taken branches over taken branches. The following sections give detailed information on optimizing code for e500 pipeline stages. PowerPC e500 Core Family Reference Manual, Rev. 1 4-44 Freescale Semiconductor...
• Decoding stops if there are no free entries in the GIQ, even if the next instruction to decode is to the BU or does not require an issues queue slot. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Each SU has one reservation station in which instructions are held until operands are available. Also note that some SU1 instructions take more than one cycle and that some are not fully PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(as in a partial address alias case of store to load)—the arbiter gives higher priority to the store, guaranteeing forward progress. PowerPC e500 Core Family Reference Manual, Rev. 1 4-48 Freescale Semiconductor...
• Accesses that cross a translation boundary where the endianness changes cause a byte-ordering DSI exception. • Future generations of high-performance microprocessors that implement the PowerPC architecture may experience greater misalignment penalties. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 4-49...
Here, the load misses in the data cache and the full line is reloaded into the data cache. Table 4-10. Data Cache Miss, L2 Cache Hit Timing Instruction lwz r4,0x0(r9) Miss LMQ0 LMQ0/E2 add r5,r4,r3 — — — — — PowerPC e500 Core Family Reference Manual, Rev. 1 4-50 Freescale Semiconductor...
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]. Book E PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(instead of ESR). See Section 2.7.2.4, “Machine Check Syndrome Register (MCSR),” for a description of the MCSR. The core complex reports the machine check exception as described in Section 5.7.2, “Machine Check Interrupt.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 255
Single-Precision Floating-Point Vector Single-Precision Floating-Point Scalar — Double-Precision Floating-Point For more information, see the “Embedded Vector and Scalar Single-Precision Floating-Point APU Instructions,” section of the “Instruction Model” chapter of the EREF. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
APU instructions at the assembly level or that uses SPE intrinsics will require rewriting for upward compatibility with next-generation PowerQUICC devices. Freescale Semiconductor offers a libmoto_e500 library that uses SPE instructions. Freescale will also provide libraries to support next-generation PowerQUICC devices.
Page 258
(EIS) Set when a DSI occurs because icbtl or icblc is executed in user mode Data storage (MSR[PR] = 1) and MSR[UCLE] = 0 44–45 — Reserved, should be cleared. — PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 259
BUS_WAERR Bus write address error BUS_IBERR Bus instruction data bus error BUS_RBERR Bus read data bus error BUS_WBERR Bus write bus error BUS_IPERR Bus instruction parity error BUS_RPERR Bus read parity error PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Invocation of an interrupt is precise. When the interrupt is invoked imprecisely, the excepting instruction does not appear to complete before the next instruction starts (because the invocation of the interrupt required to complete execution has not occurred). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• The exception-causing instruction may appear not to have begun execution (except for causing the exception), may be partially executed, or may have completed, depending on the interrupt type. See Section 5.9, “Partially Executed Instructions.” • Architecturally, no instruction beyond the exception-causing instruction executed. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
ESR setting to indicate the cause of the interrupt. PowerPC e500 Core Family Reference Manual, Rev. 1 5-10...
Page 263
• rfi, rfci, rfmci, or isync—Ensure that instructions in the new process execute in the new context PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-11...
In addition to MSR[CE], implementations may provide other ways to mask the critical input interrupt. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-13...
Machine check interrupts are typically caused by a hardware or memory subsystem failure or by an attempt to access an invalid address. They may be caused indirectly by execution of an PowerPC e500 Core Family Reference Manual, Rev. 1 5-14...
Page 267
Section 13.8, “Proper Reporting of Bus Faults.” For additional information, see Section 2.10.2, “Hardware Implementation-Dependent Register 1 (HID1).” If MSR[ME] is cleared, the processor enters checkstop state immediately on detecting the machine check condition. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-15...
• A load instruction hits in the L1 data cache. • An instruction fetch hits in the L1 instruction cache. • A line is cast out of the L1 data cache. PowerPC e500 Core Family Reference Manual, Rev. 1 5-16 Freescale Semiconductor...
Page 269
BUS_WBERR Write data bus error signaled by write-through) (It is not particularly meaningful.) memory corruption. assertion of core_wr_errin_b input MCAR is set to an address on the cache line with the error. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-17...
L1CSR0[CPE], then the field L1CSR0[CPI] will not be set. If the programmer attempts to set the field L1CSR1[ICPI] without setting the field L1CSR1[ICPE], then the field L1CSR1[ICPI] will not be set. PowerPC e500 Core Family Reference Manual, Rev. 1 5-18 Freescale Semiconductor...
See the section, “Atomic Update Primitives Using lwarx and stwcx.,” in the “Instruction Model” chapter of the EREF. icbt, dcbt, dcbtst, and dcba instructions cannot cause a data storage interrupt, regardless of the effective address. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-19...
The implementation cannot fetch the instruction in the byte order specified by the page’s endian attribute. exception The EIS defines that accesses that cross a page boundary such that endianness changes cause a byte-ordering exception. PowerPC e500 Core Family Reference Manual, Rev. 1 5-20 Freescale Semiconductor...
MSR[EE] is set when the external interrupt signal is asserted. In addition to MSR[EE], implementations may provide other ways to mask this interrupt. The e500 does not support additional masking mechanisms. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-21...
For lmw and stmw with a non–word-aligned operand and for load and reserve and store conditional instructions with an misaligned operand, an implementation may yield boundedly undefined results instead of causing an alignment interrupt. A store conditional to a PowerPC e500 Core Family Reference Manual, Rev. 1 5-22 Freescale Semiconductor...
Page 275
Set only if the instruction causing the exception is a store and is cleared for a load All other defined ESR bits are cleared. Instruction execution resumes at address IVPR[32–47] || IVOR5[48–59] || 0b0000. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-23...
For all program interrupts except an enabled exception when in an imprecise mode (see Table 5-19), set to the EA of the instruction that caused the interrupt. SRR1 Set to the MSR contents at the time of the interrupt. PowerPC e500 Core Family Reference Manual, Rev. 1 5-24 Freescale Semiconductor...
Set to the MSR contents at the time of the interrupt. CE, ME, and DE are unchanged. All other MSR bits are cleared. DIS is set. Instruction execution resumes at address IVPR[32–47] || IVOR10[48–59] || 0b0000. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-25...
0 in all others. The data written to the TSR is not direct data, but a mask. Writing a 1 causes the bit to be cleared; writing a 0 has no effect. PowerPC e500 Core Family Reference Manual, Rev. 1 5-26 Freescale Semiconductor...
TLB error interrupt, but the processor does not have the reservation from a load and reserve instruction, Book E defines it as implementation-dependent whether a data TLB error interrupt occurs. The EIS defines that the interrupt is taken. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-27...
Page 280
TSIZED EPN[32–51] EPN of access X0, X1 X0D, X1D W, I, M, G, E WD, ID, MD, GD, ED RPN[32–51] Zeros PERMIS Zeros TLBSELD — TIDSELD[0–1] — TSIZED[0–3] — PowerPC e500 Core Family Reference Manual, Rev. 1 5-28 Freescale Semiconductor...
The “Cache and MMU Background” chapter of the EREF describes how these values are set as defined by the EIS. Instruction execution resumes at address IVPR[32–47] || IVOR14[48–59] || 0b0000. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-29...
• Instruction address compare is only supported for effective addresses. • DVC is not supported. CSRR0, CSRR1, MSR, and DBSR are updated as shown in Table 5-28. Instruction execution resumes at address IVPR[32–47] || IVOR15[48–59] || 0b0000. PowerPC e500 Core Family Reference Manual, Rev. 1 5-30 Freescale Semiconductor...
APU instructions at the assembly level or that uses SPE intrinsics will require rewriting for upward compatibility with next-generation PowerQUICC devices. Freescale Semiconductor offers a libmoto_e500 library that uses SPE instructions. Freescale will also provide libraries to support next-generation PowerQUICC devices.
• SPEFSCR[FRMC] = 0b11 (–∞) Note that although these SPEFSCR status bits can be updated by using an mtspr[SPEFSCR], interrupts occur only if they are set as the result of an arithmetic operation. PowerPC e500 Core Family Reference Manual, Rev. 1 5-32 Freescale Semiconductor...
In general, the PowerPC architecture permits load and store instructions to be partially executed, interrupted, and then restarted from the beginning upon return from the interrupt. To guarantee that a particular load or store instruction completes without being interrupted and restarted, software PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-33...
Page 286
2. Misaligned elementary load or store, or any multiple or string: All of the above listed under item 1, plus the following: — Alignment — Data storage (if the access crosses a protection boundary) — Debug (data address compare) PowerPC e500 Core Family Reference Manual, Rev. 1 5-34 Freescale Semiconductor...
(or enable) a subsequent interrupt, if SRR1 contents have not been saved. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-35...
Therefore, within the critical-class interrupt handler, both pairs of save/restore registers may contain data necessary to system software. PowerPC e500 Core Family Reference Manual, Rev. 1 5-36 Freescale Semiconductor...
ESR and in any status registers associated with the particular exception type (such as the SPEFSCR). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 290
Exception priorities within each instruction type are listed in the following sections. Priority is shown highest to lowest. PowerPC e500 Core Family Reference Manual, Rev. 1 5-38 Freescale Semiconductor...
Interrupt latency of the core complex is 8 cycles or less unless a guarded load or a cache-inhibited stwcx. instruction is in the last completion queue entry (CQ0). For specific information, see Section 4.3.4, “Interrupt Latency.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 5-39...
• Because a cache-inhibited stwcx. finishes as soon as the address tenure completes, there is no concern about hanging a cache-inhibited stwcx. in completion due to a write bus data error. PowerPC e500 Core Family Reference Manual, Rev. 1 5-40 Freescale Semiconductor...
O Asserted by the core anytime the internal functional clocks of the core complex are stopped (for example after integrated device logic asserts stop ). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
In addition to the power-management states, dynamic power management automatically stops clocking individual internal functional units whenever they are idle. The integrated logic may similarly stop clocking to idle device-level blocks. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
If MSR[WE] = 1, signals power management logic to initiate device nap mode. The core complex enters core-stopped state (with its time base enabled) after integrated device logic asserts stop . PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
HID0[DOZE,NAP,SLEEP] settings. To ensure a clean transition into and out of a power-saving mode, the following program sequence is recommended: msync mtmsr (WE) isync loop: br loop PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(due to the normal latency of restarting internal clock distribution and initiating the interrupt request), and then negate as the interrupt is serviced. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• The performance monitor mark bit in the MSR (MSR[PMM]). This bit controls which programs are monitored. • The move to/from performance monitor registers (PMR) instructions, mtpmr and mfpmr. • The external input, pm_event. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 301
Performance monitor local control b1 UPMLCb1 01000 00010 Performance monitor local control b2 UPMLCb2 01000 00011 Performance monitor local control b3 UPMLCb3 01100 00000 Performance monitor global control 0 UPMGC0 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• When the msb = 1 in PMC x and PMLCa x [CE] = 1. • When the time-base bit specified by TBSEL=1 and TBEE=1. 35–50 — Reserved, should be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
37 38 40 41 47 48 FC FCS FCU FCM1 FCM0 CE — EVENT — Reset All zeros Figure 7-2. Local Control A Registers (PMLCa0–PMLCa3)/ User Local Control A Registers (UPMLCa0–UPMLCa3) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
For the e500, thresholding is supported only for PMC0 and PMC1. PMLCb works with the corresponding PMLCa register. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
7.2.6 User Local Control B Registers (UPMLCb0–UPMLCb3) The contents of PMLCb0–PMLCb3 are reflected to UPMLCb0–UPMLCb3, which can be read by user-level software with mfpmr using PMR numbers in Table 7-2. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Initializing PMCs to overflowed values is strongly discouraged. If an overflowed value is loaded into a PMCn that held a non-overflowed value (and PMGC0[PMIE], PMLCan[CE], and MSR[EE] are set), an interrupt is generated before any events are counted. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The APU defines instructions for reading and writing the PMRs as shown in Table 7-7. Table 7-7. Performance Monitor APU Instructions Name Mnemonic Syntax Move from Performance Monitor Register mfpmr rD,PMRN Move to Performance Monitor Register mtpmr PMRN,rS PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(supervisor or user) and the process (marked or unmarked) may be in at any time. If this state matches an individual state specified by the PMLCan[FCS,FCU,FCM1,FCM0] fields, the state for which monitoring is enabled, counting is enabled for PMCn. PowerPC e500 Core Family Reference Manual, Rev. 1 7-10 Freescale Semiconductor...
32 bits to a counter register where the first counter’s overflow event acts like a carry out feeding the second counter. By defining the event of interest to be another PMC’s PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
PowerPC sequential execution model (speculative processing). • Speculative counts include speculative instructions that were later flushed. • Nonspeculative counts do not include speculative operations, which are flushed. PowerPC e500 Core Family Reference Manual, Rev. 1 7-12 Freescale Semiconductor...
Page 311
Branch Prediction and Execution Events Com:12 Branches finished Spec Includes all branch instructions Com:13 Taken branches finished Spec Includes all taken branch instructions PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 7-13...
Page 312
Misaligned load or store accesses translated. translated Com:35 Total allocated to DLFB Spec — Com:36 Loads translated and allocated to Spec Applies to same class of instructions as loads translated. DLFB PowerPC e500 Core Family Reference Manual, Rev. 1 7-14 Freescale Semiconductor...
Page 313
Fetch, Instruction Cache, Instruction Line Fill Buffer (ILFB), and Instruction Prefetch Events Com:59 Instruction L1 cache locks Nonspec Counts cache lines locked in the instruction L1 cache. (Counts a lock even if an overlock occurs.) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 7-15...
Page 314
ILFB fetch miss cycles Spec Instances when the number of cycles between allocation in the ILFB C1:77 (entry 0) and write-back to the instruction L1 cache exceeds the threshold. PowerPC e500 Core Family Reference Manual, Rev. 1 7-16 Freescale Semiconductor...
Page 315
For chaining events, if a counter is configured to count its own overflow bit, that counter does not increment. For example, if PMC2 is selected to count PMC2 overflow events, PMC2 does not increment. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Debug interrupts do not affect the save/restore registers, SRR0 and SRR1, and CSRR registers are not affected by the Return from Interrupt (rfi) instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(DAC1 or DAC2 debug events). • Return debug events for the rfci instruction are not logged if MSR[DE] is cleared (debug interrupts are disabled). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Auxiliary data register (LSRL) Service bus address register Service bus data register Bypass register TAP instruction register tdo_en MUX logic Controller trst tlmsel tap_en Figure 8-1. TAP Controller with Supported Registers PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
TRST must be asserted sometime during power-up for JTAG logic initialization. Note that if TRST is connected low, unnecessary power is consumed. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(DBCR0–DBCR2) for any debug event to set a DBSR bit and thereby cause a debug exception. Setting a DBSR bit causes a debug interrupt only if debug interrupts are enabled. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• DBCR1[IAC1US] specifies whether IAC1 debug events can occur in user mode, in supervisor mode, or in both. • DBCR1[IAC2US] specifies whether IAC2 debug events can occur in user mode, in supervisor mode, or in both. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(if no higher priority exception has caused an interrupt). Execution of the instruction causing the exception is suppressed, and CSRR0 is set to the address of the excepting instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
However, because execution of these instructions may generate write activity on the processor’s data bus, they are treated as writes with respect to debug events. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
DAC debug events, which can occur regardless of the values of MSR[DE] or DBCR0[IDM]. When a DAC debug event occurs, the corresponding DBSR bit (DAC1R, DAC1W, DAC2R, or DAC2W) is set to record the exception. PowerPC e500 Core Family Reference Manual, Rev. 1 8-10 Freescale Semiconductor...
In this case, CSRR0 contains the address of the instruction following the one that enabled the debug interrupt (by setting MSR[DE]). The debug interrupt handler can observe DBSR[IDE] to determine how to interpret the CSRR0 value. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 8-11...
• A debug interrupt occurs immediately (if no higher priority exception has caused an interrupt). • CSRR0 is set to the address of the instruction following the one that caused the instruction complete debug exception. PowerPC e500 Core Family Reference Manual, Rev. 1 8-12 Freescale Semiconductor...
MSR[DE] or a higher priority exception has caused an interrupt). • CSRR0 is loaded with the address of the instruction that would have executed next had the interrupt not occurred. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 8-13...
CSRR0 should be interpreted as the address associated with the instruction causing the debug exception or is simply the address of the instruction after the one that set MSR[DE], thereby enabling the delayed debug interrupt. PowerPC e500 Core Family Reference Manual, Rev. 1 8-14 Freescale Semiconductor...
• The fixed-interval timer is essentially a selected bit of the TB, which provides a means of signaling an exception whenever the selected bit transitions from 0 to 1, in a repetitive fashion. The fixed-interval timer is typically used to trigger periodic system maintenance PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Implementation,” describes how these bits interact with other registers. • Timer control register (TCR). Provides control information for the on-chip timer of the core complex. The core complex implements two fields not specified in Book E: TCR[WPEXT] PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The system can then implement a reset strategy. The core can be reset by asserting hreset. No automatic resetting is done when a watchdog reset occurs. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
The e500v2 has added the ability to count transitions of the TBL bit selected by PMGC0[TBSEL]. This count is enabled by setting PMGC0[TBEE]. For specific information, see Chapter 7, “Performance Monitor.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(MSR).” • Cache block lock and unlock APU • Machine check APU • The e500v2 supports the alternate time base APU, described in Section 10.3, “Alternate Time Base APU.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-1...
Section 2.6.6, “Alternate Time Base Registers (ATBL and ATBU).” The effect of power-savings mode or core frequency changes on counting in the alternate time base is implementation-dependent. See the User’s Manual for details. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-3...
10.4.2.1 Operational Modes Double-precision floating-point operations are governed by the setting of the mode bit in SPESCR. The mode bit defines how floating-point results are computed and how floating-point exceptions PowerPC e500 Core Family Reference Manual, Rev. 1 10-4 Freescale Semiconductor...
Double-precision not-a-Numbers (NaNs) are represented by a maximum exponent field value (2047) and a fraction f which is non-zero. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-5...
• evstdd—Vector Store Double Word of Double Word • evstddx—Vector Store Double Word of Double Word • evmergehi—Vector Merge High • evmergelo—Vector Merge Low These instruction descriptions follow the conventions used in the EREF. PowerPC e500 Core Family Reference Manual, Rev. 1 10-6 Freescale Semiconductor...
Page 343
FG and FX are cleared if an overflow, underflow, or invalid operation/input error is signaled, regardless of enabled exceptions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-7...
Page 344
If the low element of rB is Infinity, Denorm, or NaN, SPEFSCR[FINV] is set. If SPEFSCR[FINVE] is set, an interrupt is taken, and rD is not updated. FG and FX are always cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 10-8 Freescale Semiconductor...
Page 345
32:63 The unsigned fractional low element in rB is converted to a double-precision floating-point value using the current rounding mode and the result is placed into rD. Exceptions: None PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-9...
Page 346
Otherwise, the comparison proceeds after treating NaNs, Infinities, and Denorms as normalized numbers, using their values of ‘e’ and ‘f’ directly. PowerPC e500 Core Family Reference Manual, Rev. 1 10-10 Freescale Semiconductor...
Page 347
FG and FX are cleared. If floating-point invalid input exceptions are enabled, an interrupt is taken and the condition register is not updated. Otherwise, the comparison proceeds after treating NaNs, Infinities, and Denorms as normalized numbers, using their values of ‘e’ and ‘f’ directly. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-11...
Page 348
FG and FX are updated so the handler can perform rounding. PowerPC e500 Core Family Reference Manual, Rev. 1 10-12 Freescale Semiconductor...
Page 349
FG and FX are updated so the handler can perform rounding. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 350
FG and FX are updated to allow the handler to perform rounding . PowerPC e500 Core Family Reference Manual, Rev. 1 10-14...
Page 351
FG and FX are updated to allow rounding to be performed in the interrupt handler. FG and FX are cleared if an overflow, underflow, divide by zero, or invalid operation/input error is signaled, regardless of enabled exceptions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-15...
Page 352
FG and FX bits are properly updated to allow rounding to be performed in the interrupt handler. FG and FX are cleared if an overflow, underflow, or invalid operation/input error is signaled, regardless of enabled exceptions. PowerPC e500 Core Family Reference Manual, Rev. 1 10-16 Freescale Semiconductor...
Page 353
If rA is Infinity, Denorm, or NaN, SPEFSCR[FINV] is set, and FG and FX are cleared. If SPEFSCR[FINVE] = 0, the results are the same as for a normalized number. If SPEFSCR[FINVE] = 1, an interrupt is taken and rD is not updated. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-17...
Page 354
FG and FX are updated to allow the interrupt handler to perform rounding. FG and FX are cleared if an overflow, underflow, or invalid operation/input error is signaled, regardless of enabled exceptions. PowerPC e500 Core Family Reference Manual, Rev. 1 10-18 Freescale Semiconductor...
Page 355
Infinities, and Denorms as normalized numbers, using their values of ‘e’ and ‘f’ directly. No exceptions are generated during the execution of efdtstgt. If strict IEEE 754 compliance is required, the program should use efdcmpgt. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-19...
Page 356
Infinities, and Denorms as normalized numbers, using their values of ‘e’ and ‘f’ directly. No exceptions are generated during the execution of efdtstlt. If strict IEEE 754 compliance is required, the program should use efdcmplt. PowerPC e500 Core Family Reference Manual, Rev. 1 10-20 Freescale Semiconductor...
Page 357
FG and FX are updated so the interrupt handler can perform rounding. FG and FX are cleared if an overflow, underflow, or invalid operation/input error is signaled, regardless of enabled exceptions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-21...
10.4.5.2 Convert from Double-Precision Floating-Point to Integer Word with Saturation // Convert 64 bit floating point to integer/fractional signed = SIGN or UNSIGN round = ROUND or TRUNC fractional = F (fractional) or I (integer) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 10-23...
Page 360
(guard | sticky) then ← 1 SPEFSCR FINXS // Round the result if ((round = ROUND) & (SPEFSCR = 0)) then FINXE if (SPEFSCR = 0b00) then // nearest FRMC PowerPC e500 Core Family Reference Manual, Rev. 1 10-24 Freescale Semiconductor...
L1CSR1 bits), as follows: — Instruction cache: 1 parity bit per byte of instruction — Data cache: 1 parity bit per byte of data Section 11.2.3, “L1 Cache Parity.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-1...
Page 364
(ILFB). Then, the critical double word is written to the cache and instruction fetching can resume. PowerPC e500 Core Family Reference Manual, Rev. 1 11-2...
Operations,” for more information on architectural coherency implications of load/store operations and the LSU on the core complex. Also, see Section 4.4.4, “Load/Store Execution,” for more information on other aspects of the LSU and instruction scheduling considerations. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-3...
L1 store queue). Also, using DLFB entries for stores, frees up entries in the L1 store queue. Multiple caching-allowed store misses are merged in the DLFB. See Section 11.6.1.4, “Store Miss Merging,” for more information. PowerPC e500 Core Family Reference Manual, Rev. 1 11-4 Freescale Semiconductor...
The CCB also captures snoop addresses for the L1 data cache and the memory reservation (lwarx and stwcx.) operations. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-5...
(allowing misses under misses). Up to four misses can be pending in the load miss queue. See Section 4.4.2.1, “Load/Store Unit Queueing Structures,” for more information. PowerPC e500 Core Family Reference Manual, Rev. 1 11-6 Freescale Semiconductor...
(allowing misses under misses). When a miss is actually updating the cache, subsequent accesses are blocked for 1 cycle. (But up to four instructions being loaded into the instruction cache can be forwarded to the instruction unit simultaneously.) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-7...
Parity checking on the CCB read buses is disabled by default and can be enabled by setting HID1[R1DPE] and HID1[R2DPE]. If a cache parity error is detected, a machine check interrupt occurs (as described in Section 5.7.2, “Machine Check Interrupt”). PowerPC e500 Core Family Reference Manual, Rev. 1 11-8 Freescale Semiconductor...
The core complex data cache supports four-state cache coherency protocol for cache lines in the data cache.The four-state protocol (also referred to as MESI protocol) includes the additional shared state. This protocol supports efficient and frequent sharing of data between bus masters. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-9...
Page 372
(CT = 0) M, E, or S same dcbtst (CT = 0) dcbtst (CT = 1) dcbtstls (CT = 0) M or E same dcbtstls (CT = 0) S or I PowerPC e500 Core Family Reference Manual, Rev. 1 11-10 Freescale Semiconductor...
Table 11-3. L1 Instruction Cache Coherency State Transitions Event Initial State Final State icbi V or I icblc (CT = 0) V or I same icbtls (CT = 0) V or I PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-11...
Table 11-5 describes state changes caused by the ikill snoop. Table 11-5. Instruction Cache Snoop Coherency State Transitions Event Initial State Final State ikill V or I PowerPC e500 Core Family Reference Manual, Rev. 1 11-12 Freescale Semiconductor...
There is no restriction on how the core complex performs instruction fetching from guarded memory, if the memory area is marked as execute-permitted (UX/SX = 1) in the TLBs. Note that PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
CCB. Note that loads are considered performed at the L1 data cache only if the respective cache contains a valid copy of that address. Write-back stores PowerPC e500 Core Family Reference Manual, Rev. 1 11-14...
As specified in Book E, the core complex requires that, for stwcx. to succeed, its EA must be to the same reservation granule as the EA of a preceding lwarx. The core complex makes reservations on behalf of aligned 32-byte blocks of the memory address space. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-15...
Data Cache Block Touch for Store dcbtstls Data Cache Block Touch for Store and Lock Set dcbz Data Cache Block Zero icbi Instruction Cache Block Invalidate icblc Instruction Cache Block Lock Clear PowerPC e500 Core Family Reference Manual, Rev. 1 11-16 Freescale Semiconductor...
Page 379
ESR[DLK] or ESR[ILK]. CUL indicates the unable-to-lock condition that results in a no-op and sets L1CSR1[ICUL] or L1CSR0[CUL]. Acronyms are used to signify the following interrupts: • DTLB (data TLB interrupt) • ALI (alignment interrupt) • DSI (data storage interrupt) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-17...
To prevent the loss of data, modified cache lines must be flushed, as described in Section 11.5, “L1 Data Cache Flushing.” PowerPC e500 Core Family Reference Manual, Rev. 1 11-18 Freescale Semiconductor...
If MSR[UCLE] is set, the cache-locking instructions can be executed in user mode and do not cause a DSI for cache locking. However, they may still cause a DSI for access violations. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-19...
Page 382
4. Execute an rfi. Failure to update SRR0 to point to the instruction after the locking/unlocking instruction causes the exception handler to be repeatedly invoked for the same instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 11-20 Freescale Semiconductor...
The core complex allows flash clearing of the instruction and data cache lock bits under software control. Each cache’s lock bits can be independently flash cleared through the CLFC control bits in L1CSR0 and L1CSR1. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-21...
The bit should be set just before beginning a cache flush routine and should be cleared when the series of instructions is complete. 11.6 L1 Cache Operation This section describes operations performed by the L1 instruction and data caches. PowerPC e500 Core Family Reference Manual, Rev. 1 11-22 Freescale Semiconductor...
The instruction cache operates similarly to the data cache when all eight ways of a set are locked. When the instruction cache is disabled (L1CSR1[ICE] = 0), instruction accesses bypass the instruction cache. These accesses are forwarded to the memory subsystem as caching-allowed and PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-23...
No change No change No change No change No change No change No change No change No change Note that only three PLRU bits are updated for any access. PowerPC e500 Core Family Reference Manual, Rev. 1 11-26 Freescale Semiconductor...
An L2 cache may also recognize this transaction as a direction to establish and capture the cache line and mark it as locked. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 11-27...
L1 data cache. This write operation looks identical on the bus to the hit-to-modified case described Section 11.7.2, “L2 Locking.” PowerPC e500 Core Family Reference Manual, Rev. 1 11-28 Freescale Semiconductor...
• No page table format is defined; software is free to use its own page table format. • TLBs maintained by system software through the TLB instructions and six (e500v1) or seven (e500v2) MAS registers PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-1...
Page 392
Also supports snooping of TLB1 and TLB0 for invalidation caused by tlbivax instructions executed by other masters. • IPROT bit implemented in TLB1 prevents invalidations, protecting critical entries (so designated by having the IPROT bit set) from being invalidated. PowerPC e500 Core Family Reference Manual, Rev. 1 12-2 Freescale Semiconductor...
Instruction permissions violation exception Causes ISI interrupt 12.5.2.1/12-24 Data permissions violation exception Causes DSI interrupt Other hardware assistance features for maintenance of the TLBs on the e500 are described in Section 12.5, “TLB Entry Maintenance—Details.” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-3...
TID field in all the TLBs. If any of the PID values in PID0–PID2 matches with a TLB entry in which all the other match criteria are met, that entry is used for translation. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
256 Mbyte e500v2 1 Gbyte 4 Gbyte For more information on the bit ranges of effective page numbers and offsets that are translated for these pages sizes, see the EREF. PowerPC e500 Core Family Reference Manual, Rev. 1 12-6 Freescale Semiconductor...
TLB entry are compared with attribute information of the access (read/write, instruction/data, user/supervisor) to see if the access is allowed to that page. The checking of permissions on the e500 functions as described in the EREF. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-7...
This is also the case if an access results in a hit to multiple TLB entries in the L2 MMU. If this occurs, the TLB generates an invalid address and TLB entries may be corrupted (an exception is not reported). PowerPC e500 Core Family Reference Manual, Rev. 1 12-8 Freescale Semiconductor...
TLB entry are then concatenated with the page offset of the original effective address; the bit range that is translated is determined by the page size. The result constitutes the real (physical) address for the access. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-9...
L1 MMUs that cause the LRU bits to be updated. The performance of the L1 MMUs is high, even though it is not possible to predict (externally) exactly which entry is the next to be replaced. PowerPC e500 Core Family Reference Manual, Rev. 1 12-10...
TLB miss exception. Entries with IPROT set can only be invalidated by writing a 0 to the valid bit of the entry (by using the MAS registers and executing the tlbwe instruction). PowerPC e500 Core Family Reference Manual, Rev. 1 12-12 Freescale Semiconductor...
Also, note that the value of MAS0[NV] is indeterminate after any TLB entry invalidate operation (including a flash invalidate). If the software must know its value after an invalidate operation, MAS0[NV] must be explicitly read. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-13...
MAS0[NV] for use by the next tlbwe instruction. tlbwe (if MAS0[TLBSEL] = 00) MAS0 selects way TLB0 ESEL 2-bit counter TLB miss (TLB error interrupt) if MAS4[TLBSELD] = 00 Figure 12-9. Round Robin Replacement for TLB0—e500v2 PowerPC e500 Core Family Reference Manual, Rev. 1 12-14 Freescale Semiconductor...
L1 TLB entries created for TID = 0. Therefore, it is recommended that TID = 0 be used as much as possible to maximize L1 TLB hit rates. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Note that after an access with G = 1 is begun to the CCB, it is guaranteed to be completed. That is, after the address tenure is acknowledged on the CCB, the core completes the access, even if an asynchronous interrupt is pending. PowerPC e500 Core Family Reference Manual, Rev. 1 12-16 Freescale Semiconductor...
TLBs. For example, data is read from the TLBs into the MAS registers with a TLB Read Entry (tlbre) instruction, and data is written to the TLBs from the MAS registers with a TLB Write Entry (tlbwe) instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-17...
EPN[45–51] in MAS2 must be loaded with the desired index. After executing the tlbre instruction, MAS0–MAS3 (and optionally, MAS7 for the e500v2) are updated with the data from the selected TLB entry in TLB0. PowerPC e500 Core Family Reference Manual, Rev. 1 12-18 Freescale Semiconductor...
MAS6. The values placed into MAS0, MAS1, MAS2, MAS3, and optionally, MAS7 differ, depending on whether a successful or unsuccessful search occurred. See Section 12.7.2, “MAS Register Updates,” for details on which MAS register fields are updated for these cases. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-19...
Because the virtual address can be much larger than the physical address, the full virtual address specified by the tlbivax instruction cannot be broadcast to all devices. Instead, a subset address is broadcast that fits within the space of the implemented physical addressing model. PowerPC e500 Core Family Reference Manual, Rev. 1 12-20 Freescale Semiconductor...
(32–51) of address are broadcast and can be used in the invalidate comparison for TLB1, and most of those bits are masked out for larger page sizes, the TLBSEL field avoids unnecessary invalidations of large superpages in TLB1 when the tlbivax is targeting TLB0. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-21...
• Automatic loading of the data exception address register (DEAR) with the effective address of the load, store, or cache management instruction that caused an alignment, data TLB miss (data TLB error interrupt), or permissions violation (DSI interrupt). PowerPC e500 Core Family Reference Manual, Rev. 1 12-22 Freescale Semiconductor...
TLB entry being loaded, then the TLB miss exception handler must update MAS0–MAS2 appropriately before performing the TLB write. See Section 12.5.2, “TLB Interrupt Routines,” for more information on the handling of TLB miss exceptions. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-23...
Other fields of TLB entries are set not set to a known state and software should be careful to insure that all fields of a TLB entry are appropriately initialized through the MAS registers before it is used for translation. PowerPC e500 Core Family Reference Manual, Rev. 1 12-24 Freescale Semiconductor...
Table 12-8. MAS0 Field Descriptions—MMU Read/Write and Replacement Control Bits Name Descriptions 32–34 — Reserved, should be cleared. TLBSEL Selects TLB for access 0 TLB0 1 TLB1 36–43 — Reserved, should be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 12-26 Freescale Semiconductor...
Translation identity. An 8-bit field that defines the process ID for this TLB entry. TID is compared with the current process IDs of the three virtual address to be translated. A TID value of 0 defines an entry as global and matches with all process IDs. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-27...
0 Accesses to this page are considered cacheable. 1 The page is considered caching-inhibited. All loads and stores to the page bypass the caches and are performed directly to main memory. PowerPC e500 Core Family Reference Manual, Rev. 1 12-28 Freescale Semiconductor...
58–63 PERMIS Permission bits (UX, SX, UW, SW, UR, SR). User and supervisor read, write, and execute permission bits. See the EREF : . for more information on the page permission bits as they are defined by Book E. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Default G value. Specifies the default value to be loaded into MAS2[G] on a TLB miss exception. Default E value. Specifies the default value to be loaded into MAS2[E] on a TLB miss exception. Note that MAS5 is not implemented in the e500 core complex. PowerPC e500 Core Family Reference Manual, Rev. 1 12-30 Freescale Semiconductor...
Real page number, 4 high-order bits. MAS3 holds only RPN[4–23]. The byte offset within the page is provided by the EA and is not present in MAS3 or MAS7. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 12-31...
The CCB derivation starts with the 60x bus, separates the bidirectional pins into unidirectional components (for system-on-chip use), and adds new attributes and capabilities to enhance data flow implementation or parallelism in certain system configurations. Note that this chapter does PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 13-1...
For burst writes and address-only transactions, ci is always negated. O Cache lock. Indicates L2 (level 2) cache lock status for the transaction; also asserted during a burst write for dcbf PowerPC e500 Core Family Reference Manual, Rev. 1 13-2 Freescale Semiconductor...
Page 425
JTAG test mode select. Decoded by the internal JTAG TAP controller to determine the primary operation of the test support circuitry JTAG test data input. The value present on the rising edge of tck is loaded into the selected JTAG test instruction or data register. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor 13-3...
Page 426
Machine check interrupt. Initiates a machine check operation. If MSR[ME] is set, the e500 vectors to IVOR1. If MSR[ME] is clear, then the e500 goes into checkstop state. MCSR is updated as defined in Section 2.7.2.4, “Machine Check Syndrome Register (MCSR).” PowerPC e500 Core Family Reference Manual, Rev. 1 13-4 Freescale Semiconductor...
For write transactions, the core complex always supplies correct data parity across all byte lanes of the write data bus. If an internal parity error is detected in the L1 data cache during a castout PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(L1 cache, bus, and system). On the bus, this ordering barrier is issued as an ORDER command (if HID1[ABE] is set through tt[0:4]). PowerPC e500 Core Family Reference Manual, Rev. 1 13-6 Freescale Semiconductor...
A front-side L2 cache may recognize this transaction as a direction to establish the cache line (if not already valid) and to mark it as locked. Note that this is a complete PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
For systems that require the implementation of atomic accesses without a requirement for bus snooping, a following option is recommended. A system-defined atomic operation could be implemented directly in the memory subsystem and keyed off of a unique bus transaction (such as PowerPC e500 Core Family Reference Manual, Rev. 1 13-8 Freescale Semiconductor...
This interrupt signalling typically PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 432
Section 11.3.4.5, “Speculative Accesses to Guarded Memory,” for a cautionary statement regarding memory areas that are set up as both cacheable and guarded. PowerPC e500 Core Family Reference Manual, Rev. 1 13-10 Freescale Semiconductor...
Let addr be the location that is the common target of the load and reserve and store conditional instructions. Then the guarantee the architecture makes for the PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
#loop if lost reservation This sequence can be changed to perform another Boolean operation atomically on a word in memory by changing the and to the desired Boolean instruction (or, xor, etc.). PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
In this example, the unlock procedure begins with an msync for this purpose. unlock: msync #order prior stores addi r1,r0,0 #before lock release r1,0(r3) #store 0 to lock location #return PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
#order stw before stwcx. loop2: lwarx r2,0,r3 #get it again cmpw r2,r5 #loop if changed (someone 4,2,loop1 # else progressed) stwcx. r4,0,r3 #add new element to list 4,2,loop #loop if failed PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Section 3.3.1.7, “Atomic Update Primitives Using lwarx and stwcx.” For example, the first code sequence shown in Section A.1.3, “List Insertion,” can cause livelock if two list elements have next element pointers in the same reservation granule. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
TLB. This size provides support for a 32-bit effective address, which PowerPC ABIs may have come to expect to be available. 32-bit Book E implementations may support greater than PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
0 be placed at address 0xFFFF_FFFC to emulate the wrap. Either of these approaches allows the application to execute on 32-bit and 64-bit Book E implementations. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 444
Guidelines for 32-Bit Book E PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
(for example, AltiVec instructions and Book E auxiliary processing units (APUs)). Simplified mnemonics have been added for new architecturally defined and new implementation-specific special-purpose registers (SPRs). These simplified mnemonics are described only in a very general way. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
• Rotate—Rotate the contents of a register right or left n bits without masking. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
3. Shift the contents of rA left 8 bits. slwi rA,rA,8 equivalent to rlwinm rA,rA,8,0,23 4. Clear the high-order 16 bits of rS and place the result into rA. clrlwi rA,rS,16 equivalent to rlwinm rA,rS,0,16,31 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Table C-7). Incorporating the branch-if-true condition adds a ‘t’ to the simplified mnemonic, bdnzt. The equal condition that is specified by a BI value of 2 (indicating the EQ bit PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
C-2, encodes the following operations in conditional branch instructions: • Decrement count register (CTR) — And test if result is equal to zero — And test if result is not equal to zero PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Decrement the CTR, then branch if the decremented CTR ≠ 0; condition is TRUE. 0100 y dnzt 0101 y Decrement the CTR, then branch if the decremented CTR = 0; condition is TRUE. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
For branches to an address in the LR or CTR (bclr[l] or bcctr[l]), coding the suffix ‘+’ causes the y bit to be set, and coding the suffix ‘–’ causes the bit to be cleared. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
CR condition, the BI operand provides all 5 bits. For simplified branch mnemonics described in Section C.4.6, “Simplified Mnemonics that Incorporate CR Conditions (Eliminates BO and Replaces BI with crS),” the BI operand is PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
CR instructions, and others can also modify CR fields, so CR0 and CR1 may hold values that do not adhere to the meanings described in Table C-7. CR logical instructions, described in Section C.6, “Condition Register Logical Simplified Mnemonics,” can update individual CR bits. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
C.4.4.1.2 The crS Operand The crS symbols are shown in Table C-9. Note that either the symbol or the operand value can be used in the syntax used with the simplified mnemonic. PowerPC e500 Core Family Reference Manual, Rev. 1 C-10 Freescale Semiconductor...
— CTR = 0 and condition false Simplified mnemonics for branch instructions that do not test CR bits should specify only a target. Otherwise a programming error may occur. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-11...
4,27,target bf 4*cr6+so,target would also work 5. Same as (4), but set the link register. This is a form of conditional call. bfl 27,target equivalent to bcl 4,27,target PowerPC e500 Core Family Reference Manual, Rev. 1 C-12 Freescale Semiconductor...
Page 457
BI field. See Section C.4.6, “Simplified Mnemonics that Incorporate CR Conditions (Eliminates BO and Replaces BI with crS).” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-13...
Page 458
Decrement CTR, branch if CTR = 0 and condition false bclrl 2,BI bdzflrl BI — — Simplified mnemonics for branch instructions that do not test a CR bit should not specify one. A programming error may occur. PowerPC e500 Core Family Reference Manual, Rev. 1 C-14 Freescale Semiconductor...
Not less than (equivalent to ge) Not equal — Not greater than (equivalent to le) Summary overflow — Not summary overflow — Unordered (after floating-point comparison) — Not unordered (after floating-point comparison) — PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-15...
Page 460
CR field. If no field is specified, CR0 is used. The CR field symbols defined in Table C-9 (cr0–cr7) are used for this operand, as shown in examples 2–4 below. PowerPC e500 Core Family Reference Manual, Rev. 1 C-16 Freescale Semiconductor...
The value in the BI operand selects CR n [1], the GT bit. The value in the BI operand selects CR n [2], the EQ bit. The value in the BI operand selects CR n [3], the SO bit. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-17...
Page 463
The value in the BI operand selects CR n [1], the GT bit. The value in the BI operand selects CR n [2], the EQ bit. The value in the BI operand selects CR n [3], the SO bit. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-19...
Logically not less than Logically not greater than — Unconditional The symbol ‘<U’ indicates an unsigned less-than evaluation is performed. The symbol ‘>U’ indicates an unsigned greater-than evaluation is performed. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-21...
Page 466
Trap instructions evaluate a trap condition as follows: The contents of rA are compared with either the sign-extended SIMM field or the contents of rB, depending on the trap instruction. PowerPC e500 Core Family Reference Manual, Rev. 1 C-22 Freescale Semiconductor...
2. Copy the contents of IVOR0 to rS. mfivor0 rD equivalent to mfspr rD,400 3. Copy the contents of rS to the MAS1. mtmas1 rS equivalent to mtspr 625,rS PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-23...
The la mnemonic is useful for obtaining the address of a variable specified by name, allowing the assembler to supply the base register number and compute the displacement. If the variable v is PowerPC e500 Core Family Reference Manual, Rev. 1 C-24...
Move to Condition Register (mtcr) This mnemonic permits copying the contents of a GPR to the CR, using the same syntax as the mfcr instruction. mtcr rS equivalent to mtcrf 0xFF,rS PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-25...
Decrement CTR, branch if CTR ≠ 0 (bc without LR bdnz target bc 16,0,target update) Decrement CTR, branch if CTR ≠ 0 (bca without LR bdnza target bca 16,0,target update) PowerPC e500 Core Family Reference Manual, Rev. 1 C-26 Freescale Semiconductor...
Page 471
Decrement CTR, branch if CTR = 0 and condition false (bc without LR update) bdzfa BI,target bca 2,BI,target Decrement CTR, branch if CTR = 0 and condition false (bca without LR update) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-27...
Page 472
LR updating) beqlrl crS target bclrl 12,BI ,target Branch if equal (bclrl with comparison conditions and LR update) bf BI,target bc 4,BI,target Branch if condition false (bc without LR update) PowerPC e500 Core Family Reference Manual, Rev. 1 C-28 Freescale Semiconductor...
Page 473
Branch if greater than (bclrl with comparison conditions and LR update) ble crS target bc 4,BI ,target Branch if less than or equal (bc without comparison conditions or LR updating) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-29...
Page 474
,target Branch if not equal (bcctrl with comparison conditions and LR update) bnel crS target bcl 4,BI ,target Branch if not equal (bcl with comparison conditions and LR updating) PowerPC e500 Core Family Reference Manual, Rev. 1 C-30 Freescale Semiconductor...
Page 475
Branch if not summary overflow (bc without comparison conditions or LR updating) bnsa crS target bca 4,BI ,target Branch if not summary overflow (bca without comparison conditions or LR updating) PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-31...
Page 476
,target Branch if summary overflow (bcla with comparison conditions and LR updating) bsolr crS target bclr 12,BI ,target Branch if summary overflow (bclr without comparison conditions and LR updating) PowerPC e500 Core Family Reference Manual, Rev. 1 C-32 Freescale Semiconductor...
Page 478
12,rA,SIMM Trap if greater than or equal twgei rA,SIMM twi 12,rA,SIMM Trap immediate if greater than or equal twgt rA,SIMM tw 8,rA,SIMM Trap if greater than PowerPC e500 Core Family Reference Manual, Rev. 1 C-34 Freescale Semiconductor...
Page 479
The value in the BI operand selects CR n [0], the LT bit. The value in the BI operand selects CR n [1], the GT bit. The value in the BI operand selects CR n [3], the SO bit. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor C-35...
Page 480
Simplified Mnemonics for PowerPC Instructions PowerPC e500 Core Family Reference Manual, Rev. 1 C-36 Freescale Semiconductor...
Page 501
0 1 1 0 1 1 UIMM xoris Simplified mnemonics for branch instructions that do not test a CR bit should not specify one; a programming error may occur. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor D-21...
Page 529
This field is defined as allocated by the Book E architecture, for possible use in an implementation. These bits are not implemented in the e500. d = UIMM * 8 d = UIMM * 2 d = UIMM * 4 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor D-49...
Appendix E Revision History This appendix provides a list of major differences between revisions of the PowerPC e500 Core Reference Manual. NOTE While previous revisions of this manual covered only the e500v1 core, referring to it simply as the e500 core, this revision includes coverage of both the e500v1 and e500v2 cores.
Section 11.2.4, “Cache Changed name of L1CSR0[PEIE] to CPI and L1CSR1[IPEIE] to ICPI. Added requirement to have Parity Error Injection” cache parity checking enabled if cache parity injection is enabled. PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 533
Removed references to SHAREN, SHAREND, MEI Management Units” Section 12.2, Corrected bit number compositions in effective-to-real address translation figures, Figure 12-1 “Effective-to-Real Address Figure 12-2 Translation” Chapter 13, “Core Complex Added chapter (CCB)” PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 534
Revision History PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor...
Page 535
(instruction select) APU, 3-25, 3-60 speculative copies of LR and CTR, 4-15 machine check interrupt APU, 3-63, 5-2 Branch target buffer (BTB) branch unit control and status register (BUCSR), 2-26 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor Index-1...
Context synchronization, 3-11, 3-44 coherency required bit (M bit), 11-12 Conventions global signaling, M bit , and snooping, 11-12 execution timing terminology, 4-1 instruction cache coherency model, 11-8, 11-11 PowerPC e500 Core Family Reference Manual, Rev. 1 Index-2 Freescale Semiconductor...
Page 537
8-12 instructions, 1-13 data address compare, 8-9 interrupts, 5-32 instruction address compare, 8-7 see also Interrupt handling instruction complete debug event, 8-12 Embedded single-precision floating-point (SPFP) APUs PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor Index-3...
Page 538
4-18–4-25 write-back, 4-8, 4-9 branch prediction, 4-1, 4-11, 4-20–4-25 instruction unit see also Branch target buffer (BTB) instruction line fill buffer (ILFB), 11-5 completion, 4-18 integer instructions PowerPC e500 Core Family Reference Manual, Rev. 1 Index-4 Freescale Semiconductor...
Page 539
Book E signal processing engine (SPE) APU, 5-3 64-bit–specific, B-1 Freescale Book E implementation standards (EIS) Book E, see Book E architecture oveview, 1-3 branch, 4-18–4-25 condition register logical, 3-25 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor Index-5...
Page 543
2-9–2-10 superscalar diagram, 4-4, 4-5 condition register (CR), 2-9 PIR (processor ID register), 2-12 count register (CTR), 2-10 link register (LR), 2-10 disabling for power savings, 6-3 BTB, 10-3 PowerPC e500 Core Family Reference Manual, Rev. 1 Freescale Semiconductor Index-9...
Page 544
3-49, 3-52 user global control 0 (UPMGC0), 7-5 execution latencies, 4-38 user local control A (UPMLCa0–UPMLCa3), 2-56, 7-6 interrupts, 5-3 user local control B (UPMLCb0–UPMLCb3), 2-57, 7-7 registers PowerPC e500 Core Family Reference Manual, Rev. 1 Index-10 Freescale Semiconductor...
Part I—e500 Core Core Complex Overview Register Model Instruction Model Execution Timing Interrupts and Exceptions Power Management Performance Monitor Debug Support Part II—e500 Core Complex Timer Facilities Auxiliary Processing Units (APUs) L1 Caches Memory Management Units Core Complex Bus (CCB) Appendix A—Programming Examples Appendix B—Guidelines for 32-Bit Book E Appendix C—Simplified Mnemonics for PowerPC Instructions...
Part I—e500 Core Core Complex Overview Register Model Instruction Model Execution Timing Interrupts and Exceptions Power Management Performance Monitor Debug Support Part II—e500 Core Complex Timer Facilities Auxiliary Processing Units (APUs) L1 Caches Memory Management Units Core Complex Bus (CCB) Appendix A—Programming Examples Appendix B—Guidelines for 32-Bit Book E Appendix C—Simplified Mnemonics for PowerPC Instructions...
Need help?
Do you have a question about the PowerPC e500 Core and is the answer not in the manual?
Questions and answers