Global Table of Contents


Second Edition
http://www.mips.com
Acknowledgments for the First Edition
Acknowledgments for the Second Edition
Preface to the First Edition
Overview of the Contents
A Note on Style
Preface to the Second Edition
Changes From the First Edition
Getting MIPS Documents On-Line
1. - Introduction
1.1 - Benefits of RISC Design
Shorter Design Cycle
Effective Utilization of Chip Area
User (Programmer) Benefits
Advanced Semiconductor Technologies
Optimizing Compilers
MIPS RISCompiler Language Suite
1.2 - Compatibility
1.3 - Processor General Features
1.4 - R4000 Processor Configurations
1.5 - R4400 Processor Enhancements
1.6 - R4000 Processor
64-bit Architecture
Superpipeline Architecture
System Interface
CPU Register Overview
CPU Instruction Set Overview
Data Formats and Addressing
Coprocessors (CP0-CP2)
System Control Coprocessor, CP0
Floating-Point Unit (FPU), CP1
Memory Management System (MMU)
The Translation Lookaside Buffer (TLB)
Instruction TLB
Joint TLB
Operating Modes
Cache Memory Hierarchy
Primary Caches
Secondary Cache Interface
2. - CPU Instruction Set Summary
2.1 - CPU Instruction Formats
Load and Store Instructions
Scheduling a Load Delay Slot
Defining Access Types
Computational Instructions
64-bit Operations
Cycle Timing for Multiply and Divide Instructions
Jump and Branch Instructions
Overview of Jump Instructions
Overview of Branch Instructions
Special Instructions
Exception Instructions
Coprocessor Instructions
3. - The CPU Pipeline
3.1 - CPU Pipeline Operation
CPU Pipeline Stages
IF - Instruction Fetch, First Half
IS - Instruction Fetch, Second Half
RF - Register Fetch
EX - Execution
DF - Data Fetch, First Half
DS - Data Fetch, Second Half
TC - Tag Check
WB - Write Back
3.2 - Branch Delay
3.3 - Load Delay
3.4 - Interlock and Exception Handling
Exception Conditions
Stall Conditions
Slip Conditions
External Stalls
Interlock and Exception Timing
Backing Up the Pipeline
Aborting an Instruction Subsequent to an Interlock
Pipelining the Exception Handling
Special Cases
Performance Considerations
Address Acceleration
Address Prediction
Correctness Considerations
3.5 - R4400 Processor Uncached Store Buffer
4. - Memory Management
4.1 - Translation Lookaside Buffer (TLB)
Hits and Misses
Multiple Matches
4.2 - Address Spaces
Virtual Address Space
Physical Address Space
Virtual-to-Physical Address Translation
32-bit Mode Address Translation
64-bit Mode Address Translation
Operating Modes
User Mode Operations
32-bit User Mode (useg)
64-bit User Mode (xuseg)
Supervisor Mode Operations
32-bit Supervisor Mode, User Space (suseg)
32-bit Supervisor Mode, Supervisor Space (sseg)
64-bit Supervisor Mode, User Space (xsuseg)
64-bit Supervisor Mode, Current Supervisor Space (xsseg)
64-bit Supervisor Mode, Separate Supervisor Space (csseg)
Kernel Mode Operations
32-bit Kernel Mode, User Space (kuseg)
32-bit Kernel Mode, Kernel Space 0 (kseg0)
32-bit Kernel Mode, Kernel Space 1 (kseg1)
32-bit Kernel Mode, Supervisor Space (ksseg)
32-bit Kernel Mode, Kernel Space 3 (kseg3)
64-bit Kernel Mode, User Space (xkuseg)
64-bit Kernel Mode, Current Supervisor Space (xksseg)
64-bit Kernel Mode, Physical Spaces (xkphys)
64-bit Kernel Mode, Kernel Space (xkseg)
64-bit Kernel Mode, Compatibility Spaces (ckseg1:0, cksseg, ckseg3)
4.3 - System Control Coprocessor
Format of a TLB Entry
CP0 Registers
Index Register (0)
Random Register (1)
EntryLo0 (2), and EntryLo1 (3) Registers
PageMask Register (5)
Wired Register (6)
EntryHi Register (CP0 Register 10)
Processor Revision Identifier (PRId) Register (15)
Config Register (16)
Load Linked Address (LLAddr) Register (17)
Cache Tag Registers [TagLo (28) and TagHi (29)]
Virtual-to-Physical Address Translation Process
TLB Misses
TLB Instructions
5. - CPU Exception Processing
5.1 - How Exception Processing Works
5.2 - Exception Processing Registers
Context Register (4)
Bad Virtual Address Register (BadVAddr) (8)
Count Register (9)
Compare Register (11)
Status Register (12)
Status Register Format
Status Register Modes and Access States
Status Register Reset
Cause Register (13)
Exception Program Counter (EPC) Register (14)
WatchLo (18) and WatchHi (19) Registers
XContext Register (20)
Error Checking and Correcting (ECC) Register (26)
Cache Error (CacheErr) Register (27)
Error Exception Program Counter (Error EPC) Register (30)
5.3 - Processor Exceptions
Exception Types
Reset Exception Process
Cache Error Exception Process
Soft Reset and NMI Exception Process
General Exception Process
Exception Vector Locations
Priority of Exceptions
Reset Exception
Soft Reset Exception
Address Error Exception
TLB Exceptions
TLB Refill Exception
Cause
Processing
Servicing
TLB Invalid Exception
Cause
Processing
Servicing
TLB Modified Exception
Cause
Processing
Servicing
Cache Error Exception
Virtual Coherency Exception
Bus Error Exception
Integer Overflow Exception
Trap Exception
System Call Exception
Breakpoint Exception
Reserved Instruction Exception
Coprocessor Unusable Exception
Floating-Point Exception
Watch Exception
Interrupt Exception
5.4 - Exception Handling and Servicing Flowcharts
6. - Floating-Point Unit
6.1 - Overview
6.2 - FPU Features
6.3 - FPU Programming Model
Floating-Point General Registers (FGRs)
Floating-Point Registers
Floating-Point Control Registers
Implementation and Revision Register, (FCR0)
Control/Status Register (FCR31)
Accessing the Control/Status Register
IEEE Standard 754
Control/Status Register FS Bit
Control/Status Register Condition Bit
Control/Status Register Cause, Flag, and Enable Fields
Cause Bits
Enable Bits
Flag Bits
Control/Status Register Rounding Mode Control Bits
6.4 - Floating-Point Formats
6.5 - Binary Fixed-Point Format
6.6 - Floating-Point Instruction Set Overview
Floating-Point Load, Store, and Move Instructions
Transfers Between FPU and Memory
Transfers Between FPU and CPU
Load Delay and Hardware Interlocks
Data Alignment
Endianness
Floating-Point Conversion Instructions
Floating-Point Computational Instructions
Branch on FPU Condition Instructions
Floating-Point Compare Operations
6.7 - FPU Instruction Pipeline Overview
Instruction Execution
Instruction Execution Cycle Time
Scheduling FPU Instructions
FPU Pipeline Overlapping
Instruction Scheduling Constraints
FPU Divider Constraints
FPU Multiplier Constraints
FPU Adder Constraints
Instruction Latency, Repeat Rate, and Pipeline Stage Sequences
Resource Scheduling Rules
7. - Floating-Point Exceptions
7.1 - Exception Types
7.2 - Exception Trap Processing
7.3 - Flags
7.4 - FPU Exceptions
Inexact Exception (I)
Invalid Operation Exception (V)
Division-by-Zero Exception (Z)
Overflow Exception (O)
Underflow Exception (U)
Unimplemented Instruction Exception (E)
7.5 - Saving and Restoring State
7.6 - Trap Handlers for IEEE Standard 754 Exceptions
8. - R4000 Processor Signal Descriptions
8.1 - System Interface Signals
8.2 - Clock/Control Interface Signals
8.3 - Secondary Cache Interface Signals
8.4 - Interrupt Interface Signals
8.5 - JTAG Interface Signals
8.6 - Initialization Interface Signals
8.7 - Signal Summary
9. - Initialization Interface
9.1 - Functional Overview
9.2 - Reset Signal Description
Power-on Reset
Cold Reset
Warm Reset
9.3 - Initialization Sequence
9.4 - Boot-Mode Settings
10. - Clock Interface
10.1 - Signal Terminology
10.2 - Basic System Clocks
MasterClock
MasterOut
SyncIn/SyncOut
PClock
SClock
TClock
RClock
PClock-to-SClock Division
10.3 - System Timing Parameters
Alignment to SClock
Alignment to MasterClock
Phase-Locked Loop (PLL)
10.4 - Connecting Clocks to a Phase-Locked System
10.5 - Connecting Clocks to a System without Phase Locking
Connecting to a Gate-Array Device
Connecting to a CMOS Logic System
10.6 - Processor Status Outputs
11. - Cache Organization, Operation, and Coherency
11.1 - Memory Organization
11.2 - Overview of Cache Operations
11.3 - R4000 Cache Description
Secondary Cache Size
Variable-Length Cache Lines
Cache Organization and Accessibility
Organization of the Primary Instruction Cache (I-Cache)
Organization of the Primary Data Cache (D-Cache)
Accessing the Primary Caches
Organization of the Secondary Cache
Accessing the Secondary Cache
11.4 - Cache States
Primary Cache States
Secondary Cache States
Mapping States Between Caches
11.5 - Cache Line Ownership
11.6 - Cache Write Policy
11.7 - Cache State Transition Diagrams
11.8 - Cache Coherency Overview
Cache Coherency Attributes
Uncached
Noncoherent
Sharable
Update
Exclusive
Cache Operation Modes
Secondary-Cache Mode
No-Secondary-Cache Mode
Strong Ordering
An Example of Strong Ordering
Testing for Strong Ordering
Restarting the Processor
Restart after a Coherent Read Request
Restart after a Coherent Write Request
Restart after an Invalidate or Update Request
11.9 - Maintaining Coherency on Loads and Stores
11.10 - Manipulation of the Cache by an External Agent
Invalidate
Update
Snoop
Intervention
11.11 - Coherency Conflicts
How Coherency Conflicts Arise
Processor Coherent Read Requests
Processor Invalidate or Update Requests
External Coherency Requests
System Implications of Coherency Conflicts
System Model
Load
Store
Processor Coherent Read Request and Read Response
Ordinary Read Request
Read Exclusive Request
Processor Invalidate
Processor Write
Handling Coherency Conflicts
Coherent Read Conflicts
Coherent Write Conflicts
Invalidate Conflicts
Sample Cycle: Coherent Read Request
11.12 - R4000 Processor Synchronization Support
Test-and-Set (Spinlock)
Counter
LL and SC
Examples Using LL and SC
12. - System Interface
12.1 - Terminology
12.2 - System Interface Description
Interface Buses
Address and Data Cycles
Issue Cycles
Handshake Signals
12.3 - System Interface Protocols
Master and Slave States
Moving from Master to Slave State
External Arbitration
Uncompelled Change to Slave State
12.4 - Processor and External Requests
Rules for Processor Requests
Processor Requests
Processor Read Request
Processor Write Request
Processor Invalidate Request
Processor Update Request
Clusters
Read With Write Forthcoming Request as Part of a Cluster
Potential Update as Part of a Cluster
Write Request as Part of a Cluster
Null Write Request as Part of a Cluster
External Requests
External Read Request
External Write Request
External Invalidate Request
External Update Request
External Snoop Request
External Intervention Request
Read Response
12.5 - Handling Requests
Load Miss
Secondary-Cache Mode
No-Secondary-Cache Mode
Store Miss
Secondary-Cache Mode
Noncoherent Page Attribute
Sharable or Exclusive Page Attribute
Update Page Attribute
No-Secondary-Cache Mode
Store Hit
Secondary-Cache Mode
No-Secondary-Cache Mode
Uncached Loads or Stores
CACHE Operations
Load Linked Store Conditional Operation
12.6 - Processor and External Request Protocols
Processor Request Protocols
Processor Read Request Protocol
Processor Write Request Protocol
Processor Invalidate and Update Request Protocol
Processor Null Write Request Protocol
Processor Cluster Request Protocol
Processor Request and Cluster Flow Control
External Request Protocols
External Arbitration Protocol
External Read Request Protocol
External Null Request Protocol
External Write Request Protocol
External Invalidate and Update Request Protocols
External Intervention Request Protocol
External Snoop Request Protocol
Read Response Protocol
12.7 - Data Rate Control
Data Transfer Patterns
Secondary Cache Transfers
Secondary Cache Write Cycle Time
Independent Transmissions on the SysAD Bus
System Interface Endianness
12.8 - System Interface Cycle Time
Cluster Request Spacing
Release Latency
External Request Response Latency
12.9 - System Interface Commands and Data Identifiers
Command and Data Identifier Syntax
System Interface Command Syntax
Read Requests
Write Requests
Null Requests
Invalidate Requests
Update Requests
Intervention and Snoop Requests
System Interface Data Identifier Syntax
Coherent Data
Noncoherent Data
Data Identifier Bit Definitions
12.10 - System Interface Addresses
Addressing Conventions
Sequential and Subblock Ordering
12.11 - Processor Internal Address Map
13. - Secondary Cache Interface
13.1 - Data Transfer Rates
13.2 - Duplicating Signals
13.3 - Accessing a Split Secondary Cache
13.4 - SCDChk Bus
13.5 - SCTAG Bus
13.6 - Operation of the Secondary Cache Interface
Read Cycles
4-Word Read Cycle
8-Word Read Cycle
Notes on a Secondary Cache Read Cycle
Write Cycles
4-Word Write Cycle
8-Word Write Cycle
Notes on a Secondary Cache Write Cycle
14. - JTAG Interface
14.1 - What Boundary Scanning Is
14.2 - Signal Summary
14.3 - JTAG Controller and Registers
Instruction Register
Bypass Register
Boundary-Scan Register
Test Access Port (TAP)
TAP Controller
Controller Reset
Controller States
14.4 - Implementation-Specific Details
15. - R4000 Processor Interrupts
15.1 - Hardware Interrupts
15.2 - Nonmaskable Interrupt (NMI)
15.3 - Asserting Interrupts
16. - Error Checking and Correcting
16.1 - Error Checking in the Processor
Types of Error Checking
Parity Error Detection
SECDED ECC Code
Secondary Cache Data Bus SECDED Code
Secondary Cache Tag Bus SECDED Code
Error Checking Operation
System Interface
Secondary Cache Data Bus
System Interface and Secondary Cache Data Bus
Secondary Cache Tag Bus
System Interface Command Bus
SECDED ECC Matrices for Data and Tag Buses
ECC Check Bits
Data ECC Generation
Detecting Data Transmission Errors
Single Data Bit ECC Error
Single Check Bit ECC Error
Double Data Bit ECC Errors
Three Data Bit ECC Errors
Four Data Bit ECC Errors
Tag ECC Generation
Summary of ECC Operations
16.2 - R4400 Master/Checker Mode
Connecting a System in Lock Step
Master-Listener Configuration
Cross-Coupled Checking Configuration
Fault Detection
Reset Operation
Fault History
A - CPU Instruction Set Details
A.1 - Instruction Classes
A.2 - Instruction Formats
A.3 - Instruction Notation Conventions
Instruction Notation Examples
A.4 - Load and Store Instructions
A.5 - Jump and Branch Instructions
A.6 - Coprocessor Instructions
A.7 - System Control Coprocessor (CP0) Instructions
Format:
CPU Instruction Opcode Bit Encoding
B - FPU Instruction Set Details
B.1 - Instruction Formats
Floating-Point Loads, Stores, and Moves
Floating-Point Operations
B.2 - Instruction Notation Conventions
Instruction Notation Examples
B.3 - Load and Store Instructions
B.4 - Computational Instructions
FPU Instruction Opcode Bit Encoding
C - Subblock Ordering
C.1 - Sequential Ordering
C.2 - Subblock Ordering
D - Output Buffer Di/Dt Control Mechanism
D.1 - Mode Bits
D.2 - Delay Times
E - PLL Passive Components
F - Coprocessor 0 Hazards
G - R4000 Pinouts
G.1 - Pinout of R4000PC
G.2 - Pinout of R4000MC/SC Package Pinout

Generated with CERN WebMaker
statistics