Sign In
Upload
Manuals
Brands
IBM Manuals
Computer Hardware
A2
IBM A2 Manuals
Manuals and User Guides for IBM A2. We have
1
IBM A2 manual available for free PDF download: User Manual
IBM A2 User Manual (864 pages)
Brand:
IBM
| Category:
Computer Hardware
| Size: 7.4 MB
Table of Contents
Table of Contents
3
List of Figures
21
List of Tables
23
Revision Log
29
About this Book
31
Who Should Use this Book
31
How to Use this Book
31
Notation
32
Related Publications
33
List of Acronyms and Abbreviations
35
1 Overview
45
A2 Core Key Design Fundamentals
45
A2 Core Features
46
The A2 Core as a Power ISA Implementation
49
Embedded Hypervisor
49
A2 Core Organization
49
Instruction Unit
50
Figure 1-1. A2 Core Organization
50
Execution Unit
51
Instruction and Data Cache Controllers
51
Instruction Cache Controller
51
Data Cache Controller
51
Memory Management Unit (MMU)
52
Timers
54
Debug Facilities
54
Debug Modes
54
Development Tool Support
55
Floating-Point Unit Organization
55
Arithmetic and Load/Store Pipelines
56
IEEE 754 and Architectural Compliance
56
Figure 1-2. A2 Processor Block Diagram
56
IEEE 754 Compliance
57
Floating-Point Unit Implementation
57
Reciprocal Estimates
57
Denormalized B Operands
57
Non-IEEE Mode
57
Floating-Point Unit Interfaces
57
A2 Processor Core Interface
57
Clock and Power Management Interface
58
Core Interfaces
58
System Interface
58
Auxiliary Execution Unit (AXU) Port
59
JTAG Port
59
2 CPU Programming Model
61
Logical Partitioning
61
Overview
61
Storage Addressing
62
Storage Operands
62
Table 2-1. Data Operand Definitions
63
Table 2-2. Alignment Effects for Storage Access Instructions
63
Effective Address Calculation
64
Data Storage Addressing Modes
65
Instruction Storage Addressing Modes
65
Byte Ordering
66
Structure Mapping Examples
66
Instruction Byte Ordering
67
Data Byte Ordering
68
Byte-Reverse Instructions
69
Multithreading
70
Thread Identification
70
Thread Identification Register (TIR)
70
Processor Identification Register (PIR)
70
Guest Processor Identification Register (GPIR)
71
Thread Run State
71
Thread Stop I/O Pin
71
Thread Control and Status Register (THRCTL)
71
Core Configuration Register 0 (CCR0)
72
Thread Enable Register (TENS, TENC)
72
Thread Enable Status Register (TENSR)
73
Wake on Interrupt
74
Core Configuration Register 1 (CCR1)
74
Thread Priority
75
Program Priority Register (PPR32)
75
Table 2-3. Priority Levels
76
Table 2-4. Other "Or" Instruction Hints
76
Table 2-5. Program Priority Register (PPR32)
76
Instruction Unit Configuration Register 1 (IUCR1)
77
Resources Shared between Threads
77
Shared Resources
77
Accessing Shared Resources
78
Duplicated Resources
78
Pipeline Sharing
79
Figure 2-1. A2 Core Instruction Unit
79
Figure 2-2. Instruction Issue Timing Diagram 1
80
Instruction Buffer and Decode Dependency
80
Instruction Cache
80
Instruction Issue
80
Figure 2-3. Instruction Issue Timing Diagram 2
81
Figure 2-4. Instruction Issue Timing Diagram 3
81
Ram Unit
81
Integer Unit
82
Microcode Unit
82
Registers
82
Figure 2-5. User Programming Model Registers
83
Register Mapping
84
Register Types
84
General Purpose Registers
84
Special Purpose Registers
84
Table 2-6. Register Mapping
84
Condition Register
85
Machine State Register
85
32-Bit Mode
85
64-Bit Specific Instructions
85
32-Bit Instruction Selection
85
Instruction Categories
86
Table 2-7. Category Listing
86
Instruction Classes
87
Defined Instruction Class
87
Illegal Instruction Class
88
Reserved Instruction Class
88
Implemented Instruction Set Summary
88
Integer Instructions
89
Integer Storage Access Instructions
89
Table 2-8. Instruction Categories
89
Table 2-9. Integer Storage Access Instructions
90
Table 2-10. Integer Storage Access Instructions by External Process ID
90
Table 2-11. Operand Handling Dependent on Alignment
90
Integer Arithmetic Instructions
91
Table 2-12. Integer Arithmetic Instructions
91
Integer Logical Instructions
92
Integer Compare Instructions
92
Integer Trap Instructions
92
Integer Rotate Instructions
92
Table 2-13. Integer Logical Instructions
92
Table 2-14. Integer Compare Instructions
92
Table 2-15. Integer Trap Instructions
92
Integer Shift Instructions
93
Integer Population Count Instructions
93
Integer Select Instruction
93
Table 2-16. Integer Rotate Instructions
93
Table 2-17. Integer Shift Instructions
93
Table 2-18. Integer Population Count Instructions
93
Table 2-19. Integer Select Instruction
93
Branch Instructions
94
Processor Control Instructions
94
Condition Register Logical Instructions
94
Table 2-20. Branch Instructions
94
Table 2-21. Condition Register Logical Instructions
94
Register Management Instructions
95
System Linkage Instructions
95
Processor Control Instructions
95
Storage Control Instructions
95
Table 2-22. Register Management Instructions
95
Table 2-23. System Linkage Instructions
95
Table 2-24. Processor Control Instruction
95
Cache Management Instructions
96
Table 2-25. Cache Management Instructions
96
Table 2-26. Cache Management Instructions by External Process ID
96
Table 2-27. TLB Management Instructions
96
TLB Management Instructions
96
Load and Reserve and Store Conditional Instructions
97
Processor Synchronization Instruction
97
Storage Synchronization Instructions
97
Table 2-28. Processor Synchronization Instruction
97
Table 2-29. Load and Reserve and Store Conditional Instructions
97
Table 2-30. Storage Synchronization Instructions
97
Wait Instruction
98
Initiate Coprocessor Instructions
98
Cache Initialization Instructions
98
Table 2-31. Wait Instruction
98
Table 2-32. Initiate Coprocessor Instructions
98
Table 2-33. Cache Initialization Instructions
98
Branch Processing
99
Branch Addressing
99
Branch Instruction BI Field
99
Branch Instruction BO Field
99
Branch Prediction
100
Branch Decoder
100
Table 2-34. BO Field Encodings
100
Table 2-35. 'At' Bit Encodings
100
Branch Direction Prediction
101
Branch Prioritization
104
Branch Target Prediction
104
Redirection
105
Branch Control Registers
105
Link Register (LR)
105
Count Register (CTR)
106
Condition Register (CR)
107
Table 2-36. CR Updating Instructions
108
Integer Processing
110
General Purpose Registers (Gprs)
110
Integer Exception Register (XER)
110
Table 2-37. GPR Registers
110
Table 2-38. XER[SO,OV] Updating Instructions
111
Table 2-39. XER[CA] Updating Instructions
111
Carry (CA) Field
112
Overflow (OV) Field
112
Summary Overflow (SO) Field
112
Transfer Byte Count (TBC) Field
113
Processor Control
113
Special Purpose Registers General (SPRG0-SPRG8)
114
Table 2-40. SPRG0 Register
114
Table 2-41. SPRG1 Register
114
Table 2-42. SPRG2 Register
115
Table 2-43. SPRG3 Register
115
Table 2-44. SPRG4 Register
115
Table 2-45. SPRG5 Register
116
Table 2-46. SPRG6 Register
116
Table 2-47. SPRG7 Register
116
Table 2-48. SPRG8 Register
117
Table 2-49. GSPRG0 Register
117
Table 2-50. GSPRG1 Register
117
Table 2-51. GSPRG2 Register
118
Table 2-52. GSPRG3 Register
118
External Process ID Load Context (EPLC) Register
119
External Process ID Store Context (EPSC) Register
119
Privileged Modes
120
Privileged Instructions
121
Cache Locking Instructions
121
Table 2-53. Privileged Instructions
121
Privileged Sprs
122
Speculative Accesses
122
Synchronization
122
Context Synchronization
122
Execution Synchronization
124
Storage Ordering and Synchronization
124
Software Transactional Memory Acceleration
125
Summary
125
Implementation
125
L1 D-Cache
126
Watch Operation Ordering Requirements
126
Impact on Existing Software
126
3 FU Programming Model
127
Storage Addressing
127
Storage Operands
127
Effective Address Calculation
128
Data Storage Addressing Modes
128
Table 3-1. Data Operand Definitions
128
Floating-Point Exceptions
129
Floating-Point Registers
129
Table 3-2. Invalid Operation Exception Categories
129
Register Types
130
Floating-Point Registers (FPR0-FPR31)
130
Table 3-3. Floating-Point Registers (FPR0-FPR31)
130
Floating-Point Status and Control Register (FPSCR)
131
Table 3-4. Floating-Point Status and Control Register (FPSCR)
131
Floating-Point Data Formats
133
Value Representation
134
Table 3-5. Floating-Point Single Format
134
Table 3-6. Floating-Point Double Format
134
Table 3-7. Format Fields
134
Table 3-8. IEEE 754 Floating-Point Fields
134
Binary Floating-Point Numbers
135
Normalized Numbers
135
Figure 3-1. Approximation to Real Numbers
135
Denormalized Numbers
136
Zero Values
136
Infinities
136
Not a Numbers
136
Sign of Result
137
Normalization and Denormalization
138
Data Handling and Precision
138
Rounding
139
Floating-Point Execution Models
140
Figure 3-2. Selection of Z1 and Z2
140
Table 3-9. Rounding Modes
140
Execution Model for IEEE Operations
141
Table 3-10. IEEE 64-Bit Execution Model
141
Table 3-11. Interpretation of the G, R, and X Bits
141
Table 3-12. Location of the Guard, Round, and Sticky Bits in the IEEE Execution Model
142
Execution Model for Multiply-Add Type Instructions
143
Floating-Point Instructions
143
Table 3-13. Multiply-Add 64-Bit Execution Model
143
Table 3-14. Location of Guard, Round, and Sticky Bits in the Multiply-Add Execution Model
143
Instructions by Category
144
Load and Store Instructions
145
Floating-Point Store Instructions
146
Table 3-15. Floating-Point Load Instructions
146
Table 3-16. Floating-Point Store Instructions
147
Floating-Point Arithmetic Instructions
148
Floating-Point Move Instructions
148
Table 3-17. Floating-Point Move Instructions
148
Table 3-18. Floating-Point Elementary Arithmetic Instructions
148
Floating-Point Multiply-Add Instructions
149
Floating-Point Rounding and Conversion Instructions
149
Table 3-19. Floating-Point Multiply-Add Instructions
149
Floating-Point Compare Instructions
150
Table 3-20. Floating-Point Rounding and Conversion Instructions
150
Table 3-21. Comparison Sets
150
Floating-Point Status and Control Register Instructions
151
Table 3-22. Floating-Point Compare and Select Instructions
151
Table 3-23. Floating-Point Status and Control Register Instructions
151
4 Initialization
153
Core Reset
153
A2 Core State after Reset
154
Table 4-1. Register Reset Values
155
Table 4-2. Shadow TLB Array Entry Initialization
158
Software Initiated Reset Requests
160
Software Reset Requests
160
From Debug
161
From Watchdog Timer
161
Reset Request Status
161
Debug Facility Reset Status
162
Timer Facility Reset Status
162
Initialization Software Requirements
163
Figure 4-1. Software-Initiated Reset Request Overview
163
5 Instruction and Data Caches
169
Data Cache Array Organization and Operation
169
Table 5-1. Data Cache Array Organization
169
Table 5-2. Cache Size and Parameters
169
Instruction Cache Array Organization and Operation
170
Cache Line Replacement Policy
170
Instruction Cache Controller
170
Table 5-3. Instruction Cache Array Organization
170
Table 5-4. Cache Size and Parameters
170
ICC Operations
171
Instruction Cache Coherency
171
Self-Modifying Code
172
Instruction Cache Synonyms
172
Instruction Cache Control and Debug
172
Instruction Cache Management and Debug Instruction Summary
172
Instruction Cache Parity Operations
173
Simulating Instruction Cache Parity Errors for Software Testing
173
Data Cache Controller
173
DCC Operations
174
Load and Store Alignment
175
Load Operations
175
Store Operations
176
Data Read and Instruction Fetch Interface Requests
176
Data Write Interface Requests
176
Storage Access Ordering
177
Data Cache Coherency
177
Data Cache Control
177
Data Cache Management Instruction Summary
177
Dcbt and Dcbtst Operation
178
Cache Locking Mechanisms
179
Data Cache Parity Operations
183
Simulating Data Cache Parity Errors for Software Testing
183
Data Cache Disable
183
Table 5-5. XUCR Bits
183
6 Memory Management
185
MMU Overview
185
Support for Power ISA MMU Architecture
186
Page Identification
186
Virtual Address Formation
187
Address Space Identifier Convention
187
Exclusion Range (X-Bit) Operation
188
TLB Match Process
189
Figure 6-1. Virtual Address to TLB Entry Match Process
190
Address Translation
191
Table 6-1. Page Size and Effective Address to EPN Comparison
191
Figure 6-2. Effective-To-Real Address Translation Flow
192
Table 6-2. Page Size and Real Address Formation
192
Access Control
193
Execute Access
193
Write Access
193
Read Access
194
Access Control Applied to Cache Management Instructions
194
Table 6-3. Access Control Applied to Cache Management Instructions
194
Storage Attributes
195
Write-Through (W)
196
Caching Inhibited (I)
196
Memory Coherence Required (M)
196
Guarded (G)
196
Endian (E)
197
User-Definable (U0-U3)
197
Supported Storage Attribute Combinations
197
Aliasing
197
Translation Lookaside Buffer
198
Table 6-4. TLB Entry Fields
199
Effective to Real Address Translation Arrays
203
ERAT Context Synchronization
204
ERAT Reset Behavior
205
Atomic Update of ERAT Entries
205
ERAT LRU Round-Robin Replacement Mode
205
ERAT LRU Replacement Watermark
206
ERAT (TLB Lookaside Information) Coherency and Back-Invalidation
206
ERAT External PID (EPID) Context and Instruction Dependencies
208
Table 6-5. ERAT Class Field Reload Value for UTLB Hits
208
Logical to Real Address Translation Array (Category E.HV.LRAT)
209
Table 6-6. LRAT Entry Fields
211
TLB Management Instructions (Architected)
212
Table 6-7. TLB Management Instruction Privilege Levels
212
TLB Read and Write Instructions (Tlbre and Tlbwe)
213
Table 6-8. TLB Congruence Class Hashing Function (of EPN Address Bits)
214
TLB Search and Reserve Instruction (Tlbsrx.)
215
TLB Search Instruction (Tlbsx[.])
215
TLB Invalidate Virtual Address (Indexed) Instruction (Tlbivax)
216
Table 6-9. Supported EPN[27:51] Field Values in Downbound TLBIVAX Request
218
TLB Invalidate Local (Indexed) Instruction (Tlbilx)
218
TLB Sync Instruction (Tlbsync)
218
ERAT Management Instructions (Non-Architected)
219
ERAT Read and Write Instructions (Eratre and Eratwe)
219
Table 6-10. ERAT Management Instruction Privilege Levels
219
ERAT Search Instruction (Eratsx[.])
220
Figure 6-3. ERAT Entry Word Definitions
220
ERAT Invalidate Virtual Address (Indexed) Instruction (Erativax)
221
Table 6-11. Summary of Supported IS Field Values in ERATIVAX
222
ERAT Invalidate Local (Indexed) Instruction (Eratilx)
224
32-Bit Mode Memory Management Behavior
224
Table 6-12. Supported EPN[27:51] Field Values in Downbound Erativax Request
224
32-Bit Mode TLB Read and Write Instructions (Tlbre and Tlbwe)
225
32-Bit Mode TLB Search and Reserve Instruction (Tlbsrx.)
225
32-Bit Mode TLB Search Instruction (Tlbsx[.])
225
32-Bit Mode ERAT Read and Write Instructions (Eratre and Eratwe)
226
32-Bit Mode TLB Invalidate Local (Indexed) Instruction (Tlbilx)
226
32-Bit Mode TLB Invalidate Virtual Address (Indexed) Instruction (Tlbivax)
226
32-Bit Mode TLB Sync Instruction (Tlbsync)
226
32-Bit Mode ERAT Invalidate Virtual Address (Indexed) Instruction (Erativax)
227
32-Bit Mode ERAT Search Instruction (Eratsx[.])
227
Figure 6-4. ERAT Entry Word Definitions for 32-Bit Mode
227
32-Bit Mode ERAT Invalidate Local (Indexed) Instruction (Eratilx)
228
Page Reference and Change Status Management
228
TLB and ERAT Parity Operations
229
Parity Errors Generated from Tlbre or Eratre
230
Simulating TLB and ERAT Parity Errors for Software Testing
231
ERAT-Only Mode Operation
232
TLB Reservations and TLB Write Conditional (Category E.TWC)
232
Table 6-13. TLB Reservation Fields
233
Hardware Page Table Walking (Category E.PT)
237
Searching the TLB for Direct and Indirect Entries
237
Indirect TLB Entry Page and Sub
238
Figure 6-5. Indirect Entry to Page Table Size Calculation
238
Hardware Page Table Entry Format
239
Figure 6-6. Page Table Entry Format
239
Calculation of Hardware Page Table Entry Real Address
240
Hardware Page Table Errors and Exceptions
241
Hardware Page Table Storage Control Attributes
241
TLB Update after Hardware Page Table Translation
242
Table 6-14. TLB Update after Page Table Translation
242
Storage Control Registers (Architected)
244
Process ID Register (PID)
244
Logical Partition ID Register (LPIDR)
245
External PID Load Context (EPLC) Register
246
External PID Store Context (EPSC) Register
247
MMU Assist Register 0 (MAS0)
248
MMU Assist Register 1 (MAS1)
249
MMU Assist Register 2 (MAS2)
251
MMU Assist Register 2 Upper (MAS2U)
252
MMU Assist Register 3 (MAS3)
253
MMU Assist Register 4 (MAS4)
255
MMU Assist Register 5 (MAS5)
256
MMU Assist Register 6 (MAS6)
257
MMU Assist Register 7 (MAS7)
258
MMU Assist Register 8 (MAS8)
259
MAS0_MAS1 Register
260
MAS5_MAS6 Register
261
MAS7_MAS3 Register
262
MAS8_MAS1 Register
263
MMU Configuration Register (MMUCFG)
264
MMU Control and Status Register 0 (MMUCSR0)
265
TLB 0 Configuration Register (TLB0CFG)
266
TLB 0 Page Size Register (TLB0PS)
268
LRAT Configuration Register (LRATCFG)
269
LRAT Page Size Register (LRATPS)
270
Embedded Page Table Configuration Register (EPTCFG)
272
Logical Page Exception Register (LPER)
273
Logical Page Exception Register Upper (LPERU)
274
MAS Register Update Summary
275
Table 6-15. MAS Register Update Summary
275
Storage Control Registers (Non-Architected)
277
Memory Management Unit Control Register 0 (MMUCR0)
277
Memory Management Unit Control Register 1 (MMUCR1)
280
Memory Management Unit Control Register 2 (MMUCR2)
287
Memory Management Unit Control Register 3 (MMUCR3)
290
7 CPU Interrupts and Exceptions
293
Overview
293
Directed Interrupts
293
Interrupt Classes
294
Asynchronous Interrupts
294
Synchronous Interrupts
294
Synchronous, Precise Interrupts
294
Synchronous, Imprecise Interrupts
295
Critical and Noncritical Interrupts
296
Machine Check Interrupts
296
Interrupt Processing
297
Partially Executed Instructions
299
Interrupt Processing Registers
300
Register Mapping
301
Machine State Register (MSR)
301
Table 7-1. Register Mapping in Guest State
301
Machine State Register Protect (MSRP)
303
Embedded Processor Control Register (EPCR)
304
Save/Restore Register 0 (SRR0)
305
Save/Restore Register 1 (SRR1)
306
Guest Save/Restore Register 0 (GSRR0)
308
Guest Save/Restore Register 1 (GSRR1)
308
Critical Save/Restore Register 0 (CSRR0)
310
Critical Save/Restore Register 1 (CSRR1)
311
Machine Check Save/Restore Register 0 (MCSRR0)
313
Machine Check Save/Restore Register 1 (MCSRR1)
313
Data Exception Address Register (DEAR)
315
Guest Data Exception Address Register (GDEAR)
316
Table 7-2. Interrupt Types and Associated Offsets
316
Interrupt Vector Prefix Register (IVPR)
318
Guest Interrupt Vector Prefix Register (GIVPR)
318
Exception Syndrome Register (ESR)
318
Guest Exception Syndrome Register (GESR)
320
Machine Check Status Register (MCSR)
322
Interrupt Definitions
323
Table 7-3. Interrupt and Exception Types
323
Critical Input Interrupt
326
Machine Check Interrupt
327
Machine Check Status Register (MCSR)
329
Data Storage Interrupt
330
Instruction Storage Interrupt
334
External Input Interrupt
336
Alignment Interrupt
337
Program Interrupt
338
Floating-Point Unavailable Interrupt
342
System Call Interrupt
342
Auxiliary Processor Unavailable Interrupt
343
Decrementer Interrupt
343
Fixed-Interval Timer Interrupt
344
Watchdog Timer Interrupt
344
Data TLB Error Interrupt
345
Instruction TLB Error Interrupt
346
Debug Interrupt
347
Vector Unavailable Interrupt
347
Processor Doorbell Interrupt
351
Guest Processor Doorbell Interrupt
352
Processor Doorbell Critical Interrupt
352
Guest Processor Doorbell Critical Interrupt
353
Guest Processor Doorbell Machine Check Interrupt
353
Embedded Hypervisor Privilege Interrupt
354
Embedded Hypervisor System Call Interrupt
354
LRAT Error Interrupt
355
Performance Monitor Interrupt
356
User Decrementer Interrupt
356
Processor Messages
357
Processor Message Handling and Filtering
357
Doorbell Message Filtering
358
Doorbell Critical Message Filtering
359
Guest Doorbell Message Filtering
360
Guest Doorbell Critical Message Filtering
360
Guest Doorbell Machine Check Message Filtering
361
Interrupt Ordering and Masking
362
Interrupt Ordering Software Requirements
363
Interrupt Order
364
Exception Priorities
365
Exception Priorities for Integer Load, Store, and Cache Management Instructions
366
Exception Priorities for Floating-Point Load and Store Instructions
367
Exception Priorities for Floating-Point Instructions (Other)
367
Exception Priorities for Privileged Instructions
368
Exception Priorities for Trap Instructions
368
Exception Priorities for System Call Instruction
368
Exception Priorities for Branch Instructions
369
Exception Priorities for Return from Interrupt Instructions
369
Exception Priorities for Reserved Instructions
369
Exception Priorities for All Other Instructions
370
8 FU Interrupts and Exceptions
371
Floating-Point Exceptions
371
Exceptions List
372
Table 8-1. Invalid Operation Exception Categories
372
Table 8-2. MSR[FE0, FE1] Modes
374
Floating-Point Interrupts
375
Floating-Point Unavailable Interrupt
375
Floating-Point Assist Interrupt
375
Floating-Point Exception Behavior
375
Invalid Operation Exception
375
Action
376
Table 8-3. Invalid Operation Exceptions
376
Zero Divide Exception
377
Action
377
Overflow Exception
378
Action
378
Underflow Exception
379
Action
379
Inexact Exception
380
Action
380
Exception Priorities for Floating-Point Load and Store Instructions
380
Exception Priorities for Other Floating-Point Instructions
381
Qnan
381
Table 8-4. Qnan Result
381
Updating Fprs on Exceptions
382
Floating-Point Status and Control Register (FPSCR)
382
Table 8-5. FPSCR[FPRF] Result Flags
382
Table 8-6. Floating-Point Status and Control Register (FPSCR)
383
Updating the Condition Register
385
Condition Register (CR)
385
Updating CR Fields
386
Generation of Qnan Results
386
Table 8-7. Bit Encodings for a CR Field
386
9 Timer Facilities
387
Figure 9-1. Relationship of Timer Facilities to the Time Base
387
Time Base
388
Table 9-1. Timebase Register (TB)
388
Table 9-2. Timebase Lower Register (TBL)
388
Reading the Time Base
389
Writing the Time Base
389
Decrementer (DEC)
389
Table 9-3. Timebase Upper Register (TBU)
389
Table 9-4. Decrementer Register (DEC)
390
Table 9-5. Decrementer Auto-Reload Register (DECAR)
390
User Decrementer (UDEC)
391
Fixed Interval Timer (FIT)
392
Table 9-6. Fixed Interval Timer Period Selection
392
Watchdog Timer
393
Table 9-7. Watchdog Timer Period Selection
393
Table 9-8. Watchdog Timer Exception Behavior
394
Timer Control Register (TCR)
395
Figure 9-2. Watchdog State Machine
395
Timer Status Register (TSR)
397
Freezing the Timer Facilities
397
Selection of the Timer Clock Source
398
Synchronizing Timers Across Multiple Cores
398
10 Debug Facilities
399
Implications of Hypervisor on Debug Controls
399
Support for Development Tools
399
Debug Modes
399
Internal Debug Mode
400
External Debug Mode
400
Table 10-1. PCCR0[DBA] (Debug Action) Definition Per Thread
400
Trace Debug Mode
401
Debug Events
402
Instruction Address Compare (IAC) Debug Event
402
Table 10-2. Debug Events
402
IAC Debug Event Fields
403
IAC Debug Event Processing
404
Data Address Compare (DAC) Debug Event
405
DAC Debug Event Fields
405
DAC Debug Event Processing
407
DAC Debug Events Applied to Instructions that Result in Multiple Storage Accesses
407
DAC Debug Events Applied to Various Instruction Types
408
Data Value Compare (DVC) Debug Event
409
DVC Debug Event Fields
409
DVC Debug Event Processing
410
DVC Debug Events Applied to Instructions that Result in Multiple Storage Accesses
410
DVC Debug Events Applied to Various Instruction Types
411
DVC Debug Events Applied to Floating-Point Loads and Stores
411
Instruction Complete (ICMP) Debug Event
411
Branch Taken (BRT) Debug Event
412
Trap (TRAP) Debug Event
412
Return (RET) Debug Event
412
Interrupt (IRPT) Debug Event
413
Unconditional Debug Event (UDE)
414
Instruction Value Compare (IVC) Debug Event
414
Debug Event Summary
415
Debug Reset
415
Debug Timer Freeze
415
Debug Registers
415
Table 10-3. Debug Event Summary
415
Debug Control Register 0 (DBCR0)
416
Debug Control Register 1 (DBCR1)
418
Debug Control Register 2 (DBCR2)
419
Debug Control Register 3 (DBCR3)
421
Debug Status Register (DBSR)
422
Debug Status Register Write Register (DBSRWR)
423
Instruction Address Compare Registers (IAC1-IAC4)
425
Data Address Compare Registers (DAC1-DAC2)
426
Data Value Compare Registers (DVC1-DVC2)
427
Instruction Address Register (IAR)
428
Instruction Match Mask Registers (IMMR)
429
Instruction Match Registers (IMR)
429
Instruction Stuffing
429
Ram Mode Overview
430
Ram Register Descriptions
431
Table 10-4. Ram Instruction and Command Register (RAMIC)
431
Table 10-5. Ram Instruction Register (RAMI)
431
Table 10-6. Ram Command Register (RAMC)
431
Table 10-7. Ram Data Register (RAMD)
433
Table 10-8. Ram Data Register High (RAMDH)
433
Example Ram Mode Procedures
434
SPR Read/Write Using GPR as Temporary Storage
434
Table 10-9. Ram Data Register Low (RAMDL)
434
Using Microcode Scratch Registers as Temporary Storage
435
Supported Ram Instructions
436
Direct Access to I-Cache and D-Cache Directories
437
General Read D-Cache Directory Sequence for L1 D-Cache
437
Instruction Unit Debug Register 0 (IUDBG0)
438
Instruction Unit Debug Register 1 (IUDBG1)
439
Instruction Unit Debug Register 2 (IUDBG2)
439
Execution Unit Debug Register 0 (XUDBG0)
440
Execution Unit Debug Register 1 (XUDBG1)
440
Execution Unit Debug Register 2 (XUDBG2)
441
Thread Control and Status
441
Table 10-10. Thread Control and Status Register (THRCTL)
442
Using THRCTL Register to Instruction Step Thread 0
443
Using THRCTL Register to Start Thread 0
443
Using THRCTL Register to Stop Thread 0
443
PC Configuration Register 0 (PCCR0)
444
Table 10-11. PC Configuration Register 0 (PCCR0)
444
Trace and Trigger Bus
445
Trace and Trigger Bus Overview
445
Unit Level Trace and Trigger Bus Implementation
446
Figure 10-1. Pass-Through Trace and Trigger Bus Overview
446
Debug Select Registers
447
Figure 10-2. Trace and Trigger Bus Unit Description
447
11 Performance Events and Event Selection
449
Event Bus Overview
449
Figure 11-1. Performance Event Selection Overview
449
A2 Core Event Bus and PC Unit Controls
450
Enabling Performance Event and Trace Bus Latches
450
Performance Analysis Operating Modes
450
Core Performance Event Selection to External Event Bus
450
Figure 11-2. Core Event Multiplexer Description
451
Table 11-1. Core Event Multiplexer to External Event Bus
451
Core Event Select Register (CESR)
452
Unit Level Performance Event Selection
454
Unit Event Multiplexer Component
454
Performance Monitor Event Tags and Count Modes
456
Figure 11-3. A2 Common Unit Event Multiplexer Component
456
Unit Performance Event Tables
457
Table 11-2. Performance Monitor Event Tags
457
Unit Performance Event Tables
458
FU Performance Events Table
458
IU Performance Events Table
458
Table 11-3. FU Performance Events Table
458
Table 11-4. IU Performance Events Table
458
XU Performance Events Table
460
Table 11-5. XU Performance Events Table
460
LSU Performance Events Table
462
Table 11-6. LSU Performance Events Table
462
MMU Performance Events Table
465
Table 11-7. MMU Performance Events Table
465
Unit Event Select Registers
466
FU Event Select Register (AESR)
466
IU Event Select Registers
468
XU Event Select Registers
470
LSU Event Select Registers
472
MMU Event Select Registers
474
A2 Support for Core Instruction Trace
476
Instruction Trace Mode Setup
476
Instruction Trace Record Data
476
Instruction Trace Record Formats and Ordering
477
Table 11-8. Core Instruction Trace Data and Control Signals
477
Table 11-9. First Instruction Trace Record Format
477
Debug Bus Control When in Instruction Trace Mode
478
Table 11-10. Format of Subsequent Instruction Trace Records
478
Table 11-11. Trace Record Type Decode and Instruction Trace Record Ordering
478
FU Trace Records
479
XU Debug Bus Control
479
A2 Support for Instruction Sampling
479
12 Implementation Dependent Instructions
481
Miscellaneous
481
Attention (Attn)
481
TLB Management Instructions
482
TLB Read Entry (Tlbre)
482
TLB Write Entry (Tlbwe)
484
TLB Search Indexed (Tlbsx[.])
486
TLB Search and Reserve Indexed (Tlbsrx.)
488
TLB Invalidate Virtual Address Indexed (Tlbivax)
490
TLB Invalidate Local Indexed (Tlbilx)
493
ERAT Management Instructions
496
ERAT Read Entry (Eratre)
496
ERAT Write Entry (Eratwe)
499
ERAT Search Indexed (Eratsx[.])
502
ERAT Invalidate Virtual Address Indexed (Erativax)
504
ERAT Invalidate Local Indexed (Eratilx)
507
Software Transactional Memory Instructions
509
Load Doubleword and Watch Indexed X-Form (Ldawx.)
510
Watch Check All X-Form (Wchkall)
511
Watch Clear X-Form (Wclr)
512
Coprocessor Instructions
513
Initiate Coprocessor Store Word Indexed (Icswx[.])
515
General Registers
516
Initial Execution
517
Figure 12-1. ICSWX (RS 32:63 ) Coprocessor-Command Word
517
Initiate Coprocessor Store Word External Process ID Indexed (Icswepx[.])
518
Execution
518
Figure 12-2. Coprocessor Command Word (CCW)
518
Condition Register 0
519
Coprocessor-Request Block
520
Available Coprocessor Register (ACOP)
520
Figure 12-3. Generic Coprocessor-Request Block
520
Hypervisor Available Coprocessor Register (HACOP)
521
Data Cache Block Flush
523
Data Cache Block Flush (Dcbf)
523
Data Cache Block Flush by External PID
524
Data Cache Block Flush by External PID (Dcbfep)
524
13 Power Management Methods
525
Chip Power Management Controls
525
Power-Saving Instructions
525
Power-Saving Instruction Sequence
526
14 Register Summary
529
Register Categories
529
Table 14-1. Register Summary
529
Reserved Fields
535
Unimplemented Sprs
535
Device Control Registers
535
Alphabetical Register Listing
537
ACOP - Available Coprocessor
538
AESR - AXU Event Select Register
539
CCR0 - Core Configuration Register 0
541
CCR1 - Core Configuration Register 1
542
CCR2 - Core Configuration Register 2
543
CCR3 - Core Configuration Register 3
545
CESR - Core Event Select Register
546
CR - Condition Register
549
CSRR0 - Critical Save/Restore Register 0
550
CSRR1 - Critical Save/Restore Register 1
551
CTR - Count Register
553
DAC1 - Data Address Compare 1
554
DAC2 - Data Address Compare 2
555
DAC3 - Data Address Compare 3
556
DAC4 - Data Address Compare 4
557
DBCR0 - Debug Control Register 0
558
DBCR1 - Debug Control Register 1
560
DBCR2 - Debug Control Register 2
562
DBCR3 - Debug Control Register 3
564
DBSR - Debug Status Register
565
DBSRWR - Debug Status Register Write Register
567
DEAR - Data Exception Address Register
569
DEC - Decrementer
570
DECAR - Decrementer Auto-Reload
571
DVC1 - Data Value Compare 1
572
DVC2 - Data Value Compare 2
573
EPCR - Embedded Processor Control Register
574
EPLC - External Process ID Load Context
576
EPSC - External Process ID Store Context
577
EPTCFG - Embedded Page Table Configuration Register
578
ESR - Exception Syndrome Register
579
GDEAR - Guest Data Exception Address Register
581
GESR - Guest Exception Syndrome Register
582
GIVPR - Guest Interrupt Vector Prefix Register
584
GPIR - Guest Processor ID Register
585
GSPRG0 - Guest Software Special Purpose Register 0
586
GSPRG1 - Guest Software Special Purpose Register 1
587
GSPRG2 - Guest Software Special Purpose Register 2
588
GSPRG3 - Guest Software Special Purpose Register 3
589
GSRR0 - Guest Save/Restore Register 0
590
GSRR1 - Guest Save/Restore Register 1
591
HACOP - Hypvervisor Available Coprocessor
593
IAC1 - Instruction Address Compare 1
594
IAC2 - Instruction Address Compare 2
595
IAC3 - Instruction Address Compare 3
596
IAC4 - Instruction Address Compare 4
597
IAR - Instruction Address Register
598
IESR1 - IU Event Select Register 1
599
IESR2 - IU Event Select Register 2
600
IMMR - Instruction Match Mask Register
601
IMPDEP0 - Implementation Dependent Region 0
602
IMPDEP1 - Implementation Dependent Region 1
603
IMR - Instruction Match Register
604
IUCR0 - Instruction Unit Configuration Register 0
605
IUCR1 - Instruction Unit Configuration Register 1
606
IUCR2 - Instruction Unit Configuration Register 2
607
IUDBG0 - Instruction Unit Debug Register 0
608
IUDBG1 - Instruction Unit Debug Register 1
609
IUDBG2 - Instruction Unit Debug Register 2
610
IULFSR - Instruction Unit LFSR
611
IULLCR - Instruction Unit Live Lock Control Register
612
IVPR - Interrupt Vector Prefix Register
613
LPER - Logical Page Exception Register
614
LPERU - Logical Page Exception Register (Upper)
615
LPIDR - Logical Partition ID Register
616
LR - Link Register
617
LRATCFG - LRAT Configuration Register
618
LRATPS - LRAT Page Size Register
619
MAS0 - MMU Assist Register 0
620
MAS0_MAS1 - MMU Assist Registers 0 and 1
621
MAS1 - MMU Assist Register 1
622
MAS2 - MMU Assist Register 2
624
MAS2U - MMU Assist Register 2 (Upper)
625
MAS3 - MMU Assist Register 3
626
MAS4 - MMU Assist Register 4
628
MAS5 - MMU Assist Register 5
629
MAS5_MAS6 - MMU Assist Registers 5 and 6
630
MAS6 - MMU Assist Register 6
631
MAS7 - MMU Assist Register 7
632
MAS7_MAS3 - MMU Assist Registers 7 and 3
633
MAS8 - MMU Assist Register 8
634
MAS8_MAS1 - MMU Assist Registers 8 and 1
635
MCSR - Machine Check Syndrome Register
636
MCSRR0 - Machine Check Save/Restore Register 0
638
MCSRR1 - Machine Check Save/Restore Register 1
639
MESR1 - MMU Event Select Register 1
641
MESR2 - MMU Event Select Register 2
642
MMUCFG - MMU Configuration Register
643
MMUCR0 - Memory Management Unit Control Register 0
644
MMUCR1 - Memory Management Unit Control Register 1
645
MMUCR2 - Memory Management Unit Control Register 2
647
MMUCR3 - Memory Management Unit Control Register 3
649
MMUCSR0 - MMU Control and Status Register 0
650
MSR - Machine State Register
651
MSRP - Machine State Register Protect
653
PID - Process ID
654
PIR - Processor ID Register
655
PPR32 - Program Priority Register
656
PVR - Processor Version Register
657
SPRG0 - Software Special Purpose Register 0
658
SPRG1 - Software Special Purpose Register 1
659
SPRG2 - Software Special Purpose Register 2
660
SPRG3 - Software Special Purpose Register 3
661
SPRG4 - Software Special Purpose Register 4
662
SPRG5 - Software Special Purpose Register 5
663
SPRG6 - Software Special Purpose Register 6
664
SPRG7 - Software Special Purpose Register 7
665
SPRG8 - Software Special Purpose Register 8
666
SRR0 - Save/Restore Register 0
667
SRR1 - Save/Restore Register 1
668
TB - Timebase
670
TBL - Timebase Lower
671
TBU - Timebase Upper
672
TCR - Timer Control Register
673
TENC - Thread Enable Clear Register
675
TENS - Thread Enable Set Register
676
TENSR - Thread Enable Status Register
677
TIR - Thread Identification Register
678
TLB0CFG - TLB 0 Configuration Register
679
TLB0PS - TLB 0 Page Size Register
680
TRACE - Hardware Trace Macro Control Register
681
TSR - Timer Status Register
682
UDEC - User Decrementer
683
VRSAVE - Vector Register Save
684
XER - Fixed Point Exception Register
685
XESR1 - XU Event Select Register 1
686
XESR2 - XU Event Select Register 2
687
XESR3 - XU Event Select Register 3
688
XESR4 - XU Event Select Register 4
689
XUCR0 - Execution Unit Configuration Register 0
690
XUCR1 - Execution Unit Configuration Register 1
693
XUCR2 - Execution Unit Configuration Register 2
694
XUCR3 - Execution Unit Configuration Register 3
695
XUCR4 - Execution Unit Configuration Register 4
696
XUDBG0 - Execution Unit Debug Register 0
697
XUDBG1 - Execution Unit Debug Register 1
698
XUDBG2 - Execution Unit Debug Register 2
699
15 SCOM Accessible Registers
701
Serial Communications (SCOM) Description
701
Figure 15-1. Chip Level Infrastructure Example to Access SCOM Registers in the A2 Core
702
Figure 15-2. Principle Timing of Information Carried on CCH and DCH
702
SCOM Register Summary
703
Read and Write Access Methods
703
Reset with and Mask
703
Set with or Mask
703
SCOM Register Summary Table
703
Table 15-1. SCOM Register Summary
703
Alphabetical Register Listing
705
AXU Debug Select Register (ABDSR)
705
Error Injection Register (ERRINJ)
706
Table 15-2. Error Injection Register
706
Fault Isolation Register 0 and Associated Registers
707
Table 15-3. Fault Isolation Register 0 (FIR0)
708
Table 15-4. FIR0 Action1 Register (FIR0A1)
709
Table 15-5. FIR0 Mask Register (FIR0M)
710
Fault Isolation Register 1 and Associated Registers
711
Table 15-6. FIR0 and FIR1 Registers (Read Only)
711
Table 15-7. Fault Isolation Register 1
711
Table 15-8. FIR1 Action0 Register (FIR1A0)
713
Table 15-9. FIR1 Action1 Register (FIR1A1)
714
Table 15-10. FIR1 Mask Register (FIR1M)
714
Fault Isolation Register 2 and Associated Registers
716
Table 15-11. Fault Isolation Register 2 (FIR2)
716
Table 15-12. FIR2 Action0 Register (FIR2A0)
717
Table 15-13. FIR2 Action1 Register (FIR2A1)
718
IU Debug Select Register (IDSR)
720
Table 15-14. FIR2 Mask Register (FIR2M)
720
MMU/PC Debug Select Register (MPDSR)
723
PC Configuration Register 0 (PCCR0)
725
Table 15-15. PC Configuration Register 0 (PCCR0)
725
Ram Data Registers (RAMD, RAMDH, RAMDL)
726
Table 15-16. Ram Data Register (RAMD)
726
Table 15-17. Ram Data Register High (RAMDH)
726
Ram Instruction and Command Registers (RAMC, RAMI, RAMIC)
727
Table 15-18. Ram Data Register Low (RAMDL)
727
Table 15-19. Ram Command Register (RAMC)
727
Special Attention Register (SPATTN)
729
Table 15-20. Ram Instruction Register (RAMI)
729
Table 15-21. Ram Instruction and Command Register (RAMIC)
729
Table 15-22. Special Attention Register
729
Thread Control and Status Register (THRCTL)
730
Table 15-23. Thread Control and Status Register (THRCTL)
730
XU Debug Select Register1 (XDSR1)
731
XU Debug Select Register2 (XDSR2)
734
Appendix A. Processor Instruction Summary
737
Instruction Formats
737
Implemented Instructions Sorted by Mnemonic
737
Table A-1. A2 Core Instructions by Mnemonic
738
Appendix B. FU Instruction Summary
756
FU Instructions Sorted by Opcode
756
Table B-1. FU Instructions by Opcode
756
Appendix C. Debug and Trigger Groups
761
Unit Debug Multiplexer Component
761
Debug Multiplexer Component Ordering on the Ramp Bus
761
Figure C-1. Debug Multiplexer Component
761
Example Debug Multiplexer Configuration Settings
762
Multiplexer Configuration for Trace/Trigger Signals from a Single Unit
762
Multiplexer Configuration for Trace/Trigger Signals from Multiple Units
762
AXU Debug Select Register and Debug Group Tables
763
Table C-1. AXU Debug Select Register (ADBSR)
763
Table C-2. AXU Debug Multiplexer Debug and Trigger Groups
764
IU Debug Select Register and Debug Group Tables
766
Table C-3. IU Debug Select Register (IDSR)
766
Table C-4. IU Debug Mux1 Debug and Trigger Groups
768
Table C-5. IU Debug Mux2 Debug and Trigger Groups
774
MMU and PC Debug Select Register and Debug Group Tables
778
Table C-6. MMU and PC Debug Select Register (MPDSR)
778
Table C-7. MMU Debug Multiplexer Debug and Trigger Groups
781
Table C-8. PC Debug Multiplexer Debug and Trigger Groups
796
XU Debug Select Register1 and Debug Group Tables
798
Table C-9. XU Debug Select Register1 (XDSR1)
798
Table C-10. XU Debug Mux1 Debug and Trigger Groups
800
Table C-11. XU Debug Mux2 Debug and Trigger Groups
807
XU Debug Select Register2 and Debug Group Tables
817
Table C-12. XU Debug Select Register2 (XDSR2)
817
Table C-13. XU Debug Mux3 Debug and Trigger Groups
819
Table C-14. XU Debug Mux4 Debug and Trigger Groups
830
Appendix D. Instruction Execution Performance and Code Optimizations
833
A2 Pipeline Overview
833
Figure D-1. A2 Pipeline Structure
833
Arbitration Stages
834
Flush Stages
835
Stall Stages
835
Fetch
835
Figure D-2. Instruction Cache
836
Fetch Arbitration
837
Instruction Cache Access and Alignment
837
Instruction Cache Misses
837
Next Instruction Fetch Address Computation
837
Branches and Branch Prediction
838
Figure D-3. Branch Prediction
839
Branch Direction Prediction and the Branch History Table (BHT)
840
Branch Target Prediction
840
Taken-Branch Redirection
840
Branch Resolution and Mispredictions
841
I-ERAT Misses
838
Instruction Buffer Operation
838
Instruction Issue Operation
841
Instruction Pair Execution Performance Rules
841
Defining Latency, Penalty, and Execution Time
841
Unified CR Dependency
842
General CR Operand Dependency
842
Move to Condition Register Fields (Mtcrf) Instruction Dependency
843
Move from Condition Register (Mfcr) Instruction Dependency
843
Move from and Move to Special Purpose Register (Mfspr) Dependency
843
Move from Machine State Register (Mfmsr) Dependency
843
Multiply Dependency
843
Divide Dependency
844
Store Word Conditional Indexed (Stwcx.) Instruction Dependency
844
Table D-1. Multiply Instructions and Their Associated Latency
844
Table D-2. Divide Instructions and Their Associated Latency
844
TLB Management Instruction Dependencies
845
Processor Control Instruction Operation
845
Load Instruction Dependency
846
String/Multiple Operations
846
Load-And-Reserve and Store-Conditional Instructions
846
Storage Synchronization Operations
847
Loads, Stores, and Data Cache Organization
847
Overview
847
Table D-3. SRAM Operations
847
Loads
848
Stores
848
Load Miss Queue
849
L2 Command Arbitration
849
D-ERAT Misses
849
Back Invalidations
849
Address Alignment
849
Interrupt Effects
850
Floating-Point Instruction Handling
850
Figure D-4. FU Dataflow
851
Denormalized Operands
852
Denormalized Results
852
Floating-Point Load Dependency
852
Floating-Point Store Data Dependency
852
General FPR Operand Dependency
852
Not a Number (Nan) Cases
852
Floating-Point Divide Dependency
853
Floating-Point Square Root Dependency
853
General CR Operand Dependency
853
Move to Condition Register from Floating-Point Status and Control Register Dependency
853
Floating-Point Record Forms
854
Move to FPSCR Fields and FPSCR Dependencies
854
Interrupt Conditions
854
Table D-4. Interrupt Conditions
854
Flush Conditions
858
Table D-5. Flush Conditions
858
Appendix E. Programming Examples
861
Wait Instruction with Fast Wakeup for Power Savings
861
Floating-Point Conversions
861
Conversion from Floating-Point Number to Signed Integer Word
861
Conversion from Floating-Point Number to Unsigned Integer Word
862
Floating-Point Selection
862
Comparison to Zero
863
Minimum and Maximum
863
Simple If-Then-Else Constructions
863
Notes
863
Advertisement
Advertisement
Related Products
IBM Advanced SerialRAID/X
IBM AIX HACMP
IBM ATA 133
IBM AS/400e 270
IBM AS/400e 820
IBM A21m - ThinkPad 2628 - PIII 800 MHz
IBM A21e - ThinkPad 2628 - Celeron 600 MHz
IBM NetVista A21
IBM NetVista A22
IBM THINKPAD A20M
IBM Categories
Server
Desktop
Storage
Laptop
Monitor
More IBM Manuals
Login
Sign In
OR
Sign in with Facebook
Sign in with Google
Upload manual
Upload from disk
Upload from URL