Sign In
Upload
Download
Table of Contents
Contents
Add to my manuals
Delete from my manuals
Share
URL of this page:
HTML Link:
Bookmark this page
Add
Manual will be automatically added to "My Manuals"
Print this page
×
Bookmark added
×
Added to my manuals
Manuals
Brands
MIPS Manuals
Computer Hardware
MIPS32 74Kc
Programming manual
MIPS MIPS32 74Kc Programming Manual
Hide thumbs
1
2
Table Of Contents
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
page
of
156
Go
/
156
Contents
Table of Contents
Bookmarks
Table of Contents
Table of Contents
Chapter 1: Introduction
Chapters of this Manual
Conventions
74K™ Core Features
A Brief Guide to the 74K™ Core Implementation
1: Notes on Pipeline Overview Diagram (Figure 1.1)
Figure 1.1 Overview of the 74K™ Pipeline
2: Branches and Branch Delays
3: Loads and Load-To-Use Delays
4: Queues, Resource Limits and Consequences
Chapter 2: Initialization and Identity
Probing Your CPU - Config CP0 Registers
Table 2.1: Roles of Config Registers
1: the Config Register
Figure 2.1: Fields in the Config Register
2: the Config1-2 Registers
Figure 2.2: Fields in the Config1 Register
Figure 2.3: Fields in the Config2 Register
3: the Config3 Register
Figure 2.4: Config3 Register Format
4: the Config6 Register
Figure 2.5: Config6 Register Format
5: CPU-Specific Configuration - Config7
Prid Register - Identifying Your CPU Type
Figure 2.6 Fields in the Prid Register
Table 2.2: 74K™® Core Releases and Prid[Revision] Fields
Chapter 3: Memory Map, Caching, Reads, Writes and Translation
The Memory Map
Table 3.1 Basic MIPS32® Architecture Memory Map
Fixed Mapping Option
Reads, Writes and Synchronization
1: Read/Write Ordering and Cache/Memory Data Queues in the 74K™ Core
Table 3.2 Fixed Memory Mapping
2: the "Sync" Instruction in 74K™ Family Cores
3: Write Gathering and "Write Buffer Flushing" in 74K™ Family Cores
Caches
1: the L2 Cache Option
2: Cacheability Options
3: Uncached Accelerated Writes
4: the Cache Instruction and Software Cache Management
Figure 3.1 Fields in the Encoding of a Cache Instruction
Table 3.3 Cache Code Values
5: Cache Instructions and CP0 Cache Tag/Data Registers
Table 3.4 Operations on a Cache Line Available with the Cache Instruction
6: L1 Cache Instruction Timing
7: L2 Cache Instruction Timing
8: Cache Management When Writing Instructions - the "Synci" Instruction
Table 3.1 Caches and Their CP0 Cache Tag/Data Registers
9: Cache Aliases
10: Cache Locking
11: Cache Initialization and Tag/Data Registers
Figure 3.2 Fields in the Taglo Registers
12: L23Taglo Regiser
13: L23Datalo Register
14: L23Datahi Register
Figure 3.3 L23Taglo Register Format
Figure 3.4 L23Datalo Register Format
Table 3.5 L23Datalo Register Field Description
15: Taglo Registers in Special Modes
16: Parity Error Exception Handling and the Cacheerr Register
Figure 3.5 L23Datahi Register Format
Figure 3.6 Fields in the Cacheerr Register
Table 3.6 L23Datahi Register Field Description
17: Errctl Register
Bus Error Exception
Figure 3.7 Fields in the Errctl Register
Scratchpad Memory/Spram
Figure 3.8: SPRAM (Scratchpad RAM) Configuration Information in Taglo
Common Device Memory Map
Figure 3-9 Fields in the Cdmmbase Register
The TLB and Translation
1: a TLB Entry
Figure 3.10 Fields in the Access Control and Status (ACSR) Register
2: Live Translation and Micro-Tlbs
3: Reading and Writing TLB Entries: Index, Random and Wired
Figure 3.11 Fields in a 74K™ Core TLB Entry
4: Reading and Writing TLB Entries - Entrylo0-1, Entryhi and Pagemask Registers
Figure 3.12 Fields in the Entryhi and Pagemask Registers
5: TLB Initialization and Duplicate Entries
Figure 3.13 Fields in the Entrylo0-1 Registers
6: TLB Exception Handlers - Badvaddr, Context, and Contextconfig Registers
Figure 3.14: Fields in the Context Register When Config3Ctxtc=0 and Config3Sm=0
Figure 3.15: Fields in the Context Register When Config3Ctxtc=1 or Config3Sm=1
Figure 3.16: Fields in the Contextconfig Register
Table 3.7: Recommended Contextconfig Values
Chapter 4: Programming the 74K™ Core in User Mode
User-Mode Accessible "Hardware Registers
Prefetching Data
Using "Synci" When Writing Instructions
The Multiplier
Table 4.1 Hints for "Pref" Instructions
Tuning Software for the 74K™ Family Pipeline
1: Cache Delays and Mitigating Their Effect
2: Branch Delay Slot
Tuning Floating-Point
Branch Misprediction Delays
Load Delayed by (Unrelated) Recent Store
Minimum Load-Miss Penalty
Data Dependency Delays
Table 4.2 Register → Eager Consumer Delays
Table 4.3: Producer → Register Delays
1: more Complicated Dependencies
Advice on Tuning Instruction Sequences (Particularly DSP)
Multiply/Divide Unit and Timings
Chapter 5: Kernel-Mode (OS) Programming and Release 2 of the MIPS32® Architecture
Hazard Barrier Instructions
MIPS32® Architecture Release 2 - Enhanced Interrupt System(S)
1: Traditional MIPS® Interrupt Signalling and Priority
Figure 5.1 Fields in the Intctl Register
2: VI Mode - Multiple Entry Points, Interrupt Signalling and Priority
3: External Interrupt Controller (EIC) Mode
Exception Entry Points
1: Summary of Exception Entry Points
Figure 5.2 Fields in the Ebase Register
Shadow Registers
Figure 5.3 Fields in the Srsctl Register
Table 5.1: All Exception Entry Points
Figure 5.4 Fields in the Srsmap Register
Saving Power
The Hwrena Register - Control User Rdhwr Access
Figure 5.5 Fields in the Hwrena Register
Chapter 6: Floating Point Unit
Data Representation
Basic Instruction Set
Figure 6.1: How Floating Point Numbers Are Stored in a Register
Floating Point Loads and Stores
Setting up the FPU and the FPU Control Registers
1: IEEE Options
2: FPU "Unimplemented" Exceptions (and How to Avoid Them)
3: FPU Control Register Maps
Figure 6.2 Fields in the FIR Register
Table 6.1 FPU (Co-Processor 1) Control Registers
Figure 6.3 Floating Point Control/Status Register and Alternate Views
FPU Pipeline and Instruction Timing
Figure 6.4: Overview of the FPU Pipeline
1: FPU Register Dependency Delays
2: Delays Caused by Long-Latency Instructions Looping in the M1 Stage
3: Delays on FP Load and Store Instructions
4: Delays When Main Pipeline Waits for FPU to Decide Not to Take an Exception
Table 6.2: Long-Latency FP Instructions
5: Delays When Main Pipeline Waits for FPU to Accept an Instruction
6: Delays on Mfc1/Mtc1 Instructions
7: Delays Caused by Dependency on FPU Status Register Fields
8: Slower Operation in MIPS I™ Compatibility Mode
Chapter 7: The MIPS32® DSP ASE
Features Provided by the MIPS® DSP ASE
The DSP ASE Control Register
Figure 7.1 Fields in the Dspcontrol Register
1: DSP Accumulators
Software Detection of the DSP ASE
DSP Instructions
1: Hints in Instruction Names
2: Arithmetic - 64-Bit
3: Arithmetic - Saturating And/Or SIMD Types
4: Bit-Shifts - Saturating And/Or SIMD Types
5: Comparison and "Conditional-Move" Operations on SIMD Types
6: Conversions to and from SIMD Types
7: Multiplication - SIMD Types with Result in GP Register
8: Multiply Q15S from Paired-Half and Accumulate
9: Load with Register + Register Address
10: Dspcontrol Register Access
Table 7.1 Mask Bits for Instructions Accessing the Dspcontrol Register
11: Accumulator Access Instructions
12: Dot Products and Building Blocks for Complex Multiplication
13: Other DSP ASE Instructions
Macros and Typedefs for DSP Instructions
Almost Alphabetically-Ordered Table of DSP ASE Instructions
Table 7.2 DSP Instructions in Alphabetical Order
DSP ASE Instruction Timing
Chapter 8: 74K™ Core Features for Debug and Profiling
EJTAG On-Chip Debug Unit
1: Debug Communications through JTAG
2: Debug Mode
Table 8.1 JTAG Instructions for the EJTAG Unit
3: Exceptions in Debug Mode
4: Single-Stepping
5: the "Dseg" Memory Decode Region
Table 8.2: EJTAG Debug Memory Region Map ("Dseg")
6: EJTAG CP0 Registers, Particularly Debug
Figure 8.1 Fields in the EJTAG CP0 Debug Register
7: the DCR (Debug Control) Memory-Mapped Register
Figure 8.2 Exception Cause Bits in the Debug Register
Figure 8.3: Debug Register - Exception-Pending Flags
Figure 8.4 Fields in the Memory-Mapped DCR (Debug Control) Register
8: the Debugvectoraddr Memory-Mapped Register
9: JTAG-Accessible Registers
Figure 8.5 Fields in the Memory-Mapped DCR (Debug Control) Register
Figure 8.6 Ifields in the JTAG-Accessible Implementation Register
Figure 8.7 Fields in the JTAG-Accessible EJTAG_CONTROL Register
Table 8.3 Fields in the JTAG-Accessible EJTAG_CONTROL Register
10: Fast Debug Channel
Figure 8.8 Fast Debug Channel
Figure 8.9 Fields in the FDC Access Control and Status (FDACSR) Register
Table 8.4 FDC Register Mapping
Figure 8.10: Fields in the FDC Config (FDCFG) Register
Figure 8.11 Fields in the FDC Status (FDSTAT) Register
11: EJTAG Breakpoint Registers
Figure 8.12 Fields in the FDC Receive (FDRX) Register
Figure 8.13 Fields in the FDC Transmit (Fdtxn) Registers
Figure 8.14 Fields in the IBS/DBS (EJTAG Breakpoint Status) Registers
12: Understanding Breakpoint Conditions
Figure 8.15 Fields in the Hardware Breakpoint Control Registers (Ibcn, Dbcn)
13: Imprecise Debug Breaks
14: PC Sampling with EJTAG
15: JTAG-Accessible and Memory-Mapped Pdtrace TCB Registers
Table 8.5 Mapping TCB Registers in Drseg
Pdtrace™ Instruction Trace Facility
1: 74K Core-Specific Fields in Pdtrace™ JTAG-Accessible Registers
Figure 8.16 Fields in the TCBCONTROLE Register
Table 8.6 Fields in the TCBCONTROLA Register
Table 8.7 Fields in the TCBCONTROLB Register
2: CP0 Registers for the Pdtrace™ Logic
Figure 8.17: Fields in the TCBCONFIG Register
Figure 8.18: Fields in the Tracecontrol Register
Figure 8.19 Fields in the Tracecontrol2 Register
Figure 8.20 Fields in the Tracecontrol3 Register
3: JTAG Triggers and Local Control through Traceibpc/Tracedbpc
Figure 8.21 Fields in the Traceibpc/Tracedbpc Registers
4: Usertracedata1 Reg and Usertracedata2 Reg
5: Summary of When Trace Happens
CP0 Watchpoints
1: the Watchlo0-3 Registers
2: the Watchhi0-3 Registers
Figure 8.22 Fields in the Watchlo0-3 Register
Figure 8.23 Fields in the Watchhi0-3 Register
Performance Counters
Figure 8.24 Fields in the Perfctl0-3 Register
1: Reading the Event Table
Table 8.8: Performance Counter Event Codes in the Perfctl0-3[Event] Field
Appendix A: References
Appendix B: CP0 Register Summary and Reference
Table B.1 Register Index by Name
Table B.2 CP0 Registers by Number
B.1: Miscellaneous CP0 Register Descriptions
Table B.3 CP0 Registers Grouped by Function
B.1.1: Status Register
Figure B.1 Fields in the Status Register
Table B.4 Encoding Privilege Level in Status[Um,Sm]
B.1.2: the Userlocal Register
B.1.3: Exception Control: Cause and EPC Registers
B.1.3.1: the Cause Register
Figure B.2 Fields in the Cause Register
Table B.5 Values Found in Cause[Exccode]
B.1.4: the EPC Register
B.1.5: Count and Compare
B.2: Registers for CPU Configuration
B.2.1: the Config7 Register
Table B.6: Fields in the Config7 Register
B.3: Registers for Cache Diagnostics
B.3.1: Different Views of Itaglo/Dtaglo
Figure B.3 Fields in the Taglo-WST Register
B.3.2: Dual (Virtual and Physical) Tags in the 74K Core D-Cache - Dtaghi Register
B.3.3: Pre-Decode Information in the I-Cache - the Itaghi Register
Figure B.4 Fields in the Taglo-DAT Register
Figure B.5 Fields in the Dtaghi Register
Figure B.6 Fields in the Itaghi Register
B.3.4: the Ddatalo, Idatahi and Idatalo Registers
B.3.5: the Errorepc Register
Appendix C: MIPS® Architecture Quick-Reference Sheet(S)
C.1: General Purpose Register Numbers and Names
C.2: User-Level Changes with Release 2 of the MIPS32® Architecture
C.2.1: Release 2 of the MIPS32® Architecture - New Instructions for User-Mode
Table C.1 Conventional Names of Registers with Usage Mnemonics
C.2.2: Release 2 of the MIPS32® Architecture - Hardware Registers from User Mode
Table C.2 Release 2 of the MIPS32® Architecture - New Instructions
C.3: FPU Changes in Release 2 of the MIPS32® Architecture
Appendix D: Revision History
Advertisement
Quick Links
1
74K™ Core Features
Download this manual
Programming the MIPS32® 74K™ Core
Family
Document Number: MD00541
Revision 02.14
March 30, 2011
Table of
Contents
Previous
Page
Next
Page
1
2
3
4
5
Advertisement
Table of Contents
Need help?
Do you have a question about the MIPS32 74Kc and is the answer not in the manual?
Ask a question
Questions and answers
Related Manuals for MIPS MIPS32 74Kc
Computer Hardware MIPS MIPS32 74K Series Programming Manual
(156 pages)
Computer Hardware MIPS MIPS32 74Kf Programming Manual
(156 pages)
Computer Hardware MIPS SEAD-3 Getting Started Manual
(12 pages)
Summarization of Contents
Introduction
Intended Audience
Identifies the target readers for this manual, assuming familiarity with MIPS architecture.
Conventions
Explains formatting, mnemonics, and register naming conventions used throughout the manual.
74K™ core features
Details the optional features and configurations available for the 74K family cores.
A brief guide to the 74K™ core implementation
Provides an overview of the 74K core's long pipeline, out-of-order execution, and branch handling.
Initialization and identity
Probing your CPU - Config CP0 registers
Describes how to use CP0 Config registers to determine CPU capabilities and features.
PRId register — identifying your CPU type
Explains the PRId register for identifying the specific CPU core and its revision.
Memory map, caching, reads, writes and translation
The memory map
Details the system's memory map, including virtual and physical address ranges.
Reads, writes and synchronization
Explains memory access ordering, non-blocking loads, and synchronization mechanisms.
Caches
Covers the L1 and L2 caches, their configurations, and management operations.
The TLB and translation
Describes the Translation Lookaside Buffer (TLB) for virtual to physical address translation.
Bus error exception
Details how bus errors are signaled and handled, typically indicating system failures.
Scratchpad memory/SPRAM
Explains the use of on-chip scratchpad RAM for high-speed data access.
Programming the 74K™ core in user mode
User-mode accessible “Hardware registers”
Describes registers accessible from user mode for hardware status and control.
Tuning software for the 74K‘ family pipeline
Provides guidance for optimizing software performance by understanding the pipeline.
Data dependency delays
Details instruction dependencies and their impact on pipeline execution timing.
Kernel-mode (OS) programming and Release 2 of the MIPS32® Architecture
Hazard barrier instructions
Explains instructions used to manage pipeline hazards and ensure correct execution order.
MIPS32® Architecture Release 2 - enhanced interrupt system(s)
Covers new interrupt features like VI and EIC modes introduced in Release 2.
Exception Entry Points
Details how exceptions are handled and entry points are managed.
Shadow registers
Describes shadow register sets for efficient interrupt handler context switching.
The HWREna register - Control user rdhwr access
Explains how to control user-mode access to hardware registers via rdhwr.
Floating point unit
Data representation
Describes the formats for 32-bit and 64-bit floating-point numbers.
Basic instruction set
Provides an overview of the FPU's instruction set and data type suffixes.
Setting up the FPU and the FPU control registers
Details how to configure the FPU's behavior and handle exceptions.
FPU pipeline and instruction timing
Explains the FPU pipeline structure and the timing of FP operations.
The MIPS32® DSP ASE
Features provided by the MIPS® DSP ASE
Highlights key features of the DSP ASE, including fractional types and saturating arithmetic.
The DSP ASE control register
Describes the DSPControl register for managing DSP operations and state.
DSP instructions
Details various DSP instructions, categorized by function and usage.
74K™ core features for debug and profiling
EJTAG on-chip debug unit
Covers the EJTAG unit for on-chip debugging, including communication and modes.
Watchpoints
Explains the CP0 watchpoint registers for monitoring memory accesses.
Performance counters
Details the hardware performance counters for system profiling and analysis.
PDtrace™ instruction trace facility
Describes the PDtrace system for tracing instruction execution and data flow.
References
74K™ core family manuals
Lists core-specific manuals and documentation for the 74K family.
CP0 register summary and reference
Register index by name
Table mapping CP0 register names to their numbers and page references.
Miscellaneous CP0 register descriptions
Provides descriptions for CP0 registers not covered in detail elsewhere.
Status register
Details the Status register, controlling CPU modes, interrupts, and extensions.
Exception control: Cause and EPC registers
Explains the Cause and EPC registers for exception handling.
Registers for CPU Configuration
Covers registers related to CPU configuration, including the Config register.
Registers for Cache Diagnostics
Describes registers used for testing and diagnosing cache behavior.
MIPS® Architecture quick-reference sheet(s)
General purpose register numbers and names
Lists general-purpose registers with their conventional names and usage.
User-level changes with Release 2 of the MIPS32® Architecture
Highlights new features and user-level access to hardware registers in MIPS32 Release 2.
Revision History
Table of Contents
Print
Rename the bookmark
Delete bookmark?
Delete from my manuals?
Login
Sign In
OR
Sign in with Facebook
Sign in with Google
Upload manual
Upload from disk
Upload from URL
Need help?
Do you have a question about the MIPS32 74Kc and is the answer not in the manual?
Questions and answers