Freescale Semiconductor
Technical Information Center, CH370
1300 N. Alma School Road
Chandler, Arizona 85224
(800) 521-6274
480-768-2130
support@freescale.com
Freescale Semiconductor Japan Ltd.
Headquarters
ARCO Tower 15F
1-8-1, Shimo-Meguro, Meguro-ku
Tokyo 153-0064, Japan
0120 191014
+81 2666 8080
support.japan@freescale.com
Asia/Pacific:
Freescale Semiconductor Hong Kong Ltd.
Technical Information Center
2 Dai King Street
Tai Po Industrial Estate,
Tai Po, N.T., Hong Kong
+800 2666 8080
support.asia@freescale.com
For Literature Requests Only:
Freescale Semiconductor
Literature Distribution Center
P.O. Box 5405
Denver, Colorado 80217
(800) 441-2447
303-675-2140
Fax: 303-675-2150
LDCForFreescaleSemiconductor
@hibbertgroup.com
Information in this document is provided solely to enable system and software
implementers to use Freescale Semiconductor products. There are no express or
implied copyright licenses granted hereunder to design or fabricate any integrated
circuits or integrated circuits based on the information in this document.
Freescale Semiconductor reserves the right to make changes without further notice to
any products herein. Freescale Semiconductor makes no warranty, representation or
guarantee regarding the suitability of its products for any particular purpose, nor does
Freescale Semiconductor assume any liability arising out of the application or use of
any product or circuit, and specifically disclaims any and all liability, including without
limitation consequential or incidental damages. “Typical” parameters which may be
provided in Freescale Semiconductor data sheets and/or specifications can and do
vary in different applications and actual performance may vary over time. All operating
parameters, including “Typicals” must be validated for each customer application by
customer’s technical experts. Freescale Semiconductor does not convey any license
under its patent rights nor the rights of others. Freescale Semiconductor pro ducts are
not designed, intended, or authorized for use as components in systems intended for
surgical implant into the body, or other applications intended to support or sustain life,
or for any other application in which the failure of the Freescale Semiconductor product
could create a situation where personal injury or death may occur. Should Buyer
purchase or use Freescale Semiconductor products for any such unintended or
unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor
and its officers, employees, subsidiaries, affiliates, and distributors harmless against all
claims, costs, damages, and expenses, and reasonable attorney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such
unintended or unauthorized use, even if such claim alleges that Freescale
Semiconductor was negligent regarding the design or manufacture of the part.
C-30L2 Data Parity Signal Associations...........................................................................C-70
Page
Number
Freescale Semiconductor, I
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
About This Book
The primary objective of this user’s manual is to describe the functionality of the
MPC750 RISC microprocessor family, which includes the MPC750, MPC755, MPC740
and MPC745 microprocessors. Unless noted otherwise, descriptions in this manual that
refer to MPC750 apply to all members of the MPC750 family.
This book is intended as a companion to the Pro gramming En vir onments Manual for 32-Bit
Implementations of the PowerPC Architecture (referred to as the Programming
Environments Manual).
NOTE: About the Companion Programming Environments Manual
The MPC750 RISC Microprocessor User’s Manual, which
describes MPC750 features not defined by the architecture, is
to be used with the Programming Environments Manual.
Because the PowerPC architecture definition is flexible to
support a broad range of processors, The ProgrammingEnvironments Manual describes generally those features
common to these processors and indicates which features are
optional or may be implemented differently in the design of
each processor.
Note that the Programming Environments Manual describes
features of the PowerPC architecture only for 32-bit
implementations.
Contact your sales representative for a copy of the
Freescale Semiconductor, I
Programming Environments Manual.
This document and the Programming Environments Manual distinguish between the three
levels, or programming environments, of the PowerPC architecture, which are as follows:
•PowerPC user instruction set architecture (UISA)—The UISA defines the level of
the architecture to which user-lev el software should conform. The UISA defines the
base user-lev el instruction set, user-le vel registers, data types, memory con v entions,
and the memory and programming models seen by application programmers.
•PowerPC virtual en vironment architecture (VEA)—The VEA, which is the smallest
component of the PowerPC architecture, defines additional user-level functionality
that falls outside typical user-level software requirements. The VEA describes the
For More Information On This Product,
Go to: www.freescale.com
About This Book
Freescale Semiconductor, Inc.
memory model for an environment in which multiple processors or other de vices can
access external memory and defines aspects of the cache model and cache control
instructions from a user-lev el perspectiv e. VEA resources are particularly useful for
optimizing memory accesses and for managing resources in an environment in
which other processors and other devices can access external memory.
Implementations that conform to the VEA also conform to the UISA but may not
necessarily adhere to the OEA.
•PowerPC operating environment architecture (OEA)—The OEA defines
supervisor-level resources typically required by an operating system. It defines the
memory management model, supervisor-level registers, and the exception model.
Implementations that conform to the OEA also conform to the UISA and VEA.
..
.
nc
Freescale Semiconductor, I
Note that some resources are defined more generally at one level in the architecture and
more specifically at another. For example, conditions that cause a floating-point exception
are defined by the UISA, but the exception mechanism itself is defined by the OEA.
Because it is important to distinguish between the levels of the architecture to ensure
compatibility across multiple platforms, those distinctions are shown clearly throughout
this book.
For ease in reference, topics in this book are presented in the same order as the
Programming Environments Manual. Topics build upon one another, beginning with a
description and complete summary of the MPC750 programming model (registers and
instructions) and progressing to more specific, architecture-based topics regarding the
cache, exception, and memory management models. As such, chapters may include
information from multiple levels of the architecture. For example, the discussion of the
cache model uses information from both the VEA and the OEA.
The PowerPC Architecture: A Specification for a New Family of RISC Processors defines
the architecture from the perspective of the three programming environments and remains
the defining document for the PowerPC architecture. For information about ordering
Freescale documentation, see “Suggested Reading,” on page xxxiv.
Information in this book is subject to change without notice, as described in the disclaimers
on the title page of this book. As with any technical documentation, it is the readers’
responsibility to be sure they are using the most recent version of the documentation.
For updates to this document, refer to http://www.freescale.com.
Audience
This manual is intended for system software and hardware developers and applications
programmers who want to develop products for the MPC750. It is assumed that the reader
understands operating systems, microprocessor system design, basic principles of RISC
processing, and details of the PowerPC architecture.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
Organization
Following is a summary and a brief description of the major sections of this manual:
•Chapter 1, “Overview,” is useful for readers who want a general understanding of
the features and functions of the PowerPC architecture and the MPC750. This
chapter describes the flexible nature of the PowerPC architecture definition, and
provides an overview of how the PowerPC architecture defines the register set,
operand conventions, addressing modes, instruction set, cache model, exception
model, and memory management model.
•Chapter 2, “Programming Model,”is useful for software engineers who need to
understand the MPC750-specific registers, operand conventions, and details
..
.
regarding how Po werPC instructions are implemented on the MPC750. Instructions
are organized by function.
nc
Freescale Semiconductor, I
•Chapter 3, “L1 Instruction and Data Cache Operation,” discusses the cache and
memory model as implemented on the MPC750.
•Chapter 4, “Exceptions,” describes the exception model defined in the PowerPC
OEA and the specific exception model implemented on the MPC750.
•Chapter 5, “Memory Management,” describes the MPC750’s implementation of the
memory management unit specifications provided by the OEA.
•Chapter 6, “Instruction Timing,” provides information about latencies, interlocks,
special situations, and various conditions to help make programming more ef ficient.
This chapter is of special interest to software engineers and system designers.
•Chapter 7, “Signal Descriptions,” describes signals of the MPC750.
•Chapter 8, “System Interface Operation,” describes signal timings for various
operations. It also provides information for interfacing to the MPC750.
•Chapter 9, “L2 Cache Interface Operation,” describes the use of the MPC750 L2
cache and cache controller. Note that this feature is not supported on the MPC740
or the MPC745.
•Chapter 10, “Power and Thermal Management,” provides information about power
saving and thermal management modes for the MPC750 family.
•Chapter 11, “Performance Monitor,” describes the operation of the performance
monitor diagnostic tool incorporated in the MPC750 family.
•Appendix A, “PowerPC Instruction Set Listings,” lists PowerPC instructions,
indicating those that are not implemented by the MPC750; it also includes those that
are specific to the MPC750. Separate tables are provided, listing the instructions by
mnemonic, opcode, function, and form. A quick reference table contains general
information for each instruction, such as the architecture level, privilege level, and
form, and indicates if the instruction is 64-bit and optional.
•Appendix B, “Instructions Not Implemented, ” provides a list of the 32-bit and 64-bit
PowerPC instructions that are not implemented in the MPC750.
For More Information On This Product,
Go to: www.freescale.com
About This Book
..
.
nc
Freescale Semiconductor, Inc.
•Appendix C, “MPC755 Embedded G3 Microprocessor,” describes the differences
between the MPC750 and the MPC755. The appendix also serves to identify any
differences between the MPC740 and the MPC745.
•Appendix D, “User’s Manual Revision History,” provides a revision history for this
book, and identifies all the major changes that were made between Revision 0 of this
book and Revision 1.
•This manual also includes a glossary and an index.
Suggested Reading
This section lists additional reading that provides background for the information in this
manual as well as general information about the PowerPC architecture.
General Information
The following documentation, available through Morgan-Kaufmann Publishers, 340 Pine
Street, Sixth Floor, San Francisco, CA, provides useful information about the PowerPC
architecture and computer architecture in general:
•The PowerPC Architecture: A Specification for a New Family of RISC Processors,
Second Edition, by International Business Machines, Inc.
For updates to the specification, see http://www .austin.ibm.com/tech/ppc-chg.html.
•PowerPC Microprocessor Common Hardware Reference Platform: A System Architecture, by Apple Computer, Inc., International Business Machines, Inc., and
Freescale Semiconductor, Inc.
•Computer Arc hitecture: A Quantitative Approach, Second 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
Related Documentation
Freescale Semiconductor, I
Freescale documentation is available from the sources listed on the back cover of this
manual; the document order numbers are included in parentheses for ease in ordering:
•Programming Environments Manual for 32-Bit Implementations of the PowerPC Architecture (MPEFPC32B/AD)—Describes resources defined by the PowerPC
architecture.
•User’ s manuals—These books provide details about individual implementations and
are intended for use with the Programming Environments Manual.
•Addenda/errata to user’s manuals—Because some processors have follow-on parts
an addendum is provided that describes the additional features and functionality
changes. These addenda are intended for use with the corresponding user’ s manuals.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
•Hardware specifications—Hardware specifications provide specific data regarding
bus timing, signal behavior, and AC, DC, and thermal characteristics, as well as
other design considerations. Separate hardware specifications are provided for each
part described in this book.
•Technical summaries—Each device has a technical summary that provides an
overview of its features. This document is roughly the equivalent to the overview
(Chapter 1) of an implementation’s user’s manual.
•The Programmer’s Reference Guide for the PowerPC Architecture:
MPCPRG/D—This concise reference includes the register summary, memory
control model, exception vectors, and the PowerPC instruction set.
•The Programmer’s Pocket Reference Guide for the PowerPC Architecture:
..
.
MPCPRGREF/D—This foldout card provides an overview of PowerPC registers,
instructions, and exceptions for 32-bit implementations.
nc
Freescale Semiconductor, I
•Application notes—These short documents address specific design issues useful to
programmers and engineers working with Freescale processors.
Additional literature is published as new processors become available. For a current list of
documentation, refer to http://www.freescale.com.
Conventions
This document uses the following notational conventions:
cleared/setWhen a bit tak es the value zero, it is said to be cleared; when it tak es
a value of one, it is said to be set.
mnemonicsInstruction mnemonics are shown in lowercase bold.
italicsItalics indicate variable command parameters, for example, bcctrx.
Book titles in text are set in italics
Internal signals are set in italics, for example, qual BG
0x0Prefix to denote hexadecimal number
0b0Prefix to denote binary number
rA, rBInstruction syntax used to identify a source GPR
rDInstruction syntax used to identify a destination GPR
frA, frB, frCInstruction syntax used to identify a source FPR
frDInstruction syntax used to identify a destination FPR
REG[FIELD]Abbreviations for registers are sho wn in uppercase text. Specific bits,
fields, or ranges appear in brackets. For example, MSR[LE] refers to
the little-endian mode enable bit in the machine state register.
For More Information On This Product,
Go to: www.freescale.com
About This Book
Freescale Semiconductor, Inc.
xIn some contexts, such as signal encodings, an unitalicized x
indicates a don’t care.
xAn italicized x indicates an alphanumeric variable.
nAn italicized n indicates an numeric variable.
This chapter provides an overview of the MPC750 microprocessor features, including a
block diagram showing the major functional components. It provides information about
how the MPC750 implementation complies with the PowerPC architecture definition.
Note that the MPC755 microprocessor is a derivative of the MPC750 and all descriptions
for the MPC750 apply for the MPC755 except as noted in Appendix C, “MPC755
Embedded G3 Microprocessor.”
1.1MPC750 Microprocessor Overview
This section describes the features and general operation of the MPC750 and provides a
block diagram showing major functional units. The MPC750 is a reduced instruction set
computer (RISC) CPU, which implements the PowerPC architecture. The MPC750
implements the 32-bit portion of the PowerPC architecture, which provides 32-bit ef fecti ve
addresses, integer data types of 8, 16, and 32 bits, and floating-point data types of 32 and
64 bits. The MPC750 is a superscalar processor that can complete two instructions
simultaneously. It incorporates the following six execution units:
•Floating-point unit (FPU)
•Branch processing unit (BPU)
•System register unit (SRU)
•Load/store unit (LSU)
•Two integer units (IUs): IU1 executes all integer instructions. IU2 executes all
Freescale Semiconductor, I
integer instructions except multiply and divide instructions.
The ability to execute se veral instructions in parallel and the use of simple instructions with
rapid execution times yield high efficiency and throughput for MPC750-based systems.
Most integer instructions execute in one clock cycle. The FPU is pipelined, the tasks it
performs are broken into subtasks, implemented as three successive stages. Typically, a
floating-point instruction can occupy only one of the three stages at a time, freeing the
previous stage to work on the next floating-point instruction. Thus, three single-precision
floating-point instructions can be in the FPU execute stage at a time. Double-precision add
instructions have a three-cycle latency; double-precision multiply and multiply-add
instructions have a four-cycle latency.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Overview
Figure 1-1 shows the parallel organization of the execution units (shaded in the diagram).
The instruction unit fetches, dispatches, and predicts branch instructions. Note that this is
a conceptual model that shows basic features rather than attempting to show how features
are implemented physically.
The MPC750 has independent on-chip, 32-Kbyte, eight-way set-associative, physically
addressed caches for instructions and data and independent instruction and data memory
management units (MMUs). Each MMU has a 128-entry, two-way set-associative
translation lookaside buffer (DTLB and ITLB) that saves recently used page address
translations. Block address translation is done through the four-entry instruction and data
block address translation (IBAT and DBAT) arrays, defined by the PowerPC architecture.
During block translation, effective addresses are compared simultaneously with all four
BAT entries. For information about the L1 cache, see Chapter 3, “L1 Instruction and Data
..
.
Cache Operation.”
nc
Freescale Semiconductor, I
The L2 cache is implemented with an on-chip, two-way, set-associative tag memory, and
with external, synchronous SRAMs for data storage. The external SRAMs are accessed
through a dedicated L2 cache port that supports a single bank of up to 1 Mbyte of
synchronous SRAMs. The L2 cache interface is not implemented in the MPC740. For
information about the L2 cache implementation, see Chapter 9, “L2 Cache Interface
Operation.”
The MPC750 has a 32-bit address bus and a 64-bit data bus. Multiple devices compete for
system resources through a central external arbiter. The MPC750’s three-state
cache-coherency protocol (MEI) supports the exclusive, modified, and invalid states, a
compatible subset of the MESI (modified/exclusiv e/shared/in valid) four -state protocol, and
it operates coherently in systems with four-state caches. The MPC750 supports single-beat
and burst data transfers for memory accesses and memory-mapped I/O operations. The
system interface is described in Chapter 7, “Signal Descriptions,” and Chapter 8, “System
Interface Operation.”
The MPC750 has four software-controllable power-saving modes. Three static modes,
doze, nap, and sleep, progressively reduce power dissipation. When functional units are
idle, a dynamic power management mode causes those units to enter a low-power mode
automatically without affecting operational performance, software execution, or external
hardware. The MPC750 also provides a thermal assist unit (TAU) and a way to reduce the
instruction fetch rate for limiting power dissipation. Power management is described in
Chapter 10, “Power and Thermal Management.”
The MPC750 uses an advanced CMOS process technology and is fully compatible with
TTL devices.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
128-Bit
(4 Instructions)
I Cache
32-Kbyte
Tags
IBAT
Array
Freescale Semiconductor, Inc.
Unit
Reservation Station
Floating-Point
64-Bit
+ x ÷
MPC750 Microprocessor Overview
FPSCR
FPSCR
L2CR
L2 Controller
Unit
L2 Bus Interface
L2 Castout Queue
L2 Tags
Not in the MPC740
..
.
nc
SRs
Instruction MMU
(Shadow)
LR
CTR
Unit
BTIC
Branch Processing
Instruction Unit
Fetcher
64 Entry
(6 Word)
Instruction Queue
BHT
ITLB
64-Bit
(2 Instructions)
Dispatch Unit
(6)
FPR File
Rename Buffers
64-Bit
+
(2 Entry)
Reservation Station
GPR File
Reservation Station
Load/Store Unit
32-Bit
(6)
Rename Buffers
Unit
System Register
Store Queue
(EA Calculation)
32-Bit
CR
64-Bit
Data Load Queue
60x Bus Interface Unit
EAPA
L1 Castout Queue
Instruction Fetch Queue
64-Bit
Data MMU
DBAT
SRs
(Original)
D Cache
32-Kbyte
Tags
Array
DTLB
64-Bit L2 Data Bus
17-Bit L2 Address Bus
64-Bit Data Bus
32-Bit Address Bus
Freescale Semiconductor, I
+
Reservation Station
2 Instructions
Additional Features
• Time Base Counter/Decre-
menter
• Clock Multiplier
• JTAG/COP Interface
• Thermal/Power Manage-
Reservation Station
Figure 1-1. MPC750 Microprocessor Block Diagram
Chapter 1. Overview
For More Information On This Product,
Go to: www.freescale.com
Integer Unit 2
32-Bit
+ x ÷
Integer Unit 1
(6 Entry)
Reorder Buffer
Completion Unit
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
1.2MPC750 Microprocessor Features
This section lists features of the MPC750. The interrelationship of these features is shown
in Figure 1-1.
1.2.1Overview of the MPC750 Microprocessor Features
Major features of the MPC750 are as follows:
•High-performance, superscalar microprocessor
— As many as four instructions can be fetched from the instruction cache per clock
cycle
..
.
nc
Freescale Semiconductor, I
— As many as two instructions can be dispatched per clock
— As many as six instructions can execute per clock (including two integer
instructions)
— Single-clock-cycle execution for most instructions
•Six independent execution units and two register files
— BPU featuring both static and dynamic branch prediction
(BTIC), a cache of branch instructions that have been encountered in
branch/loop code sequences. If a target instruction is in the BTIC, it is fetched
into the instruction queue a cycle sooner than it can be made available from
the instruction cache. T ypically, if a fetch access hits the BTIC, it provides the
first two instructions in the target stream.
– 512-entry branch history table (BHT) with two bits per entry for four levels of
prediction—not-taken, strongly not-taken, taken, strongly taken
– Branch instructions that do not update the count register (CTR) or link register
(LR) are removed from the instruction stream.
— Two integer units (IUs) that share thirty-two GPRs for integer operands
– IU1 can execute any integer instruction.
– IU2 can execute all integer instructions except multiply and divide
instructions (shift, rotate, arithmetic, and logical instructions). Most
instructions that execute in the IU2 take one cycle to execute. The IU2 has a
single-entry reservation station.
— Three-stage FPU
– Fully IEEE 754-1985-compliant FPU for both single- and double-precision
operations
– Supports non-IEEE mode for time-critical operations
– Hardware support for denormalized numbers
– Single-entry reservation station
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
– Thirty-two 64-bit FPRs for single- or double-precision operands
— Two-stage LSU
– Two-entry reservation station
– Single-cycle, pipelined cache access
– Dedicated adder performs EA calculations
– Performs alignment and precision conversion for floating-point data
– Performs alignment and sign extension for integer data
– Three-entry store queue
– Supports both big- and little-endian modes
— SRU handles miscellaneous instructions
– Executes CR logical and Move to/Move from SPR instructions (mtspr and
mfspr)
– Single-entry reservation station
•Rename buffers
— Six GPR rename buffers
— Six FPR rename buffers
— Condition register buffering supports two CR writes per clock
•Completion unit
— The completion unit retires an instruction from the six-entry reorder buffer
(completion queue) when all instructions ahead of it have been completed, the
instruction has finished execution, and no exceptions are pending.
— Guarantees sequential programming model (precise exception model)
— Monitors all dispatched instructions and retires them in order
— Tracks unresolved branches and flushes instructions from the mispredicted
branch
— Retires as many as two instructions per clock
Freescale Semiconductor, I
•Separate on-chip instruction and data caches (Harvard architecture)
— 32-Kbyte, eight-way set-associative instruction and data caches
— Pseudo least-recently-used (PLRU) replacement algorithm
— 32-byte (eight-word) cache block
— Physically indexed/physical tags. (Note that the PowerPC architecture refers to
physical address space as real address space.)
— Cache write-back or write-through operation programmable on a per-page or
per-block basis
— Instruction cache can provide four instructions per clock; data cache can provide
two words per clock
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
— Caches can be disabled in software
— Caches can be locked in software
— Data cache coherency (MEI) maintained in hardware
— The critical double word is made av ailable to the requesting unit when it is b urst
into the line-fill buffer. The cache is nonblocking, so it can be accessed during
this operation.
•Level 2 (L2) cache interface (The L2 cache interface is not supported in the
MPC740.)
— On-chip two-way set-associative L2 cache controller and tags
— External data SRAMs
..
.
nc
— Support for 256-Kbyte, 512-Kbyte, and 1-Mbyte L2 caches
— 64-byte (256-Kbyte/512-Kbyte) and 128-byte (1 Mbyte) sectored line size
— Supports flow-through (register-buffer), pipelined (register-register), and
•Separate memory management units (MMUs) for instructions and data
— 52-bit virtual address; 32-bit physical address
— Address translation for 4-Kbyte pages, variable-sized blocks, and 256-Mbyte
segments
— Memory programmable as write-back/write-through, cacheable/noncacheable,
and coherency enforced/coherency not enforced on a page or block basis
— Separate IBATs and DBATs (four each) also defined as SPRs
— Separate instruction and data translation lookaside buffers (TLBs)
– Both TLBs are 128-entry, two-way set associative, and use LR U replacement
algorithm
– TLBs are hardware-reloadable (that is, the page table search is performed in
hardware)
•Separate bus interface units for system memory and for the L2 cache
Freescale Semiconductor, I
— Bus interface features include the following:
– Selectable bus-to-core clock frequency ratios of 2x, 2.5x, 3x, 3.5x, 4x, 4.5x ...
8x. (2x to 8x, all half-clock multipliers in-between)
– A 64-bit, split-transaction external data bus with burst transfers
– Support for address pipelining and limited out-of-order bus transactions
– Single-entry load queue
– Single-entry instruction fetch queue
– Two-entry L1 cache castout queue
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
– No-DRTRY mode eliminates the DRTRY signal from the qualified b us grant.
This allows the forwarding of data during load operations to the internal core
one bus cycle sooner than if the use of DR
TRY is enabled.
— L2 cache interface features (which are not implemented on the MPC740) include
the following:
– Core-to-L2 frequency divisors of 1, 1.5, 2, 2.5, and 3
– Four-entry L2 cache castout queue in L2 cache BIU
– 17-bit address bus
– 64-bit data bus
•Multiprocessing support features include the following:
..
.
nc
— Hardware-enforced, three-state cache coherency protocol (MEI) for data cache.
— Load/store with reservation instruction pair for atomic memory references,
semaphores, and other multiprocessor operations
•Power and thermal management
— Three static modes, doze, nap, and sleep, progressively reduce power
dissipation:
– Doze—All the functional units are disabled except for the time
base/decrementer registers and the bus snooping logic.
– Nap—The nap mode further reduces power consumption by disabling bus
snooping, leaving only the time base register and the PLL in a po wered state.
– Sleep—All internal functional units are disabled, after which external system
management. Thermal management is performed through the use of three
supervisor-level registers and an MPC750-specific thermal management
exception.
— Instruction cache throttling provides control of instruction fetching to limit
power consumption.
Freescale Semiconductor, I
•Performance monitor can be used to help debug system designs and improve
software efficiency.
•In-system testability and debugging features through JTAG boundary-scan
capability
1.2.2Instruction Flow
As shown in Figure 1-1, the MPC750 instruction unit provides centralized control of
instruction flow to the execution units. The instruction unit contains a sequential fetcher,
six-entry instruction queue (IQ), dispatch unit, and BPU. It determines the address of the
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
next instruction to be fetched based on information from the sequential fetcher and from
the BPU.
See Chapter 6, “Instruction Timing,” for a detailed discussion of instruction timing.
The sequential fetcher loads instructions from the instruction cache into the instruction
queue. The BPU extracts branch instructions from the sequential fetcher. Branch
instructions that cannot be resolved immediately are predicted using either the
MPC750-specific dynamic branch prediction or the architecture-defined static branch
prediction.
Branch instructions that do not affect the LR or CTR are removed from the instruction
stream. The BPU folds branch instructions when a branch is taken (or predicted as taken);
..
.
branch instructions that are not taken, or predicted as not taken, are removed from the
instruction stream through the dispatch mechanism.
nc
Freescale Semiconductor, I
Instructions issued beyond a predicted branch do not complete execution until the branch
is resolved, preserving the programming model of sequential execution. If branch
prediction is incorrect, the instruction unit flushes all predicted path instructions, and
instructions are fetched from the correct path.
1.2.2.1Instruction Queue and Dispatch Unit
The instruction queue (IQ), shown in Figure 1-1, holds as many as six instructions and
loads up to four instructions from the instruction cache during a single processor clock
cycle. The instruction fetcher continuously attempts to load as many instructions as there
were vacancies in the IQ in the previous clock cycle. All instructions except branch
instructions are dispatched to their respective e xecution units from the bottom two positions
in the instruction queue (IQ0 and IQ1) at a maximum rate of two instructions per cycle.
Reservation stations are provided for the IU1, IU2, FPU, LSU, and SRU. The dispatch unit
checks for source and destination register dependencies, determines whether a position is
available in the completion queue, and inhibits subsequent instruction dispatching as
required.
Branch instructions can be detected, decoded, and predicted from anywhere in the
instruction queue. For a more detailed discussion of instruction dispatch, see Section 6.3.3,
“Instruction Dispatch and Completion Considerations.”
1.2.2.2Branch Processing Unit (BPU)
The BPU receives branch instructions from the sequential fetcher and performs CR
lookahead operations on conditional branches to resolve them early, achieving the effect of
a zero-cycle branch in many cases.
Unconditional branch instructions and conditional branch instructions in which the
condition is known can be resolved immediately. For unresolved conditional branch
instructions, the branch path is predicted using either the architecture-defined static branch
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
prediction or the MPC750-specific dynamic branch prediction. Dynamic branch prediction
is enabled if HID0[BHT] = 1.
When a prediction is made, instruction fetching, dispatching, and execution continue from
the predicted path, but instructions cannot complete and write back results to architected
registers until the prediction is determined to be correct (resolved). When a prediction is
incorrect, the instructions from the incorrect path are flushed from the processor and
processing begins from the correct path. The MPC750 allows a second branch instruction
to be predicted; instructions from the second predicted instruction stream can be fetched
but cannot be dispatched.
Dynamic prediction is implemented using a 512-entry branch history table (BHT), a cache
that provides two bits per entry that together indicate four levels of prediction for a branch
instruction—not-taken, strongly not-taken, taken, strongly taken. When dynamic branch
prediction is disabled, the BPU uses a bit in the instruction encoding to predict the direction
of the conditional branch. Therefore, when an unresolved conditional branch instruction is
encountered, the MPC750 executes instructions from the predicted target stream although
the results are not committed to architected registers until the conditional branch is
resolved. This execution can continue until a second unresolved branch instruction is
encountered.
When a branch is taken (or predicted as taken), the instructions from the untaken path must
be flushed and the target instruction stream must be fetched into the IQ. The BTIC is a
64-entry cache that contains the most recently used branch target instructions, typically in
pairs. When an instruction fetch hits in the BTIC, the instructions arrive in the instruction
queue in the next clock cycle, a clock cycle sooner than they would arrive from the
instruction cache. Additional instructions arrive from the instruction cache in the ne xt clock
cycle. The BTIC reduces the number of missed opportunities to dispatch instructions and
gives the processor a one-cycle head start on processing the target stream.
The BPU contains an adder to compute branch target addresses and three user-control
registers—the link register (LR), the count register (CTR), and the CR. The BPU calculates
the return pointer for subroutine calls and saves it into the LR for certain types of branch
instructions. The LR also contains the branch target address for the Branch Conditional to
Freescale Semiconductor, I
Link Register (bclrx) instruction. The CTR contains the branch target address for the
Branch Conditional to Count Register (bcctrx) instruction. Because the LR and CTR are
SPRs, their contents can be copied to or from any GPR. Because the BPU uses dedicated
registers rather than GPRs or FPRs, execution of branch instructions is lar gely independent
from execution of integer and floating-point instructions.
1.2.2.3Completion Unit
The completion unit operates closely with the instruction unit. Instructions are fetched and
dispatched in program order. At the point of dispatch, the program order is maintained by
assigning each dispatched instruction a successive entry in the six-entry completion queue.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
The completion unit tracks instructions from dispatch through execution and retires them
in program order from the two bottom entries in the completion queue (CQ0 and CQ1).
Instructions cannot be dispatched to an execution unit unless there is a vacancy in the
completion queue. Branch instructions that do not update the CTR or LR are removed from
the instruction stream and do not take an entry in the completion queue. Instructions that
update the CTR and LR follow the same dispatch and completion procedures as non-branch
instructions, except that they are not issued to an execution unit.
Completing an instruction commits execution results to architected registers (GPRs, FPRs,
LR, and CTR). In-order completion ensures the correct architectural state when the
MPC750 must recover from a mispredicted branch or any e xception. Retiring an instruction
removes it from the completion queue.
For a more detailed discussion of instruction completion, see Section 6.3.3, “Instruction
Dispatch and Completion Considerations.”
1.2.2.4Independent Execution Units
In addition to the BPU, the MPC750 provides the five execution units described in the
following sections.
1.2.2.4.1Integer Units (IUs)
The integer units IU1 and IU2 are shown in Figure 1-1. The IU1 can execute any integer
instruction; the IU2 can execute any integer instruction except multiplication and division
instructions. Each IU has a single-entry reservation station that can receive instructions
from the dispatch unit and operands from the GPRs or the rename buffers.
Each IU consists of three single-cycle subunits—a fast adder/comparator, a subunit for
logical operations, and a subunit for performing rotates, shifts, and count-leading-zero
operations. These subunits handle all one-cycle arithmetic instructions; only one subunit
can execute an instruction at a time.
The IU1 has a 32-bit integer multiplier/divider as well as the adder, shift, and logical units
Freescale Semiconductor, I
of the IU2. The multiplier supports early exit for operations that do not require full 32-
x
32-bit multiplication.
Each IU has a dedicated result bus (not shown in Figure 1-1) that connects to rename
buffers.
1.2.2.4.2Floating-Point Unit (FPU)
The FPU, shown in Figure 1-1, is designed such that single-precision operations require
only a single pass, with a latency of three cycles. As instructions are dispatched to the FPU’ s
reservation station, source operand data can be accessed from the FPRs or from the FPR
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
rename buffers. Results in turn are written to the rename buffers and are made available to
subsequent instructions. Instructions pass through the reservation station in dispatch order.
The FPU contains a single-precision multiply-add array and the floating-point status and
control register (FPSCR). The multiply-add array allows the MPC750 to efficiently
implement multiply and multiply-add operations. The FPU is pipelined so that one singleor double-precision instruction can be issued per clock cycle. Thirty-two 64-bit
floating-point registers are provided to support floating-point operations. Stalls due to
contention for FPRs are minimized by automatic allocation of the six floating-point rename
registers. The MPC750 writes the contents of the rename registers to the appropriate FPR
when floating-point instructions are retired by the completion unit.
The MPC750 supports all IEEE 754 floating-point data types (normalized, denormalized,
NaN, zero, and infinity) in hardware, eliminating the latency incurred by software
exception routines. (Note that exception is also referred to as interrupt in the architecture
specification.)
1.2.2.4.3Load/Store Unit (LSU)
The LSU executes all load and store instructions and provides the data transfer interface
between the GPRs, FPRs, and the cache/memory subsystem. The LSU calculates effective
addresses, performs data alignment, and provides sequencing for load/store string and
multiple instructions.
Load and store instructions are issued and translated in program order; however, some
memory accesses can occur out of order . Synchronizing instructions can be used to enforce
strict ordering. When there are no data dependencies and the guarded bit for the page or
block is cleared, a maximum of one out-of-order cacheable load operation can execute per
cycle, with a two-cycle total latenc y on a cache hit. Data returned from the cache is held in
a rename register until the completion logic commits the value to a GPR or FPR. Stores
cannot be executed out of order and are held in the store queue until the completion logic
signals that the store operation is to be completed to memory. The MPC750 executes store
instructions with a maximum throughput of one per cycle and a three-cycle total latency to
the data cache. The time required to perform the actual load or store operation depends on
Freescale Semiconductor, I
the processor/bus clock ratio and whether the operation involves the on-chip cache, the L2
cache, system memory, or an I/O device.
1.2.2.4.4System Register Unit (SRU)
The SRU executes various system-level instructions, as well as condition register logical
operations and move to/from special-purpose register instructions. To maintain system
state, most instructions executed by the SRU are execution-serialized; that is, the
instruction is held for execution in the SRU until all previously issued instructions have
executed. Results from execution-serialized instructions executed by the SRU are not
available or forwarded for subsequent instructions until the instruction completes.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
1.2.3Memory Management Units (MMUs)
The MPC750’s MMUs support up to 4 Petabytes (252) of virtual memory and 4 Gigabytes
32
(2
) of physical memory for instructions and data. The MMUs also control access
privileges for these spaces on block and page granularities. Referenced and changed status
is maintained by the processor for each page to support demand-paged virtual memory
systems.
The LSU calculates effective addresses for data loads and stores; the instruction unit
calculates effective addresses for instruction fetching. The MMU translates the effective
address to determine the correct physical address for the memory access.
The MPC750 supports the following types of memory translation:
..
.
nc
Freescale Semiconductor, I
•Real addressing mode—In this mode, translation is disabled by clearing bits in the
machine state register (MSR): MSR[IR] for instruction fetching or MSR[DR] for
data accesses. When address translation is disabled, the physical address is identical
to the effective address.
•Page address translation—translates the page frame address for a 4-Kbyte page size
•Block address translation—translates the base address for blocks (128 Kbytes to 256
Mbytes)
If translation is enabled, the appropriate MMU translates the higher-order bits of the
effective address into physical address bits. The lower-order address bits (that are
untranslated and therefore, considered both logical and physical) are directed to the on-chip
caches where they form the index into the eight-way set-associative tag array. After
translating the address, the MMU passes the higher-order physical address bits to the cache
and the cache lookup completes. For caching-inhibited accesses or accesses that miss in the
cache, the untranslated lower-order address bits are concatenated with the translated
higher-order address bits; the resulting 32-bit physical address is used by the memory unit
and the system interface, which accesses external memory.
The TLBs store page address translations for recent memory accesses. For each access, an
effectiv e address is presented for page and block translation simultaneously. If a translation
is found in both the TLB and the B AT array, the block address translation in the BAT array
is used. Usually the translation is in a TLB and the physical address is readily available to
the on-chip cache. When a page address translation is not in a TLB, hardware searches for
one in the page table following the model defined by the PowerPC architecture.
Instruction and data TLBs provide address translation in parallel with the on-chip cache
access, incurring no additional time penalty in the event of a TLB hit. The MPC750’s TLBs
are 128-entry, two-way set-associative caches that contain instruction and data address
translations. The MPC750 automatically generates a TLB search on a TLB miss.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
1.2.4On-Chip Instruction and Data Caches
The MPC750 implements separate instruction and data caches. Each cache is 32-Kbyte and
eight-way set associative. As defined by the PowerPC architecture, they are physically
indexed. Each cache block contains eight contiguous words from memory that are loaded
from an 8-word boundary (that is, bits EA[27–31] are zeros); thus, a cache block never
crosses a page boundary. An entire cache block can be updated by a four-beat burst load.
Misaligned accesses across a page boundary can incur a performance penalty. Caches are
nonblocking, write-back caches with hardware support for reloading on cache misses. The
critical double word is transferred on the first beat and is simultaneously written to the
cache and forwarded to the requesting unit, minimizing stalls due to load delays. The cache
being loaded is not blocked to internal accesses while the load completes.
..
.
nc
The MPC750 cache organization is shown in Figure 1-2.
128 Sets
Block 0
Block 1
Block 2
Block 3
Block 4
Block 5
Block 6
Block 7
Address Tag 0
Address Tag 1
Address Tag 2
Address Tag 3
Address Tag 4
Address Tag 5
Address Tag 6
Address Tag 7
State
State
State
State
State
State
State
State
Words [0–7]
Words [0–7]
Words [0–7]
Words [0–7]
Words [0–7]
Words [0–7]
Words [0–7]
Words [0–7]
8 Words/Block
Freescale Semiconductor, I
Figure 1-2. Cache Organization
Within one cycle, the data cache provides double-word access to the LSU. Like the
instruction cache, the data cache can be invalidated all at once or on a per-cache-block
basis. The data cache can be disabled and invalidated by clearing HID0[DCE] and setting
HID0[DCFI]. The data cache can be locked by setting HID0[DLOCK]. To ensure cache
coherency, the data cache supports the three-state MEI protocol. The data cache tags are
single-ported, so a simultaneous load or store and a snoop access represent a resource
collision. If a snoop hit occurs, the LSU is blocked internally for one cycle to allow the
eight-word block of data to be copied to the write-back buffer.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
Within one cycle, the instruction cache provides up to four instructions to the instruction
queue. The instruction cache can be invalidated entirely or on a cache-block basis. The
instruction cache can be disabled and invalidated by clearing HID0[ICE] and setting
HID0[ICFI]. The instruction cache can be locked by setting HID0[ILOCK]. The instruction
cache supports only the valid/invalid states.
The MPC750 also implements a 64-entry (16-set, four-way set-associative) branch target
instruction cache (BTIC). The BTIC is a cache of branch instructions that have been
encountered in branch/loop code sequences. If the target instruction is in the BTIC, it is
fetched into the instruction queue a cycle sooner than it can be made available from the
instruction cache. T ypically the BTIC contains the first tw o instructions in the target stream.
The BTIC can be disabled and invalidated through software.
..
.
nc
Freescale Semiconductor, I
For more information and timing examples sho wing cache hit and cache miss latencies, see
Section 6.3.2, “Instruction Fetch Timing.”
1.2.5L2 Cache Implementation (Not Supported in the
MPC740)
The L2 cache is a unified cache that receives memory requests from both the L1 instruction
and data caches independently. The L2 cache is implemented with an on-chip, two-way,
set-associative tag memory, and with external, synchronous SRAMs for data storage. The
external SRAMs are accessed through a dedicated L2 cache port that supports a single bank
of up to 1 Mbyte of synchronous SRAMs. The L2 cache normally operates in write-back
mode and supports system cache coherency through snooping.
Depending on its size, the L2 cache is organized into 64- or 128-byte lines, which in turn
are subdivided into 32-byte sectors (blocks), the unit at which cache coherency is
maintained.
The L2 cache controller contains the L2 cache control register (L2CR), which includes bits
for enabling parity checking, setting the L2-to-processor clock ratio, and identifying the
type of RAM used for the L2 cache implementation. The L2 cache controller also manages
the L2 cache tag array , two-w ay set-associati v e with 4K tags per way. Each sector (32-byte
cache block) has its own valid and modified status bits.
Requests from the L1 cache generally result from instruction misses, data load or store
misses, write-through operations, or cache management instructions. Requests from the L1
cache are looked up in the L2 tags and serviced by the L2 cache if they hit; they are
forwarded to the bus interface if they miss.
The L2 cache can accept multiple, simultaneous accesses. The L1 instruction cache can
request an instruction at the same time that the L1 data cache is requesting one load and two
store operations. The L2 cache also services snoop requests from the bus. If there are
multiple pending requests to the L2 cache, snoop requests have highest priority. The next
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, I
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
priority consists of load and store requests from the L1 data cache. The next priority
consists of instruction fetch requests from the L1 instruction cache.
For more information, see Chapter 9, “L2 Cache Interface Operation.”
1.2.6System Interface/Bus Interface Unit (BIU)
The address and data buses operate independently; address and data tenures of a memory
access are decoupled to provide a more flexible control of memory traffic. The primary
activity of the system interface is transferring data and instructions between the processor
and system memory. There are two types of memory accesses:
•Single-beat transfers—These memory accesses allow transfer sizes of 8, 16, 24, 32,
or 64 bits in one bus clock cycle. Single-beat transactions are caused by uncacheable
read and write operations that access memory directly (that is, when caching is
disabled), cache-inhibited accesses, and stores in write-through mode.
•Four-beat b urst (32 bytes) data transfers—Burst transactions, which always transfer
an entire cache block (32 bytes), are initiated when an entire cache block is
transferred. Because the first-level caches on the MPC750 are write-back caches,
burst-read memory, burst operations are the most common memory accesses,
followed by burst-write memory operations, and single-beat (noncacheable or
write-through) memory read and write operations.
The MPC750 also supports address-only operations, variants of the burst and single-beat
operations, (for example, atomic memory operations and global memory operations that are
snooped), and address retry activity (for example, when a snooped read access hits a
modified block in the cache). The broadcast of some address-only operations is controlled
through HID0[ABE]. I/O accesses use the same protocol as memory accesses.
Access to the system interface is granted through an external arbitration mechanism that
allows devices to compete for bus mastership. This arbitration mechanism is flexible,
allowing the MPC750 to be integrated into systems that implement v arious fairness and bus
parking procedures to avoid arbitration overhead.
Typically, memory accesses are weakly ordered—sequences of operations, including
load/store string and multiple instructions, do not necessarily complete in the order they
begin—maximizing the efficiency of the bus without sacrificing data coherency. The
MPC750 allows read operations to go ahead of store operations (except when a dependenc y
exists, or in cases where a noncacheable access is performed), and provides support for a
write operation to go ahead of a previously queued read data tenure (for example, letting a
snoop push be enveloped between address and data tenures of a read operation). Because
the MPC750 can dynamically optimize run-time ordering of load/store traffic, overall
performance is improved.
The system interface is specific for each microprocessor.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
The MPC750 signals are grouped as shown in Figure 1-3. Signals are provided for clocking
and control of the L2 caches, as well as separate L2 address and data buses. Test and control
signals provide diagnostics for selected internal circuits.
..
.
nc
Freescale Semiconductor, I
Address Arbitration
Address Start
Address Transfer
Transfer Attribute
Address Termination
Clocks
System Status
MPC750
V
DDVDD
(I/O)
1
Data Arbitration
Data Transfer
Data Termination
L2 Cache Clock/Control
L2 Cache Address/Data
Processor Status/Control
Test and Control
Not supported in the MPC740
1
1
Figure 1-3. System Interface
The system interface supports address pipelining, which allows the address tenure of one
transaction to overlap the data tenure of another. The extent of the pipelining depends on
external arbitration and control circuitry. Similarly, the MPC750 supports split-bus
transactions for systems with multiple potential bus masters—one device can have
mastership of the address bus while another has mastership of the data bus. Allowing
multiple bus transactions to occur simultaneously increases the av ailable bus bandwidth for
other activity.
The MPC750’s clocking structure supports a wide range processor-to-bus clock ratios.
1.2.7Signals
The MPC750’s signals are grouped as follows:
•Address arbitration signals—The MPC750 uses these signals to arbitrate for address
bus mastership.
•Address start signals—These signals indicate that a bus master has begun a
transaction on the address bus.
•Address transfer signals—These signals include the address bus and address parity
signals. They are used to transfer the address and to ensure the integrity of the
transfer.
•Transfer attribute signals—These signals provide information about the type of
transfer, such as the transfer size and whether the transaction is bursted,
write-through, or caching-inhibited.
•Address termination signals—These signals are used to acknowledge the end of the
address phase of the transaction. They also indicate whether a condition exists that
requires the address phase to be repeated.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Features
•Data arbitration signals—The MPC750 uses these signals to arbitrate for data bus
mastership.
•Data transfer signals—These signals, which consist of the data bus and data parity
signals, are used to transfer the data and to ensure the integrity of the transfer.
•Data termination signals—Data termination signals are required after each data beat
in a data transfer . In a single-beat transaction, a data termination signal also indicates
the end of the tenure; in burst accesses, data termination signals apply to individual
beats and indicate the end of the tenure only after the final data beat. They also
indicate whether a condition exists that requires the data phase to be repeated.
•L2 cache clock/control signals—These signals provide clocking and control for the
L2 cache. (Not supported in the MPC740.)
..
.
nc
Freescale Semiconductor, I
•L2 cache address/data—The MPC750 has separate address and data buses for
accessing the L2 cache. (Not supported in the MPC740.)
•Interrupt signals—These signals include the interrupt signal, checkstop signals, and
both soft reset and hard reset signals. These signals are used to generate interrupt
exceptions and, under various conditions, to reset the processor.
•Processor status/control signals—These signals are used to set the reservation
coherency bit, enable the time base, and other functions.
•Miscellaneous signals—These signals are used in conjunction with such resources
as secondary caches and the time base facility.
•JTAG/COP interface signals—The common on-chip processor (COP) unit provides
a serial interface to the system for performing board-level boundary scan
interconnect tests.
•Clock signals—These signals determine the system clock frequency. These signals
can also be used to synchronize multiprocessor systems.
NOTE
A bar over a signal name indicates that the signal is active
low—for example, AR
TRY (address retry) and TS (transfer
start). Active-low signals are referred to as asserted (active)
when they are low and ne gated when they are high. Signals that
are not active lo w, such as AP[0–3] (address bus parity signals)
and TT[0–4] (transfer type signals) are referred to as asserted
when they are high and negated when they are low.
1.2.8Signal Configuration
Figure 1-4 shows the MPC750's logical pin configuration. The signals are grouped by
function.
Signal functionality is described in detail in Chapter 7, “Signal Descriptions,” and
Chapter 8, “System Interface Operation.”
1.2.9Clocking
The MPC750 requires a single system clock input, SYSCLK, that represents the bus
interface frequency. Internally, the processor uses a phase-locked loop (PLL) circuit to
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
AV
DD
..
.
nc
Freescale Semiconductor, Inc.
MPC750 Microprocessor Implementation
generate a master core clock that is frequency-multiplied and phase-locked to the SYSCLK
input. This core frequency is used to operate the internal circuitry.
The PLL is configured by the PLL_CFG[0–3] signals, which select the multiplier that the
PLL uses to multiply the SYSCLK frequency up to the internal core frequency. The
feedback in the PLL guarantees that the processor clock is phase locked to the bus clock,
regardless of process variations, temperature changes, or parasitic capacitances. The PLL
also ensures a 50% duty cycle for the processor clock.
The MPC750 supports various processor-to-bus clock frequency ratios, although not all
ratios are available for all frequencies. Configuration of the processor/bus clock ratios is
displayed through a MPC750-specific register, HID1. For information about supported
clock frequencies, see the MPC750 hardware specifications.
1.3MPC750 Microprocessor Implementation
The PowerPC architecture is derived from the POWER architecture (Performance
Optimized with Enhanced RISC architecture). The PowerPCarchitecture shares the
benefits of the POWER architecture optimized for single-chip implementations. The
PowerPC architecture design facilitates parallel instruction ex ecution and is scalable to take
advantage of future technological gains.
This section describes the PowerPC architecture in general, and specific details about the
implementation of the MPC750 as a low-power, 32-bit device that implements this
architecture. The structure of this section follows the organization of the user’s manual;
each subsection provides an overview of each chapter.
•Registers and programming model—Section 1.4, “PowerPC Registers and
Programming Model,” describes the registers for the operating environment
architecture common among processors of this family and describes the
programming model. It also describes the registers that are unique to the MPC750.
The information in this section is described more fully in Chapter 2, “Programming
Model.”
•Instruction set and addressing modes—Section 1.5, “Instruction Set, ” describes the
Freescale Semiconductor, I
PowerPC instruction set and addressing modes for the PowerPC operating
environment architecture, and defines and describes the PowerPC instructions
implemented in the MPC750. The information in this section is described more fully
in Chapter 2, “Programming Model.”
•Cache implementation—Section 1.6, “On-Chip Cache Implementation,” describes
the cache model that is defined generally by the virtual environment architecture. It
also provides specific details about the MPC750 cache implementation. The
information in this section is described more fully in Chapter 3, “L1 Instruction and
Data Cache Operation.”
•Exception model—Section 1.7, “Exception Model, ” describes the e xception model
of the PowerPC operating environment architecture and the differences in the
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
MPC750 Microprocessor Implementation
MPC750 exception model. The information in this section is described more fully
in Chapter 4, “Exceptions.”
•Memory management—Section 1.8, “Memory Management,” describes generally
the conv entions for memory management among the processors of this family. This
section also describes the MPC750’s implementation of the 32-bit PowerPC
memory management specification. The information in this section is described
more fully in Chapter 5, “Memory Management
•Instruction timing—Section 1.9, “Instruction Timing,” provides a general
description of the instruction timing provided by the superscalar , parallel ex ecution
supported by the PowerPC architecture and the MPC750. The information in this
section is described more fully in Chapter 6, “Instruction Timing,”
..
.
nc
Freescale Semiconductor, I
•Power management—Section 1.10, “Power Management,” describes ho w the power
management can be used to reduce power consumption when the processor, or
portions of it, are idle. The information in this section is described more fully in
Chapter 10, “Power and Thermal Management.”
•Thermal management—Section 1.11, “Thermal Management,” describes how the
thermal management unit and its associated registers (THRM1–THRM3) and
exception can be used to manage system activity in a way that prevents exceeding
system and junction temperature thresholds. This is particularly useful in
high-performance portable systems, which cannot use the same cooling mechanisms
(such as fans) that control overheating in desktop systems. The information in this
section is described more fully in Chapter 10, “Power and Thermal Management.”
•Performance monitor—Section 1.12, “Performance Monitor,” describes the
performance monitor facility, which system designers can use to help bring up,
debug, and optimize software performance. The information in this section is
described more fully in Chapter 10, “Power and Thermal Management.”
The following sections summarize the features of the MPC750, distinguishing those that
are defined by the architecture and from those that are unique to the MPC750
implementation.
The PowerPC architecture consists of the following layers, and adherence to the PowerPC
architecture can be described in terms of which of the following levels of the architecture
is implemented:
•PowerPC user instruction set architecture (UISA)—Defines the base user-level
instruction set, user-level registers, data types, floating-point exception model,
memory models for a uniprocessor environment, and programming model for a
uniprocessor environment.
•PowerPC virtual environment architecture (VEA)—Describes the memory model
for a multiprocessor environment, defines cache control instructions, and describes
other aspects of virtual environments. Implementations that conform to the VEA
also adhere to the UISA, but may not necessarily adhere to the OEA.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
PowerPC Registers and Programming Model
•PowerPC operating environment architecture (OEA)—Defines the memory
management model, supervisor-level registers, synchronization requirements, and
the exception model. Implementations that conform to the OEA also adhere to the
UISA and the VEA.
The PowerPC architecture allows a wide range of designs for such features as cache and
system interface implementations. The MPC750 implementations support the three levels
of the architecture described above. For more information about the Po werPC architecture,
see Programming Environments Manual.
Specific features of the MPC750 are listed in Section 1.2, “MPC750 Microprocessor
Features.”
..
.
nc
Freescale Semiconductor, I
1.4PowerPC Registers and Programming Model
The PowerPC architecture defines register-to-register operations for most computational
instructions. Source operands for these instructions are accessed from the registers or are
provided as immediate values embedded in the instruction opcode. The three-register
instruction format allows specification of a target register distinct from the two source
operands. Load and store instructions transfer data between registers and memory.
Processors of this family have two levels of privilege—supervisor mode of operation
(typically used by the operating system) and user mode of operation (used by the
application software). The programming models incorporate 32 GPRs, 32 FPRs,
special-purpose registers (SPRs), and sev eral miscellaneous registers. Each microprocessor
also has its own unique set of hardware implementation-dependent (HID) registers.
Having access to privile ged instructions, registers, and other resources allo ws the operating
system to control the application environment (providing virtual memory and protecting
operating-system and critical machine resources). Instructions that control the state of the
processor, the address translation mechanism, and supervisor re gisters can be executed only
when the processor is operating in supervisor mode.
Figure 1-5 shows all the MPC750 registers available at the user and supervisor level. The
numbers to the right of the SPRs indicate the number that is used in the syntax of the
instruction operands to access the register.
For more information, see Chapter 2, “Programming Model.”
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
PowerPC Registers and Programming Model
SUPERVISOR MODEL—OEA
USER MODEL—VEA
Time Base Facility (For Reading)
TBL
TBR 268
TBU
TBR 269
Hardware
Implementation
Registers
HID0
HID1
1
Configuration Registers
Processor
Version
Register
SPR 1008
SPR 1009
Machine State
Register
SPR 287PVR
MSR
..
.
nc
Freescale Semiconductor, I
USER MODEL—UISA
Count
Register
CTR
XER
XER
Link Register
LR
SPR 9
SPR 1
SPR 8
Performance
Monitor Registers
(For Reading)
Performance Counters
UPMC1
UPMC2
UPMC3
UPMC4
Sampled Instruction
Address
USIA
Monitor Control
UMMCR0
UMMCR1
SPR 937
SPR 938
SPR 941
SPR 942
1
SPR 939
1
SPR 936
SPR 940
Performance Monitor Registers
Performance
1
Counters
PMC1
PMC2
PMC3
PMC4
SPR 953
SPR 954
SPR 957
SPR 958
1
General-Purpose
Registers
GPR0
GPR1
GPR31
Floating-Point
Registers
FPR0
FPR1
FPR31
Condition
Register
CR
Floating-Point
Status and
Control Register
FPSCR
Sampled
Instruction
1
Address
SIASPR 955
Monitor Control
MMCR0
MMCR1
1
SPR 952
SPR 956
Memory Management Registers
Instruction BAT
Registers
IBAT0U
IBAT0L
IBAT1U
IBAT1L
IBAT2U
IBAT2L
IBAT3U
IBAT3L
SPR 528
SPR 529
SPR 530
SPR 531
SPR 532
SPR 533
SPR 534
SPR 535
Exception Handling Registers
SPRGs
SPRG0
SPRG1
SPRG2
SPRG3
SPR 272
SPR 273
SPR 274
SPR 275
Miscellaneous Registers
Register
EAR
Data Address
Breakpoint Register
DABRSPR 1013
SPR 282
Power/Thermal Management Registers
Thermal Assist
Unit Registers
THRM1
THRM2
THRM3
Data BAT
Registers
DBAT0U
DBAT0L
DBAT1U
DBAT1L
DBAT2U
DBAT2L
DBAT3U
DBAT3L
Data Address
Register
DAR
DSISR
DSISR
Time Base
(For Writing)
TBLSPR 284
TBUSPR 285
L2 Control
1, 2
Register
L2CRSPR 1017
1
SPR 1020
SPR 1021
SPR 1022
SPR 536
SPR 537
SPR 538
SPR 539
SPR 540
SPR 541
SPR 542
SPR 543
SPR 19
SPR 18
Instruction Cache
Throttling Control
1
Register
ICTCSPR 1019
Segment
Registers
SR0
SR1
SR15
SDR1
SDR1SPR 25
Save and Restore
Registers
SRR0SPR 26
SRR1SPR 27
DecrementerExternal Access
DECSPR 22
Instruction Address
Breakpoint Register
IABRSPR 1010
1
1
These registers are MPC750-speci c registers . They may not be supported by other processors that implement the
PowerPC architecture.
The following tables summarize the registers implemented in the MPC750; Table 1-1
describes registers (excluding SPRs) defined by the architecture.
Table 1-1. Architecture-Defined Registers on the MPC750 (Excluding SPRs)
RegisterLevelFunction
CRUserThe condition register (CR) consists of eight four-bit elds that re ect the results of cer tain
operations, such as move, integer and oating-point compare , arithmetic, and logical
instructions, and provide a mechanism for testing and branching.
FPRsUserThe 32 oating-point registers (FPRs) ser ve as the data source or destination for oating-point
instructions. These 64-bit registers can hold either single- or double-precision oating-point
values.
FPSCRUserThe oating-point status and control register (FPSCR) contains the oating-point e xception
..
.
signal bits, exception summary bits, exception enable bits, and rounding control bits needed
for compliance with the IEEE-754 standard.
nc
Freescale Semiconductor, I
GPRsUserThe 32 GPRs serve as the data source or destination for integer instructions.
MSRSupervisor The machine state register (MSR) de nes the processor state . Its contents are saved when an
exception is taken and restored when exception handling completes. The MPC750 implements
MSR[POW], (de ned b y the architecture as optional), which is used to enable the power
management feature. The MPC750-speci c MSR[PM] bit is used to mar k a process for the
performance monitor.
SR0–SR15Supervisor The sixteen 32-bit segment registers (SRs) de ne the 4-Gb yte space as sixteen 256-Mbyte
segments. The MPC750 implements segment registers as two arrays—a main array for data
accesses and a shadow array for instruction accesses; see Figure 1-1. Loading a segment
entry with the Move to Segment Register (mtsr) instruction loads both arrays. The mfsr
instruction reads the master register, shown as part of the data MMU in Figure 1-1.
The OEA defines numerous special-purpose registers that serve a v ariety of functions, such
as providing controls, indicating status, configuring the processor, and performing special
operations. During normal execution, a program can access the registers, shown in
Figure 1-5, depending on the program’s access privile ge (supervisor or user , determined by
the privilege-level (PR) bit in the MSR). GPRs and FPRs are accessed through operands
that are part of the instructions. Access to registers can be explicit (that is, through the use
of specific instructions for that purpose such as Move to Special-Purpose Register (mtspr)
and Move from Special-Purpose Register (mfspr) instructions) or implicit, as the part of
the execution of an instruction. Some registers can be accessed both explicitly and
implicitly.
In the MPC750, all SPRs are 32 bits wide. Table 1-2 describes the architecture-defined
SPRs implemented by the MPC750. The Programming Environments Manual describes
these registers in detail, including bit descriptions. Section 2.1.1, “Register Set,” describes
how these registers are implemented in the MPC750. In particular, this section describes
which features the PowerPC architecture defines as optional are implemented on the
MPC750.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Freescale Semiconductor, Inc.
PowerPC Registers and Programming Model
Table 1-2. Architecture-Defined SPRs Implemented by the MPC750
RegisterLevelFunction
LRUserThe link register (LR) can be used to provide the branch target address and to hold the
return address after branch and link instructions.
BATsSupervisor The architecture de nes 16 b lock address translation registers (BATs), which operate in
pairs. There are four pairs of data BATs (DBATs) and four pairs of instruction BATs (IBATs).
BATs are used to de ne and con gure b locks of memory.
CTRUserThe count register (CTR) is decremented and tested by branch-and-count instructions.
..
.
nc
Freescale Semiconductor, I
DABRSupervisor The optional
breakpoint facility.
DARUserThe data address register (DAR) holds the address of an access after an alignment or DSI
exception.
DECSupervisor The decrementer register (DEC) is a 32-bit decrementing counter that provides a way to
schedule decrementer exceptions.
DSISR UserThe DSISR de nes the cause of data access and alignment e xceptions.
EARSupervisor The external access register (EAR) controls access to the external access facility through
the External Control In Word Indexed (eciwx) and External Control Out Word Indexed
(ecowx) instructions.
PVRSupervisor The processor version register (PVR) is a read-only register that identi es the processor .
SDR1Supervisor SDR1 speci es the page tab le format used in virtual-to-physical page address translation.
SRR0Supervisor The machine status save/restore register 0 (SRR0) saves the address used for restarting
an interrupted program when a Return from Interrupt (rfi) instruction executes.
SRR1Supervisor The machine status save/restore register 1 (SRR1) is used to save machine status on
exceptions and to restore machine status when an rfi instruction is executed.
SPRG0–S
PRG3
TBUser: read
XER UserThe XER contains the summary over o w bit, integer carry bit, over o w bit, and a eld
Supervisor SPRG0–SPRG3 are provided for operating system use.
The time base register (TB) is a 64-bit register that maintains the time of day and operates
Supervisor:
read/write
interval timers. The TB consists of two 32-bit elds—time base upper (TB U) and time base
lower (TBL).
specifying the number of bytes to be transferred by a Load String Word Indexed (lswx) or
Store String Word Indexed (stswx) instruction.
data address breakpoint register (DABR) supports the data address
Table 1-3 describes the supervisor-level SPRs in the MPC750 that are not defined by the
PowerPC architecture. Section 2.1.2, “MPC750-Specific Registers,” gives detailed
descriptions of these registers, including bit descriptions.
Table 1-3. MPC750-Specific Registers
Register Level Function
HID0Supervisor The hardware implementation-dependent register 0 (HID0) provides checkstop enables
and other functions.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
Instruction Set
Table 1-3. MPC750-Specific Registers (continued)
Register Level Function
HID1Supervisor The hardware implementation-dependent register 1 (HID1) allows software to read the
con gur ation of the PLL con gur ation signals.
IABRSupervisor The instruction address breakpoint register (IABR) supports instruction address
breakpoint exceptions. It can hold an address to compare with instruction addresses in the
IQ. An address match causes an instruction address breakpoint exception.
ICTCSupervisor The instruction cache-throttling control register (ICTC) has bits for controlling the interval
at which instructions are fetched into the instruction buffer in the instruction unit. This helps
control the MPC750’s overall junction temperature.
L2CRSupervisor The L2 cache control register (L2CR) is used to con gure and oper ate the L2 cache. It has
bits for enabling parity checking, setting the L2-to-processor clock ratio, and identifying the
..
.
type of RAM used for the L2 cache implementation. (The L2 cache feature is not supported
in the MPC740.)
nc
Freescale Semiconductor, I
MMCR0–MM
CR1
PMC1–PMC4Supervisor The performance monitor counter registers (PMC1–PMC4) are used to count speci ed
SIASupervisor The sampled instruction address register (SIA) holds the EA of an instruction executing at
THRM1,
THRM2
THRM3 Supervisor THRM3 is used to enable the TAU and to control the output sample time.
UMMCR0–U
MMCR1
UPMC1–UP
MC4
USIAUserThe user sampled instruction address register (USIA) provides user-level read access to
Supervisor The monitor mode control registers (MMCR0–MMCR1) are used to enable various
performance monitoring interrupt functions. UMMCR0–UMMCR1 provide user-level read
access to MMCR0–MMCR1.
events. UPMC1–UPMC4 provide user-level read access to these registers.
or around the time the processor signals the performance monitor interrupt condition. The
USIA register provides user-level read access to the SIA.
Supervisor THRM1 and THRM2 provide a way to compare the junction temperature against two
user-provided thresholds. The thermal assist unit (TAU) can be operated so that the
thermal sensor output is compared to only one threshold, selected in THRM1 or THRM2.
UserThe user monitor mode control registers (UMMCR0–UMMCR1) provide user-level read
access to MMCR0–MMCR1.
UserThe user performance monitor counter registers (UPMC1–UPMC4) provide user-level
read access to PMC1–PMC4.
the SIA register.
1.5Instruction Set
All PowerPC instructions are encoded as single-word (32-bit) opcodes. Instruction formats
are consistent among all instruction types, permitting efficient decoding to occur in parallel
with operand accesses. This fixed instruction length and consistent format greatly simplifies
instruction pipelining.
For more information, see Chapter 2, “Programming Model.”
1.5.1PowerPC Instruction Set
The PowerPC instructions are divided into the following categories:
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Instruction Set
Freescale Semiconductor, Inc.
•Integer instructions—These include computational and logical instructions.
— Integer arithmetic instructions
— Integer compare instructions
— Integer logical instructions
— Integer rotate and shift instructions
•Floating-point instructions—These include floating-point computational
instructions, as well as instructions that affect the FPSCR.
•Load/store instructions—These include integer and floating-point load and store
instructions.
— Integer load and store instructions
— Integer load and store multiple instructions
— Floating-point load and store
— Primitives used to construct atomic memory operations (lwarx and stwcx.
instructions)
•Flow control instructions—These include branching instructions, condition register
logical instructions, trap instructions, and other instructions that affect the
instruction flow.
— Branch and trap instructions
— Condition register logical instructions
•Processor control instructions—These instructions are used for synchronizing
memory accesses and management of caches, TLBs, and the segment registers.
— Move to/from SPR instructions
— Move to/from MSR
— Synchronize
— Instruction synchronize
— Order loads and stores
•Memory control instructions—These instructions provide control of caches, TLBs,
and SRs.
This grouping does not indicate the execution unit that executes a particular instruction or
group of instructions.
Integer instructions operate on byte, half-word, and word operands. Floating-point
instructions operate on single-precision (one word) and double-precision (one double
word) floating-point operands. The PowerPC architecture uses instructions that are four
bytes long and word-aligned. It provides for byte, half-word, and word operand loads and
stores between memory and a set of 32 GPRs. It also provides for word and double-word
operand loads and stores between memory and a set of 32 floating-point registers (FPRs).
Computational instructions do not modify memory. To use a memory operand in a
computation and then modify the same or another memory location, the memory contents
must be loaded into a register, modified, and then written back to the target location with
distinct instructions.
Processors in this family follow the program flow when they are in the normal execution
state. However, the flow of instructions can be interrupted directly by the execution of an
instruction or by an asynchronous event. Either kind of e xception may cause one of se veral
components of the system software to be invoked.
Effective address computations for both data and instruction accesses use 32-bit unsigned
binary arithmetic. A carry from bit 0 is ignored in 32-bit implementations.
1.5.2MPC750 Microprocessor Instruction Set
The MPC750 instruction set is defined as follows:
•The MPC750 provides hardware support for all 32-bit PowerPC instructions.
•The MPC750 implements the following instructions optional to the PowerPC
architecture:
— External Control In Word Indexed (eciwx)
— External Control Out Word Indexed (ecowx)
Freescale Semiconductor, I
— Floating Select (fsel)
— Floating Reciprocal Estimate Single-Precision (fres)
— Floating Reciprocal Square Root Estimate (frsqrte)
— Store Floating-Point as Integer Word (stfiwx)
1.6On-Chip Cache Implementation
The following subsections describe the PowerPC architecture’s treatment of cache in
general, and the MPC750-specific implementation, respectively. A detailed description of
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Exception Model
Freescale Semiconductor, Inc.
the MPC750 cache implementation is provided in Chapter 3, “L1 Instruction and Data
Cache Operation.”
1.6.1PowerPC Cache Model
The PowerPC architecture does not define hardware aspects of cache implementations. For
example, processors can have unified caches, separate instruction and data caches (Harv ard
architecture), or no cache at all. The microprocessors control the following memory access
modes on a page or block basis:
•Write-back/write-through mode
•Caching-inhibited mode
..
.
nc
Freescale Semiconductor, I
•Memory coherency
The caches are physically addressed, and the data cache can operate in either write-back or
write-through mode as specified by the PowerPC architecture.
The PowerPC architecture defines the term ‘cache block’ as the cacheable unit. The VEA
and OEA define cache management instructions a programmer can use to affect cache
contents.
1.6.2MPC750 Microprocessor Cache Implementation
The MPC750 cache implementation is described in Section 1.2.4, “On-Chip Instruction
and Data Caches,” and Section 1.2.5, “L2 Cache Implementation (Not Supported in the
MPC740).” The BPU also contains a 64-entry BTIC that provides immediate access to
cached target instructions. For more information, see Section 1.2.2.2, “Branch Processing
Unit (BPU).”
1.7Exception Model
The following sections describe the PowerPC exception model and the MPC750
implementation. A detailed description of the MPC750 exception model is provided in
Chapter 4, “Exceptions.”
1.7.1PowerPC Exception Model
The PowerPC exception mechanism allows the processor to interrupt the instruction flow
to handle certain situations caused by external signals, errors, or unusual conditions arising
from the instruction execution. When exceptions occur, information about the state of the
processor is saved to certain registers and the processor begins execution at an address
(exception vector) predetermined for each exception. Exception processing occurs in
supervisor mode.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
Exception Model
Although multiple exception conditions can map to a single exception vector, a more
specific condition may be determined by examining a register associated with the
exception—for example, the DSISR and the FPSCR. Additionally, some exception
conditions can be enabled or disabled explicitly by software.
The PowerPC architecture requires that exceptions be handled in program order; therefore,
although a particular implementation may recognize exception conditions out of order , they
are handled in order. When an instruction-caused exception is recognized, any unexecuted
instructions that appear earlier in the instruction stream, including any that are
undispatched, are required to complete before the exception is taken, and any exceptions
those instructions cause must also be handled first. Likewise, asynchronous, precise
exceptions are recognized when they occur, but are not handled until the instructions
currently in the completion queue successfully retire or generate an exception, and the
..
.
completion queue is emptied.
nc
Freescale Semiconductor, I
Unless a catastrophic condition causes a system reset or machine check exception, only one
exception is handled at a time. For example, if one instruction encounters multiple
exception conditions, those conditions are handled sequentially . After the exception handler
handles an exception, the instruction processing continues until the next exception
condition is encountered. Recognizing and handling exception conditions sequentially
guarantees that exceptions are recoverable.
When an exception is taken, information about the processor state before the exception was
taken is saved in SRR0 and SRR1. Exception handlers should save the information stored
in SRR0 and SRR1 early to prevent the program state from being lost due to a system reset
and machine check exception or to an instruction-caused exception in the exception
handler, and before enabling external interrupts.
The PowerPC architecture supports four types of exceptions:
•Synchronous, precise—These are caused by instructions. All instruction-caused
exceptions are handled precisely; that is, the machine state at the time the exception
occurs is known and can be completely restored. This means that (e xcluding the trap
and system call exceptions) the address of the faulting instruction is provided to the
exception handler and that neither the faulting instruction nor subsequent
instructions in the code stream will complete execution before the exception is
taken. Once the exception is processed, execution resumes at the address of the
faulting instruction (or at an alternate address provided by the exception handler).
When an exception is taken due to a trap or system call instruction, execution
resumes at an address provided by the handler.
•Synchronous, imprecise—The PowerPC architecture defines two imprecise
floating-point exception modes, recoverable and nonrecoverable. Even though the
MPC750 provides a means to enable the imprecise modes, it implements these
modes identically to the precise mode (that is, enabled floating-point exceptions are
always precise).
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Exception Model
Freescale Semiconductor, Inc.
•Asynchronous, maskable—The PowerPC architecture defines external and
decrementer interrupts as maskable, asynchronous exceptions. When these
exceptions occur, their handling is postponed until the next instruction, and any
exceptions associated with that instruction, completes execution. If no instructions
are in the execution units, the exception is tak en immediately upon determination of
the correct restart address (for loading SRR0). As sho wn in Table 1-4, the MPC750
implements additional asynchronous, maskable exceptions.
•Asynchronous, nonmaskable—There are two nonmaskable asynchronous
exceptions: system reset and the machine check exception. These exceptions may
not be recoverable, or may provide a limited degree of recoverability. Exceptions
report recoverability through the MSR[RI] bit.
Synchronous/Asynchronous Precise/ImpreciseException T ype
Asynchronous, nonmaskableImpreciseMachine check, system reset
Asynchronous, maskablePreciseExternal, decrementer, system management, performance
monitor, and thermal management interrupts
SynchronousPreciseInstruction-caused exceptions
Although exceptions have other characteristics, such as priority and recoverability,
Table 1-4 describes categories of exceptions the MPC750 handles uniquely. Table 1-4
includes no synchronous imprecise exceptions; although the PowerPC architecture
supports imprecise handling of floating-point exceptions, the MPC750 implements these
exception modes precisely. Table 1-5 lists MPC750 exceptions and conditions that cause
them. Exceptions specific to the MPC750 are indicated.
Table 1-5. Exceptions and Conditions
Exception Type
Vector Offset
(hex)
Causing Conditions
Reserved 00000—
System reset00100Assertion of either HRESET or SRESET or at power-on reset
Machine check00200Assertion of TEA
address, data, or L2 bus parity error. MSR[ME] must be set.
DSI00300As speci ed in the P owerPC architecture. For TLB misses on load, store, or
cache operations, a DSI exception occurs if a page fault occurs.
ISI00400As de ned b y the PowerPC architecture.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
during a data bus transaction, assertion of MCP, or an
Freescale Semiconductor, Inc.
Memory Management
Table 1-5. Exceptions and Conditions (continued)
..
.
nc
Freescale Semiconductor, I
Exception Type
External interrupt00500MSR[EE] = 1 and INT is asserted.
Program00700As de ned b y the PowerPC architecture.
Floating-point
unavailable
Decrementer00900As de ned b y the PowerPC architecture, when the most signi cant bit of the
Reserved00A00–00BFF —
System call00C00Execution of the System Call (sc) instruction.
Trace00D00MSR[SE] = 1 or a branch instruction completes and MSR[BE] = 1. Unlike the
Reserved00E00The MPC750 does not generate an exception to this vector. Other processors
Reserved00E10–00EFF —
Performance monitor
Instruction address
breakpoint
System management
interrupt
Reserved01500–016FF —
Thermal management
interrupt
Reserved01800–02FFF —
1
1
1
Vector Offset
(hex)
instruction operand is not word-aligned.
• •A multiple/string load/store operation is attempted in little-endian mode.
• •The operand of dcbz is in memory that is write-through-required or
caching-inhibited or the cache is disabled
00800As de ned b y the PowerPC architecture.
DEC register changes from 0 to 1 and MSR[EE] = 1.
architecture de nition, isync does not cause a trace exception
may use this vector for oating-point assist e xceptions.
1
00F00The limit speci ed in a PMC register is reached and MMCR0[ENINT] = 1
01300IABR[0–29] matches EA[0–29] of the next instruction to complete,
IABR[TE] matches MSR[IR], and IABR[BE] = 1.
01400MSR[EE] = 1 and SMI is asserted.
01700Thermal management is enabled, the junction temperature exceeds the
threshold speci ed in THRM1 or THRM2, and MSR[EE] = 1.
Causing Conditions
Note:
1
MPC750-speci c
1.8Memory Management
The following subsections describe the memory management features of the PowerPC
architecture, and the MPC750 implementation, respectively. A detailed description of the
MPC750 MMU implementation is provided in Chapter 5, “Memory Management.”
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Memory Management
Freescale Semiconductor, Inc.
1.8.1PowerPC Memory Management Model
The primary functions of the MMU are to translate logical (effectiv e) addresses to physical
addresses for memory accesses and to provide access protection on blocks and pages of
memory. There are two types of accesses generated by the MPC750 that require address
translation—instruction accesses, and data accesses to memory generated by load, store,
and cache control instructions.
The PowerPC architecture defines different resources for 32- and 64-bit processors; the
MPC750 implements the 32-bit memory management model. The memory-management
model provides 4 Gbytes of logical address space accessible to supervisor and user
programs with a 4-Kbyte page size and 256-Mbyte segment size. BAT block sizes range
from 128 Kbyte to 256 Mbyte and are software selectable. In addition, it defines an interim
..
.
52-bit virtual address and hashed page tables for generating 32-bit physical addresses.
nc
Freescale Semiconductor, I
The architecture also provides independent four-entry B AT arrays for instructions and data
that maintain address translations for blocks of memory. These entries define blocks that
can vary from 128 Kbytes to 256 Mbytes. The BAT arrays are maintained by system
software.
The PowerPC MMU and exception model support demand-paged virtual memory. Virtual
memory management permits execution of programs larger than the size of physical
memory; demand-paged implies that individual pages are loaded into physical memory
from system memory only when they are first accessed by an executing program.
The hashed page table is a variable-sized data structure that defines the mapping between
virtual page numbers and physical page numbers. The page table size is a power of 2, and
its starting address is a multiple of its size. The page table contains a number of page table
entry groups (PTEGs). A PTEG contains eight page table entries (PTEs) of eight bytes
each; therefore, each PTEG is 64 bytes long. PTEG addresses are entry points for table
search operations.
Setting MSR[IR] enables instruction address translations and MSR[DR] enables data
address translations. If the bit is cleared, the respective effective address is the same as the
physical address.
The MPC750 implements separate MMUs for instructions and data. It implements a copy
of the segment registers in the instruction MMU, however, read and write accesses (mfsr
and mtsr) are handled through the segment registers implemented as part of the data MMU.
The MPC750 MMU is described in Section 1.2.3, “Memory Management Units (MMUs).”
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
Instruction Timing
The R (referenced) bit is updated in the PTE in memory (if necessary) during a table search
due to a TLB miss. Updates to the C (changed) bit are treated like TLB misses. A complete
table search is performed and the entire TLB entry is rewritten to update the C bit.
1.9Instruction Timing
The MPC750 is a pipelined, superscalar processor. A pipelined processor is one in which
instruction processing is divided into discrete stages, allowing w ork to be done on dif ferent
instructions in each stage. For example, after an instruction completes one stage, it can pass
on to the next stage leaving the pre vious stage available to the subsequent instruction. This
improves overall instruction throughput.
..
.
nc
A superscalar processor is one that issues multiple independent instructions into separate
execution units, allowing instructions to execute in parallel. The MPC750 has six
independent execution units, two for integer instructions, and one each for floating-point
instructions, branch instructions, load/store instructions, and system register instructions.
Having separate GPRs and FPRs allows integer, floating-point calculations, and load and
store operations to occur simultaneously without interference. Additionally , rename buf fers
are provided to allow operations to post e xecution results for use by subsequent instructions
without committing them to the architected FPRs and GPRs.
As shown in Figure 1-6, the common pipeline of the MPC750 has four stages through
which all instructions must pass—fetch, decode/dispatch, execute, and complete/write
back. Some instructions occupy multiple stages simultaneously and some individual
execution units have additional stages. For example, the floating-point pipeline consists of
three stages through which all floating-point instructions must pass.
Freescale Semiconductor, I
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
Instruction Timing
Freescale Semiconductor, Inc.
..
.
nc
BPU
Fetch
Dispatch
FPU1
FPU2
FPU3SRUIU2IU1
Complete (Write-Back)
Figure 1-6. Pipeline Diagram
Maximum four-instruction fetch
per clock cycle
Maximum three-instruction dispatch
per clock cycle (includes one branch
instruction)
Execute Stage
LSU1
LSU2
Maximum two-instruction completion per clock cycle
Note that Figure 1-6 does not sho w features, such as reservation stations and rename buf fers
that reduce stalls and improve instruction throughput.
The instruction pipeline in the MPC750 has four major pipeline stages, described as
follows:
•The fetch pipeline stage primarily inv olves retrie ving instructions from the memory
system and determining the location of the next instruction fetch. The BPU decodes
branches during the fetch stage and removes those that do not update CTR or LR
from the instruction stream.
•The dispatch stage is responsible for decoding the instructions supplied by the
instruction fetch stage and determining which instructions can be dispatched in the
current cycle. If source operands for the instruction are av ailable, they are read from
Freescale Semiconductor, I
the appropriate register file or rename register to the execute pipeline stage. If a
source operand is not available, dispatch pro vides a tag that indicates which rename
register will supply the operand when it becomes available. At the end of the
dispatch stage, the dispatched instructions and their operands are latched by the
appropriate execution unit.
•Instructions executed by the IUs, FPU, SRU, and LSU are dispatched from the
bottom two positions in the instruction queue. In a single clock cycle, a maximum
of two instructions can be dispatched to these execution units in any combination.
When an instruction is dispatched, it is assigned a position in the six-entry
completion queue. A branch instruction can be issued on the same clock cycle for a
maximum three-instruction dispatch.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, I
Freescale Semiconductor, Inc.
Power Management
•During the execute pipeline stage, each execution unit that has an executable
instruction executes the selected instruction (perhaps over multiple cycles), writes
the instruction's result into the appropriate rename register, and notifies the
completion stage that the instruction has finished execution. In the case of an internal
exception, the execution unit reports the e xception to the completion pipeline stage
and (except for the FPU) discontinues instruction execution until the exception is
handled. The exception is not signaled until that instruction is the next to be
completed. Execution of most floating-point instructions is pipelined within the FPU
allowing up to three instructions to be ex ecuting in the FPU concurrently. The FPU
stages are multiply, add, and round-convert. Execution of most load/store
instructions is also pipelined. The load/store unit has two pipeline stages. The first
stage is for effectiv e address calculation and MMU translation and the second stage
is for accessing the data in the cache.
•The complete pipeline stage maintains the correct architectural machine state and
transfers execution results from the rename registers to the GPRs and FPRs (and
CTR and LR, for some instructions) as instructions are retired. As with dispatching
instructions from the instruction queue, instructions are retired from the two bottom
positions in the completion queue. If completion logic detects an instruction causing
an exception, all following instructions are cancelled, their execution results in
rename registers are discarded, and instructions are fetched from the appropriate
exception vector.
Because the PowerPC architecture can be applied to such a wide variety of
implementations, instruction timing varies among processors of this family.
For a detailed discussion of instruction timing with examples and a table of latencies for
each execution unit, see Chapter 6, “Instruction Timing.”
1.10Power Management
The MPC750 provides four power modes, selectable by setting the appropriate control bits
in the MSR and HID0 registers. The four power modes are as follows:
•Full-power—This is the default power state of the MPC750. The MPC750 is fully
powered and the internal functional units are operating at the full processor clock
speed. If the dynamic power management mode is enabled, functional units that are
idle will automatically enter a low-power state without affecting performance,
software execution, or external hardware.
•Doze—All the functional units of the MPC750 are disabled except for the time
base/decrementer registers and the bus snooping logic. When the processor is in
doze mode, an external asynchronous interrupt, a system management interrupt, a
decrementer exception, a hard or soft reset, or machine check brings the MPC750
into the full-power state. The MPC750 in doze mode maintains the PLL in a fully
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
..
.
nc
Thermal Management
Freescale Semiconductor, Inc.
powered state and locked to the system external clock input (SYSCLK) so a
transition to the full-power state takes only a few processor clock cycles.
•Nap—The nap mode further reduces power consumption by disabling bus snooping,
leaving only the time base register and the PLL in a powered state. The MPC750
returns to the full-power state upon receipt of an external asynchronous interrupt, a
system management interrupt, a decrementer exception, a hard or soft reset, or a
machine check input (MCP
a few processor clock cycles. When the processor is in nap mode, if QA
). A return to full-power state from a nap state takes only
CK is
negated, the processor is put in doze mode to support snooping.
•Sleep—Sleep mode minimizes power consumption by disabling all internal
functional units, after which external system logic may disable the PLL and
SYSCLK. Returning the MPC750 to the full-power state requires the enabling of the
PLL and SYSCLK, followed by the assertion of an external asynchronous interrupt,
a system management interrupt, a hard or soft reset, or a machine check input (MCP
signal after the time required to relock the PLL.
)
Chapter 10, “Power and Thermal Management,” provides information about power saving
and thermal management modes for the MPC750.
1.11Thermal Management
The MPC750’s thermal assist unit (TAU) provides a way to control heat dissipation. This
ability is particularly useful in portable computers, which, due to power consumption and
size limitations, cannot use desktop cooling solutions such as fans. Therefore, better heat
sink designs coupled with intelligent thermal management is of critical importance for high
performance portable systems.
Primarily, the thermal management system monitors and regulates the system’s operating
temperature. For example, if the temperature is about to exceed a set limit, the system can
be made to slow down or even suspend operations temporarily in order to lower the
temperature.
The thermal management facility also ensures that the processor’s junction temperature
Freescale Semiconductor, I
does not exceed the operating specification. To avoid the inaccuracies that arise from
measuring junction temperature with an external thermal sensor, the MPC750’s on-chip
thermal sensor and logic tightly couples the thermal management implementation.
The TAU consists of a thermal sensor, digital-to-analog convertor, comparator, control
logic, and the dedicated SPRs described in Section 1.4, “PowerPC Registers and
Programming Model.” The TAU does the following:
•Compares the junction temperature against user-programmable thresholds
•Generates a thermal management interrupt if the temperature crosses the threshold
•Enables the user to estimate the junction temperature by way of a software
successive approximation routine
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
Performance Monitor
The TAU is controlled through the privileged mtspr/mfspr instructions to the three SPRs
provided for configuring and controlling the sensor control logic, which function as
follows:
•THRM1 and THRM2 provide the ability to compare the junction temperature
against two user-provided thresholds. Having dual thresholds gives the thermal
management software finer control of the junction temperature. In single threshold
mode, the thermal sensor output is compared to only one threshold in either THRM1
or THRM2.
•THRM3 is used to enable the TAU and to control the comparator output sample
time. The thermal management logic manages the thermal management interrupt
generation and time multiplexed comparisons in the dual threshold mode as well as
other control functions.
Instruction cache throttling provides control of the MPC750’ s o v erall junction temperature
by determining the interval at which instructions are fetched. This feature is accessed
through the ICTC register.
Chapter 10, “Power and Thermal Management,” provides information about power saving
and thermal management modes for the MPC750.
1.12Performance Monitor
The MPC750 incorporates a performance monitor facility that system designers can use to
help bring up, debug, and optimize software performance. The performance monitor counts
events during execution of code, relating to dispatch, execution, completion, and memory
accesses.
The performance monitor incorporates several registers that can be read and written to by
supervisor-level software. User-level versions of these registers provide read-only access
for user-level applications. These registers are described in Section 1.4, “PowerPC
Registers and Programming Model.” Performance monitor control registers, MMCR0 or
MMCR1, can be used to specify which events are to be counted and the conditions for
which a performance monitoring interrupt is taken. Additionally, the sampled instruction
Freescale Semiconductor, I
address register , SIA (USIA), holds the address of the first instruction to complete after the
counter overflowed.
Attempting to write to a user-read-only performance monitor register causes a program
exception, regardless of the MSR[PR] setting.
When a performance monitoring interrupt occurs, program execution continues from
vector offset 0x00F00.
Chapter 11, “Performance Monitor,” describes the operation of the performance monitor
diagnostic tool incorporated in the MPC750.
For More Information On This Product,
Chapter 1. Overview
Go to: www.freescale.com
..
.
nc
Performance Monitor
Freescale Semiconductor, Inc.
Freescale Semiconductor, I
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
Chapter 2
Programming Model
This chapter describes the MPC750 programming model, emphasizing those features
specific to the MPC750 processor and summarizing those that are common to the
..
.
processors that implement the PowerPC architecture. It consists of three major sections,
which describe the following:
nc
Freescale Semiconductor, I
•Registers implemented in the MPC750
•Operand conventions
•The MPC750 instruction set
For detailed information about architecture-defined features, see the ProgrammingEnvironments Manual.
Note that the MPC755 microprocessor is a derivative of the MPC750 and all descriptions
for the MPC750 apply for the MPC755 except as noted in Appendix C, “MPC755
Embedded G3 Microprocessor.”
2.1The MPC750 Processor Register Set
This section describes the registers implemented in the MPC750. It includes an overview
of registers defined by the PowerPC architecture, highlighting differences in how these
registers are implemented in the MPC750, and a detailed description of MPC750-specific
registers. Full descriptions of the architecture-defined register set are provided in Chapter 2,
“PowerPC Register Set,” in the Programming Environments Manual.
Registers are defined at all three levels of the PowerPC architecture—user instruction set
architecture (UISA), virtual environment architecture (VEA), and operating environment
architecture (OEA). The PowerPC architecture defines re gister-to-register operations for all
computational instructions. Source data for these instructions are accessed from the on-chip
registers or are provided as immediate values embedded in the opcode. The three-register
instruction format allows specification of a target register distinct from the two source
registers, thus preserving the original data for use by other instructions and reducing the
number of instructions required for certain operations. Data is transferred between memory
and registers with explicit load and store instructions only.
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
2.1.1Register Set
The PowerPC UISA registers are user-level. General-purpose registers (GPRs) and
floating-point registers (FPRs) are accessed through instruction operands. Access to
registers can be explicit (by using instructions for that purpose such as Move to
Special-Purpose Register (mtspr) and Move from Special-Purpose Register (mfspr)
instructions) or implicit as part of the execution of an instruction. Some registers are
accessed both explicitly and implicitly.
The registers implemented on the MPC750 are shown in Figure 2-1. The number to the
right of the special-purpose registers (SPRs) indicates the number that is used in the syntax
of the instruction operands to access the register (for example, the number used to access
the integer exception register (XER) is SPR 1). These registers can be accessed using the
mtspr and mfspr instructions.
Freescale Semiconductor, I
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
USER MODEL—VEA
Time Base Facility (For Reading)
TBL
TBR 268
TBU
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
SUPERVISOR MODEL—OEA
Configuration Registers
Processor
Version
Register
SPR 287PVR
TBR 269
Hardware
Implementation
Registers
HID0
HID1
1
SPR 1008
SPR 1009
Machine State
Register
MSR
..
.
nc
Freescale Semiconductor, I
USER MODEL—UISA
Count
Register
CTR
XER
XER
Link Register
LR
SPR 9
SPR 1
SPR 8
Performance
Monitor Registers
(For Reading)
Performance Counters
UPMC1
UPMC2
UPMC3
UPMC4
Sampled Instruction
Address
USIA
Monitor Control
UMMCR0
UMMCR1
SPR 937
SPR 938
SPR 941
SPR 942
1
SPR 939
1
SPR 936
SPR 940
Performance Monitor Registers
Performance
1
Counters
PMC1
PMC2
PMC3
PMC4
SPR 953
SPR 954
SPR 957
SPR 958
1
General-Purpose
Registers
GPR0
GPR1
GPR31
Floating-Point
Registers
FPR0
FPR1
FPR31
Condition
Register
CR
Floating-Point
Status and
Control Register
FPSCR
Sampled
Instruction
1
Address
SIASPR 955
Monitor Control
MMCR0
MMCR1
1
SPR 952
SPR 956
Memory Management Registers
Instruction BAT
Registers
IBAT0U
IBAT0L
IBAT1U
IBAT1L
IBAT2U
IBAT2L
IBAT3U
IBAT3L
SPR 528
SPR 529
SPR 530
SPR 531
SPR 532
SPR 533
SPR 534
SPR 535
Exception Handling Registers
SPRGs
SPRG0
SPRG1
SPRG2
SPRG3
SPR 272
SPR 273
SPR 274
SPR 275
Miscellaneous Registers
Register
EAR
Data Address
Breakpoint Register
DABRSPR 1013
SPR 282
Power/Thermal Management Registers
Thermal Assist
Unit Registers
THRM1
THRM2
THRM3
Data BAT
Registers
DBAT0U
DBAT0L
DBAT1U
DBAT1L
DBAT2U
DBAT2L
DBAT3U
DBAT3L
Data Address
Register
DAR
DSISR
DSISR
Time Base
(For Writing)
TBLSPR 284
TBUSPR 285
L2 Control
1, 2
Register
L2CRSPR 1017
1
SPR 1020
SPR 1021
SPR 1022
SPR 536
SPR 537
SPR 538
SPR 539
SPR 540
SPR 541
SPR 542
SPR 543
SPR 19
SPR 18
Instruction Cache
Throttling Control
1
Register
ICTCSPR 1019
Segment
Registers
SR0
SR1
SR15
SDR1
SDR1SPR 25
Save and Restore
Registers
SRR0SPR 26
SRR1SPR 27
DecrementerExternal Access
DECSPR 22
Instruction Address
Breakpoint Register
IABRSPR 1010
1
1
These registers are MPC750-speci c registers . They may not be supported by other processors that implement the
PowerPC architecture.
Implementation Note—The MPC750 fully decodes the SPR field of the instruction. If the
SPR specified is undefined, the illegal instruction program exception occurs. The user -level
registers are described as follows:
•User-level registers (UISA)—The user-level registers can be accessed by all
software with either user or supervisor privileges. They include the following:
— General-purpose registers (GPRs). The thirty-two GPRs (GPR0–GPR31) serve
as data source or destination registers for integer instructions and provide data
for generating addresses. See “General Purpose Registers (GPRs), ” in Chapter 2,
“PowerPC Register Set,” of the Programming Environments Manual for more
information.
— Floating-point registers (FPRs). The thirty-two FPRs (FPR0–FPR31) serve as
the data source or destination for all floating-point instructions. See
“Floating-Point Registers (FPRs), ” in Chapter 2, “PowerPC Register Set,” of the
Programming Environments Manual.
— Condition register (CR). The 32-bit CR consists of eight 4-bit fields, CR0–CR7,
that reflect results of certain arithmetic operations and provide a mechanism for
testing and branching. See “Condition Register (CR),” in Chapter 2, “PowerPC
Register Set,” of the Programming Environments Manual.
— Floating-point status and control register (FPSCR). The FPSCR contains all
floating-point exception signal bits, exception summary bits, exception enable
bits, and rounding control bits needed for compliance with the IEEE 754
standard. See “Floating-Point Status and Control Register (FPSCR),” in
Chapter 2, “PowerPC Register Set,” of the Programming Environments Manual.
The remaining user-level registers are SPRs. Note that the PowerPC architecture
provides a separate mechanism for accessing SPRs (the mtspr and mfspr
instructions). These instructions are commonly used to explicitly access certain
registers, while other SPRs may be more typically accessed as the side effect of
executing other instructions.
— Integer exception register (XER). The XER indicates overflow and carries for
integer operations. See “XER Register (XER), ” in Chapter 2, “Po werPC Register
Freescale Semiconductor, I
Set,” of the Programming Environments Manual for more information.Implementation Note—To allow emulation of the lscbx instruction defined by
the POWER architecture, XER[16–23] is implemented so that they can be read
with mfspr[XER] and written with mtxer[XER] instructions.
— Link register (LR). The LR provides the branch target address for the Branch
Conditional to Link Register (bclrx) instruction, and can be used to hold the
logical address of the instruction that follows a branch and link instruction,
typically used for linking to subroutines. See “Link Register (LR), ” in Chapter 2,
“PowerPC Register Set,” of the Programming Environments Manual.
— Count register (CTR). The CTR holds a loop count that can be decremented
during execution of appropriately coded branch instructions. The CTR can also
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
provide the branch target address for the Branch Conditional to Count Register
(bcctrx) instruction. See “Count Register (CTR),” in Chapter 2, “PowerPC
Register Set,” of the Programming Environments Manual.
•User-level registers (VEA)—The PowerPC VEA defines the time base facility
(TB), which consists of two 32-bit registers—time base upper (TBU) and time base
lower (TBL). The time base registers can be written to only by supervisor-level
instructions but can be read by both user- and supervisor-level software. For more
information, see “PowerPC VEA Register Set—Time Base,” in Chapter 2,
“PowerPC Register Set,” of the Programming Environments Manual.
•Supervisor-level registers (OEA)—The OEA defines the registers an operating
system uses for memory management, configuration, exception handling, and other
operating system functions. The OEA defines the following supervisor-level
..
.
registers for 32-bit implementations:
nc
Freescale Semiconductor, I
— Configuration registers
– Machine state register (MSR). The MSR defines the state of the processor.
The MSR can be modified by the Move to Machine State Register (mtmsr),
System Call (sc), and Return from Exception (rfi) instructions. It can be read
by the Move from Machine State Register (mfmsr) instruction. When an
exception is taken, the contents of the MSR are saved to the machine status
save/restore register 1 (SRR1), which is described below . See “Machine State
Register (MSR), ” in Chapter 2, “PowerPC Register Set,” of the Programming Environments Manual for more information.
Implementation Note—Table 2-1 describes MSR bits the MPC750
implements that are not required by the PowerPC architecture.
Table 2-1. Additional MSR Bits
BitNameDescription
13POWPower management enable. Optional to the PowerPC architecture.
0 Power management is disabled.
1 Power management is enabled. The processor can enter a power-saving mode when additional
conditions are present. The mode chosen is determined by the DOZE, NAP, and SLEEP bits in
the hardware implementation-dependent register 0 (HID0), described in Table 2-4.
29PMPerformance monitor marked mode. This bit is speci c to the MPC750, and is de ned as reser ved
by the PowerPC architecture. See Chapter 11, “Performance Monitor.”
0 Process is not a marked process.
1 Process is a marked process.
Note that setting MSR[EE] masks not only the architecture-defined external
interrupt and decrementer exceptions but also the MPC750-specific system
management, performance monitor, and thermal management exceptions.
– Processor version register (PVR). This register is a read-only register that
identifies the version (model) and revision level of the processor. For more
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
information, see “Processor Version Register (PVR),” in Chapter 2,
“PowerPC Register Set,” of the Programming Environments Manual.
Implementation Note—The processor version number is 0x0008 for the
MPC750. The processor revision le vel starts at 0x0100 and is updated for each
silicon revision.
— Memory management registers
– Block-address translation (BAT) registers. The PowerPC OEA includes an
array of block address translation registers that can be used to specify four
blocks of instruction space and four blocks of data space. The BAT registers
are implemented in pairs—four pairs of instruction BATs (IB AT0U–IBAT3U
and IBAT0L–IB AT3L) and four pairs of data BATs (DB AT0U–DBAT3U and
DBAT0L–DB AT3L). Figure 2-1 lists the SPR numbers for the BAT registers.
For more information, see “BAT Registers,” in Chapter 2, “Po werPC Register
Set,” of the Programming Environments Manual. Because BAT upper and
lower words are loaded separately , software must ensure that B A T translations
are correct during the time that both BAT entries are being loaded.
The MPC750 implements the G bit in the IBAT registers; ho wever , attempting
to execute code from an IBAT area with G = 1 causes an ISI exception. This
complies with the revision of the architecture described in the Programming
Environments Manual
– SDR1. The SDR1 register specifies the page table base address used in
virtual-to-physical address translation. See “SDR1, ” in Chapter 2, “PowerPC
Register Set,” of the Programming Environments Manual.”
registers (SR0–SR15). Note that the SRs are implemented on 32-bit
implementations only. The fields in the segment register are interpreted
differently depending on the value of bit 0. See “Segment Registers,” in
Chapter 2, “PowerPC Register Set,” of the Programming Environments Manual for more information.
Note that the MPC750 implements separate memory management units
Freescale Semiconductor, I
(MMUs) for instruction and data. It associates the architecture-defined SRs
.
with the data MMU (DMMU). It reflects the values of the SRs in separate,
so-called ‘shadow’ segment registers in the instruction MMU (IMMU).
— Exception-handling registers
– Data address register (D AR). After a DSI or an alignment e xception, DAR is
set to the effective address (EA) generated by the faulting instruction. See
“Data Address Register (DAR),” in Chapter 2, “Po werPC Register Set, ” of the
Programming Environments Manual for more information.
– SPRG0–SPRG3. The SPRG0–SPRG3 registers are provided for operating
system use. See “SPRG0–SPRG3, ” in Chapter 2, “PowerPC Register Set,” of
the Programming Environments Manual for more information.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
– DSISR. The DSISR register defines the cause of DSI and alignment
exceptions. See “DSISR,” in Chapter 2, “PowerPC Register Set,” of the
Programming Environments Manual for more information.
– Machine status save/restore register 0 (SRR0). The SRR0 register is used to
save the address of the instruction at which execution continues when rfi
executes at the end of an exception handler routine.
See “Machine Status
Save/Restore Register 0 (SRR0),” in Chapter 2, “PowerPC Register Set,” of
the Programming Environments Manual for more information.
– Machine status save/restore register 1 (SRR1). The SRR1 register is used to
save machine status on exceptions and to restore machine status when rfi
executes.
See “Machine Status Save/Restore Register 1 (SRR1),” in
Chapter 2, “PowerPC Register Set,” of the Programming Environments
..
.
Manual for more information.
nc
Freescale Semiconductor, I
Implementation Note—When a machine check exception occurs, the
MPC750 sets one or more error bits in SRR1. Table 2-2 describes SRR1 bits
the MPC750 implements that are not required by the PowerPC architecture.
Table 2-2. Additional SRR1 Bits
BitNameDescription
11L2DPSet by a data parity error on the L2 bus. The MPC740 does not implement the L2 cache interface.
12MCPIN Set by the assertion of MCP
13TEASet by a TEA assertion on the 60x bus
14DPSet by a data parity error on the 60x bus
15APSet by an address parity error on the 60x bus
— Miscellaneous registers
– Time base (TB). The TB is a 64-bit structure provided for maintaining the
time of day and operating interval timers. The TB consists of two 32-bit
registers—time base upper (TBU) and time base lower (TBL). The time base
registers can be written to only by supervisor-level software, but can be read
by both user- and supervisor-level software. See “Time Base Facility
(TB)—OEA,” in Chapter 2, “PowerPC Register Set,” of the Programming Environments Manual for more information.
– Decrementer register (DEC). This register is a 32-bit decrementing counter
that provides a mechanism for causing a decrementer exception after a
programmable delay; the frequency is a subdivision of the processor clock.
See “Decrementer Register (DEC), ” in Chapter 2, “PowerPC Register Set, ” of
the Programming Environments Manual for more information.
Implementation Note—In the MPC750 the decrementer register is
decremented and the time base is incremented at a speed that is one-fourth the
speed of the bus clock.
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
– Data address breakpoint register (DABR)—This optional register is used to
cause a breakpoint exception if a specified data address is encountered. See
“Data Address Breakpoint Register (DABR),” in Chapter 2, “PowerPC
Register Set,” of the Programming Environments Manual.
– External access register (EAR). This optional register is used in conjunction
with eciwx and ecowx. Note that the EAR register and the eciwx and ecowx
instructions are optional in the PowerPC architecture and may not be
supported in all processors that implement the OEA. See “External Access
Register (EAR),” in Chapter 2, “PowerPC Re gister Set,” of the Programming Environments Manual for more information.
•MPC750-specific registers—The PowerPC architecture allows implementationspecific SPRs. Those incorporated in the MPC750 are described as follows. Note
..
.
that in the MPC750, these registers are all supervisor-level registers.
nc
Freescale Semiconductor, I
— Instruction address breakpoint register (IABR)—This register can be used to
cause a breakpoint exception if a specified instruction address is encountered.
— The L2 cache control register (L2CR) is used to configure and operate the L2
cache. It includes bits for enabling parity checking, setting the L2-to-processor
clock ratio, and identifying the type of RAM used for the L2 cache
implementation. (Not supported in the MPC740.)
— Performance monitor registers. The following registers are used to define and
count events for use by the performance monitor:
– The performance monitor counter registers (PMC1–PMC4) are used to record
the number of times a certain event has occurred. UPMC1–UPMC4 provide
user-level read access to these registers.
– The monitor mode control registers (MMCR0–MMCR1) are used to enable
various performance monitor interrupt functions. UMMCR0–UMMCR1
provide user-level read access to these registers.
– The sampled instruction address register (SIA) contains the effecti v e address
of an instruction executing at or around the time that the processor signals the
performance monitor interrupt condition. USIA provides user-level read
access to the SIA.
– The MPC750 does not implement the sampled data address register (SD A) or
the user-level, read-only USDA registers. However, for compatibility with
processors that do, those registers can be written to by boot code without
causing an exception. SDA is SPR 959; USDA is SPR 943.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
— The instruction cache throttling control register (ICTC) has bits for enabling the
instruction cache throttling feature and for controlling the interval at which
instructions are forwarded to the instruction buffer in the fetch unit. This
provides control over the processor’s overall junction temperature.
— Thermal management registers (THRM1, THRM2, and THRM3). Used to
enable and set thresholds for the thermal management facility.
– THRM1 and THRM2 provide the ability to compare the junction temperature
against two user-provided thresholds. The dual thresholds allow the thermal
management software differing degrees of action in lowering the junction
temperature. The TAU can be also operated in a single threshold mode in
which the thermal sensor output is compared to only one threshold in either
THRM1 or THRM2.
– THRM3 is used to enable the thermal management assist unit (TAU) and to
control the comparator output sample time.
Note that while it is not guaranteed that the implementation of MPC750-specific registers
is consistent among processors of this family, other processors may implement similar or
identical registers.
2.1.2MPC750-Specific Registers
This section describes registers that are defined for the MPC750 but are not included in the
PowerPC architecture.
The address breakpoint register (IABR), shown in Figure 2-2, supports the instruction
address breakpoint exception. When this exception is enabled, instruction fetch addresses
are compared with an effective address stored in the IABR. If the word specified in the
IABR is fetched, the instruction breakpoint handler is inv oked. The instruction that triggers
the breakpoint does not execute before the handler is invoked. For more information, see
Section 4.5.14, “Instruction Address Breakpoint Exception (0x01300).” The IABR can be
The hardware implementation-dependent register 0 (HID0) controls the state of several
functions within the MPC750. The HID0 register is shown in Figure 2-3.
1DBPDisable 60x bus address and data parity generation.
0 The system generates address and data parity.
1 Parity generation is disabled and parity signals are driven to 0 during bus operations. When parity
generation is disabled, all parity checking should also be disabled and parity signals need not be
connected.
2EBAEnable/disable 60x bus address parity checking
0 Prevents address parity checking.
1 Allows a address parity error to cause a checkstop if MSR[ME] = 0 or a machine check exception
if MSR[ME] = 1.
EBA and EBD allow the processor to operate with memory subsystems that do not generate parity.
. The primary purpose of this bit is to mask out further machine check exceptions caused
, similar to how MSR[EE] can mask external interrupts.
. Asserting MCP does not generate a machine check exception or a checkstop.
causes checkstop if MSR[ME] = 0 or a machine check exception if ME = 1.
3EBDEnable 60x bus data parity checking
0 Parity checking is disabled.
1 Allows a data parity error to cause a checkstop if MSR[ME] = 0 or a machine check exception if
MSR[ME] = 1.
EBA and EBD allow the processor to operate with memory subsystems that do not generate parity.
4BCLKCLK_OUT output enable and clock type selection. Used in conjunction with HID0[ECLK] and the
HRESET
5—Not used. De ned as EICE on some ear lier processors.
signal to con gure CLK_OUT. See Table 2-5.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
Table 2-4. HID0 Bit Functions (continued)
BitsNameFunction
6ECLKCLK_OUT output enable and clock type selection. Used in conjunction with HID0[BCLK] and the
HRESET
7PARDisable precharge of ARTRY.
0 Precharge of AR
1 Alters bus protocol slightly by preventing the processor from driving AR
8DOZEDoze mode enable. Operates in conjunction with MSR[POW].
0 Doze mode disabled.
1 Doze mode enabled. Doze mode is invoked by setting MSR[POW] while this bit is set. In doze
signal to con gure CLK_OUT. See Table 2-5.
TRY enabled
TRY to high (negated)
state. If this is done, the system must restore the signals to the high state.
mode, the PLL, time base, and snooping remain active.
..
.
nc
Freescale Semiconductor, I
9NAPNap mode enable. Operates in conjunction with MSR[POW].
0 Nap mode disabled.
1 Nap mode enabled. Doze mode is invoked by setting MSR[POW] while this bit is set. In nap mode,
the PLL and the time base remain active.
10SLEEP Sleep mode enable. Operates in conjunction with MSR[POW].
0 Sleep mode disabled.
1 Sleep mode enabled. Sleep mode is invoked by setting MSR[POW] while this bit is set. QREQ
asserted to indicate that the processor is ready to enter sleep mode. If the system logic
determines that the processor may enter sleep mode, the quiesce acknowledge signal, QA
asserted back to the processor. Once QA
mode after several processor clocks. At this point, the system logic may turn off the PLL by rst
con gur ing PLL_CFG[0–3] to PLL bypass mode, then disabling SYSCLK.
11DPMDynamic power management enable.
0 Dynamic power management is disabled.
1 Functional units enter a low-power mode automatically if the unit is idle. This does not affect
operational performance and is transparent to software or any external hardware.
12–14—Not used
15NHRNot hard reset (software-use only)—Helps software distinguish a hard reset from a soft reset.
0 A hard reset occurred if software had previously set this bit.
1 A hard reset has not occurred. If software sets this bit after a hard reset, when a reset occurs and
this bit remains set, software can tell it was a soft reset.
16ICEInstruction cache enable
0 The instruction cache is neither accessed nor updated. All pages are accessed as if they were
marked cache-inhibited (WIM = xlx). Potential cache accesses from the bus (snoop and cache
operations) are ignored. In the disabled state for the L1 caches, the cache tag state bits are
ignored and all accesses are propagated to the L2 cache or bus as single-beat transactions. For
those transactions, however, CI
regardless of cache disabled status. ICE is zero at power-up.
1 The instruction cache is enabled
re ects the or iginal state determined by address translation
CK assertion is detected, the processor enters sleep
is
CK, is
17DCEData cache enable
0 The data cache is neither accessed nor updated. All pages are accessed as if they were marked
cache-inhibited (WIM = xlx). Potential cache accesses from the bus (snoop and cache operations)
are ignored. In the disabled state for the L1 caches, the cache tag state bits are ignored and all
accesses are propagated to the L2 cache or bus as single-beat transactions. For those
transactions, however, CI
of cache disabled status. DCE is zero at power-up.
1 The data cache is enabled.
For More Information On This Product,
re ects the or iginal state determined by address translation regardless
Chapter 2. Programming Model
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, I
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
Table 2-4. HID0 Bit Functions (continued)
BitsNameFunction
18ILOCK Instruction cache lock
0 Normal operation
1 Instruction cache is locked. A locked cache supplies data normally on a hit, but are treated as a
cache-inhibited transaction on a miss. On a miss, the transaction to the bus or the L2 cache is
single-beat, however, CI
independent of cache locked or disabled status.
To prevent locking during a cache access, an isync instruction must precede the setting of ILOCK.
19DLOCK Data cache lock.
0 Normal operation
1 Data cache is locked. A locked cache supplies data normally on a hit but is treated as a
cache-inhibited transaction on a miss. On a miss, the transaction to the bus or the L2 cache is
single-beat, however, CI
independent of cache locked or disabled status. A snoop hit to a locked L1 data cache performs
as if the cache were not locked. A cache block invalidated by a snoop remains invalid until the
cache is unlocked.
To prevent locking during a cache access, a sync instruction must precede the setting of DLOCK.
20ICFIInstruction cache ash in validate
0 The instruction cache is not invalidated. The bit is cleared when the invalidation operation begins
(usually the next cycle after the write operation to the register). The instruction cache must be
enabled for the invalidation to occur.
1 An invalidate operation is issued that marks the state of each instruction cache block as invalid
without writing back modi ed cache b locks to memory. Cache access is blocked during this time.
Bus accesses to the cache are signaled as a miss during invalidate-all operations. Setting ICFI
clears all the valid bits of the blocks and the PLRU bits to point to way L0 of each set. Once the
L1 ash in validate bits are set through a mtspr operations, hardware automatically resets these
bits in the next cycle (provided that the corresponding cache enable bits are set in HID0).
Note that in the MPC603e processors, the proper use of the ICFI and DCFI bits was to set them and
clear them in two consecutive mtspr operations. Software that already has this sequence of
operations does not need to be changed to run on the MPC750.
21DCFIData cache ash in validate
0 The data cache is not invalidated. The bit is cleared when the invalidation operation begins
(usually the next cycle after the write operation to the register). The data cache must be enabled
for the invalidation to occur.
1 An invalidate operation is issued that marks the state of each data cache block as invalid without
writing back modi ed cache b locks to memory. Cache access is blocked during this time. Bus
accesses to the cache are signaled as a miss during invalidate-all operations. Setting DCFI clears
all the valid bits of the blocks and the PLRU bits to point to way L0 of each set. Once the L1 ash
invalidate bits are set through a mtspr operations, hardware automatically resets these bits in the
next cycle (provided that the corresponding cache enable bits are set in HID0).
Setting this bit clears all the valid bits of the blocks and the PLRU bits to point to way L0 of each set.
Note that in the MPC603e processors, the proper use of the ICFI and DCFI bits was to set them and
clear them in two consecutive mtspr operations. Software that already has this sequence of
operations does not need to be changed to run on the MPC750.
still re ects the or iginal state as determined by address translation
still re ects the or iginal state as determined by address translation
22SPDSpeculative cache access disable
0 Speculative bus accesses to nonguarded space (G = 0) from both the instruction and data caches
is enabled
1 Speculative bus accesses to nonguarded space in both caches is disabled
23IFEMEnable M bit on bus for instruction fetches.
0 M bit not re ected on b us for instruction fetches. Instruction fetches are treated as nonglobal on
the bus
1 Instruction fetches re ect the M bit from the WIM settings.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
Table 2-4. HID0 Bit Functions (continued)
BitsNameFunction
24SGEStore gathering enable
0 Store gathering is disabled
1 Integer store gathering is performed for write-through to nonguarded space or for cache-inhibited
stores to nonguarded space for 4-byte, word-aligned stores. The LSU combines stores to form a
double word that is sent out on the 60x bus as a single-beat operation. Stores are gathered only
if successive, eligible stores, are queued and pending. Store gathering is performed regardless
of address order or endian mode.
25DCFA Data cache ush assist. (Force data cache to ignore invalid sets on miss replacement selection.)
0 The data cache ush assist f acility is disabled
1 The miss replacement algorithm ignores invalid entries and follows the replacement sequence
de ned b y the PLRU bits. This reduces the series of uniquely addressed load or dcbz instructions
to eight per set. The bit should be set just before beginning a cache ush routine and should be
cleared when the series of instructions is complete.
26BTICBTIC enable. Used to enable use of the 64-entry branch instruction cache.
0 The BTIC contents are invalidated and the BTIC behaves as if it were empty. New entries cannot
be added until the BTIC is enabled.
1 The BTIC is enabled and new entries can be added.
27—Not used. De ned as FBIOB on ear lier 603-type processors.
28ABEAddress broadcast enable—controls whether certain address-only operations (such as cache
operations, eieio, and sync) are broadcast on the 60x bus.
0 Address-only operations affect only local L1 and L2 caches and are not broadcast.
1 Address-only operations are broadcast on the 60x bus.Affected instructions are eieio, sync,
dcbi, dcbf, and dcbst. A sync instruction completes only after a successful broadcast. Execution
of eieio causes a broadcast that may be used to prevent any external devices, such as a bus
bridge chip, from store gathering.
Note that dcbz (with M = 1, coherency required) always broadcasts on the 60x bus regardless of the
setting of this bit. An icbi is never broadcast. No cache operations, except dcbz, are snooped by the
MPC750 regardless of whether ABE is set. Bus activity caused by these instructions results directly
from performing the operation on the MPC750 cache.
29BHTBranch history table enable
0 BHT disabled. The MPC750 uses static branch prediction as de ned b y the PowerPC architecture
(UISA) for those branch instructions the BHT would have otherwise used to predict (that is, those
that use the CR as the only mechanism to determine direction). For more information on static
branch prediction, see “Conditional Branch Control,” in Chapter 4 of The Programming
Environments Manual.
1 Allows the use of the 512-entry branch history table (BHT).
The BHT is disabled at power-on reset. All entries are set to weakly, not-taken.
Freescale Semiconductor, I
30—Not used
31NOOPTI No-op the data cache touch instructions.
0 The dcbt and dcbtst instructions are enabled.
1 The dcbt and dcbtst instructions are no-oped globally.
Table 2-5 shows how HID0[BCLK], HID0[ECLK], and HRESET are used to configure
CLK_OUT. See Section 7.2.11.2, “Clock Out (CLK_OUT)—Output,” for more
information.
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
..
.
nc
Table 2-5. HID0[BCLK] and HID0[ECLK] CLK_OUT Configuration
HRESETHID0[ECLK]HID0[BCLK]CLK_OUT
AssertedxxBus
Negated00High impedance
Negated01Bus/ 2
Negated10Core
Negated11Bus
HID0 can be accessed with mtspr and mfspr using SPR1008.
Note: The clock con gur ation bits re ect the state of the PLL_CFG[0–3] signals .
HID1 can be accessed with mtspr and mfspr using SPR 1009.
2.1.2.4Performance Monitor Registers
This section describes the registers used by the performance monitor , which is described in
Chapter 11, “Performance Monitor.”
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
2.1.2.4.1Monitor Mode Control Register 0 (MMCR0)
The monitor mode control register 0 (MMCR0), shown in Figure 2-5, is a 32-bit SPR
provided to specify ev ents to be counted and recorded. The MMCR0 can be accessed only
in supervisor mode. User-level software can read the contents of MMCR0 by issuing an
mfspr instruction to UMMCR0, described in Section 2.1.2.4.2, “User Monitor Mode
Control Register 0 (UMMCR0).”
INTONBITTRANS
RTCSELECT
DISCOUNT
DPDIS
DMSDUPMC1SELECTPMC2SELECT
DMRTHRESHOLD
012 345678 9 1015 16 17 18 1925 2631
PMC2INTCONTROL
PMC1INTCONTROLENINT
PMCTRIGGER
Figure 2-5. Monitor Mode Control Register 0 (MMCR0)
This register must be cleared at power up. Reading this register does not change its
contents. The bits of the MMCR0 register are described in Table 2-7.
Table 2-7. MMCR0 Bit Settings
BitsNameDescription
0 DISDisables counting unconditionally
0 The values of the PMCn counters can be changed by hardware.
1 The values of the PMCn counters cannot be changed by hardware.
1 DPDisables counting while in supervisor mode
0 The PMCn counters can be changed by hardware.
1 If the processor is in supervisor mode (MSR[PR] is cleared), the counters are not
changed by hardware.
2 DUDisables counting while in user mode
0 The PMCn counters can be changed by hardware.
1 If the processor is in user mode (MSR[PR] is set), the PMCn counters are not
changed by hardware.
3DMSDisables counting while MSR[PM] is set
0 The PMCn counters can be changed by hardware.
1 If MSR[PM] is set, the PMCn counters are not changed by hardware.
Freescale Semiconductor, I
4DMRDisables counting while MSR(PM) is zero.
0 The PMCn counters can be changed by hardware.
1 If MSR[PM] is cleared, the PMCn counters are not changed by hardware.
0 Interrupt signaling is disabled.
1 Interrupt signaling is enabled.
Cleared by hardware when a performance monitor interrupt is signaled. To reenable
these interrupt signals, software must set this bit after handling the performance monitor
interrupt. The IPL ROM code clears this bit before passing control to the operating
system.
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
Table 2-7. MMCR0 Bit Settings (continued)
BitsNameDescription
6DISCOUNTDisables counting of PMCn when a performance monitor interrupt is signaled (that is,
((PMCnINTCONTROL = 1) & (PMCn[0] = 1) & (ENINT = 1)) or the occurrence of an
enabled time base transition with ((INTONBITTRANS =1) & (ENINT = 1)).
0 Signaling a performance monitor interrupt does not affect counting status of PMCn.
1 The signaling of a performance monitor interrupt prevents changing of PMC1
counter. The PMCn counter do not change if PMC2COUNTCTL = 0.
Because a time base signal could have occurred along with an enabled counter
over o w condition, software should always reset INTONBITTRANS to zero, if the value
in INTONBITTRANS was a one.
7–8RTCSELECT64-bit time base, bit selection enable
00 Pick bit 63 to count
01 Pick bit 55 to count
..
.
10 Pick bit 51 to count
11 Pick bit 47 to count
nc
Freescale Semiconductor, I
9INTONBITTRANSCause interrupt signaling on bit transition (identi ed in R TCSELECT) from off to on
0 Do not allow interrupt signal if chosen bit transitions.
1 Signal interrupt if chosen bit transitions.
Software is responsible for setting and clearing INTONBITTRANS.
10–15THRESHOLDThreshold value. The MPC750 supports all 6 bits, allowing threshold values from 0–63.
The intent of the THRESHOLD support is to characterize L1 data cache misses.
16PMC1INTCONTROL Enables interrupt signaling due to PMC1 counter over o w.
0 Disable PMC1 interrupt signaling due to PMC1 counter over o w
1 Enable PMC1 Interrupt signaling due to PMC1 counter over o w
17PMCINTCONTROL Enable interrupt signaling due to any PMC2–PMC4 counter over o w. Overrides the
setting of DISCOUNT.
0 Disable PMC2–PMC4 interrupt signaling due to PMC2–PMC4 counter over o w.
1 Enable PMC2–PMC4 interrupt signaling due to PMC2–PMC4 counter over o w.
18PMCTRIGGERCan be used to trigger counting of PMC2–PMC4 after PMC1 has over o wed or after a
performance monitor interrupt is signaled.
0 Enable PMC2–PMC4 counting.
1 Disable PMC2–PMC4 counting until either PMC1[0] = 1 or a performance monitor
interrupt is signaled.
19–25PMC1SELECTPMC1 input selector, 128 events selectable. See Table 2-10.
26–31PMC2SELECTPMC2 input selector, 64 events selectable. See Table 2-11.
MMCR0 can be accessed with mtspr and mfspr using SPR 952.
2.1.2.4.2User Monitor Mode Control Register 0 (UMMCR0)
The contents of MMCR0 are reflected to UMMCR0, which can be read by user-level
software. MMCR0 can be accessed with mfspr using SPR 936.
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
2.1.2.4.3Monitor Mode Control Register 1 (MMCR1)
The monitor mode control register 1 (MMCR1) functions as an event selector for
performance monitor counter registers 3 and 4 (PMC3 and PMC4). The MMCR1 register
is shown in Figure 2-6.
Reserved
..
.
nc
Freescale Semiconductor, I
0
0
0
0
0
0
0
0
PMC3SELECT
0451031
PMC4SELECT
9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 2-6. Monitor Mode Control Register 1 (MMCR1)
Bit settings for MMCR1 are shown in Table 2-8. The corresponding events are described
in Section 2.1.2.4.5, “Performance Monitor Counter Registers (PMC1–PMC4).”
Table 2-8. MMCR1 Bit Settings
BitsName Description
0–4PMC3SELECTPMC3 input selector. 32 events selectable. See Table 2-12 for de ned selections .
5–9PMC4SELECTPMC4 input selector. 32 events selectable. See Table 2-13 for de ned selections .
10–31—Reserved
MMCR1 can be accessed with mtspr and mfspr using SPR 956. User-level software can
read the contents of MMCR1 by issuing an mfspr instruction to UMMCR1, described in
Section 2.1.2.4.4, “User Monitor Mode Control Register 1 (UMMCR1).”
2.1.2.4.4User Monitor Mode Control Register 1 (UMMCR1)
The contents of MMCR1 are reflected to UMMCR1, which can be read by user-level
software. MMCR1 can be accessed with mfspr using SPR 940.
The bits contained in the PMCn registers are described in Table 2-9.
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
Table 2-9. PMCn Bit Settings
BitsName Description
0OVOver o w. When this bit is set it indicates that this counter has reached its maximum value.
1–31Counter value Indicates the number of occurrences of the speci ed e vent.
Counters are considered to overflo w when the high-order bit (the sign bit) becomes set; that
is, they reach the value 2147483648 (0x8000_0000). However, an interrupt is not signaled
unless both PMCn[INTCONTROL] and MMCR0[ENINT] are also set.
Note that the interrupts can be masked by clearing MSR[EE]; the interrupt signal condition
may occur with MSR[EE] cleared, but the exception is not taken until EE is set. Setting
MMCR0[DISCOUNT] forces counters to stop counting when a counter interrupt occurs.
Software is expected to use mtspr to set PMC explicitly to nono verflo w v alues. If software
sets an overflow value, an erroneous exception may occur. For example, if both
PMCn[INTCONTROL] and MMCR0[ENINT] are set and mtspr loads an o v erflow value,
an interrupt signal may be generated without any event counting having taken place.
The event to be monitored can be chosen by setting MMCR0[0–9]. The selected e v ents are
counted beginning when MMCR0 is set until either MMCR0 is reset or a performance
monitor interrupt is generated. Table 2-10 lists the selectable events and their encodings.
The contents of the PMC1–PMC4 are reflected to UPMC1–UPMC4, which can be read by
user-level software. The UPMC registers can be read with mfspr using the following SPR
numbers:
The sampled instruction address register (SIA) is a supervisor-level register that contains
the effective address of an instruction executing at or around the time that the processor
signals the performance monitor interrupt condition. The SIA is shown in Figure 2-8.
If the performance monitor interrupt is triggered by a threshold event, the SIA contains the
exact instruction (called the sampled instruction) that caused the counter to overflow.
If the performance monitor interrupt was caused by something besides a threshold event,
the SIA contains the address of the last instruction completed during that cycle. SIA can be
accessed with the mtspr and mfspr instructions using SPR 955.
The contents of SIA are reflected to USIA, which can be read by user-lev el software. USIA
can be accessed with the mfspr instructions using SPR 939.
2.1.2.4.9Sampled Data Address Register (SDA) and User Sampled Data
Address Register (USDA)
The MPC750 does not implement the sampled data address register (SDA) or the
user-level, read-only USDA registers. However, for compatibility with processors that do,
those registers can be written to by boot code without causing an exception. SDA is
SPR 959; USDA is SPR 943.
Chapter 2. Programming Model
For More Information On This Product,
Go to: www.freescale.com
..
.
nc
Freescale Semiconductor, Inc.
The MPC750 Processor Register Set
2.1.3Instruction Cache Throttling Control Register (ICTC)
Reducing the rate of instruction fetching can control junction temperature without the
complexity and overhead of dynamic clock control. System software can control
instruction forwarding by writing a nonzero value to the ICTC register, a supervisor-level
register shown in Figure 2-9. The overall junction temperature reduction comes from the
dynamic power management of each functional unit when the MPC750 is idle in between
instruction fetches. PLL (phase-locked loop) and DLL (delay-locked loop) configurations
are unchanged.
Reserved
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
022 2330 31
0
0
0
0
0
0
Figure 2-9. Instruction Cache Throttling Control Register (ICTC)
Table 2-14 describes the bit fields for the ICTC register.
EFI
Table 2-14. ICTC Bit Settings
BitsNameDescription
0–22—Reserved
23–30FIInstruction forwarding interval expressed in processor clocks.
Instruction cache throttling is enabled by setting ICTC[E] and writing the instruction
forwarding interval into ICTC[FI]. Enabling, disabling, and changing the instruction
forwarding interval affect instruction forwarding immediately.
Freescale Semiconductor, I
The ICTC register can be accessed with the mtspr and mfspr instructions using SPR 1019.
2.1.4Thermal Management Registers (THRM1–THRM3)
The on-chip thermal management assist unit provides the following functions:
•Compares the junction temperature against user programmed thresholds
•Generates a thermal management interrupt if the temperature crosses the threshold
•Provides a way for a successive approximation routine to estimate junction
temperature
MPC750 RISC Microprocessor Family User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.