Fujitsu Computer Accessories Fujitsu SPARC64 V User Manual

SPARC JPS1  
Implementation Supplement:  
Fujitsu SPARC64 V  
Fujitsu Limited  
Release 1.0, 1 July 2002  
Fujitsu Limited  
4-1-1 Kamikodanaka  
Nahahara-ku, Kawasaki, 211-8588  
Japan  
Part No. 806-6755-1.0  
Download from Www.Somanuals.com. All Manuals Search And Download.  
3
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
Component Overview 4  
Execution Unit (EU) 6  
Storage Unit (SU) 7  
4. Data Formats 15  
Tick (TICK) Register 19  
Privileged Registers 19  
Trap State (TSTATE) Register 19  
Version (VER) Register 20  
Ancillary State Registers (ASRs) 20  
Registers Referenced Through ASIs 22  
i
Download from Www.Somanuals.com. All Manuals Search And Download.  
Floating-Point Deferred-Trap Queue (FQ) 24  
IU Deferred-Trap Queue 24  
Processor Pipeline 31  
Instruction Fetch Stages 31  
Issue Stages 33  
Execution Stages 33  
Completion Stages 34  
Trap-Table Entry Addresses 38  
Trap Type (TT) 38  
Details of Supported Traps 39  
Trap Processing 39  
Exception and Interrupt Descriptions 39  
SPARC V9 Implementation-Dependent, Optional Traps That Are  
Mandatory in SPARC JPS1 39  
ii  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
SPARC JPS1 Implementation-Dependent Traps 39  
8. Memory Models 41  
Overview 42  
SPARC V9 Memory Model 42  
Mode Control 42  
Synchronizing Instruction and Data Memory 42  
Read State Register 58  
SHUTDOWN (VIS I) 58  
Write State Register 59  
Deprecated Instructions 59  
Store Barrier 59  
B. IEEE Std 754-1985 Requirements for SPARC V9 61  
Traps Inhibiting Results 61  
Floating-Point Nonstandard Mode 61  
fp_exception_other Exception (ftt=unfinished_FPop) 62  
Operation Under FSR.NS = 1 65  
C. Implementation Dependencies 69  
Definition of an Implementation Dependency 69  
Hardware Characteristics 70  
Implementation Dependency Categories 70  
List of Implementation Dependencies 70  
Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F. Chapter  
Contents  
iii  
E. Opcode Maps 83  
Reset, Disable, and RED_state Behavior 91  
Internal Registers and ASI operations 92  
I/ D TLB Data In, Data Access, and Tag Read Registers 93  
MMU Bypass 104  
K. Programming with the Memory Models 115  
L. Address Space Identifiers 117  
SPARC64 V ASI Assignments 117  
Special Memory Access ASIs 119  
Barrier Assist for Parallel Processing 121  
Interface Definition 121  
ASI Registers 122  
M. Cache Organization 125  
Cache Types 125  
Level-1 Instruction Cache (L1I Cache) 126  
iv  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Cache Control/ Status Instructions 128  
Flush Level-1 Instruction Cache (ASI_FLUSH_L1I) 129  
Level-2 Cache Control Register (ASI_L2_CTRL) 130  
L2 Diagnostics Tag Read (ASI_L2_DIAG_TAG_READ) 130  
L2 Diagnostics Tag Read Registers (ASI_L2_DIAG_TAG_READ_REG) 131  
Interrupt Global Registers 136  
Interrupt-Related ASR Registers 136  
Interrupt Vector Dispatch Register 136  
Interrupt Vector Dispatch Status Register 136  
Interrupt Vector Receive Register 136  
CPU Fatal Error state 141  
Processor State after Reset and in RED_state 141  
Operating Status Register (OPSR) 146  
Hardware Power-On Reset Sequence 147  
Firmware Initialization Sequence 147  
P. Error Handling 149  
Error Classification 149  
Fatal Error 149  
Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F. Chapter  
Contents  
v
error_state Transition Error 150  
Urgent Error 150  
Restrainable Error 152  
Action and Error Control 153  
Control of Error Action (ASI_ERROR_CONTROL) 161  
Fatal Error and error_state Transition Error 163  
Action of async_data_error (ADE) Trap 168  
Instruction End-Method at ADE Trap 170  
Expected Software Handling of ADE Trap 171  
Instruction Access Errors 173  
Data Access Errors 173  
Restrainable Errors 174  
ASI_ASYNC_FAULT_STATUS (ASI_AFSR) 174  
ASI_ASYNC_FAULT_ADDR_D1 177  
ASI_ASYNC_FAULT_ADDR_U2 178  
Expected Software Handling of Restrainable Errors 179  
Handling of Internal Register Errors 181  
Register Error Handling (Excluding ASRs and ASI Registers) 181  
ASR Error Handling 182  
ASI Register Error Handling 183  
Cache Error Handling 188  
Handling of a Cache Tag Error 188  
Handling of an I1 Cache Data Error 190  
Handling of a D1 Cache Data Error 190  
Handling of a U2 Cache Data Error 192  
Automatic Way Reduction of I1 Cache, D1 Cache, and U2 Cache 193  
vi  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V • Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Handling of TLB Entry Errors 195  
Automatic Way Reduction of sTLB 196  
Handling of Extended UPA Bus Interface Error 197  
Handling of Extended UPA Address Bus Error 197  
Handling of Extended UPA Data Bus Error 197  
Trap-Related Statistics 206  
MMU Event Counters 207  
Cache Event Counters 208  
UPA Event Counters 210  
UPA PortID Register 214  
UPA Config Register 215  
S. Summary of Differences between SPARC64 V and UltraSPARC-III 219  
Bibliography 223  
General References 223  
Index 225  
Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F. Chapter  
Contents  
vii  
viii  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
1
Overview  
1.1  
Navigating the SPARC64 V  
We suggest that you approach this Implementation Supplement SPARC Joint  
Programming Specification as follows.  
1. Familiarize yourself with the SPARC64 V processor and its components by  
reading these sections:  
The SPARC64 V processor on page 2  
Processor Pipeline on page 31  
2. Study the terminology in Chapter 2, Definitions:  
3. For details of architectural changes, see the remaining chapters in this  
Implementation Supplement as your interests direct.  
For this revision, we added new appendixes: Appendix R, UPA Programmers Model,  
and Appendix S, Summary of Differences between SPARC64 V and UltraSPARC-III.  
1.2  
Fonts and Notational Conventions  
Please refer to Section 1.2 of Commonality for font and notational conventions.  
1
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
1.3  
The SPARC64 V processor  
The SPARC64 V processor is a high-performance, high-reliability, and high-integrity  
processor that fully implements the instruction set architecture that conforms to  
SPARC V9, as described in JPS1 Commonality. In addition, the SPARC64 V processor  
implements the following features:  
64-bit virtual address space and 43-bit physical address space  
Advanced RAS features that enable high-integrity error handling  
Microarchitecture for High Performance  
The SPARC64 V is an out-of-order execution superscalar processor that issues up to  
four instructions per cycle. Instructions in the predicted path are issued in program  
order and are stored temporarily in reservation stations until they are dispatched out  
of program order to appropriate execution units. Instructions commit in program  
order when no exceptional conditions occur during execution and all prior  
instructions commit (that is, the result of the instruction execution becomes visible).  
Out-of-order execution in SPARC64 V contributes to high performance.  
SPARC64 V implements a large branch history buffer to predict its instruction path.  
The history buffer is large enough to sustain a good prediction rate for large-scale  
programs such as DBMS and to support the advanced instruction fetch mechanism  
of SPARC64 V. This instruction fetch scheme predicts the execution path beyond the  
multiple conditional branches in accordance with the branch history. It then tries to  
prefetch instructions on the predicted path as much as possible to reduce the effect  
of the performance penalty caused by instruction cache misses.  
High Integration  
SPARC64 V integrates an on-board, associative, level-2 cache. The level-2 cache is  
unified for instruction and data. It is the lowest layer in the cache hierarchy.  
This integration contributes to both performance and reliability of SPARC64 V. It  
enables shorter access time and more associativity and thus contributes to higher  
performance. It contributes to higher reliability by eliminating the external  
connections for level-2 cache.  
High Reliability and High Integrity  
SPARC64 V implements the following advanced RAS features for reliability and  
integrity beyond that of ordinary microprocessors.  
2
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
1. Advanced RAS features for caches  
Strong cache error protection:  
ECC protection for D1 (Data level 1) cache data, U2 (unified level 2) cache data,  
and the U2 cache tag.  
Parity protection for I1 (Instruction level 1) cache data.  
Parity protection and duplication for the I1 cache tag and the D1 cache tag.  
Automatic correction of all types of single-bit error:  
Automatic single-bit error correction for the ECC protected data.  
Invalidation and refilling of I1 cache data for the I1 cache data parity error.  
Copying from duplicated tag for I1 cache tag and D1 cache tag parity errors.  
Dynamic way reduction while cache consistency is maintained.  
Error marking for cacheable data uncorrectable errors:  
Special error-marking pattern for cacheable data with uncorrectable errors. The  
identification of the module that first detects the error is embedded in the  
special pattern.  
Error-source isolation with faulty module identification in the special error-  
marking. The identification information enables the processor to avoid  
repetitive error logging for the same error cause.  
2. Advanced RAS features for the core  
Strong error protection:  
Parity protection for all data paths.  
Parity protection for most of software-visible registers and internal temporary  
registers.  
Parity prediction or residue checking for the accumulator output.  
Hardware instruction retry  
Support for software instruction retry (after failure of hardware instruction retry)  
Error isolation for software recovery:  
Error indication for each programmable register group.  
Indication of retryability of the trapped instruction.  
Use of different error traps to differentiate degrees of adverse effects on the  
CPU and the system.  
3. Extended RAS interface to software  
Error classification according to the severity of the effect on program execution:  
Urgent error (nonmaskable): Unable to continue execution without OS  
intervention; reported through a trap.  
Restrainable error (maskable): OS controls whether the error is reported  
through a trap, so error does not directly affect program execution.  
Isolated error indication to determine the effect on software  
Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F. Chapter 1  
Overview  
3
       
Asynchronous data error (ADE) trap for additional errors:  
Relaxed instruction end method (precise, retryable, not retryable) for the  
async_data_error exception to indicate how the instruction should end; depends  
on the executing instruction and the detected error.  
Some ADE traps that are deferred but retryable.  
Simultaneous reporting of all detected ADE errors at the error barrier for correct  
handling of retryability.  
1.3.1  
The SPARC64 V processor contains these components.  
Instruction control Unit (IU)  
Execution Unit (EU)  
Storage Unit (SU)  
Secondary cache and eXternal access Unit (SXU)  
FIGURE 1-1 illustrates the major units; the following subsections describe them.  
4
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Extended UPA Bus  
E-Unit  
SX-Unit  
UPA interface logic  
MoveOut buffer  
MoveIn buffer  
U2$  
tag  
U2$ data  
2M 4-way  
ALUs  
ALU  
Input  
Registers  
and  
Output  
Registers  
EXA  
EXB  
FLA  
FLB  
EAGA  
S-Unit interface  
S-Unit  
SX interface  
EAGB  
SX order queue Store queue  
GUB  
GPR  
FUB  
FPR  
I-TLB  
tag  
data  
D-TLB  
2048  
+ 32  
entry  
tag  
data  
2048  
+ 32  
entry  
Level-1 I cache  
128 KB, 2-way  
Level-1 D cache  
128 KB, 2-way  
I-Unit  
E-unit  
Commit stack entry  
Reservation stations  
Instruction Instruction  
PC  
nPC  
CCR  
FSR  
fetch  
buffer  
control  
logic  
pipeline  
Branch  
history  
FIGURE 1-1 SPARC64 V Major Units  
Release 1.0, 1 July 2002  
F. Chapter 1  
Overview  
5
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
1.3.2  
Instruction Control Unit (IU)  
The IU predicts the instruction execution path, fetches instructions on the predicted  
path, distributes the fetched instructions to appropriate reservation stations, and  
dispatches the instructions to the execution pipeline. The instructions are executed  
out of order, and the IU commits the instructions in order. Major blocks are defined  
in TABLE 1-1.  
TABLE 1-1  
Name  
Instruction Control Unit Major Blocks  
Description  
Instruction fetch pipeline Five stages: fetch address generation, iTLB access, iTLB match,  
I-Cache fetch, and a write to I-buffer.  
Branch history  
16K entries, 4-way set associative.  
Six entries, 32 bytes/ entry.  
Instruction buffer  
Reservation station  
Six reservation stations to hold instructions until they can  
execute: RSBRfor branch and the other control-transfer  
instructions; RSAfor load/ store instructions; RSEAand RSEBfor  
integer arithmetic instructions; RSFAand RSFBfor floating-point  
arithmetic and VIS instructions.  
Commit stack entries  
Sixty-four entries; basically one instruction/ entry, to hold  
information about instructions issued but not yet committed.  
PC, nPC, CCR, FSR  
Program-visible registers for instruction execution control.  
1.3.3  
Execution Unit (EU)  
The EU carries out execution of all integer arithmetic, logical, shift instructions, all  
floating-point instructions, and all VIS graphic instructions. TABLE 1-2 describes the  
EU major blocks.  
TABLE 1-2  
Name  
Execution Unit Major Blocks  
Description  
General register (gr) renaming  
register file (GUB: gr update  
buffer)  
Thirty-two entries, 8 read ports, 2 write ports  
Gr architecture register file (GPR) 160 entries, 1 read port, 2 write ports  
Floating-point (fr) renaming  
register file (FUB: fr update  
buffer)  
Thirty-two entries, 8 read ports, 2 write ports  
Fr architecture register file (FPR) Thirty-two entries,  
6 read ports, 2 write ports  
EU control logic  
Controls the instruction execution stages: instruction  
selection, register read, and execution.  
6
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
TABLE 1-2  
Name  
Execution Unit Major Blocks (Continued)  
Description  
Interface registers  
Input/ output registers to other units.  
Two integer execution pipelines 64-bit ALU and shifters.  
(EXA, EXB)  
Two floating-point and graphics Each floating-point execution pipeline can execute floating  
execution pipelines (FLA, FLB) point multiply, floating point add/ sub, floating-point  
multiply and add, floating point div/ sqrt, and floating-  
point graphics instruction.  
Two virtual address adders for  
memory access pipeline (EAGA,  
EAGB)  
Two 64-bit virtual addresses for load/ store.  
1.3.4  
Storage Unit (SU)  
The SU handles all sourcing and sinking of data for load and store instructions.  
TABLE 1-3 describes the SU major blocks.  
TABLE 1-3  
Name  
Storage Unit Major Blocks  
Description  
Instruction level-1 cache  
Data level-1 cache  
128-Kbyte, 2-way associative, 64-byte line; provides low latency  
instruction source  
128-Kbyte, 2-way associative, 64-byte line, writeback; provides  
the low latency data source for loads and stores.  
Instruction Translation  
Buffer  
1024 entries, 2-way associative TLB for 8-Kbyte pages,  
1
1024 entries, 2-way associative TLB for 4-Mbyte pages ,  
32 entries, fully associative TLB for unlocked 64-Kbyte, 512-  
Kbyte, 4-Mbyte1 pages and locked pages in all sizes.  
Data Translation Buffer  
1024 entries, 2-way associative TLB for 8-Kbyte pages,  
1024 entries, 2-way associative TLB for 4-Mbyte pages1,  
32 entries, fully associative TLB for unlocked 64-Kbyte, 512-  
Kbyte, 4-Mbyte1 pages and locked pages in all sizes.  
Store queue  
Decouples the pipeline from the latency of store operations.  
Allows the pipeline to continue flowing while the store waits for  
data, and eventually writes into the data level 1 cache.  
1. Unloced 4-Mbyte page entry is stored either in 2-way associative TLB or fully associative  
TLB exclusively, depending on the setting.  
Release 1.0, 1 July 2002  
F. Chapter 1  
Overview  
7
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
1.3.5  
Secondary Cache and External Access Unit (SXU)  
The SXU controls the operation of unified level-2 caches and the external data access  
interface (extended UPA interface). TABLE 1-4 describes the major blocks of the SXU.  
TABLE 1-4  
Name  
Secondary Cache and External Access Unit Major Blocks  
Description  
Unified level-2 cache  
Movein buffer  
2-Mbyte, 4-way associative, 64-byte line, writeback; provides low  
latency data source for both instruction level-1 cache and data  
level-1 cache.  
Sixteen entries, 64-bytes/ entry; catches returning data from  
memory system in response to the cache line read request. A  
maximum of 16 outstanding cache read operations can be issued.  
Moveout buffer  
Eight entries, 64-bytes/ entry; holds writeback data. A maximum  
of 8 outstanding writeback requests can be issued.  
Extended UPA interface  
control logic  
Send/ receive transaction packets to/ from Extended UPA  
interface connected to the system.  
8
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
F.CHAPTER  
2
Definitions  
This chapter defines concepts unique to the SPARC64 V, the Fujitsu implementation  
of SPARC JPS1. For definition of terms that are common to all implementations,  
please refer to Chapter 2 of Commonality.  
committed Term applied to an instruction when it has completed without error and all  
prior instructions have completed without error and have been committed. When  
an instruction is committed, the state of the machine is permanently changed  
to reflect the result of the instruction; the previously existing state is no longer  
needed and can be discarded.  
completed Term applied to an instruction after it has finished, has sent a nonerror status to  
the issue unit, and all of its source operands are nonspeculative. Note:  
Although the state of the machine has been temporarily altered by completion  
of an instruction, the state has not yet been permanently changed and the old  
state can be recovered until the instruction has been committed.  
executed Term applied to an instruction that has been processed by an execution unit  
such as a load unit. An instruction is in execution as long as it is still being  
processed by an execution unit.  
fetched Term applied to an instruction that is obtained from the I2 instruction cache or  
from the on-chip internal cache and sent to the issue unit.  
finished Term applied to an instruction when it has completed execution in a functional  
unit and has forwarded its result onto a result bus. Results on the result bus are  
transferred to the register file, as are the waiting instructions in the instruction  
queues.  
initiated Term applied to an instruction when it has all of the resources that it needs (for  
example, source operands) and has been selected for execution.  
instruction dispatch Synonym: instruction initiation.  
instruction issued Term applied to an instruction when it has been dispatched to a reservation  
station.  
9
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
instruction retired Term applied to an instruction when all machine resources (serial numbers,  
renamed registers) have been reclaimed and are available for use by other  
instructions. An instruction can only be retired after it has been committed.  
instruction stall Term applied to an instruction that is not allowed to be issued. Not every  
instruction can be issued in a given cycle. The SPARC64 V implementation  
imposes certain issue constraints based on resource availability and program  
requirements.  
issue-stalling  
instruction An instruction that prevents new instructions from being issued until it has  
committed.  
machine sync The state of a machine when all previously executing instructions have  
committed; that is, when no issued but uncommitted instructions are in the  
machine.  
Memory Management  
Unit (MMU) Refers to the address translation hardware in SPARC64 V that translates 64-bit  
virtual address into physical address. The MMU is composed of the mITLB,  
mDTLB, uITLB, uDTLB, and the ASI registers used to manage address  
translation.  
mTLB Main TLB. Split into I and D, called mITLB and mDTLB, respectively. Contains  
address translations for the uITLB and uDTLB. When the uITLB or uDTLB do  
not contain a translation, they ask the mTLB for the translation. If the mTLB  
contains the translation, it sends the translation to the respective uTLB. If the  
mTLB does not contain the translation, it generates a fast access exception to a  
software translation trap handler, which will load the translation information  
(TTE) into the mTLB and retry the access. See also TLB.  
uDTLB Micro Data TLB. A small, fully associative buffer that contains address  
translations for data accesses. Misses in the uDTLB are handled by the mTLB.  
uITLB Micro Instruction TLB. A small, fully associative buffer that contains address  
translations for instruction accesses. Misses in the uTLB are handled by the  
mTLB.  
nonspeculative A distribution system whereby a result is guaranteed known correct or an  
operand state is known to be valid. SPARC64 V employs speculative  
distribution, meaning that results can be distributed from functional units  
before the point at which guaranteed validity of the result is known.  
reclaimed The status when all instruction-related resources that were held until commit  
have been released and are available for subsequent instructions. Instruction  
resources are usually reclaimed a few cycles after they are committed.  
rename registers A large set of hardware registers implemented by SPARC64 V that are invisible  
to the programmer. Before instructions are issued, source and destination  
registers are mapped onto this set of rename registers. This allows instructions  
that normally would be blocked, waiting for an architected register, to proceed  
10  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
in parallel. When instructions are committed, results in renamed registers are  
posted to the architected registers in the proper sequence to produce the correct  
program results.  
scan A method used to initialize all of the machine state within a chip. In a chip that  
has been designed to be scannable, all of the machine state is connected in one  
or several loops called scan rings.Initialization data can be scanned into the  
chip through the scan rings. The state of the machine also can be scanned out  
through the scan rings.  
reservation station A holding location that buffers dispatched instructions until all input operands  
are available. SPARC64 V implements dataflow execution based on operand  
availability. When operands are available, the instructions in the reservation  
station are scheduled for execution. Reservation stations also contain special  
tag-matching logic that captures the appropriate operand data. Reservation  
stations are sometimes referred to as queues (for example, the integer queue).  
speculative A distribution system whereby a result is not guaranteed as known to be  
correct or an operand state is not known to be valid. SPARC64 V employs  
speculative distribution, meaning results can be distributed from functional  
units before the point at which guaranteed validity of the result is known.  
superscalar An implementation that allows several instructions to be issued, executed, and  
committed in one clock cycle. SPARC64 V issues up to 4 instructions per clock  
cycle.  
sync Synonym: machine sync.  
syncing instruction An instruction that causes a machine sync. Thus, before a syncing instruction is  
issued, all previous instructions (in program order) must have been committed.  
At that point, the syncing instruction is issued, executed, completed, and  
committed by itself.  
TLB Translation lookaside buffer.  
Release 1.0, 1 July 2002  
F. Chapter 2  
Definitions  
11  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
12  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
3
Architectural Overview  
Please refer to Chapter 3 in the Commonality section of SPARC Joint Programming  
Specification.  
13  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
14  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
4
Data Formats  
Please refer to Chapter 4, Data Formats in Commonality.  
15  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
16  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
5
Registers  
The SPARC64 V processor includes two types of registers: general-purposethat is,  
working, data, control/ statusand ASI registers.  
The SPARC V9 architecture also defines two implementation-dependent registers:  
the IU Deferred-Trap Queue and the Floating-Point Deferred-Trap Queue (FQ);  
SPARC64 V does not need or contain either queue. All processor traps caused by  
instruction execution are precise, and there are several disrupting traps caused by  
asynchronous events, such as interrupts, asynchronous error conditions, and  
RED_stateentry traps.  
For general information, please see parallel subsections of Chapter 5 in  
Commonality. For easier referencing, this chapter follows the organization of  
Chapter 5 in Commonality.  
For information on MMU registers, please refer to Section F.10, Internal Registers and  
ASI operations, on page 92.  
The chapter contains these sections:  
Nonprivileged Registers on page 17  
Privileged Registers on page 19  
5.1  
Nonprivileged Registers  
Most of the definitions for the registers are as described in the corresponding  
sections of Commonality. Only SPARC64 V-specific features are described in this  
section.  
17  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
5.1.7  
Floating-Point State Register (FSR)  
Please refer to Section 5.1.7 of Commonality for the description of FSR.  
The sections below describe SPARC64 V-specific features of the FSRregister.  
SPARC V9 defines the FSR.NSbit which, when set to 1, causes the FPU to produce  
implementation-dependent results that may not conform to IEEE Std 754-1985.  
SPARC64 V implements this bit.  
When FSR.NS= 1, denormal input operands and denormal results that would  
otherwise trap are flushed to 0 of the same sign and an inexact exception is signalled  
(that may be masked by FSR.TEM.NXM). See Section B.6, Floating-Point Nonstandard  
Mode, on page 61 for details.  
When FSR.NS= 0, the normal IEEE Std 754-1985 behavior is implemented.  
FSR_version (ver)  
For each SPARC V9 IU implementation (as identified by its VER.implfield), there  
may be one or more FPU implementations or none. This field identifies the  
particular FPU implementation present. For the first SPARC64 V, FSR.ver= 0 (impl.  
dep. #19); however, future versions of the architecture may set FSR.verto other  
values. Consult the SPARC64 V Data Sheet for the setting of FSR.verfor your  
chipset.  
FSR_floating-point_trap_type (ftt)  
The complete conditions under which SPARC64 V triggers fp_exception_other with  
trap type unfinished_FPop is described in Section B.6, Floating-Point Nonstandard Mode,  
on page 61 (impl. dep. #248).  
FSR_current_exception (cexc)  
Bits 4 through 0 indicate that one or more IEEE_754 floating-point exceptions were  
generated by the most recently executed FPop instruction. The absence of an  
exception causes the corresponding bit to be cleared.  
In SPARC64 V, the cexcbits are set according to the following pseudocode:  
if (<LDFSR or LDXFSR commits>)  
<update using data from LDFSR or LDXFSR>;  
else if (<FPop commits with ftt = 0>)  
<update using value from FPU>  
18  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
else if (<FPop commits with IEEE_754_exception>)  
<set one bit in the CEXC field as supplied by FPU>;  
else if (<FPop commits with unfinished_FPop error>)  
<no change>;  
else if (<FPop commits with unimplemented_FPop error>)  
<no change>;  
else  
<no change>;  
FSR Conformance  
SPARC V9 allows the TEM, cexc, and aexcfields to be implemented in hardware in  
either of two ways (both of which comply with IEEE Std 754-1985). SPARC64 V  
follows case (1); that is, it implements all three fields in conformance with IEEE Std  
754-1985. See FSR Conformance in Section 5.1.7 of Commonality for more  
information about other implementation methods.  
5.1.9  
Tick (TICK) Register  
SPARC64 V implements TICK.counterregister as a 63-bit register (impl. dep.  
#105).  
Implementation Note – On SPARC64 V, the counterpart of the value returned  
when the TICKregister is read is the value of TICK.counterwhen the RDTICK  
instruction is executed. The difference between the countervalues read from the  
TICKregister on two reads reflects the number of processor cycles executed between  
the executions of the RDTICKinstructions, not their commits. In longer code  
sequences, the difference between this value and the value that would have been  
obtained when the instructions are committed would have been small.  
5.2  
Privileged Registers  
Please refer to Section 5.2 of Commonality for the description of privileged registers.  
5.2.6  
Trap State (TSTATE) Register  
SPARC64 V implements only bits 2:0 of the TSTATE.CWPfield. Writes to bits 4 and 3  
are ignored, and reads of these bits always return zeroes.  
Release 1.0, 1 July 2002  
F. Chapter 5  
Registers  
19  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
Note – Spurious setting of the PSTATE.REDbit by privileged software should not  
be performed, since it will take the SPARC64 V into RED_statewithout the  
required sequencing.  
5.2.9  
Version (VER) Register  
TABLE 5-1 shows the values for the VERregister for SPARC64 V.  
TABLE 5-1 VERRegister Encodings  
Bits  
Field  
Value  
63:48  
47:32  
31:24  
15:8  
4:0  
manuf  
impl  
000416 (impl. dep. #104)  
5 (impl. dep. #13)  
mask  
n (The value of n depends on the processor chip version)  
maxtl  
maxwin  
5
7
The manuffield contains Fujitsus 8-bit JEDEC code in the lower 8 bits and zeroes in  
the upper 8 bits. The manuf, impl, and maskfields are implemented so that they  
may change in future SPARC64 V processor versions. The maskfield is incremented  
by 1 any time a programmer-visible revision is made to the processor. See the  
SPARC64 V Data Sheet to determine the current setting of the maskfield.  
5.2.11  
Ancillary State Registers (ASRs)  
Please refer to Section 5.2.11 of Commonality for details of the ASRs.  
Performance Control Register (PCR) (ASR 16)  
SPARC64 V implements the PCRregister as described in SPARC JPS1 Commonality,  
In SPARC64 V, the accessibility of PCRwhen PSTATE.PRIV= 0 is determined by  
PCR.PRIV. If PSTATE.PRIV= 0 and PCR.PRIV= 1, an attempt to execute either  
RDPCRor WRPCRwill cause a privileged_action exception. If PSTATE.PRIV= 0 and  
PCR.PRIV= 0, RDPCRoperates without privilege violation and WRPCRcauses a  
privileged_action exception only when an attempt is made to change (that is, write 1  
to) PCR.PRIV(impl. dep. #250).  
See Appendix Q, Performance Instrumentation, for a detailed discussion of the PCR  
and PICregister usage and event count definitions.  
20  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                   
The Performance Control Register in SPARC64 V is illustrated in FIGURE 5-1 and  
described in TABLE 5-2.  
NC  
0
OVF  
0
OVRO 0  
0
SC  
0
SU  
0
SL  
ULRO UT ST PRIV  
63  
48 47 32 31 27 26  
25 24 22 21  
18 17 16 11 10  
9
4
3
2
1
0
20  
FIGURE 5-1 SPARC64 V Performance Control Register (PCR) (ASR 16)  
TABLE 5-2 PCRBit Description  
Bit  
Field  
Description  
47:32  
OVF  
Overflow Clear/ Set/ Status. Used to read counter overflow status (via RDPCR) and clear  
or set counter overflow status bits (via WRPCR). PCR.OVFis a SPARC64 V-specific field  
(impl. dep. #207).  
The following figure depicts the bit layout of SPARC64 V OVFfield for four counter  
pairs. Counter status bits are cleared on write of 0 to the appropriate OVFbit.  
0
U3 L3 U2 L2 U1 L1 U0 L0  
15  
7
6
5
4
3
2
1
0
26  
OVRO  
Overflow read-only. Write-only/ read-as-zero field specifying PCR.OVFupdate behavior  
for WRPCR.PCR. The OVROfield is implementation -dependent (impl. dep. #207).  
WRPCR.PCRwith PCR.OVRO = 1inhibits updating of PCR.OVFfor the current write  
only. The intention of PCR.OVROis to write PCRwhile preserving current PCR.OVF  
value. PCR.OVFis maintained internally by hardware, so a subsequent RDPCR.PCR  
returns accurate overflow status at the time.  
24:22  
20:18  
NC  
SC  
Number of counter pairs. Three-bit, read-only field specifying the number of counter  
pairs, encoded as 07 for 18 counter pairs (impl. dep. #207).  
For SPARC64 V, the hardcoded value of NCis 3 (indicating presence of 4 counter pairs).  
Select PIC. In SPARC64 V, three-bit field specifying which counter pair is currently  
selected as PIC(ASR 17) and which SU/ SLvalues are visible to software. On write,  
PCR.SCselects which counter pair is updated (unless PCR.ULROis set; see below). On  
read, PCR.SCselects which counter pair is to be read through PIC(ASR 17).  
16:11  
9:4  
3
SU  
Defined (as S1) in SPARC JPS1 Commonality.  
Defined (as S0) in SPARC JPS1 Commonality.  
SL  
ULRO  
Implementation-dependent field (impl. dep. #207) that specifies whether SU/ SLare  
read-only. In SPARC64 V, this field is write-only/ read-as-zero, specifying update  
behavior of SU/ SLon write. When PCR.ULRO= 1, SU/ SLare considered as read-only;  
the values set on PCR.SU/PCR.SLare not written into SU/SL. When PCR.ULRO= 0,  
SU/SLare updated. PCR.ULROis intended to switch visible PICby writing PCR.SC,  
without affecting current selection of SU/SLof that PIC. On PCRread, PCR.SU/PCR.SL  
always shows the current setting of the PICregardless of PCR.ULRO.  
2
1
UT  
ST  
Defined in SPARC JPS1 Commonality.  
Defined in SPARC JPS1 Commonality.  
Release 1.0, 1 July 2002  
F. Chapter 5  
Registers  
21  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
TABLE 5-2 PCRBit Description (Continued)  
Bit  
Field  
Description  
0
PRIV  
Defined in SPARC JPS1 Commonality, with the additional function of controlling PCR  
accessibility as described above (impl. dep. #250).  
Performance Instrumentation Counter (PIC) Register (ASR  
17)  
The PICregister is implemented as described in SPARC JPS1 Commonality.  
Four PICs are implemented in SPARC64 V. Each is accessed through ASR 17, using  
PCR.SCas a select field. Read/ write access to the PICwill access the PICU/ PICL  
counter pair selected by PCR. For PICU/ PICLencodings of specific event counters,  
see Appendix Q, Performance Instrumentation.  
Counter Overflow.On overflow, counters wrap to 0, SOFTINTregister bit 15 is set,  
and an interrupt level-15 exception is generated. The counter overflow trap is  
triggered on the transition from value FFFFFFFF16 to value 0. If multiple overflows  
are generated simultaneously, then multiple overflow status bits will be set. If  
overflow status bits are already set, then they remain set on counter overflow.  
Overflow status bits are cleared by software writing 0 to the appropriate bit of  
PCR.OVFand may be set by writing 1 to the appropriate bit. Setting these bits by  
software does not generate a level 15 interrupt.  
Dispatch Control Register (DCR) (ASR 18)  
The DCRis not implemented in SPARC64 V. Zero is returned on read, and writes to  
the register are ignored. The DCRis a privileged register; attempted access by  
nonprivileged (user) code generates a privileged_opcode exception.  
5.2.12  
Registers Referenced Through ASIs  
Data Cache Unit Control Register (DCUCR)  
ASI 4516 (ASI_DCU_CONTROL_REGISTER), VA = 016  
.
The Data Cache Unit Control Register contains fields that control several memory-  
related hardware functions. The functions include Instruction, Prefetch, write and  
data caches, MMUs, and watchpoint setting. SPARC64 V implements most of  
DCUCURs functions described in Section 5.2.12 of Commonality.  
22  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
After a power-on reset (POR), all fields of DCUCR, including implementation-  
dependent fields, are set to 0. After a WDR, XIR, or SIRreset, all fields of DCUCR,  
including implementation-dependent fields, are set to 0.  
The Data Cache Unit Control Register is illustrated in FIGURE 5-2 and described in  
TABLE 5-3. In the table, bits are grouped by function rather than by strict bit sequence.  
0
Implementation dependent  
WEAK_SPCA PM  
VM PR PW VR VW  
21 20  
DM IM  
0
0
0
63  
50  
49 48 47 42  
41 40 33 32 25 24 23 22  
4
3
2
1
0
FIGURE 5-2 DCU Control Register Access Data Format (ASI 45  
)
16  
TABLE 5-3  
Bits  
DCUCR Description  
Field  
Type  
Use Description  
49:48  
CP, CV  
RW  
Not implemented in SPARC64 V (impl. dep. #232). It reads as 0 and writes to  
it are ignored.  
47:42  
41  
impl. dep.  
Not used. It reads as 0 and writes to it are ignored.  
WEAK_SPCA  
RW  
Used for disabling speculative memory access (impl. dep. #240). When  
DCUCR.WEAK_SPCA= 1, the branch history table is cleared and no longer  
issues aggressive instruction prefetch.  
During DCUCR.WEAK_SPCA= 1, aggressive instruction prefetching is  
disabled and any load and store instructions are considered presync  
instructions that are executed when all previous instructions are committed.  
Because all CTI are considered as not taken, instructions residing beyond 1  
Kbyte of a CTI may be fetched and executed.  
On entering aggressive instruction Prefetch disable mode, supervisor  
software should issue membar #Sync, to make sure all in-flight instructions  
in the pipeline are discarded.  
During DCUCR.WEAK_SPCA= 1, an L2 cache flush by writing 1 to  
ASI_L2_CTRL.U2_FLUSHremains pending internally until  
DCUCR.WEAK_SPCAis set to 0. To wait for completion of the cache flush, a  
member #Syncmust be issued after DCUCR.WEAK_SPCAis set to 0.  
Executing a membar #Syncwhile the DCUCR.WEAK_SPCA= 1 after writing 1  
to ASI_L2_CTRL.U2_FLUSHdoes not wait for the cache flush to complete.  
40:33  
32:25  
24, 23  
22, 21  
20:4  
3
PM<7:0>  
VM<7:0>  
PR, PW  
VR, VW  
Defined in SPARC JPS1 Commonality.  
Defined in SPARC JPS1 Commonality.  
Defined in SPARC JPS1 Commonality.  
Defined in SPARC JPS1 Commonality.  
Reserved.  
DM  
Defined in SPARC JPS1 Commonality.  
Defined in SPARC JPS1 Commonality.  
2
IM  
Release 1.0, 1 July 2002  
F. Chapter 5  
Registers  
23  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                 
TABLE 5-3  
DCUCR Description (Continued)  
Bits  
Field  
Type  
Use Description  
1
DC  
RW  
Not implemented in SPARC64 V (impl. dep. #252). It reads as 0 and writes to  
it are ignored.  
0
IC  
RW  
Not implemented in SPARC64 V (impl. dep. #253). It reads as 0 and writes to  
it are ignored.  
Data Watchpoint Registers  
No implementation-dependent feature of SPARC64 V reduces the reliability of data  
watchpoints (impl. dep. #244).  
SPARC64 V employs conservative check of PA/ VA watchpoint over partial store  
instruction. See Section A.42, Partial Store (VIS I), on page 57 for details.  
Instruction Trap Register  
SPARC64 V implements the Instruction Trap Register (impl. dep. #205).  
In SPARC64 V, the least significant 11 bits (bits 10:0) of a CALLor branch (BPcc,  
FBPfcc, Bicc, BPr) instruction in an instruction cache are identical to their  
architectural encoding (as it appears in main memory) (impl. dep. #245).  
5.2.13  
5.2.14  
Floating-Point Deferred-Trap Queue (FQ)  
SPARC64 V does not contain a Floating-Point Deferred-trap Queue (impl. dep. #24).  
An attempt to read FQwith an RDPRinstruction generates an illegal_instruction  
exception (impl. dep. #25).  
IU Deferred-Trap Queue  
SPARC64 V neither has nor needs an IU deferred-trap queue (impl. dep. #16)  
24  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                 
F.CHAPTER  
6
This chapter presents SPARC64 V implementation-specific instruction details and the  
processor pipeline information in these subsections:  
Instruction Execution on page 25  
Instruction Formats and Fields on page 28  
Instruction Categories on page 29  
Processor Pipeline on page 31  
For additional, general information, please see parallel subsections of Chapter 6 in  
Commonality. For easy referencing, we follow the organization of Chapter 6 in  
Commonality.  
6.1  
Instruction Execution  
SPARC64 V is an advanced superscalar implementation of SPARC V9. Several  
instructions may be issued and executed in parallel. Although SPARC64 V provides  
serial program execution semantics, some of the implementation characteristics  
described below are part of the architecture visible to software for correctness and  
efficiency. The affected software includes optimizing compilers and supervisor code.  
6.1.1  
Data Prefetch  
SPARC64 V employs speculative (out of program order) execution of instructions; in  
most cases, the effect of these instructions can be undone if the speculation proves to  
be incorrect.1 However, exceptions can occur because of speculative data  
prefetching. Formally, SPARC64 V employs the following rules regarding speculative  
prefetching:  
1. An async_data_error may be signalled during speculative data prefetching.  
25  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
1. If a memory operation y resolves to a volatile memory address (location[y]),  
SPARC64 V will not speculatively prefetch location[y] for any reason; location[y]  
will be fetched or stored to only when operation y is commitable.  
2. If a memory operation y resolves to a nonvolatile memory address (location[y]),  
SPARC64 V may speculatively prefetch location[y] subject, adhering to the  
following subrules:  
a. If an operation y can be speculatively prefetched according to the prior rule,  
operations with store semantics are speculatively prefetched for ownership  
only if they are prefetched to cacheable locations. Operations without store  
semantics are speculatively prefetched even if they are noncacheable as long as  
they are not volatile.  
b. Atomic operations (CAS(X)A, LDSTUB, SWAP) are never speculatively  
prefetched.  
SPARC64 V provides two mechanisms to avoid speculative execution of a load:  
1. Avoid speculation by disallowing speculative accesses to certain memory pages or  
I/ O spaces. This can be done by setting the E(side-effect) bit in the PTEfor all  
memory pages that should not allow speculation. All accesses made to memory  
pages that have the Ebit set in their PTEwill be delayed until they are no longer  
speculative or until they are cancelled. See Appendix F, Memory Management Unit,  
for details.  
2. Alternate space load instructions that force program order, such as  
ASI_PHYS_BYPASS_WITH_EBIT[_L] (AS I = 1516, 1D16), will not be speculatively  
executed.  
6.1.2  
Instruction Prefetch  
The processor prefetches instructions to minimize cases where the processor must  
wait for instruction fetch. In combination with branch prediction, prefetching may  
cause the processor to access instructions that are not subsequently executed. In  
some cases, the speculative instruction accesses will reference data pages.  
SPARC64 V does not generate a trap for any exception that is caused by an  
instruction fetch until all of the instructions before it (in program order) have been  
committed.1  
1. Hardware errors and other asynchronous errors may generate a trap even if the instruction that caused the  
trap is never committed.  
26  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
6.1.3  
Syncing Instructions  
SPARC64 V has instructions, called syncing instructions, that stop execution for the  
number of cycles it takes to clear the pipeline and to synchronize the processor.  
There are two types of synchronization, pre and post. A presyncing instruction waits  
for all previous instructions to commit, commits by itself, and then issues successive  
instructions. A postsyncing instruction issues by itself and prevents the successive  
instructions from issuing until it is committed. Some instructions have both pre- and  
postsync attributes.  
In SPARC64 V almost all instructions commit in order, but store instruction commit  
before becoming globally visible. A few syncing instructions cause the processor to  
discard prefetched instructions and to refetch the successive instructions. TABLE 6-1  
lists all pre-/ postsync instructions and the effects of instruction execution.  
TABLE 6-1 SPARC64 V Syncing Instructions  
Presyncing  
Wait for  
Postsyncing  
Discard  
Opcode  
Sync?  
store global  
visibility?  
Sync?  
prefetched  
instructions?  
ALIGNADDRESS{_LITTLE}  
Yes  
Yes  
Yes  
BMASK  
DONE  
Yes  
Yes  
FCMP(GT,LE,NE,EQ)(16,32)  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
Yes  
FLUSH  
FMOV(s,d)icc  
FMOVr  
LDD  
Yes  
Yes  
Yes  
LDDA  
LDDFA  
memory access with  
ASI=ASI_PHYS_BYPASS_EC{_LITTLE},  
ASI_PHYS_BYPASS_EC_WITH_E_BIT{_LITTLE}  
LDFSR, LDXFSR  
MEMBAR  
MOVfcc  
MULScc  
PDIST  
Yes  
Yes  
1
Yes  
Yes  
Yes  
Yes  
Yes  
RDASR  
Yes  
RETRY  
Yes  
Yes  
Yes  
SIAM  
STBAR  
Yes  
Yes  
STD  
Release 1.0, 1 July 2002  
F. Chapter 6  
Instructions  
27  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
TABLE 6-1 SPARC64 V Syncing Instructions (Continued)  
Presyncing  
Wait for  
Postsyncing  
Discard  
Opcode  
Sync?  
store global  
visibility?  
Sync?  
prefetched  
instructions?  
STDA  
Yes  
STDFA  
Yes  
Yes  
Yes  
Yes  
STFSR, STXFSR  
Tcc  
Yes  
Yes  
Yes  
2
WRASR  
1. When #cmask != 0.  
2. WRGSRonly.  
6.2  
Instruction Formats and Fields  
Instructions are encoded in five major 32-bit formats and several minor formats.  
Please refer to Section 6.2 of Commonality for illustrations of four major formats.  
FIGURE 6-1 illustrates Format 5, unique to SPARC64 V.  
Format 5 (op = 2, op3 = 3716): FMADD, FMSUB, FNMADD, and FNMSUB(in place of IMPDEP2B)  
op  
rd  
op3  
rs1  
rs3  
var  
size  
rs2  
31 30 29  
25 24  
19 18 17  
14 13 12 11 10  
9
8
7
6
5
4
0
FIGURE 6-1 Summary of Instruction Formats: Format 5  
Instruction fields are those shown in Section 6.2 of Commonality. Three additional  
fields are implemented in SPARC64 V. They are described in TABLE 6-2.  
TABLE 6-2  
Instruction Fields Specific to SPARC64 V  
Bits  
Field  
Description  
13:9  
rs3  
This 5-bit field is the address of the third fregister source operand for  
the floating-point multiply-add and multiply-subtract instruction.  
8.7  
6.5  
var  
This 2-bit field specifies which specific operation (variation) to perform  
for the floating-point multiply-add and multiply-subtract instructions  
size  
This 2-bit field specifies the size of the operands for the floating-point  
multiply-add and multiply-subtract instructions.  
28  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
Since size= 00 is not IMPDEP2Band since size= 11 assumed quad operations but  
is not implemented in SPARC64 V, the instruction with size= 00 or 11 generates an  
illegal_instruction exception in SPARC64 V.  
6.3  
Instruction Categories  
SPARC V9 instructions comprise the categories listed below. All categories are  
described in Section 6.3 of Commonality. Subsections in bold face are SPARC64 V  
implementation dependencies.  
Memory access  
Memory synchronization  
Integer arithmetic  
Control transfer (CTI)  
Conditional moves  
Register window management  
State register access  
Privileged register access  
Floating-point operate (FPop)  
Implementation-dependent  
6.3.3  
Control-Transfer Instructions (CTIs)  
These are the basic control-transfer instruction types:  
Conditional branch (Bicc, BPcc, BPr, FBfcc, FBPfcc)  
Unconditional branch  
Call and link (CALL)  
Jump and link (JMPL, RETURN)  
Return from trap (DONE, RETRY)  
Trap (Tcc)  
Instructions other than CALLand JMPLare described in their entirety in Section 6.3.2  
of Commonality. SPARC64 V implements CALLand JMPLas described below.  
CALL and JMPL Instructions  
SPARC64 V writes all 64 bits of the PCinto the destination register when  
PSTATE.AM= 0. The upper 32 bits of r[15](CALL) or of r[rd](JMPL) are written  
as zeroes when PSTATE.AM= 1 (impl. dep. #125).  
Release 1.0, 1 July 2002  
F. Chapter 6  
Instructions  
29  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
SPARC64 V implements JMPLand CALLreturn prediction hardware in a form of  
special stack, called the Return Address Stack (RAS). Whenever a CALLor JMPLthat  
writes to %o7(r[15]) occurs, SPARC64 V pushesthe return address (PC+8) onto  
the RAS. When either of the synthetic instructions retl (JMPL[%o7+8]) and ret (JMPL  
[%i7+8]) are subsequently executed, the return address is predicted to be the  
address stored on the top of the RAS and the RAS is popped.If the prediction in  
the RAS is incorrect, SPARC64 V backs up and starts issuing instructions from the  
correct target address. This backup takes a few extra cycles.  
Programming Note For maximum performance, software and compilers must  
take into account how the RAS works. For example, tricks that do nonstandard  
returns in hopes of boosting performance may require more cycles if they cause the  
wrong RAS value to be used for predicting the address of the return. Heavily nested  
calls can also cause earlier entries in the RAS to be overwritten by newer entries,  
since the RAS only has a limited number of entries. Eventually, some return  
addresses will be mispredicted because of the overflow of the RAS.  
6.3.7  
Floating-Point Operate (FPop) Instructions  
The complete conditions of generating an fp_exception_other exception with  
FSR.ftt= unfinished_FPop are described in Section B.6, Floating-Point Nonstandard  
Mode on page 61.  
The SPARC64 V-specific FMADDand FMSUBinstructions (described below) are also  
floating-point operations. They require the floating-point unit to be enabled;  
otherwise, an fp_disabled trap is generated. They also affect the FSR, like FPop  
instructions. However, these instructions are not included in the FPop category and,  
hence, reserved encodings in these opcodes generate an illegal_instruction exception, as  
defined in Section 6.3.9 of Commonality.  
6.3.8  
Implementation-Dependent Instructions  
SPARC64 V uses the IMPDEP2instruction to implement the Floating-Point Multiply-  
Add/ Subtract and Negative Multiply-Add/ Subtract instructions; these have an op3  
field = 37 (IMPDEP2). See Floating-Point Multiply-Add/Subtract on page 50 for fuller  
16  
definitions of these instructions. Opcode space is reserved in IMPDEP2for the quad-  
precision forms of these instructions. However, SPARC64 V does not currently  
implement the quad-precision forms, and the processor generates an illegal_instruction  
exception if a quad-precision form is specified. Since these instructions are not part  
of the required SPARC V9 architecture, the operating system does not supply  
software emulation routines for the quad versions of these instructions.  
SPARC64 V uses the IMPDEP1instruction to implement the graphics acceleration  
instructions.  
30  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
6.4  
Processor Pipeline  
The pipeline of SPARC64 V consists of fifteen stages, shown in FIGURE 6-2. Each  
stage is referenced by one or two letters as follows:  
IA  
IT  
IM  
IB  
IR  
E
D
P
B
X
U
W
Ps  
Ts  
Ms  
Bs  
Rs  
6.4.1  
Instruction Fetch Stages  
IA (Instruction Address generation) Calculate fetch target address.  
IT (Instruction TLB Tag access) Instruction TLB tag search. Search of BRHIS  
and RAS is also started.  
IM (Instruction TLB tag Match) Check TLB tag is matched.  
The result of BRHIS and RAS search is also available at this stage and is  
forwarded to IA stage for subsequent fetch.  
IB (Instruction cache Buffer read) Read L1 cache data if TLB is hit.  
IR (Instruction read Result) Write to I-Buffer.  
IA through IR stages are dedicated to instruction fetch. These stages work in concert  
with the cache access unit to supply instructions to subsequent stages. The  
instructions fetched from memory or cache are stored in the Instruction Buffer (I-  
buffer). The I-buffer has six entries, each of which can hold 32-byte-aligned 32-byte  
data (eight instructions).  
SPARC64 V has a branch prediction mechanism and resources named BRHIS  
(BRanch HIStory) and RAS (Return Address Stack). Instruction fetch stages use these  
resources to determine fetch addresses.  
Instruction fetch stages are designed so that they work independently of subsequent  
stages as much as possible. And they can fetch instructions even when execution  
stages stall. These stages fetch until the I-Buffer is full; further fetches are possible by  
requesting prefetches to the L1 cache.  
Release 1.0, 1 July 2002  
F. Chapter 6  
Instructions  
31  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
IF EAG  
IA  
IT  
iTLB  
L1I  
BRHIS  
IM  
IB  
IR  
Instruction Buffer  
E
IWR  
D
P
RSFA  
RSA  
RSFB  
RSEA  
RSEB  
RSBR  
CSE  
B
X
FXB  
RR  
FXA  
RR  
EXB  
RR  
EXA  
RR  
EAGA  
EAGB  
Ps  
Ts  
dTLB  
FUB  
GUB  
Ms  
L1D  
Bs  
Rs  
LB  
LR  
U
W
FPR  
GPR  
ccr fsr PC nPC  
FIGURE 6-2 SPARC64 V Pipeline  
32  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
6.4.2  
Issue Stages  
E (Entry) Instructions are passed from fetch stages.  
D (Decode) Assign resources and dispatch to reservation station (RS.)  
SPARC64 V is an out-of-order execution CPU. It has six execution units (two of  
arithmetic and logic unit, two of floating-point unit, two of load/ store unit). Each  
unit except the load/ store unit has its own reservation station. E and D stages are  
issue stages that decode instructions and dispatch them to the target RS. SPARC64 V  
can issue up to four instructions per cycle.  
The resources needed to execute an instruction are assigned in the issue stages. The  
resources to be allocated include the following:  
Commit stack entry (CSE)  
Renaming registers of integer (GUB) and floating-point (FUB)  
Entries of reservations stations  
Memory access ports  
Resources needed for an instruction are specific to the instruction, but all resources  
must be assigned at these stages. In normal execution, assigned resources are  
released at the very last stage of the pipeline, W-stage.1 Instructions between the E-  
stage and W-stage are considered to be in-flight. When an exception is signalled, all  
in-flight instructions and the resources used by them are released immediately. This  
behavior enables the decoder to restart issuing instructions as quickly as possible.  
The number of in-flight instructions depends on how many resources are needed by  
them. The maximum number is 64.  
6.4.3  
Execution Stages  
P (priority) Select an instruction from those that have met the conditions for  
execution.  
B (buffer read) Read register file, or receive forwarded data from another  
pipelines.  
X (execute) Execution.  
Instructions in reservation stations will be executed when certain conditions are met,  
for example, the values of source registers are known, the execution unit is available.  
Execution latency varies from one to many, depending on the instruction.  
1. An entry in a reservation station is released at the X-stage.  
Release 1.0, 1 July 2002  
F. Chapter 6  
Instructions  
33  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
Execution Stages for Cache Access  
Memory access requests are passed to the cache access pipeline after the target  
address is calculated. Cache access stages work the same way as instruction fetch  
stages, except for the handling of branch prediction. See Section 6.4.1, Instruction  
Fetch Stages, for details. Stages in instruction fetch and cache access correspond as  
follows:  
Instruction Fetch Stages  
Cache Access  
IA  
IT  
Ps  
Ts  
IM  
IB  
IR  
Ms  
Bs  
Rs  
When an exception is signalled, fetch ports and store ports used by memory access  
instructions are released. The cache access pipeline itself remains working in order to  
complete outgoing memory accesses. When data is returned, it is then stored to the  
cache.  
6.4.4  
Completion Stages  
U (Update) Update of physical (renamed) register.  
W (Write) Update of architectural registers and retire; exception handling.  
After an out-of-order execution, execution reverts to program order to complete.  
Exception handling is done in the completion stages. Exceptions occurring in  
execution stages are not handled immediately but are signalled when the  
instruction is completed.1  
1. RAS-related exception may be signalled before completion.  
34  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
F.CHAPTER  
7
Please refer to Chapter 7 of Commonality. Section numbers in this chapter  
correspond to those in Chapter 7 of Commonality.  
This chapter adds SPARC64 V-specific information in the following sections:  
Processor States, Normal and Special Traps on page 35  
Reset Traps on page 37  
Uses of the Trap Categories on page 37  
Trap Control on page 38  
PIL Control on page 38  
Trap-Table Entry Addresses on page 38  
Trap Type (TT) on page 38  
Details of Supported Traps on page 39  
Exception and Interrupt Descriptions on page 39  
7.1  
Processor States, Normal and Special  
Traps  
Please refer to Section 7.1 of Commonality.  
35  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
7.1.1  
RED_state  
RED_state Trap Table  
The RED_statetrap vector is located at an implementation-dependent address  
referred to as RSTVaddr. The value of RSTVaddris a constant within each  
implementation; in SPARC64 V this virtual address is FFFFFFFFF000000016,  
which translates to physical address 000007FFF000000016 in RED_state(impl.  
dep. #114).  
RED_state Execution Environment  
In RED_state, the processor is forced to execute in a restricted environment by  
overriding the values of some processor controls and state registers.  
Note The values are overridden, not set, allowing them to be switched atomically.  
SPARC64 V has the following implementation-dependent behavior in RED_state  
(impl. dep. #115):  
While in RED_state, all internal ITLB-based translation functions are disabled.  
DTLB-based translations are disabled upon entry but may be reenabled by  
software while in RED_state. However, ASI-based access functions to the TLBs  
are still available.  
While mTLBs and uTLBs are disabled, all accesses are assumed to be  
noncacheable and strongly ordered for data access.  
XIRerrors are not masked and can cause a trap.  
Note When RED_stateis entered because of component failures, the handler  
should attempt to recover from potentially catastrophic error conditions or to disable  
the failing components. When RED_stateis entered after a reset, the software  
should create the environment necessary to restore the system to a running state.  
7.1.2  
error_state  
The processor enters error_statewhen a trap occurs while the processor is  
already at its maximum supported trap level (that is, when TL= MAXTL) (impl. dep.  
#39).  
36  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
Although the standard behavior of the CPU upon an entry into error_stateis to  
internally generate a watchdog_reset (WDR), the CPU optionally stays halted upon an  
entry to error_statedepending on a setting in the OPSR register (impl. dep #40,  
#254).  
7.2  
Trap Categories  
Please refer to Section 7.2 of Commonality.  
An exception or interrupt request can cause any of the following trap types:  
Precise trap  
Deferred trap  
Disrupting trap  
Reset trap  
7.2.2  
Deferred Traps  
Please refer to Section 7.2.2 of Commonality.  
SPARC64 V implements a deferred trap to signal certain error conditions (impl. dep.  
#32). Please refer to the description of I_UGE error on Relation between %tpcand  
the instruction that caused the errorrow in TABLE P-2 (page 156) for details. See also  
Instruction End-Method at ADE Trap on page 170.  
7.2.4  
7.2.5  
Reset Traps  
Please refer to Section 7.2.4 of Commonality.  
In SPARC64 V, a watchdog reset (WDR) occurs when the processor has not  
committed an instruction for 233 processor clocks.  
Uses of the Trap Categories  
Please refer to Section 7.2.5 of Commonality.  
All exceptions that occur as the result of program execution are precise in  
SPARC64 V (impl. dep. #33).  
An exception caused after the initial access of a multiple-access load or store  
instruction (LDD(A), STD(A), LDSTUB, CASA, CASXA, or SWAP) that causes a  
catastrophic exception is precise in SPARC64 V.  
Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F. Chapter 7  
Traps  
37  
                                         
7.3  
Trap Control  
Please refer to Section 7.3 of Commonality.  
7.3.1  
PIL Control  
SPARC64 V receives external interrupts from the UPA interconnect. They cause an  
interrupt_vector_trap (TT = 6016). The interrupt vector trap handler reads the interrupt  
information and then schedules SPARC V9-compatible interrupts by writing bits in  
the SOFTINTregister. Please refer to Section 5.2.11 of Commonality for details.  
During handling of SPARC V9-compatible interrupts by SPARC64 V, the PIL  
register is checked. If an interrupt has sufficient priority, SPARC64 V will stop  
issuing new instructions, will flush all uncommitted instructions, and then will  
vector to the trap handler. The only exception to this process occurs when  
SPARC64 V is processing a higher-priority trap.  
SPARC64 V takes a normal disrupting trap upon receipt of an interrupt request.  
7.4  
Trap-Table Entry Addresses  
Please refer to Section 7.4 of Commonality.  
7.4.2  
Trap Type (TT)  
Please refer to Section 7.4.2 of Commonality.  
SPARC64 V implements all mandatory SPARC V9 and SPARC JPS1 exceptions, as  
described in Chapter 7 of Commonality, plus the exception listed in TABLE 7-1, which  
is specific to SPARC64 V (impl. dep. #35; impl. dep. #36).  
TABLE 7-1  
Exceptions Specific to SPARC64 V  
Exception or Interrupt Request  
TT  
Priority  
async_data_error  
040  
2
16  
38  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
7.4.4  
Details of Supported Traps  
Please refer to Section 7.4.4 in Commonality.  
SPARC64 V Implementation-Specific Traps  
SPARC64 V supports the following implementation-specific trap type:  
async_data_error  
7.5  
Trap Processing  
Please refer to Section 7.5 of Commonality.  
7.6  
Exception and Interrupt Descriptions  
Please refer to Section 7.6 of Commonality.  
7.6.4  
SPARC V9 Implementation-Dependent, Optional  
Traps That Are Mandatory in SPARC JPS1  
Please refer to Section 7.6.4 of Commonality.  
SPARC64 V implements all six traps that are implementation dependent in SPARC  
V9 but mandatory in JPSI (impl. dep. #35). Se Section 7.6.4 of Commonality for  
details.  
7.6.5  
SPARC JPS1 Implementation-Dependent Traps  
Please refer to Section 7.6.5 of Commonality.  
SPARC64 V implements the following traps that are implementation dependent  
(impl. dep. #35).  
async_data_error [tt= 040 ] (Preemptive or disrupting) (impl. dep. #218) —  
16  
SPARC64 V implements the async_data_error exception to signal the following  
errors.  
Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F. Chapter 7  
Traps  
39  
               
Uncorrectable errors in the internal architecture registers (general registersgr,  
floating-point registersfr, ASR, ASI registers)  
Uncorrectable errors in the core pipeline  
System data corruption  
Watch dog timeout first time  
TLB access error upon access by an ldxaor stxainstruction  
Multiple errors may be reported in a single generation of the async_data_error  
exception. Depending on the situation, the async_data_error trap becomes a precise  
trap, a disrupting trap, or a preemptive trap upon error detection. The TPCand  
TNPCstacked by the exception may indicate the exact instruction, the preceding  
instruction, or the subsequent instruction inducing the error. See Appendix P for  
details of the async_data_error exception in SPARC64 V.  
40  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
8
Memory Models  
The SPARC V9 architecture is a model that specifies the behavior observable by  
software on SPARC V9 systems. Therefore, access to memory can be implemented in  
any manner, as long as the behavior observed by software conforms to that of the  
models described in Chapter 8 of Commonality and defined in Appendix D, Formal  
Specification of the Memory Models, also in Commonality.  
The SPARC V9 architecture defines three different memory models: Total St ore Order  
(TSO), Partial Store Order (PSO), and Relaxed Memory Order (RMO). All SPARC V9  
processors must provide Total Store Order (or a more strongly ordered model, for  
example, Sequential Consistency) to ensure SPARC V8 compatibility.  
Whether the PSO or RMO models are supported by SPARC V9 systems is  
implementation dependent; SPARC64 V behaves in a manner that guarantees  
adherence to whichever memory model is currently in effect.  
This chapter describes the following major SPARC64 V-specific details of memory  
models.  
SPARC V9 Memory Model on page 42  
For general information, please see parallel subsections of Chapter 8 in  
Commonality. For easier referencing, this chapter follows the organization of  
Chapter 8 in Commonality, listing subsections whether or not there are  
implementation-specific details.  
41  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
8.1  
Overview  
Note The words hardware memory modeldenote the underlying hardware  
memory models as differentiated from the SPARC V9 memory model,which is the  
memory model the programmer selects in PSTATE.MM.  
SPARC64 V supports only one mode of memory handling to guarantee correct  
operation under any of the three SPARC V9 memory ordering models (impl. dep.  
#113):  
Total Store Order All loads are ordered with respect to loads, and all stores are  
ordered with respect to loads and stores. This behavior is a superset of the  
requirements for the SPARC V9 memory models TSO, PSO, and RMO. When  
PSTATE.MMselects TSO or PSO, SPARC64 V operates in this mode. Since  
programs written for PSO (or RMO) will always work if run under Total Store  
Order, this behavior is safe but does not take advantage of the reduced restrictions  
of PSO.  
8.4  
SPARC V9 Memory Model  
Please refer to Section 8.4 of Commonality.  
In addition, this section describes SPARC64 V-specific details about the processor/  
memory interface model.  
8.4.5  
Mode Control  
SPARC64 V implements Total Store Ordering for all PSTATE.MM. Writing 112 into  
PSTATE.MMalso causes the machine to use TSO (impl. dep. #119). However, the  
encoding 112 should not be used, since future version of SPARC64 V may use this  
encoding for a new memory model.  
8.4.6  
Synchronizing Instruction and Data Memory  
All caches in a SPARC64 V-based system (uniprocessor or multiprocessor) have a  
unified cache consistency protocol and implement strong coherence between  
instruction and data caches. Writes to any data cache cause invalidations to the  
42  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
corresponding locations in all instruction caches; references to any instruction cache  
cause corresponding modified data to be flushed and corresponding unmodified  
data to be invalidated from all data caches. The flush operation is still operative in  
SPARC64 V, however.  
Since the FLUSHinstruction synchronizes the processor, the total latency varies  
depending on the situation in SPARC64 V. Assuming all prior instructions are  
completed, the latency of FLUSHis 18 CPU cycles.  
Release 1.0, 1 July 2002  
F. Chapter 8  
Memory Models  
43  
Download from Www.Somanuals.com. All Manuals Search And Download.  
44  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
A
Instruction Definitions:  
SPARC64 V Extensions  
This appendix describes the SPARC64 V-specific implementation of the instructions  
in Appendix A of Commonality. If an instruction is not described in this appendix,  
then no SPARC64 V implementation-dependency applies.  
See TABLE A-1 of Commonality for the location at which general information about  
the instruction can be found.  
Section numbers refer to the parallel section numbers in Appendix A of  
Commonality.  
TABLE A-1 lists four instructions that are unique to SPARC64 V.  
TABLE A-1 Implementation-Specific Instructions  
Operation  
Name  
Page  
V9 Ext?  
FMADD(s,d)  
FMSUB(s,d)  
FNMADD(s,d)  
FNMSUB(s,d)  
Floating-point multiply add  
Floating-point multiply subtract  
Floating-point multiply negate add  
Floating-point multiply negate subtract  
page 50  
page 50  
page 50  
page 50  
Each instruction definition consists of these parts:  
1. A table of the opcodes defined in the subsection with the values of the field(s)  
2. An illustration of the applicable instruction format(s). In these illustrations a dash  
() indicates that the field is reserved for future versions of the architecture and  
shall be 0 in any instance of the instruction. If a conforming SPARC V9  
implementation encounters nonzero values in these fields, its behavior is  
undefined.  
3. A list of the suggested assembly language syntax, as described in Appendix G,  
Assembly Language Syntax.  
45  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
4. A description of the features, restrictions, and exception-causing conditions.  
5. A list of exceptions that can occur as a consequence of attempting to execute the  
instruction(s). Exceptions due to an instruction_access_error,  
instruction_access_exception, fast_instruction_access_MMU_miss, async_data_error,  
ECC_error, and interrupts are not listed because they can occur on any instruction.  
Also, any instruction that is not implemented in hardware shall generate an  
illegal_instruction exception (or fp_exception_other exception with  
ftt= unimplemented_FPop for floating-point instructions) when it is executed.  
The illegal_instruction trap can occur during chip debug on any instruction that has  
been programmed into the processors IIU_INST_TRAP(ASI = 6016, VA = 0).  
These traps are also not listed under each instruction.  
The following traps never occur in SPARC64 V:  
instruction_access_MMU_miss  
data_access_MMU_miss  
data_access_protection  
unimplemented_LDD  
unimplemented_STD  
internal_processor_error  
fp_exception_other (ftt= invalid_fp_register)  
This appendix does not include any timing information (in either cycles or clock  
time).  
The following SPARC64 V-specific extensions are described.  
Implementation-Dependent Instructions on page 49  
Load Quadword, Atomic [Physical] on page 54  
Memory Barrier on page 55  
Partial Store (VIS I) on page 57  
Prefetch Data on page 57  
Read State Register on page 58  
SHUTDOWN (VIS I) on page 58  
Write State Register on page 59  
Deprecated Instructions on page 59  
46  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                             
A.4  
Block Load and Store Instructions (VIS I)  
The following notes summarize behavior of block load/ store instructions in  
SPARC64 V.  
1. Block load and store operations are not atomic, in that they are internally  
decomposed into eight independent, 8-byte load/ store operations in SPARC64 V.  
Each load/ store is always issued and performed in the RMO memory model and  
obeys all prior MEMBARand atomic instruction-imposed ordering constraints.  
2. Block load/ store instructions are out of the scope of V9 memory models, meaning  
that self-consistency of memory reference instruction is not always maintained if  
block load/ store instructions are involved in the execution flow. The following  
table describes the implemented ordering constraints for block load/ store  
instructions with respect to the other memory reference instructions with an  
operand address conflict in SPARC64 V:  
Program Order for conflicting bld/bst/ld/st  
Ordered/  
first  
next  
Out-of-Order  
store  
blockstore  
blockload  
blockstore  
blockload  
store  
Ordered  
store  
Ordered  
load  
Ordered  
load  
Ordered  
blockstore  
blockstore  
blockstore  
blockstore  
blockload  
blockload  
blockload  
blockload  
Out-of-Order  
Out-of-Order  
Out-of-Order  
Out-of-Order  
Ordered  
load  
blockstore  
blockload  
store  
load  
Ordered  
blockstore  
blockload  
Ordered  
Ordered  
To maintain the memory ordering even for the memory address conflicts, MEMBAR  
instructions shall be inserted into appropriate location in the program.  
Although self-consistency with respect to the block load/ store and the other  
memory reference instructions is not maintained in some cases, register conflicts  
between the other instructions and block load/ store instructions are maintained  
in SPARC64 V. The read-after-write, write-after-read, and write-after-write  
obstructions between a block load/ store instruction and the other arithmetic  
instructions are detected and handled appropriately.  
3. Block load instruction operate on the cache if the operand is present.  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
47  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
4. The block store with commit instruction always stores the operand in main  
storage and invalidates the line in the L1D cache if it is present. The invalidation  
is performed through an S_INV_REQtransaction through UPA by the system  
controller.  
5. The block store instruction stores the operand into main storage if it is not present  
in the operand cache and the status of the line is invalid, shared, or owned. In  
case the line is not present in the L1D cache and is exclusive or modified on the  
L2 cache, the block store instruction modifies only the line in L2 cache. If the line  
is present in the operand cache and the status is either clean/ shared or clean/  
owned, the line is stored in main storage. If the line is present in the operand  
cache and the status is clean/ exclusive, the line in the operand cache is  
invalidated and the operand is stored in the L2 cache. If the line is in the operand  
cache and the status is modified/ modified, the operand is stored in the operand  
cache. The following table summarizes each cache status before block store and  
the results of the block store. Blank cells mean that no action occurred in the  
corresponding cache or memory, and the data, if it exists, is unchanged.  
Storage  
Status  
L1  
Invalid  
I, S, O  
Valid  
Cache status  
before bst  
L2  
E, M  
E
M
S, O  
L1  
invalidate  
update  
Action  
L2  
update  
update  
S
Memory  
update  
update  
Exceptions  
fp_disabled  
PA_watchpoint  
VA_watchpoint  
illegal_instruction (misaligned rd)  
mem_address_not_aligned (see Block Load and Store ASIs on page 120)  
data_access_exception (see Block Load and Store ASIs on page 120)  
LDDF_mem_address_not_aligned (see Block Load and Store ASIs on page 120)  
data_access_error  
fast_data_access_MMU_miss  
fast_data_access_protection  
48  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
A.12 Call and Link  
SPARC64 V clears the upper 32 bits of the PCvalue in r[15]when PSTATE.AMis  
set (impl. dep. #125). The value written into r[15]is visible to the instruction in the  
delay slot.  
SPARC64 V has a special hardware table, called the return address stack, to predict  
the return address from a subroutine. Though the return prediction stack achieves  
better performance in normal cases, there is a special use of the CALLinstruction  
(call.+8) that may have an undesirable effect on the return address stack. In this  
case, the CALLinstruction is used to read the PCcontents, not to call a subroutine. In  
SPARC64 V, the return address of the CALL(PC+8) is not stored in its return  
address stack, to avoid a detrimental performance effect. When a retor retlis  
executed, the value in the return address stack is used to predict the return address.  
A.24 Implementation-Dependent Instructions  
Opcode  
op3  
Operation  
IMPDEP1  
IMPDEP2  
11 0110  
11 0111  
Implementation-Dependent Instruction 1  
The IMPDEP1and IMPDEP2instructions are completely implementation dependent.  
Implementation-dependent aspects include their operation, the interpretation of bits  
2925 and 180 in their encodings, and which (if any) exceptions they may cause.  
SPARC64 V uses IMPDEP1to encode VIS instructions (impl. dep. #106).  
SPARC64 V uses IMPDEP2Bto encode the Floating-Point Multiply Add/ Subtract  
instructions (impl. dep. #106). See Section A.24.1, Floating-Point Multiply-Add/  
Subtract, on page 50 for details.  
See I.1.2, Implementation-Dependent and Reserved Opcodes, in Commonality for  
information about extending the SPARC V9 instruction set by means of the  
implementation-dependent instructions.  
Compatibility Note These instructions replace the CPopn instructions in  
SPARC V8.  
Exceptions  
implementation-dependent (IMPDEP2)  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
49  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
A.24.1  
Floating-Point Multiply-Add/ Subtract  
SPARC64 V uses IMPDEP2Bopcode space to encode the Floating-Point Multiply  
Add/ Subtract instructions.  
Opcode  
Variation  
00  
Size†  
01  
Operation  
FMADDs  
FMADDd  
FMSUBs  
FMSUBd  
FNMADDs  
FNMADDd  
FNMSUBs  
FNMSUBd  
Multiply-Add Single  
00  
10  
Multiply-Add Double  
01  
01  
Multiply-Subtract Single  
Multiply-Subtract Double  
Negative Multiply-Add Single  
Negative Multiply-Add Double  
Negative Multiply-Subtract Single  
Negative Multiply-Subtract Double  
01  
10  
11  
01  
11  
10  
10  
01  
10  
10  
11 is reserved for quad.  
Format (5)  
10  
rd  
110111  
25 24  
rs1  
rs3  
var size  
7 6  
rs2  
31 30 29  
19 18  
14 13  
9 8  
5 4  
0
Operation  
Implementation  
Multiply-Add  
Multiply-Subtract  
rd rs1 × rs2 + rs3  
rd rs1 × rs2 rs3  
Negative Multiply-Subtract  
Negative Multiple-Add  
rd (rs1 × rs2 rs3)  
rd (rs1 × rs2 + rs3)  
Assembly Language Syntax  
fmadds  
fmaddd  
fmsubs  
fmsubd  
fnmadds  
fnmaddd  
fnmsubs  
fnmsubd  
freg , freg , freg , freg  
rs1 rs2 rs3  
rd  
rd  
rd  
rd  
rd  
rd  
rd  
rd  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
freg , freg , freg , freg  
rs1  
rs2  
rs3  
50  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
Description  
The Floating-point Multiply-Add instructions multiply the registers specified by the  
rs1field times the registers specified by the rs2field, add that product to the  
registers specified by the rs3field, then write the result into the registers specified  
by the rdfield.  
The Floating-point Multiply-Subtract instructions multiply the registers specified by  
the rs1field times the registers specified by the rs2field, subtract from that  
product the registers specified by the rs3field, and then write the result into the  
registers specified by the rdfield.  
The Floating-point Negative Multiply-Add instructions multiply the registers  
specified by the rs1field times the registers specified by the rs2field, negate the  
product, subtract from that negated value the registers specified by the rs3 field, and  
then write the result into the registers specified by the rdfield.  
The Floating-point Negative Multiply-Subtract instructions multiply the registers  
specified by the rs1field times the registers specified by the rs2field, negate the  
product, add that negated product to the registers specified by the rs3field, and  
then write the result into the registers specified by the rdfield.  
All of the operations above are treated as separate multiply and add/ subtract  
operations in SPARC64 V. That is, a multiply operation is first performed with a  
complete rounding step (as if it were a single multiply operation), and then an add/  
subtract operation is performed with a complete rounding step (as if it were a single  
add/ subtract operation). Consequently, at most two rounding errors can be  
incurred.1  
Special behaviors in handling traps are generated in a Floating-point Multiply-Add/  
Subtract instruction in SPARC64 V because of its implementation characteristics. If  
any trapping exception is detected in the multiply part in the process of a Floating-  
point Multiply-Add/ Subtract instruction, the execution of the instruction is aborted,  
the exception condition is recorded in FSR.cexcand FSR.aexc, and the CPU traps  
with the exception condition. The add/ subtract part of the instruction is only  
performed when the multiply-part of the instruction does not have any trapping  
exceptions.  
As described in the TABLE A-2, if there are trapping IEEE754 exception conditions in  
either of the operations FMULor FADD/SUB, only the trapping exception condition is  
recorded in the cexc, and the aexcis not modified. If there are no trapping IEEE754  
exception conditions, every nontrapping exception condition is ORed into the cexc  
and the cexcis accumulated into the aexc. The boundary conditions of an  
unfinished_FPop trap for Floating-point Multiply-Add/ Subtract instructions are  
exactly same as for FMULand FADD/SUBinstructions; if either of the operations  
1. Note that this implementation differs from previous SPARC64 implementations, which incurred at most one  
rounding error.  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
51  
Download from Www.Somanuals.com. All Manuals Search And Download.  
detects any conditions for an unfinished_FPop trap, the Floating-point Multiply-Add/  
Subtract instruction generates the unfinished_FPop exception. In this case, none of rd,  
cexc, or aexcare modified.  
TABLE A-2  
Exceptions in Floating-Point Multiply-Add/ Subtract Instructions  
FMUL  
IEEE754 trap  
No trap  
No trap  
FADD/SUB  
cexc  
IEEE754 trap  
Exception condition of FMUL Exception condition of FADD Logical or of the nontrapping exception  
conditions of FMULand FADD/SUB  
aexc  
No change  
No change  
Logical OR of the cexc(above) and the  
aexc  
Detailed contents of cexcand aexcdepending on the various conditions are  
described in TABLE A-3 and TABLE A-4. The following terminology is used: uf, of, inv,  
and nx are nontrapping IEEE exception conditionsunderflow, overflow, invalid  
operation, and inexact, respectively.  
TABLE A-3 Non-Trapping cexcWhen FSR.NS= 0  
FADD  
none  
none  
nx  
nx  
of nx  
of nx  
of nx  
of nx  
uf of nx  
inv  
none  
nx  
nx  
inv  
nx  
inv nx  
inv of nx  
uf inv nx  
inv  
FMUL  
of nx  
uf nx  
inv  
of nx  
uf nx  
inv  
of nx  
uf nx  
TABLE A-4 Non-Trapping aexcWhen FSR.NS= 1  
FADD  
none  
none  
nx  
nx  
of nx  
of nx  
of nx  
of nx  
uf nx  
uf nx  
uf nx  
inv  
none  
nx  
nx  
inv  
nx  
inv nx  
inv of nx  
uf inv nx  
inv  
FMUL  
of nx  
uf nx  
inv  
of nx  
uf nx  
inv  
of nx  
In the tables, the conditions in the shaded columns are all reported as an  
unfinished_FPop trap by SPARC64 V. In addition, the conditions with do not  
exist.  
52  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
Programming Note The Multiply Add/ Subtract instructions are encoded in the  
SPARC V9 IMPDEP2opcode space, and they are specific to the SPARC64 V  
implementation. They cannot be used in any programs that will be executed on any  
other SPARC V9 processor, unless that implementation exactly matches the  
SPARC64 V use for the IMPDEP2opcode.  
Exceptions  
fp_disabled  
fp_exception_ieee_754 (NV, NX, OF, UF)  
illegal_instruction (size = 00 or 11 ) (fp_disabled is not checked for these encodings)  
2
2
fp_exception_other (unfinished_FPop)  
A.29 Jump and Link  
SPARC64 V clears the upper 32 bits of the PCvalue in r[rd] when PSTATE.AMis set  
(impl. dep. #125). The value written into r[rd]is visible to the instruction in the  
delay slot.  
If either of the low-order two bits of the jump address is nonzero, a  
mem_address_not_aligned exception occurs. However, when the JMPLinstruction  
causes a mem_address_not_aligned trap, DSFSRand DSFARare not updated.  
If the JMPLinstruction has r[rd]= 15, SPARC64 V stores PC + 8 in a hardware table  
called return address stack (RAS). When a ret (jmpl %i7+8, %g0) or retl (jmpl  
%o7+8, %g0) is executed, the value in the RAS is used to predict the return address.  
JMPLwith rd= 0can be used to return from a subroutine. The typical return  
address is r[31] + 8if a nonleaf routine (one that uses the SAVEinstruction) is  
entered by a CALLinstruction, or r[15] + 8if a leaf routine (one that does not  
use the SAVEinstruction) is entered by a CALLinstruction or by a JMPLinstruction  
with rd= 15.  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
53  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                             
A.30 Load Quadword, Atomic [Physical]  
The Load Quadword ASIs in this section are specific to SPARC64 V, as an extension  
to SPARC JPS1.  
opcode  
imm_asi  
ASI value  
operation  
LDDA  
ASI_QUAD_LDD_PHYS  
34  
128-bit atomic load, physically  
addressed  
16  
LDDA  
ASI_QUAD_LDD_PHYS_L  
3C  
128-bit atomic load, little-endian,  
physically addressed  
16  
Format (3) LDDA  
11  
rd  
rd  
010011  
010011  
rs1  
rs1  
imm_asi  
rs2  
i=0  
11  
simm_13  
5
i=1  
31 30 29  
25 24  
19 18  
14 13  
4
0
Assembly Language Syntax  
ldda  
ldda  
[reg_addr] imm_asi, reg  
rd  
[reg_plus_imm] %asi, reg  
rd  
Description  
ASIs 3416 and 3C16 are used with the LDDAinstruction to atomically read a 128-bit  
data item, using physical addressing. The data are placed in an even/ odd pair of 64-  
bit registers. The lowest-address 64 bits are placed in the even-numbered register;  
the highest-address 64 bits are placed in the odd-numbered register. The reference is  
made from the nucleus context.  
In addition to the usual traps for LDDAusing a privileged ASI, a  
data_access_exception exception occurs for a noncacheable access or for the use of the  
quadword-load ASIs with any instruction other than LDDA. A  
mem_address_not_aligned exception is generated if the access is not aligned on a 16-  
byte boundary.  
ASIs 3416 and 3C16 are supported in SPARC64 V in addition to those for Load  
Quadword Atomic for virtually addressed data (ASIs 2416 and 2C16).  
The memory access for a load quad instruction with ASI_QUAD_LDD_PHYS{_L}  
behaves as if the following TTEis set:  
54  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
TTE.NFO= 0  
TTE.CP = 1  
TTE.CV = 0  
TTE.E = 0  
TTE.P = 1  
TTE.W = 0  
Note TTE.IEdepends on the endianness of the ASI. When the ASI is 03416,  
TTE.IE = 0; TTE.IE = 1 when the ASI is 03C16  
.
Therefore, the atomic quad load physical instruction can only be applied to a  
cacheable memory area. Semantically, ASI_QUAD_LDD_PHYS{_L} (03416 and  
03C16) is a combination of ASI_NUCLEUS_QUAD_LDDand ASI_PHYS_USE_EC.  
With respect to little endian memory, a Load Quadword Atomic instruction behaves  
as if it comprises two 64-bit loads, each of which is byte-swapped independently  
before being written into its respective destination register.  
Exceptions:  
privileged_action  
PA_watchpoint (recognized on only the first 8 bytes of a transfer)  
illegal_instruction (misaligned rd)  
mem_address_not_aligned  
data_access_exception  
data_access_error  
fast_data_access_MMU_miss  
fast_data_access_protection  
A.35 Memory Barrier  
Format (3)  
i=1  
cmask  
mmask  
10  
0
op3  
0 1111  
31 30 29  
25 24  
19 18  
14 13 12  
4 3  
0
6
7
Assembly Language Syntax  
membar  
membar_mask  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
55  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Description  
The memory barrier instruction, MEMBAR, has two complementary functions: to  
express order constraints between memory references and to provide explicit control  
of memory-reference completion. The membar_maskfield in the suggested assembly  
language is the concatenation of the cmaskand mmaskinstruction fields.  
The mmaskfield is encoded in bits 3 through 0 of the instruction. TABLE A-5 specifies  
the order constraint that each bit of mmask(selected when set to 1) imposes on  
memory references appearing before and after the MEMBAR. From zero to four mask  
bits can be selected in the mmaskfield.  
TABLE A-5  
Mask Bit  
Order Constraints Imposed by mmaskBits  
Name  
Description  
mmask<3>  
#StoreStore  
The effects of all stores appearing before the MEMBARinstruction must be  
visible to all processors before the effect of any stores following the MEMBAR.  
Equivalent to the deprecated STBARinstruction. Has no effect on SPARC64 V  
since all stores are performed in program order.  
mmask<2>  
#LoadStore  
All loads appearing before the MEMBARinstruction must have been performed  
before the effects of any stores following the MEMBARare visible to any other  
processor. Has no effect on SPARC64 V since all stores are performed in  
program order and must occur after performance of any load.  
mmask<1>  
mmask<0>  
#StoreLoad  
#LoadLoad  
The effects of all stores appearing before the MEMBARinstruction must be  
visible to all processors before loads following the MEMBARmay be performed.  
All loads appearing before the MEMBARinstruction must have been performed  
before any loads following the MEMBARmay be performed. Has no effect on  
SPARC64 V since all loads are performed after any prior loads.  
The cmaskfield is encoded in bits 6 through 4 of the instruction. Bits in the cmask  
field, described in TABLE A-6, specify additional constraints on the order of memory  
references and the processing of instructions. If cmask is zero, then MEMBARenforces  
the partial ordering specified by the mmaskfield; if cmaskis nonzero, then  
completion and partial order constraints are applied.  
TABLE A-6  
Mask Bit  
Bits in the cmaskField  
Function  
Name  
Description  
cmask<2>  
Synchronization #Sync  
barrier  
All operations (including nonmemory reference operations)  
appearing before the MEMBARmust have been performed, and  
the effects of any exceptions become visible before any  
instruction after the MEMBARmay be initiated.  
cmask<1>  
cmask<0>  
Memory issue  
barrier  
#MemIssue  
All memory reference operations appearing before the MEMBAR  
must have been performed before any memory operation after  
the MEMBARmay be initiated. Equivalent to #Syncin  
SPARC64 V.  
Lookaside  
barrier  
#Lookaside  
A store appearing before the MEMBARmust complete before  
any load following the MEMBARreferencing the same address  
can be initiated. Equivalent to #Syncin SPARC64 V.  
56  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                         
A.42 Partial Store (VIS I)  
Please refer A.42 in Commonality for general details.  
Watchpoint exceptions on partial store instructions occur conservatively on  
SPARC64 V. The DCUCRData Watchpoint masks are only checked for nonzero value  
(watchpoint enabled). The byte store mask (r[rs2]) in the partial store instruction  
is ignored, and a watchpoint exception can occur even if the mask is zero (that is, no  
store will take place) (impl. dep. #249).  
For a partial store instruction with mask = 0, SPARC64 V still issues a UPA  
transaction with zero-byte mask.  
Exceptions:  
fp_disabled  
PA_watchpoint  
VA_watchpoint  
illegal_instruction (misaligned rd)  
mem_address_not_aligned (see Partial Store ASIs on page 120)  
data_access_exception (see Partial Store ASIs on page 120)  
LDDF_mem_address_not_aligned (see Partial Store ASIs on page 120)  
data_access_error  
fast_data_access_MMU_miss  
fast_data_access_protection  
A.49 Prefetch Data  
Please refer to Section A.49, Prefetch Data, of Commonality for principal information.  
The prefetchainstruction of SPARC64 V works for the following ASIs.  
ASI_PRIMARY(08016), ASI_PRIMARY_LITTLE(08816  
ASI_SECONDARY(08116), ASI_SECONDARY_LITTLE(08916)  
ASI_NUCLEUS(0416), ASI_NUCLEUS_LITTLE(0C16  
ASI_PRIMARY_AS_IF_USER(01016), ASI_PRIMARY_AS_IF_USER_LITTLE  
)
)
(01816  
)
ASI_SECONDARY_AS_IF_USER(01116), ASI_SECONDARY_AS_IF_USER_LITTLE  
( 01916)  
If an ASI other than the above is specified, prefetchais executed as a nop.  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
57  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                         
TABLE A-7 describes prefetch variants implemented in SPARC64 V.  
TABLE A-7 Prefetch Variants  
fcn  
Fetch to:  
L1D  
L2  
Status  
S
Description  
0
1
S
2
L1D  
L2  
M
3
M
4
NOP  
5-15  
16-19  
reserved (SPARC V9)  
illegal_instruction exception is signalled.  
implementation  
NOP  
dependent.  
20  
L1D  
S
If an access causes an mTLB miss,  
fast_data_access_MMU_miss exception is signalled.  
21  
L2  
S
If an access causes an mTLB miss,  
fast_data_access_MMU_miss exception is signalled.  
22  
L1D  
L2  
M
M
If an access causes an mTLB miss,  
fast_data_access_MMU_miss exception is signalled.  
23  
If an access causes an mTLB miss,  
fast_data_access_MMU_miss exception is signalled.  
24-31  
implementation  
dependent  
NOP  
A.51 Read State Register  
In SPARC64 V, an RDPCRinstruction will generate a privileged_action exception if  
PSTATE.PRIV= 0 and PCR.PRIV= 1. If PSTATE.PRIV= 0 and PCR.PRIV= 0,  
RDPCRwill not cause any access privilege violation exception (impl. dep. #250).  
A.70 SHUTDOWN (VIS I)  
In SPARC64 V, SHUTDOWNacts as a NOPin privileged mode (impl. dep. #206).  
58  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
A.70 Write State Register  
In SPARC64 V, a WRPCRinstruction will cause a privileged_action exception if  
PSTATE.PRIV= 0 and PCR.PRIV= 1. If PSTATE.PRIV= 0 and PCR.PRIV= 0,  
WRPCRcauses a privileged_action exception only when an attempt is made to change  
(that is, write 1 to) PCR.PRIV(impl. dep. #250).  
A.71 Deprecated Instructions  
The deprecated instructions in A.71 of Commonality are provided only for  
compatibility with previous versions of the architecture. They should not be used in  
new software.  
A.71.10 Store Barrier  
In SPARC64 V, STBARbehaves as NOP since the hardware memory models always  
enforce the semantics of these MEMBARs for all memory accesses.  
Release 1.0, 1 July 2002  
F. Chapter A  
Instruction Definitions: SPARC64 V Extensions  
59  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
60  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
B
IEEE Std 754-1985 Requirements for  
SPARC V9  
The IEEE Std 754-1985 floating-point standard contains a number of implementation  
dependencies.  
Please see Appendix B of Commonality for choices for these implementation  
dependencies, to ensure that SPARC V9 implementations are as consistent as  
possible.  
Following is information specific to the SPARC64 V implementation of SPARC V9 in  
these sections:  
Traps Inhibiting Results on page 61  
Floating-Point Nonstandard Mode on page 61  
B.1  
B.6  
Traps Inhibiting Results  
Please refer to Section B.1 of Commonality.  
The SPARC64 V hardware, in conjunction with kernel or emulation code, produces  
the results described in this section.  
Floating-Point Nonstandard Mode  
In this section, the hardware boundary conditions for the unfinished_FPop exception  
and the nonstandard mode of SPARC64 V floating-point hardware are discussed.  
61  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
SPARC64 V floating-point hardware has its specific range of computation. If either  
the values of input operands or the value of the intermediate result shows that the  
computation may not fall in the range that hardware provides, SPARC64 V generates  
an fp_exception_other exception (tt= 02216) with FSR.ftt= 0216 (unfinished_FPop)  
and the operation is taken over by software.  
The kernel emulation routine completes the remaining floating-point operation in  
accordance with the IEEE 754-1985 floating-point standard (impl. dep. #3).  
SPARC64 V implements a nonstandard mode, enabled when FSR.NSis set (see  
FSR_nonstandard_fp (NS) on page 18). Depending on the setting in FSR.NS, the  
behavior of SPARC64 V with respect to the floating-point computation varies.  
B.6.1  
fp_exception_other Exception (ftt=unfinished_FPop)  
SPARC64 V may invoke an fp_exception_other (tt= 02216) exception with FSR.ftt=  
unfinished_FPop (ftt= 0216) in FsTOd, FdTOs, FADD(s,d), FSUB(s,d),  
FsMULd(s,d), FMUL(s,d), FDIV(s,d), FSQRT(s,d) floating-point instructions. In  
addition, Floating-point Multiply-Add/ Subtract instructions generate the exception,  
since the instruction is the combination of a multiply and an add/ subtract operation:  
FMADD(s,d), FMSUB(s,d), FNMADD(s,d), and FNMADD(s,d).  
The following basic policies govern the detection of boundary conditions:  
1. When one of the operands is a denormalized number and the other operand is a  
normal non-zero floating-point number (except for a NaN or an infinity), an  
fp_exception_other with unfinished_FPop condition is signalled. The cases in which  
the result is a zero or an overflow are excluded.  
2. When both operands are denormalized numbers, except for the cases in which the  
result is a zero or an overflow, an fp_exception_other with unfinished_FPop condition  
is signalled.  
3. When both operands are normal, the result before rounding is a denormalized  
number and TEM.UFM = 0, and fp_exception_other with unfinished_FPop condition  
is signalled, except for the cases in which the result is a zero.  
When the result is expected to be a constant, such as an exact zero or an infinity, and  
an insignificant computation will furnish the result, SPARC64 V tries to calculate the  
result without signalling an unfinished_FPop exception.  
62  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Implementation Note Detecting the exact boundary conditions requires a large  
amount of hardware. SPARC64 V detects approximate boundary conditions by  
calculating the exponent intermediate result (the exponent before rounding) from  
input operands, to avoid the hardware cost. Since the computation of the boundary  
conditions is approximate, the detection of a zero result or an overflow result shall  
be pessimistic. SPARC64 V generates an unfinished_FPop exception pessimistically.  
The equations to calculate the result exponent to detect the boundary conditions  
from the input exponents are presented in TABLE B-1, where Er is the approximation  
of the biased result exponent before rounding and is calculated only from the input  
exponents (esrc1, esrc2). Er is to be used for detecting the boundary condition for an  
unfinished_FPop.  
TABLE B-1 Result Exponent Approximation for Detecting unfinished_FPop Boundary  
Conditions  
Operation  
fmuls  
fmuld  
fdivs  
fdivd  
Formula  
Er = esrc1 + esrc2 126  
Er = esrc1 + esrc2 1022  
Er = esrc1 - esrc2 + 126  
Er = esrc1 - esrc2 + 1022  
esrc1 and esrc2 are the biased exponents of the input operands. When the  
corresponding input operand is a denormalized number, the value is 0.  
From Er, eres is calculated. eres is a biased result exponent, after mantissa alignment  
and before rounding, where the appropriate adjustment of the exponent is applied to  
the result mantissa: left-shifting or right-shifting the mantissa to the implicit 1 at the  
left of the binary point, subtracting or adding the shift-amount to the exponent. The  
result mantissa is assumed to be 1.xxxx in calculating eres. If the result is a  
denormalized number, eres is less than zero.  
TABLE B-2 describes the boundary condition of each floating-point instruction that  
generates an unfinished_FPop exception.  
TABLE B-2  
unfinished_FPop Boundary Conditions  
Operation  
FdTOs  
Boundary Conditions  
25 < eres < 1 and TEM.UFM= 0.  
Second operand (rs2) is a denormalized number.  
FsTOd  
FADDs, FSUBs,  
FADDd, FSUBd  
1. One of the operands is a denormalized number, and the other operand is a normal,  
1
nonzero floating-point number (except for a NaN and an infinity) .  
2. Both operands are denormalized numbers.  
3. Both operands are normal nonzero floating-point numbers (except for a NaN and  
an infinity), eres < 1, and TEM.UFM= 0.  
Release 1.0, 1 July 2002  
F. Chapter B  
IEEE Std 754-1985 Requirements for SPARC V9  
63  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
TABLE B-2  
Operation  
unfinished_FPop Boundary Conditions (Continued)  
Boundary Conditions  
FMULs, FMULd  
1. One of the operands is a denormalized number, the other operand is a normal,  
nonzero floating-point number (except for a NaN and an infinity), and  
single precision: -25 < Er  
double precision: -54 < Er  
2. Both operands are normal, nonzero floating-point numbers (except for a NaN and  
an infinity), TEM.UFM= 0, and  
single precision: 25 < eres < 1  
double precision: 54 < eres < 1  
FsMULd  
1. One of the operands is a denormalized number, and the other operand is a normal,  
nonzero floating-point number (except for a NaN and an infinity).  
2. Both operands are denormalized numbers.  
FDIVs, FDIVd  
1. The dividend (operand1; rs1) is a normal, nonzero floating-point number (except  
for a NaN and an infinity), the divisor (operand2; rs2) is a denormalized number,  
and  
single precision: Er < 255  
double precision: Er < 2047  
2. The dividend (operand1; rs1) is a denormalized number, the divisor (operand2;  
rs2) is a normal, nonzero floating-point number (except for a NaN and an infinity),  
and  
single precision: 25 < Er  
double precision: 54 < Er  
3. Both operands are denormalized numbers.  
4. Both operands are normal, nonzero floating-point numbers (except for a NaN and  
an infinity), TEM.UFM= 0 and  
single precision: 25 < eres < 1  
double precision: 54 < eres < 1  
FSQRTs, FSQRTd  
The input operand (operand2; rs2) is a positive nonzero and is a denormalized  
number.  
1. Operation of 0 and denormalized number generates a result in accordance with the IEEE754-1985 standard.  
Pessimistic Zero  
If a condition in TABLE B-3 is true, SPARC64 V generates the result as a pessimistic  
zero, meaning that the result is a denormalized minimum or a zero, depending on  
the rounding mode (FSR.RD).  
64  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
TABLE B-3 Conditions for a Pessimistic Zero  
Conditions  
Operations  
One operand is denormalized1  
Both are denormalized  
Both are normal fp-number2  
FdTOs  
always  
eres -25  
FMULs,  
FMULd  
single precision: Er 25  
double precision: Er 54  
single precision: Er 25  
double precision: Er 54  
Always  
single precision: eres 25  
double precision: eres 54  
single precision: eres 25  
double precision: eres 54  
FDIVs,  
FDIVd  
Never  
1. Both operands are non-zero, non-NaN, and non-infinity numbers.  
2. Both may be zero, but both are non-NaN and non-infinity numbers.  
Pessimistic Overflow  
If a condition in TABLE B-4 is true, SPARC64 V regards the operation as having an  
overflow condition.  
TABLE B-4 Pessimistic Overflow Conditions  
Operations  
FDIVs  
Conditions  
The divisor (operand2; rs2) is a denormalized number and, Er 255.  
The divisor (operand2; rs2) is a denormalized number and, E 2047.  
FDIVd  
B.6.2  
Operation Under FSR.NS = 1  
When FSR.NS= 1 (nonstandard mode), SPARC64 V zeroes all the input  
denormalized operands before the operation and signals an inexact exception if  
enabled. If the operation generates a denormalized result, SPARC64 V zeroes the  
result and also signals an inexact exception if enabled. The following list defines the  
operation in detail.  
If either operand is a denormalized number and both operands are non-zero, non-  
NaN, and non-infinity numbers, the input denormalized operand is replaced with  
a zero with same sign, and the operation is performed. If enabled, inexact  
exception is signalled; an fp_exception_ieee_754 (tt= 02116) is generated, with  
nxc=1 in FSR.cexc(FSR.ftt=0116; IEEE754_exception). However, if the  
operation is FDIV(s,d) and either a division_by_zero or an invalid_operation  
condition is detected, or if the operation is FSQRT(s,d) and an invalid_operation  
condition is detected, the inexact condition is not reported.  
If the result before rounding is a denormalized number, the result is flushed to a  
zero with a same sign and signals either an underflow exception or an inexact  
exception, depending on FSR.TEM.  
As observed from the preceding, when FSR.NS = 1, SPARC64 V generates neither  
an unfinished_FPop exception nor a denormalized number as a result. TABLE B-5  
Release 1.0, 1 July 2002  
F. Chapter B  
IEEE Std 754-1985 Requirements for SPARC V9  
65  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
summarizes the behavior of SPARC64 V floating-point hardware depending on  
FSR.NS.  
Note The result and behavior of SPARC64 V of the shaded column in the tables  
Table B-5 and Table B-6 conform to IEEE754-1985 standard.  
Note Throughout Table B-5 and Table B-6, lowercase exception conditions such as  
nx, uf, of, dv and nv are nontrapping IEEE 754 exceptions. Uppercase exception  
conditions such as NX, UF, OF, DZ and NV are trapping IEEE 754 exceptions.  
TABLE B-5  
Floating-Point Exceptional Conditions and Results  
FSR.N Denorm : Result  
S
Pessimistic Pessimistic  
Norm1  
Denorm2  
Zero  
Overflow  
UFM  
OFM  
NXM  
1
Result  
1
0
UF  
Yes  
NX  
No  
Yes  
0
uf + nx, a signed zero, or a signed  
Dmin  
3
No  
1
1
UF  
4
0
unfinished_FPop  
0
No  
1
Conforms to IEEE754-1985  
UF  
Yes  
0
NX  
0
uf + nx, a signed zero, or a signed  
Dmin  
Yes  
n/ a  
1
0
1
OF  
No  
Yes  
No  
NX  
0
of + nx, a signed infinity, or a  
signed Nmax  
5
unfinished_FPop  
1
1
0
UF  
No  
Yes  
Yes  
NX  
1
0
uf + nx, a signed zero  
Conforms to IEEE754-1985  
TABLE B-6  
No  
1. One of the operands is a denormalized number, and the other operand is a normal or a denormalized number  
(non- zero, non-NaN, and non-infinity).  
2. The result before rounding turns out to be a denormalized number.  
3. Dmin = denormalized minimum.  
4. If the FPop is either FADD{s,d}, or FSUB{s,d} and the operation is 0 ± denormalized number, SPARC64 V does  
not generate an unfinished_FPop and generates a result according to IEEE754-1985 standard.  
5. Nmax = normalized maximum.  
66  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
TABLE B-6 describes how SPARC64 V behaves when FSR.NS= 1 (nonstandard mode).  
TABLE B-6  
Nonarithmetic Operations Under FSR.NS= 1  
op2=  
Operations op1= denorm denorm  
UFM  
NXM  
1
DVM  
NVM  
Result  
FsTOd  
Yes  
Yes  
NX  
0
nx, a signed zero  
FdTOs  
1
0
1
UF  
NX  
0
uf + nx, a signed zero  
FADDs,  
FSUBs,  
FADDd,  
FSUBd  
Yes  
No  
Yes  
Yes  
No  
Yes  
Yes  
1
NX  
0
nx, op2  
1
NX  
0
nx, op1  
1
NX  
0
nx, a signed zero  
FMULs,  
FMULd,  
FsMULd  
1
NX  
0
nx, a signed zero  
Yes  
No  
Yes  
Yes  
1
NX  
0
nx, a signed zero  
FDIVs,  
FDIVd  
Yes  
No  
Yes  
1
1
1
NX  
0
nx, a signed zero  
1
DZ  
0
dz, a signed infinity  
NV  
1
0
nv, dNaN  
FSQRTs,  
FSQRTd  
Yes and op2  
> 0  
1
NX  
0
nx, zero  
NV  
Yes and op2  
< 0  
0
nv, dNaN  
1. A single precision dNaN is 7FFF.FFFF and a double precision dNaN is 7FFF.FFFF.FFFF.FFFF  
16,  
.
16  
Release 1.0, 1 July 2002  
F. Chapter B  
IEEE Std 754-1985 Requirements for SPARC V9  
67  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
68  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
C
Implementation Dependencies  
This appendix summarizes implementation dependencies. In SPARC V9 and SPARC  
JPS1, the notation IMPL. DEP. #nn:identifies the definition of an implementation  
dependency; the notation (impl. dep. #nn)identifies a reference to an  
implementation dependency. These dependencies are described by their number nn  
in TABLE C-1 on page 70. These numbers have been removed from the body of this  
document for SPARC64 V to make the document more readable. TABLE C-1 has been  
modified to include descriptions of the manner in which SPARC64 V has resolved  
each implementation dependency.  
Note SPARC International maintains a document, Implementation Characteristics of  
Current SPARC-V9-based Products, Revision 9.x, that describes the implementation-  
dependent design features of all SPARC V9-compliant implementations. Contact  
SPARC International for this document at  
home page: www.sparc.org  
email: info@sparc.org  
C.1  
Definition of an Implementation  
Dependency  
Please refer to Section C.1 of Commonality.  
69  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
C.2  
C.3  
C.4  
Hardware Characteristics  
Please refer to Section C.2 of Commonality.  
Implementation Dependency Categories  
Please refer to Section C.3 of Commonality.  
List of Implementation Dependencies  
TABLE C-1 provides a complete list of how each implementation dependency is  
treated in the SPARC64 V implementation.  
TABLE C-1 SPARC64 V Implementation Dependencies (1 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
1
The operating system emulates all instructions that generate  
illegal_instruction or unimplemented_FPop exceptions.  
2
3
Number of IU registers  
SPARC64 V supports eight register windows (NWINDOWS= 8).  
SPARC64 V supports an additional two global register sets (Interrupt  
globals and MMU globals) for a total of 160 integer registers.  
Incorrect IEEE Std 754-1985 results  
62  
See Section B.6, Floating-Point Nonstandard Mode, on page 61 for details.  
45  
Reserved.  
6
I/O registers privileged status  
This dependency is beyond the scope of this publication. It should be  
defined in each system that uses SPARC64 V.  
7
8
I/O register definitions  
This dependency is beyond the scope of this publication. It should be  
defined in each system that uses SPARC64 V.  
RDASR/WRASR target registers  
See A.50 and A.70 in Commonality for details of implementation-dependent  
RDASR/ WRASRinstructions.  
70  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
TABLE C-1 SPARC64 V Implementation Dependencies (2 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
9
RDASR/WRASR privileged status  
See A.50 and A.70 in Commonality for details of implementation-dependent  
RDASR/ WRASRinstructions.  
1012 Reserved.  
13  
VER.impl  
20  
VER.impl= 5 for the SPARC64 V processor.  
1415 Reserved.  
16  
IU deferred-trap queue  
24  
SPARC64 V neither has nor needs an IU deferred-trap queue.  
17  
18  
Reserved.  
Nonstandard IEEE 754-1985 results  
18, 62  
SPARC64 V flushes denormal operands and results to zero when  
FSR.NS= 1. For the treatment of denormalized numbers, please refer to  
Section B.6, Floating-Point Nonstandard Mode, on page 61 for details.  
19  
FPU version, FSR.ver  
FSR.ver= 0 for SPARC64 V.  
18  
19  
2021 Reserved.  
22  
FPU TEM, cexc, and aexc  
SPARC64 V implements all bits in the TEM, cexc, and aexcfields in  
hardware.  
23  
24  
25  
Floating-point traps  
In SPARC64 V floating-point traps are always precise; no FQ is needed.  
24  
24  
24  
SPARC64 V neither has nor needs a floating-point deferred-trap queue.  
RDPR of FQ with nonexistent FQ  
Attempting to execute an RDPRof the FQcauses an illegal_instruction  
exception.  
2628 Reserved.  
29  
Address space identifier (ASI) definitions  
The ASIs that are supported by SPARC64 V are defined in Appendix L,  
Address Space Identifiers.  
30  
31  
ASI address decoding  
SPARC64 V supports all of the listed ASIs.  
117  
138  
Catastrophic error exceptions  
SPARC64 V contains a watchdog timer that times out after no instruction  
has been committed for a specified number of cycles. If the timer times out,  
the CPU tries to invoke an async_data_error trap. If the counter continues to  
count to reach 233, the processor enters error_state. Upon an entry to  
error_state, the processor optionally generates a WDR reset to recover  
from error_state.  
Release 1.0, 1 July 2002  
F. Chapter C  
Implementation Dependencies  
71  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
TABLE C-1 SPARC64 V Implementation Dependencies (3 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
32  
Deferred traps  
37, 149  
SPARC64 V signals a deferred trap in a few of its severe error conditions.  
SPARC64 V does not contain a deferred trap queue.  
33  
Trap precision  
37  
There are no deferred traps in SPARC64 V other than the trap caused by a  
few severe error conditions. All traps that occur as the result of program  
execution are precise.  
34  
35  
Interrupt clearing  
For details of interrupt handling see Appendix N, Interrupt Handling.  
Implementation-dependent traps  
SPARC64 V supports the following traps that are implementation  
dependent:  
39, 39  
interrupt_vector_trap (tt= 060  
)
16  
PA_watchpoint (tt= 061  
)
16  
VA_watchpoint (tt= 062  
)
16  
ECC_error (tt= 063  
)
16  
fast_instruction_access_MMU_miss (tt= 064 through 067  
)
16  
16  
fast_data_access_MMU_miss (tt= 068 through 06B  
)
16 16  
fast_data_access_protection (tt= 06C through 06F  
)
16  
16  
async_data_error (tt= 04016  
)
36  
Trap priorities  
38  
SPARC64 Vs implementation-dependent traps have the following  
priorities:  
interrupt_vector_trap (priority =16)  
PA_watchpoint (priority =12)  
VA_watchpoint (priority = 1)  
fast_instruction_access_MMU_miss (priority = 2)  
fast_data_access_MMU_miss (priority = 12)  
fast_data_access_protection (priority = 12)  
async_data_error (priority = 2)  
37  
38  
Reset trap  
37  
SPARC64 V implements power-on reset (POR) and watchdog reset.  
Effect of reset trap on implementation-dependent registers  
141  
See Section O.3, Processor State after Reset and in RED_state, on page 141.  
39  
40  
Entering error_state on implementation-dependent errors  
CPU watchdog timeout at 233 ticks, a normal trap, or an SIR at TL= MAXTL  
causes the CPU to enter error_state.  
36  
36  
Error_state processor state  
SPARC64 V optionally takes a watchdog reset trap after entry to  
error_state. Most error-logging register state will be preserved. (See also  
impl. dep. #254.)  
41  
Reserved.  
72  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
TABLE C-1 SPARC64 V Implementation Dependencies (4 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
42  
FLUSH instruction  
SPARC64 V implements the FLUSHinstruction in hardware.  
43  
44  
Reserved.  
Data access FPU trap  
The destination register(s) are unchanged if an access error occurs.  
4546 Reserved.  
47  
RDASR  
See A.50, Read State Register, in Commonality for details.  
48  
WRASR  
See A.70, Write State Register, in Commonality for details.  
4954 Reserved.  
55 Floating-point underflow detection  
See FSR_underflow in Section 5.1.7 of Commonality for details.  
56100 Reserved.  
101  
Maximum trap level  
20  
MAXTL= 5.  
102  
Clean windows trap  
SPARC64 V generates a clean_window exception; register windows are  
cleaned in software.  
103  
Prefetch instructions  
following implementation-dependent characteristics:  
The prefetches have observable effects in privileged code.  
Prefetch variants 03 do not cause a fast_data_access_MMU_miss trap,  
because the prefetch is dropped when a fast_data_access_MMU_miss  
condition happens. On the other hand, prefetch variants 2023 cause  
data_access_MMU_miss traps on TLB misses.  
All prefetches are for 64-byte cache lines, which are aligned on a 64-byte  
boundary.  
See Section A.49, Prefetch Data, on page 57, for implemented variations  
and their characteristics.  
Prefetches will work normally if the ASI is ASI_PRIMARY,  
ASI_SECONDARY, or ASI_NUCLEUS, ASI_PRIMARY_AS_IF_USER,  
ASI_SECONDARY_AS_IF_USER, and their little-endian pairs.  
104  
105  
VER.manuf  
20  
19  
VER.manuf= 0004 . The least significant 8 bits are Fujitsus JEDEC  
manufacturing code.  
16  
TICK register  
SPARC64 V implements 63 bits of the TICKregister; it increments on every  
clock cycle.  
Release 1.0, 1 July 2002  
F. Chapter C  
Implementation Dependencies  
73  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
TABLE C-1 SPARC64 V Implementation Dependencies (5 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
106  
IMPDEPn instructions  
49  
SPARC64 V uses the IMPDEP2opcode for the Multiply Add/ Subtract  
instructions. SPARC64 V also conforms to Suns specification for VIS-1 and  
VIS-2.  
107  
108  
109  
Unimplemented LDD trap  
SPARC64 V implements LDDin hardware.  
Unimplemented STD trap  
SPARC64 V implements STDin hardware.  
LDDF_mem_address_not_aligned  
If the address is word aligned but not doubleword aligned, SPARC64 V  
generates the LDDF_mem_address_not_aligned exception. The trap handler  
software emulates the instruction.  
110  
111  
112  
STDF_mem_address_not_aligned  
If the address is word aligned but not doubleword aligned, SPARC64 V  
generates the STDF_mem_address_not_aligned exception. The trap handler  
software emulates the instruction.  
LDQF_mem_address_not_aligned  
SPARC64 V generates an illegal_instruction exception for all LDQFs. The  
processor does not perform the check for fp_disabled. The trap handler  
software emulates the instruction.  
STQF_mem_address_not_aligned  
SPARC64 V generates an illegal_instruction exception for all STQFs. The  
processor does not perform the check for fp_disabled. The trap handler  
software emulates the instruction.  
113  
114  
SPARC64 V implements Total Store Order (TSO) for all the memory models  
specified in PSTATE.MM. See Chapter 8, Memory Models, for details.  
42  
36  
RED_state trap vector address (RSTVaddr)  
RSTVaddris a constant in SPARC64 V, where:  
VA= FFFF FFFF F000 000016 and  
PA=07FF F000 000016  
115  
116  
RED_state processor state  
See RED_state on page 36 for details of implementation-specific actions in  
RED_state.  
36  
SIR_enable control flag  
See Section A.60 SIRin Commonality for details.  
117  
118  
MMU disabled prefetch behavior  
Prefetch and nonfaulting Load always succeed when the MMU is disabled.  
91  
Identifying I/O locations  
This dependency is beyond the scope of this publication. It should be  
defined in a system that uses SPARC64 V.  
74  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
TABLE C-1 SPARC64 V Implementation Dependencies (6 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
119  
Unimplemented values for PSTATE.MM  
42  
Writing 112 into PSTATE.MMcauses the machine to use the TSO memory  
model. However, the encoding 112 should not be used, since future versions  
of SPARC64 V may use this encoding for a new memory model.  
120  
121  
Coherence and atomicity of memory operations  
Although SPARC64 V implements the UPA-based cache coherency  
mechanism, this dependency is beyond the scope of this publication. It  
should be defined in a system that uses SPARC64 V.  
Implementation-dependent memory model  
SPARC64 V implements TSO, PSO, and RMO memory models. See  
Chapter 8, Memory Models, for details.  
Accesses to pages with the E(Volatile) bit of their MMU page table entry set  
are also made in program order.  
122  
123  
FLUSH latency  
Since the FLUSHinstruction synchronizes the processor, its total latency  
varies depending on many portions of the SPARC64 V processor s state.  
Assuming that all prior instructions are completed, the latency of FLUSHis  
18 processor cycles.  
Input /output (I/O) semantics  
This dependency is beyond the scope of this publication. It should be  
defined in a system that uses SPARC64 V.  
124  
125  
Implicit ASI when TL > 0  
See Section 5.1.7 of Commonality for details.  
Address masking  
29, 49, 53  
When PSTATE.AM = 1, SPARC64 V does mask out the high-order 32 bits of  
the PCwhen transmitting it to the destination register.  
126  
Register Windows State Registers width  
NWINDOWSfor SPARC64 V is 8; therefore, only 3 bits are implemented for  
the following registers: CWP, CANSAVE, CANRESTORE, OTHERWIN. If an  
attempt is made to write a value greater than NWINDOWS 1 to any of these  
registers, the extraneous upper bits are discarded. The CLEANWINregister  
contains 3 bits.  
127201 Reserved.  
202  
fast_ECC_error trap  
fast_ECC_error trap is not implemented in SPARC64 V.  
203  
204  
205  
Dispatch Control Register bits 13:6 and 1  
SPARC64 V does not implement DCR.  
22  
22  
24  
DCR bits 5:3 and 0  
SPARC64 V does not implement DCR.  
Instruction Trap Register  
SPARC64 V implements the Instruction Trap Register.  
Release 1.0, 1 July 2002  
F. Chapter C  
Implementation Dependencies  
75  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
TABLE C-1 SPARC64 V Implementation Dependencies (7 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
206  
SHUTDOWN instruction  
58  
In privileged mode the SHUTDOWNinstruction executes as a NOP in  
SPARC64 V.  
207  
PCR register bits 47:32, 26:17, and bit 3  
20, 21,  
201  
SPARC64 V uses these bits for the following purposes:  
Bits 47:32 for set/ clear/ show status of overflow (OVF).  
Bit 26 for validity of OVFfield (OVRO).  
Bits 24:22 for number of counter pair (NC).  
Bits 20:18 for counter selector (SC).  
Bit 3 for validity of SU/ SLfield (ULRO).  
Other implementation-dependent bits are read as 0 and writes to them are  
ignored.  
208  
Ordering of errors captured in instruction execution  
The order in which errors are captured during instruction execution is  
implementation dependent. Ordering can be in program order or in order of  
detection.  
209  
210  
211  
212  
Software intervention after instruction-induced error  
Precision of the trap to signal an instruction-induced error for which  
recovery requires software intervention is implementation dependent.  
ERROR output signal  
The causes and the semantics of ERROR output signal are implementation  
dependent.  
Error logging registersinformation  
The information that the error logging registers preserves beyond the reset  
induced by an ERROR signal is implementation dependent.  
Trap with fatal error  
Generation of a trap along with ERROR signal assertion upon detection of a  
fatal error is implementation dependent.  
213  
214  
215  
AFSR.PRIV  
SPARC64 V does not implement the AFSR.PRIVbit.  
Enable/disable control for deferred traps  
SPARC64 V does not implement a control feature for deferred traps.  
Error barrier  
DONEand RETRYinstructions may implicitly provide an error barrier  
function as MEMBAR #Sync. Whether DONEand RETRYinstructions provide  
an error barrier is implementation dependent.  
216  
217  
data_access_error trap precision  
data_access_error trap is always precise in SPARC64 V.  
instruction_access_error trap precision  
instruction_access_error trap is always precise in SPARC64 V.  
76  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
TABLE C-1 SPARC64 V Implementation Dependencies (8 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
218  
async_data_error  
39  
async_data_error trap is implemented in SPARC64 V, using tt= 40 . See  
16  
Appendix P for details.  
219  
Asynchronous Fault Address Register (AFAR) allocation  
177, 178  
SPARC64 V implements two AFARs:  
VA = 00 for an error occurring in D1 cache.  
16  
VA = 08 for an error occurring in U2 cache.  
16  
220  
221  
Addition of logging and control registers for error handling  
SPARC64 V implements various features for sustaining reliability. See  
Appendix P for details.  
Special/signalling ECCs  
The method to generate specialor signallingECCs and whether  
processor-ID is embedded into the data associated with special/ signalling  
ECCs is implementation dependent.  
222  
TLB organization  
85  
SPARC64 V has the following TLB organization:  
Level-2 micro ITLB (uITLB), 32-way fully associative  
Level-1 micro DTLB (uDTLB), 32-way fully associative  
Level-2 IMMU-TLBconsisting of sITLB (set-associative Instruction TLB)  
and fITLB (fully associative Instruction TLB).  
Level-2 DMMU-TLBconsisting of sDTLB (set-associative Data TLB) and  
fDTLB (fully associative Data TLB).  
223  
224  
TLB multiple-hit detection  
86  
86  
On SPARC64 V, TLB multiple hit detection is supported. However, the  
multiple hit is not detected at every TLB reference. When the micro-TLB  
(uTLB), which is the cache of sTLB and fTLB, matches the virtual address,  
the multiple hit in sTLB and fTLB is not detected. The multiple hit is  
detected only when the micro-TLB mismatches and the main TLB is  
referenced.  
MMU physical address width  
The SPARC64 V MMU implements 43-bit physical addresses. The PAfield of  
the TTEholds a 43-bit physical address. Bits 46:43 of each TTE always read  
as 0 and writes to them are ignored. The MMU translates virtual addresses  
into 43-bit physical addresses. Each cache tag holds bits 42:6 of physical  
addresses.  
225  
226  
TLB locking of entries  
87  
87  
In SPARC64 V, when a TTE with its lock bit set is written into TLB through  
the Data In register, the TTE is automatically written into the corresponding  
fully associative TLB and locked in the TLB. Otherwise, the TTE is written  
into the corresponding sTLB of fTLB, depending on its page size.  
TTE support for CV bit  
SPARC64 V does not support the CVbit in TTE. Since I1 and D1 are  
virtually indexed caches, unaliasing is supported by SPARC64 V. See also  
impl. dep. #232.  
Release 1.0, 1 July 2002  
F. Chapter C  
Implementation Dependencies  
77  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
TABLE C-1 SPARC64 V Implementation Dependencies (9 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
227  
TSB number of entries  
88  
SPARC64 V supports a maximum of 16 million entries in the common TSB  
and a maximum of 32 million lines the Split TSB.  
228  
229  
TSB_Hash supplied from TSB or context-ID register  
TSB_Hashis generated from the context-ID register in SPARC64 V.  
88  
88  
TSB_Base address generation  
SPARC64 V generates the TSB_Baseaddress directly from the TLB  
Extension Registers. By maintaining compatibility with UltraSPARC I/ II,  
SPARC64 V provides mode flag MCNTL.JPS1_TSBP. When  
MCNTL.JPS1_TSBP= 0, the TSB_Baseregister is used.  
230  
231  
232  
233  
data_access_exception trap  
SPARC64 generates data_access_exception only for the causes listed in  
Section 7.6.1 of Commonality.  
89  
91  
MMU physical address variability  
SPARC64 V supports both 41-bit and 43-bit physical address mode. The  
initial width of the physical address is controlled by OPSR.  
DCU Control Register CP and CV bits  
SPARC64 V does not implement CPand CVbits in the DCU Control  
Register. See also impl. dep. #226.  
23, 91  
92  
TSB_Hash field  
SPARC64 V does not implement TSB_Hash.  
234  
235  
TLB replacement algorithm  
For fTLB, SPARC64 V implements a pseudo-LRU. For sTLB, LRU is used.  
93  
94  
TLB data access address assignment  
The MMU TLB data-access address assignment and the purpose of the  
address are implementation dependent.  
236  
TSB_Size field width  
97  
In SPARC64 V, TSB_Sizeis 4 bits wide, occupying bits 3:0 of the TSB  
register. The maximum number of TSBentries is, therefore, 512 × 215 (16M  
entries).  
237  
238  
DSFAR/DSFSR for JMPL/RETURN mem_address_not_aligned  
A mem_address_not_aligned exception that occurs during a JMPLor RETURN  
instruction does not update either the D-SFARor D-SFSRregister.  
89, 97  
87  
TLB page offset for large page sizes  
On SPARC64 V, even for a large page, written data for TLB Data Register is  
preserved for bits representing an offset in a page, so the data previously  
written is returned regardless of the page size.  
239  
Register access by ASIs 5516 and 5D16  
92  
In SPARC64 V, VA<63:19> of IMMU ASI 5516 and DMMU ASI 5D16 are  
ignored. An access to virtual addresses 4000016 to 60FF816 is treated as an  
access 0000016 to 20FF816  
78  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
TABLE C-1 SPARC64 V Implementation Dependencies (10 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
240  
DCU Control Register bits 47:41  
23  
SPARC64 V uses bit 41 for WEAK_SPCA, which enables/ disables memory  
access in speculative paths.  
241  
242  
Address Masking and DSFAR  
SPARC64 V writes zeroes to the more significant 32 bits of DSFAR.  
TLB lock bit  
87  
In SPARC64 V, only the fITLB and the fDTLB support the lock bit. The lock  
bit in sITLB and sDTLB is read as 0 and writes to it are ignored.  
243  
Interrupt Vector Dispatch Status Register BUSY/NACK pairs  
136  
In SPARC64 V, 32 BUSY/ NACK pairs are implemented in the Interrupt  
Vector Dispatch Status Register.  
244  
245  
Data Watchpoint Reliability  
No implementation-dependent features of SPARC64 V reduce the reliability  
of data watchpoints.  
24  
24  
Call/Branch displacement encoding in I-Cache  
In SPARC64 V, the least significant 11 bits (bits 10:0) of a CALLor branch  
(BPcc, FBPfcc, Bicc, BPr) instruction in an instruction cache are identical  
to the architectural encoding (as they appear in main memory).  
246  
247  
248  
249  
VA<38:29> for Interrupt Vector Dispatch Register Access  
SPARC64 V ignores all 10 bits of VA<38:29> when the Interrupt Vector  
Dispatch Register is written.  
136  
136  
18  
Interrupt Vector Receive Register SID fields  
SPARC64 V obtains the interrupt source identifier SID_Lfrom the UPA  
packet.  
Conditions for fp_exception_other with unfinished_FPop  
SPARC64 V triggers fp_exception_other with trap type unfinished_FPop  
under the standard conditions described in Commonality Section 5.1.7.  
Data watchpoint for Partial Store instruction  
57  
Watchpoint exceptions on Partial Store instructions occur conservatively on  
SPARC64 V. The DCUCRData Watchpoint masks are only checked for  
nonzero value (watchpoint enabled). The byte store mask (r[rs2]) in the  
Partial Store instruction is ignored, and a watchpoint exception can occur  
even if the mask is zero (that is, no store will take place).  
250  
PCR accessibility when PSTATE.PRIV = 0  
20, 22, 58  
In SPARC64 V, the accessibility of PCRwhen PSTATE.PRIV= 0 is  
determined by PCR.PRIV. If PSTATE.PRIV= 0 and PCR.PRIV= 1, an  
attempt to execute either RDPCRor WRPCRwill cause a privileged_action  
exception. If PSTATE.PRIV= 0 and PCR.PRIV= 0, RDPCRoperates without  
privilege violation and WRPCRgenerates a privileged_action exception only  
when an attempt is made to change (that is, write 1 to) PCR.PRIV.  
251  
Reserved.  
Release 1.0, 1 July 2002  
F. Chapter C  
Implementation Dependencies  
79  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
TABLE C-1 SPARC64 V Implementation Dependencies (11 of 11)  
Nbr  
SPARC64 V Implementation Notes  
Page  
252  
DCUCR.DC (Data Cache Enable)  
24  
SPARC64 V does not implement DCUCR.DC.  
253  
254  
DCUCR.IC (Instruction Cache Enable)  
SPARC64 V does not implement DCUCR.IC.  
24  
Means of exiting error_state  
37, 146  
The standard behavior of a SPARC64 V CPU upon entry into  
error_stateis to reset itself by internally generating a watchdog_reset  
(WDR). However, OPSRcan be set so that when error_state is entered, the  
processor remains halted in error_stateinstead of generating a  
watchdog_reset.  
255  
256  
LDDFA with ASI E0 or E1 and misaligned destination register number  
No exception is generated based on the destination register rd.  
120  
120  
16  
16  
LDDFA with ASI E016 or E116 and misaligned memory address  
n
For LDDFAwith ASI E016 or E11 and a memory address aligned on a 2 -byte  
boundary, a SPARC64 V processor behaves as follows:  
n 3 (8-byte alignment): no exception related to memory address  
alignment is generated.  
n = 2 (4-byte alignment): LDDF_mem_address_not_aligned exception is  
generated.  
n 1 (2-byte alignment): mem_address_not_aligned exception is  
generated.  
LDDFA with ASI C016C516 or C816CD16 and misaligned memory address  
For LDDFAwith C016C516 or C816CD16 and a memory address aligned on  
a 2 -byte boundary, a SPARC64 V processor behaves as follows:  
120  
257  
n
n 3 (8-byte alignment): no exception related to memory address  
alignment is generated.  
n = 2 (4-byte alignment): LDDF_mem_address_not_aligned exception is  
generated.  
n 1 (2-byte alignment): mem_address_not_aligned exception is  
generated.  
ASI_SERIAL_ID  
119  
258  
SPARC64 V provides an identification code for each processor.  
80  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
F.APPENDIX  
D
Formal Specification of the Memory  
Models  
Please refer to Appendix D of Commonality.  
81  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
82  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
E
Opcode Maps  
Please refer to Appendix E in Commonality. TABLE E-1 lists the opcode map for the  
SPARC64 V IMPDEP2instruction.  
TABLE E-1 IMPDEP2(op = 2, op3 = 3716)  
var (instruction <8:7>)  
00  
01  
10  
11  
(not used reserved)  
00  
01  
10  
11  
FMADDs  
FMADDd  
FMSUBs  
FMSUBd  
FNMADDs  
SNMSUBd  
FNMADDs  
FNMSUBd  
size  
(instruction<6:5>)  
(reserved for quad operations)  
83  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
84  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
F
Memory Management Unit  
The Memory Management Unit (MMU) architecture of SPARC64 V conforms to the  
MMU architecture defined in Appendix F of Commonality but with some model  
dependency. See Appendix F in Commonality for the basic definitions of the  
SPARC64 V MMU.  
Section numbers in this appendix correspond to those in Appendix F of  
Commonality. Figures and tables, however, are numbered consecutively.  
This appendix describes the implementation dependencies and other additional  
information about the SPARC64 V MMU. For SPARC64 V implementations, we first  
list the implementation dependency as given in TABLE C-1 of Commonality, then  
describe the SPARC64 V implementation.  
F.1  
Virtual Address Translation  
IMPL. DEP. #222: TLB organization is JPS1 implementation dependent.  
SPARC64 V has the following TLB organization:  
Level-1 micro ITLB (uITLB), 32-way fully associative  
Level-1 micro DTLB (uDTLB), 32-way fully associative  
Level-2 IMMU-TLB consists of sITLB (set-associative Instruction TLB) and  
fITLB (fully associative Instruction TLB).  
Level-2 DMMU-TLB consists of sDTLB (set-associative Data TLB) and fDTLB  
(fully associative Data TLB).  
TABLE F-1 shows the organization of SPARC64 V TLBs.  
Hardware contains micro-ITLB and micro-DTLB as the temporary memory of the  
main TLBs, as shown in TABLE F-1. In contrast to the micro-TLBs, sTLB and fTLB  
are called main TLBs.  
85  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
The micro-TLBs are coherent to main TLBs and are not visible to software, with  
the exception of TLB multiple hit detection. Hardware maintains the consistency  
between micro-TLBs and main TLBs.  
No other details on micro-TLB are provided because software cannot execute  
direct operations to micro-TLB and its configuration is invisible to software.  
TABLE F-1 Organization of SPARC64 V TLBs  
Feature  
sITLB and sDTLB  
2048  
fITLB and fDTLB  
32  
Entries  
Associativity  
2-way set associative  
8 KB/ 4MB  
Fully associative  
8 KB/ 64 KB/ 512 KB/ 4 MB  
Supported  
Page size supported  
Locked translation entry  
Unlocked translation entry  
Not supported  
Supported  
Supported  
IMPL. DEP. #223: Whether TLB multiple-hit detections are supported in JPS1 is  
implementation dependent.  
On SPARC64 V, TLB multiple hit detection is supported. However, the multiple  
hit is not detected at every TLB reference. When the micro-TLB (uTLB), which is  
the cache of sTLB and fTLB, matches the virtual address, the multiple hit in sTLB  
and fTLB is not detected. The multiple hit is detected only when the micro-TLB  
mismatches and main TLB is referenced.  
F.2  
Translation Table Entry (TTE)  
IMPL DEP. in Commonality TABLE F-1: TTE_Data bits 4643 are implementation  
dependent.  
On SPARC64 V, TTE_Databits 46:43 are reserved.  
IMPL. DEP. #224: Physical address width support by the MMU is implementation  
dependent in JPS1; minimum PAwidth is 43 bits.  
The SPARC64 V MMU implements 43-bit physical addresses. The PAfield of the  
TTEholds a 43-bit physical address. The MMU translates virtual addresses into  
43-bit physical addresses. Each cache tag holds bits 42:6 of physical addresses.  
Bits 46:43 of each TTE always read as 0 and writes to them are ignored.  
A cacheable access for a physical address 400 0000 000016 always causes the  
cache miss for the U2 cache and generates a UPA request for the cacheable access.  
The urgent error ASI_UGESR.SDCis signalled after the UPA cacheable access is  
requested.  
86  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
The physical address length to be passed to the UPA interface is 41 bits or 43 bits,  
as designated in the ASI_UPA_CONFIG.AMfield. When the 41-bit PAis specified  
in ASI_UPA_CONFIG.AM, the most significant 2 bits of the CPU internal physical  
address are discarded and only the remaining least significant 41 bits are passed  
to the UPA address bus. If the discarded most significant 2 bits are not 0, the  
urgent error ASI_UGESR.SDC is detected after the invalid address transfer to the  
UPA interface. Otherwise, when the 43-bit PA is specified in  
ASI_UPA_CONFIG.AM,the entire 43 bits of CPU internal physical address are  
passed to the UPA address bus.  
IMPL. DEP. #238: When page offset bits for larger page size (PA<15:13>, PA<18:13>,  
and PA<21:13> for 64-Kbyte, 512-Kbyte, and 4-Mbyte pages, respectively) are stored  
in the TLB, it is implementation dependent whether the data returned from those  
fields by a Data Access read are zero or the data previously written to them.  
On SPARC64 V, the data returned from PA<15:13>, PA<18:13>, and PA<21:13> for  
64-Kbyte, 512-Kbyte, and 4-Mbyte pages, respectively, by a Data Access read are  
the data previously written to them.  
IMPL. DEP. #225: The mechanism by which entries in TLB are locked is  
implementation dependent in JPS1.  
In SPARC64 V, when a TTE with its lock bit set is written into TLB through the  
Data In register, the TTE is automatically written into the corresponding fully  
associative TLB and locked in the TLB. Otherwise, the TTE is written into the  
corresponding sTLB or fTLB, depending on its page size.  
IMPL. DEP. #242: An implementation containing multiple TLBs may implement the L  
(lock) bit in all TLBs but is only required to implement a lock bit in one TLB for each  
page size. If the lock bit is not implemented in a particular TLB, it is read as 0 and  
writes to it are ignored.  
In SPARC64 V, only the fITLB and the fDTLB support the lock bit as described in  
TABLE F-1. The lock bit in sITLB and sDTLB is read as 0 and writes to it are  
ignored.  
IMPL. DEP. #226: Whether the CVbit is supported in TTEis implementation  
dependent in JPS1. When the CVbit in TTEis not provided and the implementation  
has virtually indexed caches, the implementation should support hardware  
unaliasing for the caches.  
In SPARC64 V, no TLB supports the CVbit in TTE. SPARC64 V supports hardware  
unaliasing for the caches. The CVbit in any TLBentry is read as 0 and writes to it  
are ignored.  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
87  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
F.3.3  
F.4.2  
TSB Organization  
IMPL. DEP. #227: The maximum number of entries in a TSB is implementation  
dependent in JPS1. See impl. dep. #228 for the limitation of TSB_sizein TSB  
registers.  
SPARC64 V supports a maximum of 16 million lines in the common TSB and a  
maximum 32 million lines in the split TSB. The maximum number N in  
FIGURE F-4 of Commonality is 16 million (16 * 220).  
TSB Pointer Formation  
IMPL. DEP. #228: Whether TSB_Hashis supplied from a TSB Extension Register or  
from a context-ID register is implementation dependent in JPS1. Only for cases of  
direct hash with context-ID can the width of the TSB_sizefield be wider than 3  
bits.  
On SPARC64 V, TSB_Hashis supplied from a context-ID register. The width of  
the TSB_sizefield is 4 bits.  
IMPL. DEP. #229: Whether the implementation generates the TSB Base address by  
exclusive-ORing the TSB Base Register and a TSB Extension Register or by taking the  
TSB_Basefield directly from the TSB Extension Register is implementation  
dependent in JPS1. This implementation dependency is only to maintain  
compatibility with the TLB miss handling software of UltraSPARC I/ II.  
On SPARC64 V, when ASI_MCNTL.JPS1_TSBP= 1, the TSB Base address is  
generated by taking TSB_Basefield directly from the TSB Extension Register.  
TSB Pointer Formation  
On SPARC64 V, the number N in the following equations ranges from 0 to 15; N is  
defined to be the TSB_Sizefield of the TSB Base or TSB Extension Register.  
SPARC64 V supports the TSB Base from TSB Extension Registers as follows when  
ASI_MCNTL.JPS1_TSBP= 1.  
For a shared TSB (TSB Register split field = 0):  
8K_POINTER = TSB_Extension[63:13+N] (VA[21+N:13] TSB_Hash)  
0000  
64K_POINTER = TSB_Extension[63:13+N] (VA[24+N:16] TSB_Hash)  
0000  
For a split TSB (TSB Register split field = 1):  
88  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
8K_POINTER = TSB_Extension[63:14+N] 0 (VA[21+N:13] TSB_Hash)  
0000  
64K_POINTER = TSB_Extension[63:14+N]  
TSB_Hash) 0000  
1
(VA[24+N:16] ⊕  
Value of TSB_Hash for both a shared TSB and a split TSB  
When 0 <= N <= 4,  
TSB_Hash= context_register[N+8:0]  
Otherwise, when 5 <= N <= 15,  
TSB_Hash[ 12:0 ] = context_register[ 12:0 ]  
TSB_Hash[ N+8:13 ] = 0 ( N-4 bits zero )  
F.5  
IMPL. DEP. #230: The cause of a data_access_exception trap is implementation  
dependent in JPS1, but there are several mandatory causes of data_access_exception  
trap.  
SPARC64 V signals a data_access_exception for the causes, as defined in F.5 in  
Commonality. However, caution is needed to deal with an invalid ASI. See  
Section F.10.9 for details.  
IMPL. DEP. #237: Whether the fault status and/ or address (DSFSR/ DSFAR) are  
captured when mem_address_not_aligned is generated during a JMPLor RETURN  
instruction is implementation dependent.  
On SPARC64 V, the fault status and address (DSFSR/ DSFAR) are not captured  
when a mem_address_not_aligned exception is generated during a JMPLor RETURN  
instruction.  
Additional information: On SPARC64 V, the two precise traps—  
instruction_access_error and data_access_errorare recorded by the MMU in addition  
to those in TABLE F-2 of Commonality. A modification (the two traps are added) of  
that table is shown below.  
TABLE F-2  
MMU Trap Types, Causes, and Stored State Register Update Policy  
Registers Updated  
(Stored State in MMU)  
I-MMU  
Tag  
D-MMU  
D-SFSR, Tag  
Ref #Trap Name  
Trap Cause  
I-SFSR Access SFAR  
Access Trap Type  
fast_instruction_access_MMU_miss  
1.  
I-TLB miss  
X2  
X
64166716  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
89  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
TABLE F-2  
MMU Trap Types, Causes, and Stored State Register Update Policy  
Registers Updated  
(Stored State in MMU)  
I-MMU  
Tag  
D-MMU  
D-SFSR, Tag  
Ref #Trap Name  
Trap Cause  
I-SFSR Access SFAR  
Access Trap Type  
instruction_access_exception  
2.  
3.  
4.  
5.  
6.  
Several (see below) X2  
D-TLB miss  
X
0816  
fast_data_access_MMU_miss  
data_access_exception  
fast_data_access_protection  
privileged_action  
X3  
X3  
X3  
X3  
X3  
X
68166B16  
3016  
Several (see below)  
Protection violation  
Use of privileged ASI  
Watchpoint hit  
X1  
X
6C16-6F16  
3716  
7. watchpoint  
61166216  
8. mem_address_not_aligned,  
Misaligned memory  
operation  
(impl.  
dep  
#237)  
3516, 3616  
3816, 3916  
*_mem_address_not_aligned  
instruction_access_error  
data_access_error  
9.  
Several (see below) X2  
Several (see below)  
0A16  
3216  
10  
X3  
X1: The contents of the context field of the D-MMU Tag Access Register are  
undefined after a data_access_exception.  
X2: I-SFSRis updated according to its update policy described in Section F.10.9  
X3: D-SFSRand D-SFARare updated according to the update policy described  
in Section F.10.9  
The traps with Ref #1~8 in TABLE F-2 conform to the specification defined in Section  
F.5 of Commonality.  
The additional traps (Ref #9 and #10) are described below.  
Ref 9: instruction_access_error Signalled upon detection of at least one of the  
following errors.  
An uncorrectable error is detected upon an instruction fetch reference.  
A bus error response from the UPA bus is detected upon an instruction fetch  
reference.  
mITLB (sITLB and fITLB) multiple hits are detected in a mITLB lookup for an  
instruction reference.  
An fITLB entry parity error is detected in an fTLB lookup for an instruction  
reference.  
Ref 10: data_access_error Signalled upon the detection of at least one of the  
following errors.  
An uncorrectable error is detected upon an instruction operand access.  
A bus error response from the UPA bus is detected upon an operand access.  
mDTLB (sDTLB and fDTLB) multiple hits are detected in an mDTLB lookup for  
an operand access.  
90  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                   
An fDTLB entry parity error is detected in a fDTLB lookup for an instruction  
operand access.  
F.8  
Reset, Disable, and RED_state Behavior  
IMPL. DEP. #231: The variability of the width of physical address is implementation  
dependent in JPS1, and if variable, the initial width of the physical address after  
reset is also implementation dependent in JPS1.  
See impl. dep. #224 on page 86 for the variability of the width of physical address.  
The physical address width to pass to the UPA interface is variable and is 43 bits  
or 41 bits, as designated in UPA_configuration_register.AMfield.  
The initial value held in the external power-on reset sequencer is set to  
UPA_configuraion_regiser.AMby the JTAG command during the power-on  
reset sequence. So, the initial value of the UPA physical address width is system  
dependent.  
IMPL. DEP. #232: Whether CPand CVbits exist in the DCU Control Register is  
implementation dependent in JPS1.  
On SPARC64 V, CPand CVbits do not exist in the DCU Control Register.  
When DMMU is disabled, the processor behaves as if the TTE bits were set as:  
TTE.IE 0  
TTE.P 0  
TTE.W 1  
TTE.NFO0  
TTE.CV 0  
TTE.CP 0  
TTE.E 1  
IMPL. DEP. #117: Whether prefetch and nonfaulting loads always succeed when the  
MMU is disabled is implementation dependent.  
On SPARC64 V, the PREFETCHinstruction completes without memory access  
when the DMMU is disabled.  
A data access exception is generated at the execution of the nonfaulting load  
instruction when the DMMU is disabled, as defined in Section F.5 of  
Commonality.  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
91  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
F.10  
Internal Registers and ASI operations  
IMPL. DEP. #233: Whether the TSB_Hashfield is implemented in I/ D  
Primary/ Secondary/ Nucleus TSB Extension Register is implementation dependent  
On SPARC64 V, the TSB_Hashfield is not implemented in the I/ D  
Primary/ Secondary/ Nucleus TSB Extension Register. See TSB Pointer Formation  
on page 88 for details.  
IMPL. DEP. #239: The register(s) accessed by IMMU ASI 5516 and DMMU ASI 5D16 at  
virtual addresses 4000016 to 60FF816 are implementation dependent.  
See impl. dep. #235 in I/D TLB Data In, Data Access, and Tag Read Registers on page  
93.  
Additional information: The ASI_DCUCRregister also affects the MMUs.  
ASI_DCUCRis described in Section 5.2.12 of Commonality. The SPARC64 V  
implementation dependency in ASI_DCUCRis described in Data Cache Unit Control  
Register (DCUCR) on page 22.  
SPARC64 V also has an additional MMU internal register ASI_MCNTL(Memory  
Control Register) that is shared between the IMMU and the DMMU. The register is  
illustrated in FIGURE F-1 and described in TABLE F-3.  
ASI_MCNTL (Memory Control Register)  
ASI:  
VA:  
4516  
0816  
Access Modes: Supervisor read/ write  
NC_  
Cache  
fw_  
fITLB  
fw_  
fDTLB  
reserved  
RMD  
000  
JPS1_TSBP  
00000000  
63  
17  
16  
15  
14  
13 12 11  
9
8
7
0
FIGURE F-1 Format of ASI_MCNTL  
92  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                           
TABLE F-3 MCNTLField Description  
Bits  
Field Name  
RW  
Description  
Data <16>  
NC_Cache R/ W  
Force instruction caching. When set, the instruction lines fetched from a  
noncacheable area are cached in the instruction cache. The NC_Cache  
has no effect on operand references. If MCNTL.NC_Cache= 1, the CPU  
fetches a noncacheable line in four consecutive 16-byte fetches and stores  
the entire 64 bytes in the I-Cache. NC_Cacheis provided for use by OBP,  
and OBPshould clear the bit before exiting.  
A write to ASI_FLUSH_L1Imust be performed before  
MCNTL.NC_CACHE= 0 is set. Otherwise, noncacheable instructions may  
remain on the L1 cache.  
Data <15>  
fw_fITLB R/ W  
Force write to fITLB. This is the mITLB version of fTLB force write.  
When fw_fITLB= 1, a TTE write to mITLB through ITLB Data In  
Register is directed to fITLB. fw_fITLBis provided for use by OBPto  
register the TTEs that map the address translations themselves into  
fDTLB.  
Data <13:12>  
RMD  
R
TLB RAM MODE. Handling of 4-Mbyte page entry is indicated on this  
fileld.  
00: 4-Mbyte page entry is stored in fully associative TLB.  
01: reserved.  
10: 4-Mbyte page entry is stored in 1024-entry, 2-way set associative  
TLB.  
11: 4-Mbyte page entry is stored in 512-entry, 2-way set associative  
TLB.  
This field is read-only. Writes to this field is ignored.  
Data <14>  
Data <8>  
fw_fDTLB R/ W  
JPS1_TSBP R/ W  
Force write to fDTLB. When fw_fDTLB= 1, a TTE write to mDTLB  
through DTLB Data In Register is directed to fDTLB. fw_fDTLBis  
provided for use by OBPto register the TTEs that map the address  
translations themselves into fDTLB.  
TSB-pointer context-hashing enable. When JPS1_TSBP= 0, SPARC64 V  
does not apply the context-ID hashing for 8-Kbyte or 64-Kbyte TSB  
pointer generation. The pointer generation strategy is compatible with  
UltraSPARC. When JPS1_TSBP= 1, SPARC64 V is in JPS1_TSBP mode,  
meaning that the CPU applies the context-ID hashing to generate an 8-  
Kbyte or 64-Kbyte page TSB pointer.  
F.10.4  
I/ D TLB Data In, Data Access, and Tag Read  
Registers  
IMPL. DEP. #234: The replacement algorithm of a TLB entry is implementation  
dependent in JPS1.  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
93  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
For fTLB, SPARC64 V implements a pseudo-LRU. For sTLB, LRU is used.  
IMPL. DEP. #235: The MMU TLB data access address assignment and the purpose of  
the address are implementation dependent in JPS1.  
94  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
The MMU TLB data access address assignment and the purpose of the address on  
SPARC64 V are shown in TABLE F-4.  
TABLE F-4 MMU TLB Data Access Address Assignment  
VA Bit  
Field  
Description  
17:16  
TLB#  
TLB to be accessed: fTLB or sTLB is designated as follows.  
00: fTLB (32 entries)  
01: reserved  
10: sTLB(2048 entries of 8-Kbyte page and 4-Mbyte page)  
11: reserved  
15  
ER  
Error insertion into mTLB: When set on a write, an entry with  
parity error is inserted into a selected TLB location.  
This field is ignored for a TLB entry read operation.  
13:3  
TLB index  
Index number of the TLB. Specifies an index number for the TLB  
reference. When fTLB is specified in TLB# field, the upper 6-bits of  
the specified index are ignored.  
When sTLB is specified in TLB# field, and  
MCNTL.RMD= 00:  
Index 0-511 addresses way0 of 8K-byte page sTLB  
Index 512-1023 addresses way1 of 8K-byte page sTLB  
MCNTL.RMD= 01:  
Reserved. On all index, 0 is returned on read and writes  
data is ignored.  
MCNTL.RMD= 10:  
Index 0-511 addresses way0 of 8K-byte page sTLB  
Index 512-1023 addresses way1 of 8K-byte page sTLB  
Index 1024-1535 addresses way0 of 4M-byte page sTLB  
Index 1536-2047 addresses way1 of 4M-byte page sTLB  
MCNTL.RMD= 11:  
Index 0-511 addresses way0 of 8K-byte page sTLB  
Index 512-1023 addresses way1 of 8K-byte page sTLB  
Index 1024-1279 addresses way0 of 4M-byte page sTLB  
Index 1536-1791 addresses way1 of 4M-byte page sTLB  
Index 1280-1535 and 1792-2047 are reserved, 0 is returned  
on read and writes data to this index is ignored.  
FIGURE F-2 deipcts the relation of index number of sTLB and the  
data to be accessed in various MCNTL.RMD.  
When the entry to be written has a lock bit set and the specified  
TLB is the sTLB, the entry is written into the sTLB with its lock bit  
cleared. When the entry to be written into the fTLB, the entry is  
written without lock bit modification.  
Other  
Reserved  
Ignored.  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
95  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
FIGURE F-2 Index number of set associative TLBs  
RMD=00  
RMD=10  
8-Kbyte page entry  
8-Kbyte page entry  
4-Mbyte page entry  
1024  
0
0
1024  
way0  
way1  
way0  
way1  
way0  
1535  
511  
512  
511  
512  
1536  
way1  
2047  
1023  
RMD=01  
0
2047  
1024  
1023  
RMD=11  
8-Kbyte page entry  
4-Mbyte page entry  
0
1024  
way0  
1279  
1280  
way0  
reserved  
511  
512  
1535  
reserved  
reserved  
1536  
way1  
1791  
way1  
1792  
reserved  
2047  
1023  
2047  
1023  
I/ D MMU TLB Tag Access Register  
On an ASI store to the TLB Data Access or Data In Register, SPARC64 V verifies the  
consistency between the Tag Access Register and the data to be written. If their  
indexes are inconsistent, the TLB entry is not updated. However, SPARC64 V does  
not verify the consistency if TTE.V= 0 for the TTE to be written. This enables  
demapping of specified TLB entries through the TLB Data Access Register. Software  
can use this feature to validate faulty TLB entries.  
On verifing the consistency, the bits position and length that is interpreted as index  
against the data in Tag Access Register varies on the page size and MCNTL.RMD. In 8-  
Kbyte page, bits[21:13] is conscidered as index and compared with the index field of  
TLB Data Access or Data In Register. In 4-Mbyte page, bits[30:22] when  
MCNTL.RMD=10, or bits[29:22] when MCNTL.RMD=11, is conscidered as index.  
96  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
I/ D TSB Base Registers  
IMPL. DEP. #236: The width of the TSB_Sizefield in the TSB Base Register is  
implementation dependent; the permitted range is from 2 to 6 bits. The least  
significant bit of TSB_Sizeis always at bit 0 of the TSB Base Register. Any bits  
unimplemented at the most significant end of TSB_Sizeread as 0, and writes to  
them are ignored.  
On SPARC64 V, the width of the TSB_Sizefield in the TSB Base Register is 4  
bits. The number of entries in the TSB ranges from 512 entries at TSB_Size= 0 (8  
Kbytes for common TSB, 16 Kbytes for split TSB), to 16 million entries at  
TSB_Size= 15 (256 Mbytes for common TSB, 512 Mbytes for split TSB).  
F.10.7  
F.10.9  
I/ D TSB Extension Registers  
IMPL DEP. in Commonality FIGURE F-13: Bits 11:3 in I/ D TSB Extension Register  
are an implementation-dependent field.  
On SPARC64 V, bits 11:0 in I/ D TSB Extension Registers are assigned as follows.  
Bits 11:4 Reserved. Always read as 0, and writes to it are ignored.  
Bits 3:0 TSB_Sizefield is expanded to be a 4-bit field in SPARC64 V.  
I/ D Synchronous Fault Status Registers (I-SFSR,  
D-SFSR)  
IMPL DEP. in Commonality FIGURE F-15 and TABLE F-12: Bits 63:25 in I/ D  
Synchronous Fault Status Registers (I-SFSR, D-SFSR) are an implementation-  
dependent field.  
The format of I/ D-MMU SFSRin SPARC64 V is shown in FIGURE F-3.  
TLB #  
reserved  
60 59  
index  
reserved  
MK  
EID  
UE  
UPA  
reserved mTLB  
NC  
63 62 61  
49 48 47 46 45  
32 31 30  
29  
28  
27  
26 25  
NF  
ASI  
TM  
reserved  
14  
FT  
E
CT  
PR  
3
W
OW  
FV  
0
24 23  
16 15  
13  
7
6
5
4
2
1
FIGURE F-3 MMU I/ D Synchronous Fault Status Registers (I-SFSR, D-SFSR)  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
97  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
The specification of bits 24:0 in the SPARC64 V SFSRconforms to the specification  
defined in Section F.10.9 in Commonality. Bits 63:25 in SPARC64 V SFSRare  
implementation dependent. TABLE F-5 describes the I-SFSRbits, and TABLE F-5  
describes the D-SFSRbits.  
TABLE F-5  
Bits  
I-SFSRBit Description  
Field Name  
RW  
Description  
Data<63:62 > TLB#  
R/ W Faulty TLB# log. Recorded upon an mITLB error to identify the faulty TLB  
(fITLB: 00 or sITLB: 10 ). The priority of error logging for multiple error  
2
2
conditions (parity error and multiple-hit error) is as follows:  
fTLB parity  
sTLB  
high  
sTLB multihit  
fTLB multihit low  
Data <59:49> index  
R/ W Faulty TLB index log. Recorded upon an mITLBerror and is the index  
number for the faulty TLB. The priority of error logging for multiple error  
fTLB parity  
sTLB parity  
high  
fTLB multihit low  
The smallest index number is selected for multiple hits.  
Data <46>  
MK  
R/ W Marked UE. On SPARC64 V, all uncorrectable errors are reported as  
marked, so this bit is always set whenever ISFSR.UE= 1.  
See Section P.2.4, Error Marking for Cacheable Data Error, on page 157 for  
details.  
Data <45:32> EID  
R/ W Error mark ID. Valid for a marked UE.  
See Section P.2.4, Error Marking for Cacheable Data Error, on page 157 for  
ERROR_MARK_ID.  
Data <31>  
UE  
R/ W Instruction error status; uncorrectable error. When UE= 1, an uncorrectable  
error in a fetched instruction word has been detected. Valid only for an  
instruction_access_error exception.  
Data <30:29> UPA<1:0>  
R/ W UPA error status. Either a bus error response (UPA<1>) or a timeout  
response (UPA<0>) has been received from an instruction fetch transaction  
from UPA. Valid only for an instruction_access_error exception.  
Data <27:26> mITLB<1:0> R/ W mITLB error status. Either a multiple-hit status (mITLB<1>) or a parity  
error status (mITLB<0>) has been encountered upon a mITLB lookup. Valid  
only for an instruction_access_error exception.  
Data <25>  
NC  
R/ W Noncacheable reference. The reference that has invoked an exception is a  
noncacheable reference. Valid for an instruction_access_error exception  
caused by ISFSR.UEor ISFSR.UPAonly. For other causes of the trap, the  
value is unknown.  
Data <23:16> ASI<7:0>  
R/ W ASI. The 8-bit address space identifier applied to the reference that has  
invoked an exception. This field is valid for the exception in which the  
ISFSR.FVbit is set.  
A recorded ASI is 80 (ASI_PRIMARY) or 04 (ASI_NUCLEUS) depending  
16  
16  
on the trap level (when TL> 0, the ASI is ASI_NUCLEUS.).  
98  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
TABLE F-5  
I-SFSRBit Description  
Bits  
Field Name  
RW  
Description  
Data <15>  
TM  
R/ W Translation miss. When TM= 1, it signifies an occurrence of a mITLB miss  
upon an instruction reference.  
Data <13:7>  
FT<6:0>  
CT<1:0>  
R/ W Fault type. Saves and indicates an exact condition that caused the recorded  
exception. See TABLE F-6 for the field encoding.  
In the IMMU, FTis valid only for an instruction_access_exception. The  
ISFSR.FTalways reads as 0 for a fast_instruction_access_MMU_miss and  
reads 0116 for an instruction_access_exception, since no other fault types  
apply.  
Data <5:4>  
R/ W Context type; Saves the context attribute for the reference that invokes an  
exception. For nontranslating ASI or invalid ASI, ISFSR.CT= 11  
.
02  
00  
01  
10  
:
:
:
Primary  
Reserved  
Nucleus  
Reserved  
02  
02  
02  
11  
:
02  
Data <3>  
Data <1>  
Data <0>  
PR  
OW  
FV  
R/ W Privileged. Indicates the CPU privilege status during the instruction  
reference that generates the exception. This field is valid when  
ISFSR.FV= 1.  
R/ W Overwritten. Set when ISFSR.FV= 1 upon the detection of a exception.  
This means that the fault valid bit is not yet cleared when another fault is  
detected.  
R/ W Fault valid. Set when the IMMU detects an exception. The bit is not set on  
an IMMU miss. When the Fault Valid bit is not set, the values of the  
remaining fields in the ISFSRare undefined, except for an IMMU miss.  
TABLE F-6 describes the field encoding for ISFSR.FT.  
TABLE F-6  
Instruction Synchronous Fault Status Register FT(Fault Type) Field  
FT<6:0>  
Error Description  
01  
Privilege violation. Set when TTE.P= 1 and PSTATE.PRIV= 0 for the  
16  
instruction reference.  
02  
04  
08  
10  
20  
40  
Reserved  
16  
16  
16  
16  
16  
16  
Reserved  
Reserved  
Reserved  
Reserved, since there is no virtual hole.  
Reserved, since there is no virtual hole.  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
99  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
ISFSRis updated either upon a occurrence of a fast_instruction_access_MMU_miss, an  
instruction_access_exception, or an instruction_access_error trap. TABLE F-7 shows the  
detailed update policy of each field, and TABLE F-8 describes the fields.  
TABLE F-7 ISFSRUpdate Policy  
UE, UPA,  
mITLB, NC2  
Field  
TLB#, index  
FV  
OW  
PR, CT1  
FT  
TM  
ASI  
3
Fresh fault or miss  
Miss  
MMU miss  
0
1
1
0
0
0
V
V
V
V
1
0
0
V
V
Exception  
Error  
Access exception  
Access error  
4
V
V
5
Overwrite policy  
4
Error on exception  
Exception on error  
Error on miss  
U
K
U
K
K
K
1
1
1
1
1
K
1
U
U
U
U
K
U
K
U
K
U
K
K
K
K
1
U
U
U
U
K
K
U
K
U
K
K
K
1
K
K
K
K
Exception on miss  
Miss on exception/ error  
1
1
Miss on miss  
1
1.  
The value of ISFSR.CTis 11 when the ASI is not a translating ASI. The value 11 is recorded in ISFSR.CTfor  
an illegal value in the ASI (00 03 , 12 13 , 16 17 , 1A 1B , 1E 23 , 2D 2F , and  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
35 3B ).  
16  
16  
2.  
3.  
4.  
5.  
Valid only for the instruction_access_error caused by ISFSR.UEor ISFSR.UPA.  
Types: 0 logical 0; 1 logical 1; VValid field to be updated; “—” – not a valid field  
Updated when mITLB is signified.  
Types: 0 logical 0; 1 logical 1; K keep; U Update as per fault/ miss  
TABLE F-8 D-SFSRBit Description (1 of 3)  
Bits  
Field Name  
RW  
Description  
Data <63:62>  
TLB#  
R/ W Faulty TLB# log. Recorded upon an mDTLBerror to identify the faulty TLB  
(fDTLB: 00 or sDTLB: 10 ). The priority of error logging for multiple error  
2
2
conditions (parity error and multiple-hit error) is as follows:  
fTLB parity  
high  
sTLB parity  
sTLB multihit  
fTLB multihit  
low  
Data <59:49>  
index  
R/ W Faulty TLB index log. Recorded upon an mDTLBerror. Index number for  
the faulty TLB. The priority of error logging for multiple error conditions  
(parity error and multiple-hit error) is as follows:  
fTLB parity  
high  
sTLB parity  
sTLB-multihit  
fTLB-multihit  
low  
The smaller index number is selected for multiple hits.  
100  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
TABLE F-8 D-SFSRBit Description (2 of 3)  
Bits  
Field Name  
RW  
Description  
Data <46>  
MK  
R/ W Marked UE. On SPARC64 V, all uncorrectable errors are reported as  
marked, so this bit is always set whenever DSFSR.UE= 1.  
See Section P.2.4 for details.  
Data <45:32>  
Data <31>  
EID  
UE  
R/ W Error-mark ID. Valid for a marked UE.  
See Section P.2.4 for details about ERROR_MARK_ID.  
R/ W Operand access error status. Uncorrectable error. When UE= 1, it signifies  
an occurrence of an uncorrectable error in an operand fetch reference. Valid  
only for a data_access_error exception.  
Data - <30:29> UPA<1:0>  
R/ W UPA error status. Either a bus error response (UPA<1>) or a timeout  
response (UPA<0>) has been received from an operand fetch transaction  
from UPA. Valid only for a data_access_error exception.  
Data <27:26>  
Data <25>  
mDTLB<1:0> R/ W mDTLB error status. Either a multiple-hit status (mDTLB<1>) or a parity  
error status (mDTLB<0>) has been encountered upon a mDTLB lookup.  
Valid only for a data_access_error exception.  
NC  
R/ W Noncacheable reference. The reference that invoked an exception is a non-  
cacheable reference. This field indicates that the faulty reference is a non-  
cacheable operand access. Valid only for an data_access_error exception  
caused by DSFSR.UEor DSFSR.UPA. For other causes of the trap, the  
value is unknown.  
Data <24>  
NF  
R/ W Nonfaulting load. The instruction which generated the exception was a  
nonfaulting load instruction.  
Data <23:16>  
ASI<7:0>  
R/ W ASI. The 8-bit address space identifier applied to the reference that has  
invoked an exception. This field is valid for the exception in which the  
DSFSR.FVbit is set. When the reference does not specify an ASI, the  
reference is regarded as with an implicit ASI and a recorded ASI is as  
follows:  
TL= 0, PSTATE.CLE = 0 80 (ASI_PRIMARY)  
16  
TL= 0, PSTATE.CLE = 1 88 (ASI_PRIMARY_LITTLE)  
16  
TL> 0, PSTATE.CLE = 0 04 (ASI_NUCLEUS)  
16  
TL> 0, PSTATE.CLE = 1 0C (ASI_NUCLEUS_LITTLE)  
16  
Data <15>  
Data <13:7>  
Data <6>  
TM  
R/ W Translation miss. When TM= 1, it signifies an occurrence of a mDTLB miss  
upon an operand reference.  
FT<6:0>  
R/ W Fault type. Saves and indicates an exact condition that caused the recorded  
exception. The encoding of this field is described in TABLE F-9.  
E
R/ W Side-effect page. Associated with faulting data access. The reference is mapped to  
the translation with an Ebit set, or the ASI for the reference was either 015 or  
16  
01D . Valid only for an data_access_error exception caused by DSFSR.UE  
16  
or DSFSR.UPA. For other causes of the trap, the value is unknown.  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
101  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
TABLE F-8 D-SFSRBit Description (3 of 3)  
Bits  
Field Name  
RW  
Description  
Data  
CT<1:0>  
R/ W Context type. Saves the context attribute for the reference that invokes an  
exception. For nontranslating ASI or invalid ASI, DSFSR.CT= 11  
.
02  
00  
01  
10  
:
:
:
Primary  
02  
02  
02  
Secondary  
Nucleus  
Reserved  
11  
:
02  
When a data_access_exception trap is caused by an invalid combination of  
an ASI and an opcode (e.g., atomic load quad, block load/ store, block  
commit store, partial store, or short floating-point load/ store instructions),  
the recording of the DSFSR.CTfield is based on the encoding of the ASI  
specified by the instruction.  
Data <3>  
Data <2>  
Data <1>  
PR  
W
R/ W Privileged. Indicates the CPU privilege status during the operand reference  
that generates the exception. This field is valid when DSFSR.FV= 1.  
R/ W Write. W= 1 if the reference is for an operand write operation (a store or  
atomic load/ store instruction).  
OW  
R/ W Overwritten. Set when DSFSR.FV= 1 upon detection of a exception. This  
means that the fault valid bit is not yet cleared when another fault is  
detected.  
Data <0>  
FV  
R/ W Fault valid. Set when the DMMU detects an exception. The bit is not set on  
an DMMU miss. When the FVbit is not set, the values of the remaining  
fields in the DSFSRand DSFARare undefined, except for a DMMU miss.  
TABLE F-9 defines the encoding of the FT<6:0> field.  
TABLE F-9  
MMU Synchronous Fault Status Register FT(Fault Type) Field  
FT<6:0>  
Error Description  
01  
Privilege violation. An attempt was made to access a privileged page  
(TTE.P= 1) under nonprivileged mode (PSTATE.PRIV= 0) or through a  
*_AS_IF_USER ASI. This exception has priority over a  
fast_data_access_protection exception.  
16  
02  
04  
Nonfaulting load instruction to page marked with the Ebit. This bit is zero for  
internal ASI accesses.  
16  
16  
An attempt was made to access a noncacheable page or an internal ASI by an  
atomic instruction (CASA, CASXA, SWAP, SWAPA, LDSTUB, LDSTUBA) or an  
atomic quad load instruction (LDDAwith ASI = 024 , 02C , 034 , or 03C ).  
16  
16  
16  
16  
102  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
TABLE F-9  
MMU Synchronous Fault Status Register FT(Fault Type) Field (Continued)  
FT<6:0>  
Error Description  
08  
An attempt was made to access an alternate address space with an illegal ASI  
value, an illegal VA, an invalid read/ write attribute, or an illegally sized  
operand. If the quad load ASI is used with the other opcode than LDDA, this bit  
is set.  
16  
Note: Since an illegal ASI check is done prior to a TTE unmatch check,  
DSFSR.FT<3>= 1 causes the value of other bits of DSFSR.FTto be  
undetermined and generates a data_access_exception exception (which  
otherwise has lower priority than fast_data_access_MMU_miss).  
Note, too, that a reference to an internal ASI may generate a  
mem_address_not_aligned exception.  
10  
Access other than nonfaulting load was made to a page marked NFO. This bit is  
16  
zero for internal ASI accesses.  
20  
40  
Reserved, since there is no virtual hole.  
Reserved, since there is no virtual hole.  
16  
16  
Multiple bits of DSFSR.FTmay be set by a trap as long as the cause of the trap  
matches multiply in TABLE F-9.  
DSFSRis updated upon various traps, including fast_data_access_MMU_miss,  
data_access_exception, fast_data_access_protection, PA_watchpoint, VA_watchpoint,  
privileged_action, mem_address_not_aligned, and data_access_error traps. TABLE F-10  
shows the detailed update policy of each field.  
TABLE F-10 DSFSRUpdate Policy  
TLB#,  
index  
W, PR,  
UE, UPA,  
Field  
FV  
OW  
FT  
TM  
ASI  
DSFAR  
NF, CT1  
mDTLB, NC2, E2  
3
Fresh fault or miss  
Miss  
MMU miss  
0
1
1
1
1
1
1
0
0
0
0
0
0
0
V
V
V
V
V
V
V
V
1
0
0
0
0
0
0
0
V
V
V
V
V
V
V
V
V5  
V
V
V
V
V
V
V
-  
V
Access exception  
Access protection  
PA watchpoint  
VA watchpoint  
V
Exception  
Faults  
4
Privileged action  
Access misaligned  
Access error  
6
Overwrite Policy  
Exception on fault  
Fault on exception  
K
1
1
1
1
U
U
U
K
K
K
U
U
K
U
U
U
4
U
7
Exception on miss  
Fault on miss  
K
1
1
K
K
U
U
U
K
1
1
U
U
K
U
U
U
4
U
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
103  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
TABLE F-10 DSFSRUpdate Policy  
TLB#,  
index  
W, PR,  
UE, UPA,  
Field  
FV  
OW  
FT  
TM  
ASI  
DSFAR  
NF, CT1  
mDTLB, NC2, E2  
Miss on fault/ exception  
K
K
1
K
K
K
U
K
K
1
1
K
K
K
K
K
K
Miss on miss  
K
1.  
The value of DSFSR.CTis 11 when the ASI is not a translating ASI. The value 11 is recorded in DSFSR.CTfor  
an illegal value in ASI (00 03 , 12 13 , 16 17 , 1A 1B , 1E 23 , 2D 2F , or 35 3B ).  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
2.  
3.  
4.  
5.  
6.  
7.  
Valid only for the data_access_error caused by DSFSR.UEor DSFSR.UPA.  
Types: 0 logic 0; 1 logic 1; V Valid field to be updated; “—” – not a valid field  
Memory reference instruction only.  
Updated when mDTLBis signified.  
Types: 0 logic 0; 1 logic 1; VValid field to be updated; “—” – not a valid field  
Fault/ exception on miss means the miss happened first, then a fault/ exception was encountered before soft-  
ware had a chance to clear the DSFSRregister.  
F.11  
MMU Bypass  
On SPARC64 V, two additional ASIs are supported as DMMU bypass accesses:  
ASI_ATOMIC_QUAD_LDD_PHYS(ASI 3416) and  
ASI_ATOMIC_QUAD_LDD_PHYS_LITTLE(ASI 3C16)  
TABLE F-11 shows the bypass attribute bits on SPARC64 V. The first four rows  
conform to the bypass attribute bits defined in TABLE F-15 of Commonality.  
TABLE F-11 Bypass Attribute Bits on SPARC64 V  
ASI  
ASI  
Attribute Bits  
NAME  
VALUE CP  
IE  
CV  
E
P
W
NFO Size  
ASI_PHYS_USE_EC  
1416  
1C16  
1516  
1D16  
3416  
3C16  
1
0
0
0
0
0
0
1
1
0
0
0
0
8 Kbytes  
ASI_PHYS_USE_EC_LITTLE  
ASI_PHYS_BYPASS_EC_WITH_EBIT  
ASI_PHYS_BYPASS_EC_WITH_EBIT_LITTLE  
ASI_ATOMIC_QUAD_LDD_PHYS  
ASI_ATOMIC_QUAD_LDD_PHYS_LITTLE  
0
0
0
1
1
0
0
0
8 Kbytes  
8 Kbytes  
104  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
F.11.10  
TLB Replacement Policy  
Automatic TLB Replacement Rule  
On an automatic replacement write to the TLB, the MMU picks the entry to write  
according to the following rules:  
1. If the following conditions are satisfied—  
the new entry maps to an 8-Kbyte or an 4-Mbyte unlocked page  
and ASI_MCNTRL.fw_fITLB = 0 for IMMU automatic replacement  
and ASI_MCNTRL.fw_fDTLB = 0 for DMMU automatic replacement  
then the replacement is directed to the sTLB (2-way TLB). Otherwise, the  
replacement occurs in the fully associative TLB (fTLB).  
2. If replacement is directed to the 2-way TLB, then the replacement set index is  
generated from the TLB Tag Access Register: bits 21:13, bits 30:22 or bits 29:22  
depending on the page size and MCNTL.RMD for both I-MMU and D-MMU.  
3. If replacement is directed to the fully associative TLB (fTLB), then the following  
alternatives are evaluated:  
a. The first invalid entry is replaced (measuring from entry 0). If there is no  
invalid entry, then  
b. the first unused, unlocked (LRU, but clear) entry will be replaced (measuring  
from entry 0). If there is no unused unlocked entry, then  
c. all used bits are reset, and the process is repeated from Step 3b.  
If fTLB is the target of the automatic replacement and all entries in the fTLB have  
their lock bit set, the automatic replacement operation is ignored and the entries  
in the target fTLB remain unchanged.  
Restriction of sTLB Entry Direct Replacement  
On SPARC64 V, direct replacement of a specific sTLB entry requires that the stxa  
instruction to the I/ D TLB Data Access Register be designated as follows.  
stxaASI designation:  
ASI 5516for sITLB  
ASI 5D16for sDTLB  
stxavirtual address designation:  
VA<17:16> = 1002  
VA<15> = 0 or 1  
VA<13> = 0 or 1  
VA<12> = 0 or 1  
VA<11:3>  
: sTLB designation  
: Error injection designation  
: 8-Kbyte or 4-Mbyte page designation  
: sTLB way number  
: sTLB index number  
Release 1.0, 1 July 2002  
F. Chapter F  
Memory Management Unit  
105  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
sTLB entry update data:  
New sTLB entry data is designated in stxadata.  
New sTLB entry tag is designated in the I/ D TLB Tag Access Register.  
Restriction between the stxaaddress and ASI TLB Tag Access Register contents:  
The relation stxa_VA<11:3> = ASI_TAG_ACCESS_REGISTER<21:13>and  
stxa_VA<13> = 0 should be satisfied. Only if this condition is satisfied can the  
8-Kbyte sTLB entry be replaced as designated.  
The relation stxa_VA<11:3> = ASI_TAG_ACCESS_REGISTER<30:22>and  
stxa_VA<13> = 1 should be satisfied. Only if this condition is satisfied can the  
4-Mbyte sTLB entry be replaced as designated.  
Otherwise, the stxainstruction is ignored without notification to software.  
The preceding restriction is SPARC64 V specific.  
106  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
G
Assembly Language Syntax  
Please refer to Appendix G of Commonality.  
107  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
108  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
H
Software Considerations  
Please refer to Appendix H of Commonality.  
109  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
110  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
I
Extending the SPARC V9  
Architecture  
Please refer to Appendix I of Commonality.  
111  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
112  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
J
Changes from SPARC V8 to SPARC  
V9  
Please refer to Appendix K of Commonality.  
113  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
114  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
K
Programming with the Memory  
Models  
Please refer to Appendix J of Commonality.  
115  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
116  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
L
Address Space Identifiers  
Every load or store address in a SPARC V9 processor has an 8-bit Address Space  
Identifier (ASI) appended to the VA. The VA plus the ASI fully specifies the address.  
For instruction loads and for data loads or stores that do not use the load or store  
alternate instructions, the ASI is an implicit ASI generated by the hardware. If a load  
alternate or store alternate instruction is used, the value of the ASI can be specified  
in the %asiregister or as an immediate value in the instruction. In practice, ASIs are  
not only used to differentiate address spaces but are also used for other functions,  
such as referencing registers in the MMU unit.  
Please refer to Commonality for Sections L.1 and L.2.  
L.3  
SPARC64 V ASI Assignments  
For SPARC64 V, all accesses made with ASI values in the range 00167F16 when  
PSTATE.PRIV= 0 cause a privileged_action exception.  
Warning The software should follow the ASI assignments and VA assignments in  
TABLE L-1. Some illegal ASI or VA accesses will cause the machine to enter unknown  
states.  
TABLE L-1 SPARC64 V ASI Assignments (1 of 3)  
Value  
ASI Name (Suggested Macro Syntax)  
Type  
R
VA  
Description  
Page  
54  
00163316 (JPS1)  
3416  
ASI_ATOMIC_QUAD_LDD_PHYS  
35163B16 (JPS1)  
3C16  
ASI_ATOMIC_QUAD_LDD_PHYS_LITTLE  
R
54  
3D164416 (JPS1)  
117  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
TABLE L-1 SPARC64 V ASI Assignments (2 of 3)  
Value  
4516  
4516  
ASI Name (Suggested Macro Syntax)  
ASI_DCU_CONTROL_REG (ASI_DCUCR)  
ASI_MEMORY_CONTROL_REG  
Type  
RW  
RW  
VA  
00  
08  
Description  
Page  
22  
92  
46164916 (JPS1)  
4A16  
4B16  
4C16  
4C16  
ASI_UPA_CONFIG_REGISTER  
R
215  
(JPS1)  
ASI_ASYNC_FAULT_STATUS  
RW  
R
00  
08  
174  
165  
ASI_URGENT_ERROR_STATUS  
(ASI_UGESR)  
4C16  
4C16  
4D16  
4D16  
4E16  
4F16  
4F16  
4F16  
4F16  
4F16  
4F16  
4F16  
4F16  
ASI_ERROR_CONTROL  
ASI_STCHG_ERROR_INFO  
ASI_ASYNC_FAULT_ADDR_D1  
ASI_ASYNC_FAULT_ADDR_U2  
(JPS1)  
RW  
RW  
RW  
RW  
10  
18  
00  
08  
161  
163  
177  
178  
ASI_SCRATCH_REG0  
ASI_SCRATCH_REG1  
ASI_SCRATCH_REG2  
ASI_SCRATCH_REG3  
ASI_SCRATCH_REG4  
ASI_SCRATCH_REG5  
ASI_SCRATCH_REG6  
ASI_SCRATCH_REG7  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
RW  
00  
08  
10  
18  
20  
28  
30  
38  
120  
120  
120  
120  
120  
120  
120  
120  
50166616 (JPS1)  
6716  
ASI_ALL_FLUSH_L1I  
W
129  
68166916 (JPS1)  
6A16  
6B16  
6C16  
6D16  
6E16  
6F16  
6F16  
6F16  
6F16  
ASI_L2_CTRL  
RW  
R
130  
130  
130  
ASI_L2_DIAG_TAG_READ  
ASI_L2_DIAG_TAG_READ_REG  
(JPS1)  
0016-7FFC016  
TBD  
R
ASI_ERROR_IDENT (ASI_EIDR)  
ASI_C_LBSYR0  
RW  
RW  
RW  
RW  
RW  
00  
08  
80  
88  
161  
122  
122  
123  
123  
ASI_C_LBSYR1  
ASI_C_BSTW0  
ASI_C_BSTW1  
118  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
TABLE L-1 SPARC64 V ASI Assignments (3 of 3)  
Value  
ASI Name (Suggested Macro Syntax)  
Type  
VA  
Description  
Page  
6F16  
ASI_C_BSTWBUSY  
RW  
C0  
123  
7016EE16 (JPS1)  
EF16  
EF16  
EF16  
EF16  
ASI_LBSYR0  
RW  
RW  
RW  
RW  
00  
08  
80  
88  
124  
124  
124  
124  
ASI_LBSYR1  
ASI_BSTW0  
ASI_BSTW1  
F016FF16 (JPS1)  
L.3.2  
Special Memory Access ASIs  
Please refer to Section L.3.3 in Commonality.  
In addition to the ASIs described in Commonality, SPARC64 V supports the ASIs  
described below.  
ASI 5316 (ASI_SERIAL_ID)  
SPARC64 V provides an identification code for each processor. In other words, this  
ID is unique for each processor chip. In conjunction with the Version Register (please  
refer to Version (VER) Register on page 20), software can attain completely unique  
chip identification code.  
This register is defined as read-only; write operation is ignored.  
Chip_ID<63:0>  
63  
0
Release 1.0, 1 July 2002  
F. Chapter L  
Address Space Identifiers  
119  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
ASI 4F16 (ASI_SCRATCH_REGx)  
SPARC64 V provides eight of 64-bit registers that can be used temporary storage for  
supervisor software.  
Data<63:0>  
[1]  
[2]  
[3]  
Register Name:  
ASI:  
VA:  
ASI_SCRATCH_REGx (x = 07)  
The other VA bits must be zero.  
Supervisor read/ write  
[4]  
RW:  
Block Load and Store ASIs  
ASIs E016 and E116 exist only for use with STDFAinstructions as Block Store with  
Commit operations (see Block Load and Store Instructions (VIS I) on page 47). Neither  
ASI E016 nor ASI E116 should be used with LDDFA; however, if either is used, the  
LDDFAbehaves as follows:  
1. No exception is generated based on the destination register rd (impl. dep. #255).  
2. For LDDFAwith ASI E016 or E11 and a memory address aligned on a 2n-byte  
boundary, a SPARC64 V processor behaves as follows (impl. dep. #256):  
n 3 (8-byte alignment): no exception related to memory address alignment is  
generated, but a data_access_exception is generated (see case 3, below).  
n = 2 (4-byte alignment): LDDF_mem_address_not_aligned exception is generated.  
n 1 (2-byte alignment): mem_address_not_aligned exception is generated.  
3. If the memory address is correctly aligned, a data_access_exception with an  
AFSR.FTYPE= invalid ASIis generated.  
Partial Store ASIs  
ASIs C016C516 and C816CD16 exist for use with the STDFAinstruction for Partial  
Store operations (see Partial Store (VIS I) on page 57). None of these ASIs should be  
used with LDDFA; however, if one of them is used, the LDDFAbehaves as follows on  
a SPARC64 V processor (impl. dep. #257):  
1. For LDDFAwith C016C516 or C816CD16 and a memory address aligned on a 2n-  
byte boundary, a SPARC64 V processor behaves as follows:  
n 3 (8-byte alignment): no exception related to memory address alignment is  
generated.  
120  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                             
n = 2 (4-byte alignment): LDDF_mem_address_not_aligned exception is  
generated.  
n 1 (2-byte alignment): mem_address_not_aligned exception is generated.  
2. If the memory address is correctly aligned, SPARC64 V generates a  
data_access_exception with AFSR.FTYPE= invalid ASI.”  
L.4  
Barrier Assist for Parallel Processing  
SPARC64 V has a barrier-assist feature that works in concert with the barrier mechanism in  
the memory system to enable high-speed synchronization among CPUs in the system.  
Barrier assist is highly dependent on the barrier mechanism in the memory system.  
A description of the barrier mechanism is beyond the scope of this supplement; see  
appropriate system documents for details.  
L.4.1  
Interface Definition  
FIGURE L-4 illustrates the interface between CPU and the memory system.  
SB  
CPU  
LBSY change info  
BST write info  
Copy of SB_BPU#0 LBSY  
7
0
Copy of SB_BPU#1 LBSY  
7
0
FIGURE L-4 CPU Interface of Barrier Assist  
High-Speed LBSY Read Mechanism  
1. The CPU has a copy of LBSYin the system. Two LBSYs exist on a system board  
(SB), SB_BPU#0and SB_BPU#1. Each LBSYis 8 bits wide. The copy of LBSY  
residing in the CPU is 16 bits.  
2. On power-on reset, both the LBSYcopy in the CPU and the LBSY copies on the SB  
are cleared.  
Release 1.0, 1 July 2002  
F. Chapter L  
Address Space Identifiers  
121  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
3. When the LBSYon the SB is changed, LBSY change information is broadcast to all  
CPUs in the SB. Each CPU receives the change information and updates its copy.  
4. On a read from an application, the copy value of LBSY, which is designated by  
supervisor software, is returned.  
High-Speed BST Write Mechanism  
1. An application writes value, designated by supervisor software, to a BST.  
2. The CPU sends BST write information to the system controller.  
3. The system controller writes the BST.  
A write to BST is faster than a noncacheable store.  
L.4.2  
ASI Registers  
LBSY Control Register (ASI_C_LBSYR0, ASI_C_LBSYR1)  
[1]  
[2]  
[3]  
[4]  
Register Name:  
ASI_C_LBSYR0, ASI_C_LBSYR1  
6F16  
0016 (ASI_C_LBSYR0), 0816 (ASI_C_LBSYR1).  
Supervisor read/ write  
ASI:  
VA:  
RW  
The LBSYcontrol register designates which bit in the copy of LBSYis read through  
ASI_LBSYRx.  
Bit  
Name  
RW  
Description  
63  
V
RW  
Valid. When V= 0, BL_numand SB_BPU_numare ignored  
and a read to ASI_LBSYRx always returns 0. On V= 1,  
the copy value of LBSYselected by BL_numand  
SB_BPU_numis read.  
3
SB_BPU_num RW  
BL_num RW  
SB BPU relative number on the SB.  
BL number in the selected SB BPU.  
2:0  
122  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
BSTW Control Register (ASI_C_BSTW0, ASI_C_BSTW1)  
[1]  
[2]  
[3]  
[4]  
Register Name:  
ASI_C_BSTW0, ASI_C_BSTW1  
6F16  
8016 (ASI_C_BSTW0), 8816 (ASI_C_BSTW1).  
Supervisor read/ write  
ASI:  
VA:  
RW  
The BSTWcontrol register designates which bit in LBSYis written through  
ASI_BSTWx.  
Bit  
Name  
RW  
Description  
63  
V
RW  
Valid. When V= 0, BL_numand SB_BPU_numare  
ignored and a write to ASI_BSTWx is discarded. When  
V= 1, data in the ASI_BSTWx is written to the selected  
bit in SB_BPU.  
6
SB_BPU_num RW  
BST_num RW  
SB BPU number on the SB.  
5:0  
BSTbit number in the selected SB BPU.  
BSTW Busy Status Register (ASI_C_BSTWBUSY)  
[1]  
[2]  
[3]  
[4]  
Register Name:  
ASI_C_LBSTWBUSY  
6F16  
C016  
Supervisor read  
ASI:  
VA:  
RW  
The BSTWbusy status register indicates an update is made to LBSYin the SB and has  
not completed yet.  
Bit  
Name  
RW  
Description  
0
BUSY  
R
BUSY= 1 is indicated when a write to ASI_C_BSTWxis made  
but LBSYon the SB has not yet been updated.  
Programming Note Supervisor software should not write to ASI_C_BSTWx  
while ASI_C_BSTWBUSY.BUSY= 1. Otherwise, subsequent writes are ignored or a  
write to wrong BST is sent to the SB.  
Release 1.0, 1 July 2002  
F. Chapter L  
Address Space Identifiers  
123  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
Last Barrier Synchronization Status Read (ASI_LBSYR0,  
ASI_LBSYR1)  
[1]  
[2]  
[3]  
[4]  
Register Name:  
ASI_LBSYR0, ASI_LBSYR1  
EF16  
0016 (ASI_LBSYR0), 0816 (ASI_LBSYR1).  
Read (Write is ignored)  
ASI:  
VA:  
RW  
ASI_LBSYRxis a read interface to the copy of LBSY. A write to ASI_LBSYRxis  
ignored.  
Bit  
Name  
RW  
Description  
0
RV  
R
Read value. The bit designated by ASI_C_LBSYRx is shown.  
Barrier State Write (ASI_BSTW0, ASI_BSTW1)  
[1]  
[2]  
[3]  
[4]  
Register Name:  
ASI_BSTW0, ASI_BSTW1  
EF16  
8016 (ASI_BSTW0), 8816 (ASI_BSTW1).  
Write (0 is returned on read)  
ASI:  
VA:  
RW  
ASI_BSTWx is a write interface to LBSYon the SB. On read, 0 is returned.  
Bit  
Name  
RW  
Description  
0
WV  
W
Write value. The bit designated by ASI_C_BSTWx is written.  
124  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
F.APPENDIX  
M
This appendix describes SPARC64 V cache organization in the following sections:  
Cache Types on page 125  
Cache Coherency Protocols on page 128  
Cache Control/Status Instructions on page 128  
M.1  
Cache Types  
SPARC64 V has two levels of on-chip caches, with these characteristics:  
Level-1 cache is split for instruction and data; level-2 cache is unified.  
Level-1 caches are virtually indexed, physically tagged (VIPT), and level-2 caches  
are physically indexed, physically tagged (PIPT).  
All caches are 64 bytes in line size.  
All lines in the level-1 caches are included in the level-2 cache.  
Between level-1 caches, or level-1 and level-2 caches, coherency is maintained by  
hardware. In other words,  
eviction of a cache line from a level-2 cache causes flush-and-invalidation of all  
level-1 caches, and  
self-modification of an instruction stream modifies a level-1 data cache with  
invalidation of a level-1 instruction cache.  
125  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
M.1.1  
Level-1 Instruction Cache (L1I Cache)  
TABLE M-1 shows the characteristics of a level-1 instruction cache.  
TABLE M-1  
L1I Cache Characteristics  
Feature  
Value  
Size  
128 Kbytes  
Associativity  
Line Size  
2-way  
64-byte  
Indexing  
Virtually indexed, physically tagged (VIPT)  
Tag Protection  
Data Protection  
Parity and duplicate  
Parity  
Although an L1I cache is VIPT, TTE.CVis ineffective since SPARC64 V has  
unaliasing features in hardware.  
Instruction fetches bypass the L1I cache when they are noncacheable accesses.  
Noncacheable accesses occur under one of three conditions:  
PSTATE.RED= 1  
DCUCR.IM= 0  
TLB.CP= 0  
When MCNTL.NC_CACHE= 1, SPARC64 V treats all instructions as cacheable,  
regardless of the conditions listed above. See page 92 for details.  
Programming Note This feature is intended to be used by the OBP to facilitate  
diagnostics procedures. When the OBP uses this feature, it must clear  
MCNTL.NC_CACHEand invalidate all L1I data by ASI_FLUSH_L1Ibefore it exits.  
126  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
M.1.2  
Level-1 Data Cache (L1D Cache)  
The level-1 data cache is a writeback cache. Its characteristics are shown in  
TABLE M-2.  
TABLE M-2  
L1D Cache Characteristics  
Feature  
Value  
Size  
128 Kbytes  
Associativity  
Line Size  
2-way  
64-byte  
Indexing  
Virtually indexed, physically tagged (VIPT)  
Tag Protection  
Data Protection  
Parity and duplicate  
ECC  
Although L1D cache is VIPT, TTE.CVis ineffective since SPARC64 V has unaliasing  
features in hardware.  
Data accesses bypass the L1D cache when they are noncacheable accesses.  
Noncacheable accesses occur under one of three conditions:  
The ASI used for the access is either ASI_PHYS_BYPASS_EC_WITH_E_BIT(1516)  
or ASI_PHYS_BYPASS_EC_WITH_E_BIT_LITTLE(1D16).  
DCUCR.DM= 0  
Unlike the L1I cache, the L1D cache does not use MCNTL.NC_CACHE.  
M.1.3  
Level-2 Unified Cache (L2 Cache)  
The level-2 unified cache is a writeback cache. Its characteristics are shown in  
TABLE M-3.  
TABLE M-3  
L2 Cache Characteristics  
Feature  
Value  
Size  
2 Mbytes  
Associativity  
Line Size  
2- or 4-way, in ASI_L2_CTRL(6A  
)
16  
64-byte  
Indexing  
Physically indexed, physically tagged (PIPT)  
Tag Protection  
Data Protection  
ECC  
ECC  
The L2 cache is bypassed when the access is noncacheable. MCNTL.NC_CACHEis not  
used on the L2 cache.  
Release 1.0, 1 July 2002  
F. Chapter M  
Cache Organization  
127  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
M.2  
Cache Coherency Protocols  
The CPU uses the UPA MOESI cache-coherence protocol; these letters are acronyms  
for cache line states as follows:  
M
O
E
S
Exclusive modified  
Shared modified (owned)  
Exclusive clean  
Shared clean  
I
Invalid  
A subset of the MOESI protocol is used in the on-chip caches as well as the D-Tags in  
the system controller. TABLE M-4 shows the relationships between the protocols.  
TABLE M-4  
Relationships Between Cache Coherency Protocols  
L2-Cache  
L1D-Cache  
SAT (store ownership)  
L1I-Cache  
Invalid (I)  
Invalid (I)  
Invalid (I)  
Invalid (I)  
Shared Clean (S)  
Shared Modified (O)  
Exclusive Clean (E)  
Invalid (I) or Clean (C)  
Invalid (I)  
Valid (V)  
Invalid (I) or  
Valid (V)  
Invalid (I)  
Exclusive Modified (M)  
Exclusive Modified (M)  
TABLE M-5shows the encoding of the MOESI states in the L2 Cache.  
TABLE M-5 L2 Cache MOESI States  
Bit 2 (Valid)  
Bit 1 (Exclusive)  
Bit 0 (Modified) State  
0
1
1
1
1
0
0
Invalid (I)  
Shared clean (S)  
1
0
Exclusive clean (E)  
Shared modified (O)  
Exclusive modified (M)  
0
1
1
1
M.3  
Cache Control/ Status Instructions  
Several ASI instructions are defined to manipulate the caches. The following  
conventions are common to all of the load and store alternate instructions defined in  
this section:  
128  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
1. The opcode of the instructions should be ldda, ldxa, lddfa, stda, stxa, or  
stdfa. Otherwise, a data_access_exception exception with D-SFSR.FT= 0816  
(Invalid ASI) is generated.  
2. No operand address translation is performed for these instructions.  
3. VA<2:0> of all of the operand address should be 0. Otherwise, a  
mem_address_not_aligned exception is generated.  
4. The dont-care bits (designated “—” in the format) in the VA of the load or store  
alternate can be of any value. It is recommended that software use zero for these  
bits in the operand address of the instruction.  
5. The dont-care bits (designated “—” in the format) in DATA are read as zero and  
ignored on write.  
6. The instruction operations are not affected by PSTATE.CLE. They are always  
treated as big-endian.  
7. The instructions are all strongly ordered regardless of load or store and the  
memory model. Therefore, no speculative executions are performed.  
Multiple Asynchronous Fault Address Registers are maintained in hardware, one for  
each major source of asynchronous errors. These ASIs are described in  
ASI_ASYNC_FAULT_STATUS (ASI_AFSR) on page 174. The following subsections  
describe all other cache-related ASIs in detail.  
M.3.1  
Flush Level-1 Instruction Cache  
(ASI_FLUSH_L1I)  
[1]  
[2]  
[3]  
[4]  
Register Name:  
ASI_FLUSH_L1I  
67  
Any  
ASI:  
VA:  
RW  
16  
Supervisor write  
ASI_FLUSH_L1Iflushes and invalidates the entire level-1 instruction cache. VA can  
be any value. A write to this ASI with any VA and any data causes flushing and  
invalidation.  
Release 1.0, 1 July 2002  
F. Chapter M  
Cache Organization  
129  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
M.3.2  
Level-2 Cache Control Register (ASI_L2_CTRL)  
[1]  
[2]  
[3]  
[4]  
[5]  
Register Name:  
ASI_L2_CTRL  
6A  
ASI:  
VA:  
RW  
16  
10  
16  
Supervisor read/ write  
Data  
ASI_L2_CTRLis a control register for L2 training, interface, and size configuration.  
It is illustrated below and described in TABLE M-6.  
URGENT_ERROR_TRAP  
24  
NUMINSWAY  
U2_FLUSH  
0
Reserved  
Reserved  
Reserved  
63  
25  
23  
19  
18  
16  
15  
1
TABLE M-6 ASI_L2_CTRLRegister Bits  
Bit  
Field  
RW  
Description  
24  
URGENT_ERROR_TRAP  
RW1C  
This bit is set to 1 when one of the error exceptions  
(instruction_access_error, data_access_error, or asynchronous_data_error)  
exception is generated. The bit remains set to 1 until supervisor  
software explicitly clears it by writing 1 to the bit.  
18:16 NUMINSWAY  
R
Set associativity of L2 cache, as follows:  
2
4:  
2-way mode  
4-way mode  
0
U2_FLUSH  
W
Flush the entire level-2 cache. The flushing takes approximately 10  
ms, Until the flushing of the level-2 cache completes, the processor  
ceases operation and does not perform further instruction  
execution.  
M.3.3  
L2 Diagnostics Tag Read  
(ASI_L2_DIAG_TAG_READ)  
This ASI instruction is a diagnostic read of L2 cache tag, as well as tag 2 of L1I and  
L1D.  
130  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
ASI_L2_DIAG_TAG_READworks in concert with ASI_L2_DIAG_TAG_READ_REG.  
A read to ASI_L2_DIAG_TAG_READreturns 0, with the side effect of setting the tag  
to ASI_L2_DIAG_TAG_READ_REG0-6.  
[1]  
[2]  
[3]  
Register Name:  
ASI:  
VA:  
ASI_L2_DIAG_TAG  
6B  
16  
VA<18:6>: Index number of the tag.  
0000 7FFC0  
16  
16  
[4]  
[5]  
RW  
Supervisor read  
0 is read.  
Data  
M.3.4  
L2 Diagnostics Tag Read Registers  
(ASI_L2_DIAG_TAG_READ_REG)  
ASI_L2_DIAG_TAG_READ_REG0-6holds the tag that is specified by the read of  
ASI_L2_DIAG_TAG_READ.  
[1]  
[2]  
[3]  
[4]  
[5]  
Register Name:  
ASI_L2_DIAG_TAG_READ_REG  
6C  
VA<6:3> internal register number  
Supervisor Read  
ASI:  
VA:  
RW  
16  
Data  
TBD.  
Release 1.0, 1 July 2002  
F. Chapter M  
Cache Organization  
131  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
132  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
N
Interrupt handling in SPARC64 V is described in these sections:  
Interrupt Dispatch on page 133  
Interrupt Receive on page 135  
Interrupt-Related ASR Registers on page 136  
N.1  
Interrupt Dispatch  
When a processor wants to dispatch an interrupt to another UPA port, it first sets up  
the interrupt data registers (ASI_INTR_Wdata 0-7) with the outgoing interrupt  
packet data by using ASI instructions. It then performs an ASI_INTR_W(interrupt  
dispatch) write to trigger delivery of the interrupt. The interrupt packet and the  
associated data are forwarded to the target UPA by the system controller. The  
processor polls the BUSYbit in the INTR_DISPATCH_STATUSregister to determine  
whether the interrupt has been dispatched successfully.  
FIGURE N-1 illustrates the steps required to dispatch an interrupt.  
133  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
read ASI_INTR_DISPATCH_STATUS  
Y
Error  
Busy?  
N
PSTATE.IE 0  
(begin atomic sequence)  
Write ASI_INTR_W (data 0)  
. . .  
Write ASI_INTR_W (data 7)  
Write ASI_INTR_W (interrupt  
dispatch)  
MEMBAR  
read ASI_INTR_DISPATCH_STATUS  
Y
Busy?  
N
PSTATE.IE 1  
(end atomic sequence)  
Y
Nack?  
N
dispatch complete  
FIGURE N-1 Dispatching an Interrupt  
134  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
N.2  
When an interrupt packet is received, eight interrupt data registers are updated with  
the associated incoming data and the BUSYbit in the ASI_INTR_RECEIVEregister is  
set. If interrupts are enabled (PSTATE.IE= 1), then the processor takes a trap and  
the interrupt data registers are read by the software to determine the appropriate  
trap handler. The handler may reprioritize this interrupt packet to a lower priority.  
FIGURE N-2 is an example of the interrupt receive flow.  
read ASI_INTR_RECEIVE  
Y
Error  
Busy?  
N
Read ASI_INTR_R (data 0)  
. . .  
Read ASI_INTR_R (data 7)  
Determine Trap Handler  
Handle Interrupt or  
reprioritize via SOFTINT  
clear ASI_INTR_RECEIVE  
interrupt complete  
FIGURE N-2 Interrupt Receive Flow  
Release 1.0, 1 July 2002  
F. Chapter N  
Interrupt Handling  
135  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
N.3  
Interrupt Global Registers  
Please refer to Section N.3. of Commonality.  
N.4  
Interrupt-Related ASR Registers  
Please refer to Section N.4 of Commonality for details of these registers.  
N.4.2  
Interrupt Vector Dispatch Register  
SPARC64 V ignores all 10 bits of VA<38:29> when the Interrupt Vector Dispatch  
Register is written (impl. dep. #246).  
N.4.3  
N.4.5  
Interrupt Vector Dispatch Status Register  
In SPARC64 V, 32 BUSY/ NACK pairs are implemented in the Interrupt Vector  
Dispatch Status Register (impl. dep. #243).  
Interrupt Vector Receive Register  
SPARC64 V sets a 5-bit physical module ID (MID) value in the SID_Lfield of the  
Interrupt Vector Receive Register. The SID_Ufield always reads as zero. SPARC64 V  
obtains the interrupt source identifier SID_Lfrom the UPA packet (impl. dep. #247).  
136  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
F.APPENDIX  
O
The appendix contains these sections:  
Reset Types on page 137  
RED_state and error_state on page 139  
Processor State after Reset and in RED_state on page 141  
O.1  
Reset Types  
This section describes the four reset types: power-on reset, watchdog reset,  
externally initiated reset, and software-initiated reset.  
O.1.1  
Power-on Reset (POR)  
For execution of the power-on reset on SPARC64 V, an external facility must issue  
the required sequence of JTAG commands to the processor.  
While the UPA_RESET_L pin is asserted (low) or the Power ready signal is  
deasserted, the processor stops and executes only the specified JTAG command. The  
processor does not change any software-visible resources in the processor except the  
change by JTAG command execution and does not change any memory system state.  
The sequence for the two types of power-on reset in SPARC64 Vhard power-on  
reset and soft power-on resetis described below.  
1. The UPA_RESET_L pin is asserted (low). The processor stops.  
2. The external facility issues the required sequence of the JTAG commands. A  
different command sequence is required for hard power-on reset and soft power-  
on reset. The external facility decides the POR reset type to be executed.  
137  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
3. The UPA_RESET_L pin is deasserted. The processor enters RED_statewith  
TT= 1 trap to RSTVaddr+ 2016 and starts the instruction execution.  
O.1.2  
Watchdog Reset (WDR)  
The watchdog reset trap is generated internally in the following cases:  
Second watchdog timeout detection while TL< MAXTL.  
First watchdog timeout detection while TL= MAXTL  
When a trap occurs while TL= MAXTL  
When triggered by a watchdog timeout, a WDR trap has TT= 2 and control transfers  
to RSTVaddr+ 4016. Otherwise, the TTof the trap is preserved, causing an entry into  
error_state.  
O.1.3  
O.1.4  
Externally Initiated Reset (XIR)  
The CPU has an externally initiated reset (XIR) pin named UPA_XIR_L (asserted  
low). This pin must be asserted while the power supply is at full operational voltage  
and the UPA clock is running.  
The assertion of XIR generates a trap of TT= 3 and causes the processor to transfer  
execution to RSTVaddr+ 6016 and enter RED_state.  
Software-Initiated Reset (SIR)  
Any processor can initiate a software-initiated reset with an SIRinstruction.  
If TL(Trap Level) < MAXTL(5), an SIRinstruction causes a trap of TT= 4 and causes  
the processor to execute instructions from RSTVaddr+ 8016 and enter RED_state.  
If a processor executes an SIRinstruction while TL= 5, it enters error_stateand  
ultimately generates a watchdog reset trap.  
138  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                           
O.2  
RED_state and error_state  
FIGURE O-1 illustrates the processor state transition diagram.  
Fatal Error  
CPU Fatal  
Error ***  
Fatal Error  
TRAP  
TRAP@MAXTL  
SIR@MAXTL  
WDT2**  
ErrorState trans Error  
WDT1@<MAXTL  
TRAP@<MAXTL  
SIR@<MAXTL  
@<MAXTL-1  
WDT1*  
WDT1@MAXTL1  
TRAP@MAXTL1  
SIR@<MAXTL  
RED = 1  
WDT1@MAXTL  
TRAP@MAXTL  
SIR@MAXTL  
WDT2*  
@<MAXTL-1  
error_state**  
exec_state  
RED_state  
WDR  
DONE/RETRY  
RED = 0  
POR  
XIR  
Any State  
Including Power Off  
*
WDT1 is the first watchdog timeout.  
** WDT2 is the second watchdog timeout. WDT2 takes the CPU into error_state. In a normal setting,  
error_state immediately generates a watchdog reset trap and brings the CPU into RED_state. Thus, the  
state is transient. When OPSR (Operation Status Register) specifies the stop on error_state, an entry into  
error_statedoes not cause a watchdog reset and the CPU remains in the error_state.  
*** CPU_fatal_error_state signals the detection of a fatal error to the system through P_FERR signal to the sys-  
tem, and the system causes a FATAL reset. Soft POR will be applied to the all CPUs in the system at the FATAL  
reset.  
FIGURE O-1 Processor State Diagram  
Release 1.0, 1 July 2002  
F. Chapter O  
Reset, RED_state, and error_state  
139  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
O.2.1  
RED_state  
Once the processor enters RED_statefor any reason except when a power-on reset  
(POR) is performed, the software should not attempt to return to execute_state;  
if software attempts a return, then the state of the processor is unpredictable.  
When the processor processes a reset or a trap that enters RED_state, it takes a trap  
at an offset relative to the RED_statetrap table (RSTVaddr); in the processor this is  
at virtual address VA = FFFFFFFFF000000016 and physical address  
PA = 000007FFF000000016.  
The following list further describes the processor behavior upon entry into  
RED_state, and during RED_state:  
Whenever the processor enters RED_state, all fetch buffers are invalidated.  
When the processor enters RED_statebecause of a trap or reset, the DCUCR  
register is updated by hardware to disable several hardware features. Software  
must set these bits when required (for example, when the processor exits from  
RED_state).  
When the processor enters RED_statenot because of a trap or reset (that is,  
when the PSTATE.REDbit has been set by WRPR), these register bits are  
unchangedunlike the case above. The only side effect is the disabling of the  
instruction MMU.  
When the processor is in RED_state, it behaves as if the IMMU is disabled  
(DCUCR.IMis clear), regardless of the actual values in the respective control  
register.  
Caches continue to snoop and maintain coherence while the processor is in  
RED_state.  
O.2.2  
error_state  
The processor enters error_statewhen a trap occurs and TL= MAXTL(5) or when  
the second watchdog timeout has occurred.  
On the normal setting, the processor immediately generates a watchdog reset trap  
(WDR) and transitions to RED_state. Otherwise, the OPSR(Operating Status  
Register) specifies the stop on error_state, that is, the processor does not  
generate a watchdog reset after error_statetransition and remains in the  
error_state.  
140  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                     
O.2.3  
CPU Fatal Error state  
The processor enters CPU fatal error state when a fatal error is detected on the  
processor. A fatal error is one that breaks the cache coherency or the system data  
integrity and is not reported as the SDC (small data corruption) error. See Appendix  
P, Error Handling, for details of the SDC error.  
The processor reports the fatal error detection to the system, and the system causes  
the fatal reset. Soft POR will be applied to the all CPUs in the system at the fatal  
reset.  
O.3  
Processor State after Reset and in  
RED_state  
TABLE O-1 shows the various processor states after resets and when entering  
RED_state.  
In this table, it is assumed that RED_stateentry happens as a result of resets or  
traps. If RED_stateentry occurs because the WRPRinstruction sets the PSTATE.RED  
bit, no processor state will be changed except the PSTATE.REDbit itself; the effects  
of this are described in RED_state on page 140.  
TABLE O-1  
Nonprivileged and Privileged Register State after Reset and in RED_state  
Name  
POR1  
WDR2  
XIR  
SIR  
RED_state  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unchanged  
Unchanged  
Integer registers  
Floating Point registers  
RSTVvalue  
VA = FFFFFFFFF0000000  
16  
PA = 07FFF0000000 (43-bit PA mode specified by OPSR.)  
16  
PC  
nPC  
RSTV| 2016  
RSTV| 2416  
RSTV| 4016  
RSTV| 4416  
RSTV| 6016  
RSTV| 6416  
RSTV| 8016  
RSTV| 8416  
RSTV| A016  
RSTV| A416  
1
0
0
0
1
0
1
1
(Alternate globals)  
PSTATE  
AG  
MG  
IG  
IE  
PRIV  
AM  
PEF  
RED  
MM  
(MMU globals not selected)  
(Interrupt globals not selected)  
(Interrupt disable)  
(Privileged mode)  
(Full 64-bit address)  
(FPU on)  
(Red_state)  
00 (TSO)  
Release 1.0, 1 July 2002  
F. Chapter O  
Reset, RED_state, and error_state  
141  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
TABLE O-1  
Name  
Nonprivileged and Privileged Register State after Reset and in RED_state (Continued)  
POR1  
WDR2  
XIR  
SIR  
RED_state  
0/ Copied from CLE  
0/ Unchanged  
Copied from CLE  
Unchanged  
TLE  
CLE  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unchanged  
Unchanged  
TBA<63:15>  
PIL  
Unchanged  
except for  
Unchanged  
Unchanged  
Unchanged  
except for  
CWP  
register win-  
dow traps  
register win-  
dow traps  
Unknown/ Unchanged  
Unchanged  
FPRS  
TL  
MAXTL  
min (TL+ 1, MAXTL)  
Unknown/ Unchanged  
Unknown/ Unchanged  
TPC[TL]  
TNPC[TL]  
PC  
nPC  
Unknown/ Unchanged  
CCR  
TSTATE  
CCR  
ASI  
ASI  
PSTATE  
CWP  
PC  
PSTATE  
CWP  
PC  
nPC  
nPC  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
CANSAVE  
CANRESTORE  
OTHERWIN  
CLEARWIN  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unchanged  
Unchanged  
WSTATE  
OTHER  
NORMAL  
VER  
IMPL  
000416  
516  
Mask dependent  
MASK  
516  
716  
MAXTL  
MAXWIN  
1.Hard POR occurs when power is cycled. Values are unknown following hard POR. Soft POR occurs when  
UPA_RESET_L is asserted. Values are unchanged following soft POR.  
2.The first watchdog timeout trap is taken in execute_state (i.e. PSTATE.RED= 0), subsequent watchdog timeout traps  
as well as watchdog traps due to a trap @ TL= MAX_TLare taken in RED_state. See Section O.1.2, Watchdog Reset  
(WDR), on page 138 for more details.  
142  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
TABLE O-2  
ASR State after Reset and in RED_state  
A
S
R
0
2
3
Name  
Y
POR1  
WDR2  
XIR  
SIR  
RED_state  
Unknown/ Unchanged Unchanged  
Unknown/ Unchanged Unchanged  
Unknown/ Unchanged Unchanged  
CCR  
ASI  
1
Unchanged  
Unchanged  
Unchanged  
Restart at 0  
Unchanged  
Unchanged  
4 TICK  
NPT  
Counter  
Restart at 0  
0
Unchanged  
Unchanged  
FSR  
6
16 PCR  
0
0
UT  
ST  
Others  
Unknown/ Unchanged  
Unknown/ Unchanged Unchanged  
Always 0  
PIC  
DCR  
17  
18  
0
0
Unchanged  
Unchanged  
19 GSR  
IM  
STE  
Others  
Unknown/ Unchanged Unchanged  
Unknown/ Unchanged Unchanged  
22 SOFTINT  
23 TICK_COMPARE  
INT_DIS  
1
0
Unchanged  
Unchanged  
TICK_CMPR  
Unchanged  
Unchanged (count)  
Counter  
Restart at 0  
25 STICK_COMPARE  
INT_DIS  
1
0
Unchanged  
Unchanged  
TICK_CMPR  
1.Hard POR occurs when power is cycled. Values are unknown following hard POR. Soft POR occurs when  
UPA_RESET_L is asserted. Values are unchanged following soft POR.  
2.The first watchdog timeout trap is taken in execute_state (i.e. PSTATE.RED= 0), subsequent watchdog timeout  
traps as well as watchdog traps due to a trap @ TL= MAX_TLare taken in RED_state. See Section O.1.2, Watchdog  
Reset (WDR), on page 138or more details  
TABLE O-3  
ASI Register State After Reset and in RED_state (1 of 3)  
A
S
I
VA  
00  
08  
00  
00  
Name  
POR1  
WDR2  
XIR  
SIR  
RED_state  
0
0
45  
45  
48  
49  
DCUCR  
0
0
MCNTL  
0 (off)  
Unchanged  
Unchanged  
INST_BREAKPOINT  
INTR_RECEIVE  
Unknown/ Unchanged  
Release 1.0, 1 July 2002  
F. Chapter O  
Reset, RED_state, and error_state  
143  
Download from Www.Somanuals.com. All Manuals Search And Download.  
TABLE O-3  
ASI Register State After Reset and in RED_state (2 of 3)  
A
S
I
VA  
Name  
POR1  
WDR2  
XIR  
SIR  
RED_state  
4A  
00  
UPA_CONFIG  
WB_S  
000/ Unchanged  
00/ Unchanged  
00/ Unchanged  
010/ Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
WRI_S  
INT_S  
UC_S  
OPSRvalue/ Unchanged Unchanged  
OPSRvalue (read-only) Unchanged  
AM  
MCAP  
Pin  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
CLK_MODE  
SCIQ1  
SCIQ0  
UPC_CAP2  
MID  
000/ Unchanged  
0000/ Unchanged  
1 (Read-only)  
Module ID (read-only)  
01_000000_0001_11011  
UPC_CAP  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unchanged  
Unchanged  
4C  
4C  
4C  
00  
08  
10  
AFSR  
UGESR  
ERROR_CONTROL  
WEAK_ED  
Others  
STCHG_ERR_INFO  
AFAR_D1  
1
1
Unknown/ Unchanged  
Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Constant value  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Constant value  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
4C  
4D  
4D  
4F  
50  
50  
50  
50  
50  
50  
51  
52  
53  
54  
55  
56  
57  
58  
58  
58  
58  
18  
00  
08  
--  
AFAR_U2  
SCRATCH_REGs  
IMMU_TAG_TARGET  
IMMU_SFSR  
00  
18  
28  
30  
48  
58  
00  
08  
10  
18  
IMMU_TSB_BASE  
IMMU_TAG_ACCESS  
IMMU_TAG_TSB_PEXT  
IMMU_TAG_TSB_NEXT  
IMMU_TSB_8KB_PTR  
IMMU_TSB_64KB_PTR  
SERIAL_ID  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
ITLB_DATA_IN  
ITLB_DATA_ACCESS  
ITLB_TAG_READ  
ITLB_DEMAP  
DMMU_TAG_TARGET  
PRIMARY_CONTEXT  
SECONDARY_CONTEXT  
DMMU_SFSR  
144  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
TABLE O-3  
ASI Register State After Reset and in RED_state (3 of 3)  
A
S
I
VA  
20  
Name  
POR1  
WDR2  
XIR  
SIR  
RED_state  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
0
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
58  
58  
58  
58  
58  
58  
58  
59  
5A  
5B  
5C  
5D  
5E  
5F  
60  
6E  
6F  
77  
77  
77  
7F  
EF  
DMMU_SFAR  
28  
DMMU_TSB_BASE  
DMMU_TAG_ACCESS  
DMMU_VA_WATCHPOINT  
DMMU_PA_WATCHPOINT  
DMMU_TSB_PEXT  
DMMU_TSB_NEXT  
DMMU_TSB_8KB_PTR  
DMMU_TSB_64KB_PTR  
DMMU_TSB_DIRECT_PTR  
DTLB_DATA_IN  
30  
38  
40  
48  
58  
DTLB_DATA_ACCESS  
DTLB_TAG_READ  
DMMU_DEMAP  
IIU_INST_TRAP  
EIDR  
0/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
Unknown/ Unchanged  
BARRIER_SYNC_P  
INTR_DATA0:5_W  
INTR_DISPATCH_W  
INTR_DATA6:7_W  
INTR_DATA0:7_R  
BARRIER_SYNC  
40:68  
70  
80:88  
40:88  
1.Hard POR occurs when power is cycled. Values are unknown following hard POR. Soft POR occurs when  
UPA_RESET_L is asserted. Values are unchanged following soft POR  
2.The first watchdog timeout trap is taken in execute_state (i.e. PSTATE.RED= 0), subsequent watchdog timeout  
traps as well as watchdog traps due to a trap @ TL= MAX_TLare taken in RED_state. See Section O.1.2, Watchdog  
Reset (WDR), on page 138 for more details.  
Release 1.0, 1 July 2002  
F. Chapter O  
Reset, RED_state, and error_state  
145  
Download from Www.Somanuals.com. All Manuals Search And Download.  
TABLE O-4  
UPA slave register State after Reset and in RED_state  
PA  
Name  
POR1(binary)  
WDR2  
XIR  
SIR  
RED_state  
00  
UPA_PORTID  
Cookie  
FC  
1
0
01  
000000  
0001  
11011  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
Unchanged  
16  
SREQ_S  
ECCnotValid  
PRINT_RDQ  
PREQ_DQ  
PREQ_RQ  
UPACAP  
1.Hard POR occurs when power is cycled. Values are unknown following hard POR. Soft POR occurs when  
UPA_RESET_L is asserted. Values are unchanged following soft POR.  
2.The first watchdog timeout trap is taken in execute_state (i.e. PSTATE.RED= 0), subsequent watchdog timeout  
traps as well as watchdog traps due to a trap @ TL= MAX_TLare taken in RED_state. See Section O.1.2, Watch-  
dog Reset (WDR), on page 138 for more details.  
O.3.1  
Operating Status Register (OPSR)  
OPSRis the control register in the CPU that is scanned in during the hardware  
power-on reset sequence before the CPU starts running.  
The value of the OPSRis specified outside of the CPU and is never changed by  
software. OPSRis set by scan-in during hardware power-on reset and by a JTAG  
command after hardware POR.  
Most of OPSRsetting is not visible for software. However, some OPSRvalues control  
the software-visible action.  
The following items are controlled by OPSRand are visible to software.  
1. Initial value of the physical address mode.  
The hardware POR initial value of the 41-bit PA mode or 43-bit PA mode is  
specified by OPSRand set in UPA_CONFIG.AMfield. In 41-bit PA mode, all  
physical addresses issued by the CPU are masked to 41 bits. Otherwise, the CPU  
operates in 43-bit PA mode, and physical addresses issued by CPU are masked to  
43 bits.  
2. The value of UPA_configuration_register.MCAPfield.  
OPSRcan be set so that when error_stateis entered, the processor remains  
halted in error_stateinstead of generating a watchdog_reset (impl. dep. #254).  
146  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
O.3.2  
O.3.3  
Hardware Power-On Reset Sequence  
To be defined later.  
Firmware Initialization Sequence  
To be defined later.  
Release 1.0, 1 July 2002  
F. Chapter O  
Reset, RED_state, and error_state  
147  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
148  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
P
Error Handling  
This appendix describes processor behavior to a programmer writing operating  
system, firmware, and recovery code for SPARC64 V. Section headings differ from  
those of Appendix P of Commonality.  
P. 1  
E r ro r C l a s s i f i c a t i o n  
On SPARC64 V, an error is classified into one of the following four categories,  
depending on the degree to which it obstructs program execution:  
1. Fatal error  
2. Error state transition error  
3. Urgent error  
4. Restrainable error  
The subsections below describe each error class.  
P.1.1  
Fatal Error  
A fatal error is one of the following errors that damages the entire system.  
a. Error breaking data integrity on the system (excluding the SDC)  
All errors, except the SDC (system data corruption) error, that break cache  
coherency are in this category.  
b. Invalid system control flow is detected and therefore validity of the subsequent  
system behavior cannot be guaranteed.  
149  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
When the CPU detects the fatal error, the CPU enters FATAL error_stateand  
reports the fatal error occurrence to the system controller. The system controller  
transfers the entire system state to the FATAL state and stops the system. After the  
system stops, a FATAL reset, which is a type of power-on reset, will be issued to the  
whole system.  
P. 1 . 2 error_stateTransition Error  
An error_statetransition error is a serious error that prevents the CPU from  
reporting the error by generating a trap. However, any damage caused by the error  
is limited to within the CPU.  
When the CPU detects an error_statetransition error, it enters error_state.  
The CPU exits error_stateby causing a watchdog reset, entering RED_state,  
and starting instruction execution at the watchdog reset trap handler.  
P.1.3  
Urgent Error  
An urgent error (UGE) is an error that requires immediate processing by privileged  
software, which is reported by an error trap. The types of urgent errors are listed  
below and then described in further detail.  
Instruction-obstructing error  
I_UGE: Instruction urgent error  
IAE:  
Instruction access error  
Data access error  
DAE:  
Urgent error that is independent of the instruction execution  
A_UGE: Autonomous urgent error  
Instruction-Obstructing Error  
An instruction-obstructing error is one that is detected by instruction execution and  
results in the instruction being unable to complete.  
When the instruction-obstructing error is detected while  
ASI_ERROR_CONTROL.WEAK_ED= 0 (as set by privileged software for a normal  
program execution environment), then an exception is generated to report the error.  
This trap is nonmaskable.  
Otherwise, when ASI_ERROR_CONTROL.WEAK_ED= 1, as with multiple errors or a  
POST/ OBP reset routine, one of the following actions occurs:  
Whenever possible, the CPU writes an unpredictable value to the target of the  
damaged instruction and the instruction ends.  
150  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
Otherwise, an error exception is generated and the damaged instruction is  
executed as when ASI_ERROR_CONTROL.WEAK_ED= 0 is set.  
The three types of instruction-obstructing errors are described below.  
I_UGE (instruction urgent error) All of the instruction-obstructing errors except  
IAE (instruction access error) and DAE (data access error). There are two categories  
of I_UGEs.  
An uncorrectable error in an internal program-visible register that obstructs  
instruction execution.  
An uncorrectable error in the PSTATE, PC, NPC, CCR, ASI, FSR, or GSRregister  
is treated as an I_UGE that obstructs the execution of any instruction. See  
Sections P.8.1 and P.8.2 for details.  
The first-time watchdog timeout is also treated as this type of I_UGE.  
An error in the hardware unit executing the instruction, other than an error  
in a program-visible register.  
Among these errors are ALU output errors, errors in temporary registers  
during instruction execution, CPU internal data bus errors, and so forth.  
I_UGE is a preemptive error with the characteristics shown in TABLE P-2.  
IAE (instruction access error) The instruction_access_error exception, as specified  
in JPS1 Commonality. On SPARC64 V, only an uncorrectable error in the cache or  
main memory during instruction fetch is reported to software as an IAE.  
IAE is a precise error.  
DAE (data access error) The data_access_error exception, as specified in JPS1  
Commonality. On SPARC64 V, only an uncorrectable error in the cache or main  
memory during access by a load, store, or load-store instruction is reported to  
software as a DAE.  
DAE is a precise error.  
Urgent Error Independent of Instruction Execution  
A_UGE (Autonomous Urgent Error) An error that requires immediate  
processing and that occurs independently of instruction execution.  
In normal program execution, ASI_ERROR_CONTROL.WEAK_ED= 0 is specified  
by privileged software. In this case, the A_UGE trap is suppressed only in the trap  
handler used to process UGE (that is, the async_data_error trap handler).  
Otherwise, in special program execution such as the handling of the occurrence of  
multiple errors or the POST/ OBP reset routine,  
ASI_ERROR_CONTROL.WEAK_ED= 1 is specified by the program. In this case, no  
A_UGE generates an exception.  
There are two categories of A_UGEs:  
An error in an important resource that will cause a fatal error or  
error_state transition error when the resource is used.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
151  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
When the resource with the error is used, the program cannot continue  
execution, or the error_statetransition error or the fatal error is detected.  
The error in an important resource that is expected to invoke the operating  
system panicprocess  
The operating system panic process is expected when this error is detected  
because the normal processing cannot be expected to continue when this error  
occurs.  
The A_UGE is a disrupting error with the following deviations.  
The trap for A_UGE is not masked by PSTATE.IE.  
The instruction designated by TPCmay not end precisely. The instruction end-  
method is reported in the trap status register for A_UGE.  
Traps for Urgent Errors  
When an urgent error is detected and not masked, the error is reported to privileged  
software by the following exceptions:  
I_UGE, A_UGE:  
IAE:  
async_data_error exception  
instruction_access_error exception  
data_access_error exception  
DAE:  
P.1.4  
Restrainable Error  
A restrainable error is one that does not adversely affect the currently executing  
program and that does not require immediate handling by privileged software. A  
restrainable error causes a disrupting trap with low priority.  
There are three types of restrainable errors.  
Correctable Error (CE), corrected by hardware  
Upon detecting the CE, the hardware uses the data corrected by hardware. So a CE  
has no deleterious effect on the CPU.  
When a CE is detected, data seen by the CPU has always already been corrected  
by hardware, but it depends on the CE type whether the original data containing  
the CE is corrected or not.  
Uncorrectable error without direct damage to the currently executing  
instruction sequence.  
An error detected in cache line writeback or copyback data is of this type.  
152  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
Degradation  
SPARC64 V can isolate an internal hardware resource that generates frequent  
errors and continue processing without deleterious effect on software during  
program execution. However, performance is degraded by the resource isolation.  
This degradation is reported as a restrainable error.  
The restrainable error can be reported to privileged software by the ECC_error trap.  
When PSTATE.IE= 1 and the trap enable mask for any restrainable error is 1, the  
ECC_error exception is generated for the restrainable error.  
P.2  
Action and Error Control  
P.2.1  
Registers Related to Error Handling  
The following registers are related to the error handling.  
ASI registers: Indicate an error. All ASI registers in TABLE P-1 except ASI_EIDR  
and ASI_ERROR_CONTROLare used to specify the nature of an error to privileged  
software.  
ASI_ERROR_CONTROL: Controls error action. This register designates error  
detection masks and error trap enable masks.  
ASI_EIDR: Marks errors. This register identifies the error source ID for error  
marking.  
TABLE P-1 lists the registers related to error handling.  
Registers Related to Error Handling  
TABLE P-1  
ASI  
4C  
4C  
4C  
4C  
4D  
4D  
VA  
R/W  
Checking Code  
None  
Name  
Defined in  
00  
08  
10  
18  
00  
08  
18  
18  
20  
00  
RW1C  
R
ASI_ASYNC_FAULT_STATUS  
ASI_URGENT_ERROR_STATUS  
ASI_ERROR_CONTROL  
ASI_STCHG_ERROR_INFO  
ASI_ASYNC_FAULT_ADDR_D1  
ASI_ASYNC_FAULT_ADDR_U2  
ASI_IMMU_SFSR  
P. 7. 1  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
16  
None  
P. 4. 1  
RW  
Parity  
None  
P. 2. 1  
R,W1AC  
RW1AC  
RW1AC  
RW  
P. 3. 1  
Parity  
Parity  
None  
P. 7. 2  
P. 7. 3  
50  
58  
58  
F.10.9  
16  
RW  
None  
ASI_DMMU_SFSR  
F.10.9  
16  
16  
RW  
Parity  
Parity  
ASI_DMMU_SFAR  
F.10.10 of Commonality  
6E  
RW  
ASI_EIDR  
P. 2. 5  
16  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
153  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                           
P.2.2  
Summary of Actions Upon Error Detection  
TABLE P-2 summarizes what happens when an error is detected.  
TABLE P-2  
Action Upon Detection of an Error (1 of 4)  
Error State Transition  
Fatal Error (FE)  
Error (EE)  
When  
ASI_ECR.WEAK_ED When  
Urgent Error (UGE)  
Restrainable Error (RE)  
None  
Error detection None  
mask (the  
I_UGE, IAE, DAE  
condition to  
suppress error  
detection)  
= 1, the error  
detection is  
suppressed  
ASI_ECR.WEAK_ED= 1, error  
detection is suppressed  
incompletely.  
incompletely.  
A_UGE  
Error detection except the  
register usage is suppressed  
when ASI_ECR.WEAK_ED= 1  
or upon a condition unique to  
each error.  
Error detection at the register  
usage is suppressed by  
conditions unique to each  
error.  
Only some A_UGEs have the  
above unique conditions to  
suppress error detection; most  
do not.  
Trap mask (the None  
condition to  
None  
I_UGE, IAE, IAE  
None  
ASI_ECR.UGE_HANDLER= 1  
or  
suppress the  
error trap  
occurrence)  
ASI_ECR.WEAK_ED= 1  
or  
PSTATE.IE= 0  
or  
ASI_ECR.RTE_xx = 0, where  
RTE_xx is the trap enable  
mask for each error group.  
RTE_xx is RTE_CEDGor  
RTE_UE.  
A_UGE  
ASI_ECR.UGE_HANDLER= 1  
or  
ASI_ECR.WEAK_ED= 1  
The A_UGE detected during  
the trap is suppressed, is kept  
pending in the hardware, and  
causes the ADE trap when the  
trap is enabled.  
154  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
TABLE P-2  
Action Upon Detection of an Error (2 of 4)  
Error State Transition  
Fatal Error (FE)  
Action upon the 1. CPU enters  
Error (EE)  
Urgent Error (UGE)  
Restrainable Error (RE)  
1. CPU enters  
error_state.  
2. Watchdog reset  
(WDR) is caused  
on the CPU.  
Detection of I_UGE  
Ideal specification  
1. The error detection is kept  
pending in one bit of  
ASI_AFSR.  
2. When the trap condition  
for the pending error  
detection is enabled, the  
ECC_error exception is  
generated.  
error detection  
CPU fatal  
state.  
When  
ASI_ECR.UGE_HANDLER= 0,  
a single-ADE trap is caused.  
Otherwise, when  
ASI_ECR.UGE_HANDLER= 1,  
a multiple-ADE trap is caused.  
2. CPU informs  
the system of  
fatal error  
occurrence.  
3. The FATAL  
reset (which is  
a form of POR  
reset) is issued  
to the whole  
system.  
Detection of A_UGE  
When the trap is enabled, a  
single-ADE trap is caused.  
When the trap is disabled, the  
trap condition is kept pending  
in hardware.  
Deviation in SPARC64 V  
An ECC_error trap can occur  
even though ASI_AFSR  
does not indicate any  
detected error(s)  
corresponding to any trap-  
enable bit (RTE_UEor  
RTE_CEDG) set to 1 in  
ASI_ECR, in the following  
cases:  
4. POR reset is  
caused to all  
CPUs in the  
system.  
Detection of IAE  
When  
ASI_ECR.UGE_HANDLER= 0,  
an IAE trap is caused. Other-  
wise, a multiple-ADE trap is  
caused.  
1. A pending detected error  
is erased from ASI_ASFR  
(by writing 1to  
Detection of DAE  
When  
ASI_ECR.UGE_HANDLER= 0,  
a DAE trap is caused. Other-  
wise, a multiple-ADE trap is  
caused.  
ASI_AFSR) after the error  
is detected but before the  
ECC_error trap is  
generated.  
2. A pending CE or DG is  
erased by writing 1 to  
ASI_AFSRafter the  
ECC_error trap is caused  
by the UE error detection.  
3. A pending UE is erased by  
writing 1 to ASI_AFSR  
after the ECC_error trap is  
caused by CE or DG  
detection.  
Privileged software should  
ignore an ECC_error trap  
when the AFSRcontains no  
errors corresponding to  
those enabled in ASI_ECR  
to cause a trap.  
Priority of  
1 CPU fatal  
state  
2 error_state  
6 ECC_error trap  
3 ADE trap  
4 DAE trap  
5 IAE trap  
action when  
multiple types  
of errors are  
simultaneously  
detected  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
155  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
TABLE P-2  
Action Upon Detection of an Error (3 of 4)  
Error State Transition  
Fatal Error (FE)  
Error (EE)  
Urgent Error (UGE)  
Restrainable Error (RE)  
tt (trap type)  
Trap priority  
1 (RED_state)  
2 (RED_state)  
ADE: 40  
63  
16  
16  
16  
16  
DAE: 32  
IAE: 0A  
1
1
ADE 2  
DAE 12  
IAE 3  
32  
End-method of Abandoned  
trapped  
Abandoned.  
ADE trap  
Precise  
Precise, retryable or  
instruction  
nonretryable. See P.4.3.  
IAE trap, DAE trap  
Precise.  
I_UGE  
None  
None  
None  
Relation  
For errors other than TLB  
write errors, the error was  
caused by the instruction  
pointed to by TPCor by the  
instruction subsequent in the  
control flow to the one  
indicated by TPC.  
between TPC  
and instruction  
that caused the  
error  
For a TLB write error, the  
instruction pointed to by TPC  
or the already executed  
instruction previous in the  
control flow to the one  
indicated by TPCwrote a TLB  
entry and the TLB write  
failed. The TLB write error is  
detected after the instruction  
execution and before any trap,  
RETRY, or DONEinstruction.  
A_UGE  
None.  
IAE, DAE  
The instruction pointed to by  
TPCcaused the error.  
Register that  
indicates the  
error  
I_UGE, A_UGE  
ASI_UGESR  
IAE  
ASI_STCHG_  
ERROR_INFO  
ASI_STCHG_  
ERROR_INFO  
ASI_AFSR  
ASI_ISFSR  
DAE  
ASI_DSFSR  
156  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
TABLE P-2  
Action Upon Detection of an Error (4 of 4)  
Error State Transition  
Fatal Error (FE)  
Error (EE)  
Urgent Error (UGE)  
Restrainable Error (RE)  
Single-ADE trap  
Number of  
errors  
indicated at  
trap  
All FEs are  
detected and  
accumulated in accumulated in  
ASI_STCHG_  
ERROR_INFO  
All EEs are  
detected and  
All restrainable errors  
detected and accumulated  
in ASI_AFSR.  
All I_UGEs and A_UGEs  
detected at trap.  
ASI_STCHG_  
ERROR_INFO  
Multiple-ADE trap  
The multiple-ADE indication  
+ UGEs at first ADE trap.  
IAE  
One error  
DAE  
One error  
Error address  
indication  
register  
None  
None  
I_UGE, A_UGE: None  
IAE: TPC  
DAE: ASI_DFAR  
ASI_AFAR_D1  
ASI_AFAR_U2  
P.2.3  
Extent of Automatic Source Data Correction for  
Correctable Error  
Upon detection of the following correctable errors (CE), the CPU corrects the input  
data and uses the corrected data; however, the source data with the CE is not  
corrected automatically.  
CE in memory (DIMM)  
CE in ASI_INTR_DATA_R  
Upon detection of other correctable errors, the CPU automatically corrects the source  
data containg theCE.  
For correctable errors in ASI_INTR_DATA, no special action is required by  
privileged software because the erroneous data will be overwritten when the next  
interrupt is received. For CE in memory (DIMM), it is expected that privileged  
software will correct the error in memory.  
P.2.4  
Error Marking for Cacheable Data Error  
Error Marking for Cacheable Data  
Error marking for cacheable data involves the following action:  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
157  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
When a hardware unit first detects an uncorrected error in the cacheable data, the  
hardware unit replaces the data and ECC of the cacheable data with a special  
pattern that identifies the original error source and signifies that the data is  
already marked.  
The error marking helps identify the error source and prevent multiple error reports  
by a single error even after several cache lines transfer with uncorrected data.  
The following data are protected by the single-bit error correction and double-bit  
error detection ECC code attached to every doubleword:  
Main memory (DIMM)  
UPA packet data containing cache line data and interrupt packet data  
U2 (unified level 2) cache data  
D1 cache data  
The cacheable area block held by the channel  
The ECC applied to these data is the ECC specified for UPA.  
When the CPU and channel (U2P) detect an uncorrected error in the above cacheable  
data that is not yet marked, the CPU and channel execute error marking for the data  
block with an UE.  
Whether the data with UE is marked or not is determined by the syndrome of the  
doubleword data, as shown in TABLE P-2.  
TABLE P-3  
Syndrome for Data Marked for Error  
Syndrome  
Error Marking Status  
Type of Uncorrected Error  
Marked UE  
7F16  
Marked  
Multibit error pattern except for 7F16  
Not marked yet  
Raw UE  
The syndrome 7F16 indicates a 3-bit error in the specified location in the doubleword.  
The error marking replaces the original data and ECC to the data and ECC, as  
described in the following section. The probability of syndrome 7F16 occurrence  
other than the error marking is considered to be zero.  
The Format of Error-Marking Data  
When the raw UE is detected in the cacheable data doubleword, the erroneous  
doubleword and its ECC are replaced in the data by error marking, as listed in  
TABLE P-4.  
TABLE P-4  
Format of Error-Marked Data  
Data/ECC  
Bit  
Value  
data  
63  
Error bit. The value is unpredictable.  
0 (7 bits).  
62:56  
55:42  
ERROR_MARK_ID(14 bits).  
158  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
TABLE P-4  
Data/ECC  
Format of Error-Marked Data  
Bit  
Value  
41:36  
35  
0 (6 bits).  
Error bit. The value is unpredictable.  
0 (12 bits).  
34:23  
22  
Error bit. The value is unpredictable.  
0 (8 bits).  
21:14  
13:0  
ERROR_MARK_ID(14 bits).  
ECC  
The pattern indicates 3-bit error in bits 63, 35, and 22, that is, the  
pattern causing the 7F16 syndrome.  
The ERROR_MARK_ID(14 bits wide) identifies the error source. The hardware unit  
that detects the error provides the error source_ID and sets the ERROR_MARK_ID  
value.  
The format of ERROR_MARK_ID<13:0> is defined in TABLE P-5.  
TABLE P-5 ERROR_MARK_IDBit Description  
Bit  
Value  
13:12  
Module_ID: Indicates the type of error source hardware as follows:  
002: Memory system including DIMM  
012: Channel  
102: CPU  
112: Reserved  
11:0  
Source_ID: When Module_ID = 002, the 12-bit Source_ID field is always set to 0.  
Otherwise, the identification number of each Module type is set to Source ID.  
ERROR_MARK_IDSet by CPU  
TABLE P-6 shows the ERROR_MARK_IDset by the CPU.  
TABLE P-6 ERROR_MARK_IDSet by CPU  
Type of data with RAW UE  
Incoming data from UPA  
Outgoing data to UPA  
Module_ID value (binary)  
Source_ID value  
002 (Memory system)  
0
ASI_EIDR<13:12>. 102 (CPU) is expected. ASI_EIDR(Identifier of self CPU)  
U2 cache data, D1 cache data ASI_EIDR<13:12>. 102 (CPU) is expected. ASI_EIDR(Identifier of self CPU)  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
159  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Difference Between Error Marking on SPARC64 IV and  
SPARC64 V  
TABLE P-7 lists the differences between error marking on SPARC64 IV and  
SPARC64 V.  
TABLE P-7  
Error Marking on SPARC64 IV and SPARC64 V  
SPARC64 IV  
SPARC64 V  
ECC for cacheable data  
ECC for UPA  
ECC for UPA  
Trigger of error marking The detection of a raw UE  
The detection of a raw UE  
Value specified in TABLE P-6.  
(1)(4) as described for SPARC IV  
ERROR_MARK_IDvalue  
Value specified in TABLE P-6.  
(1) D1 cache data  
Target data of error  
marking  
(2) U2 cache data  
Note: (5) is different  
(3) Incoming cacheable data from UPA  
(4) Outgoing cacheable data to UPA for  
writeback or copyback  
(5) Incoming interrupt packet data  
from UPA  
(5) is not applied. For the incoming interrupt  
packet data, error marking is not applied  
and the incoming data and ECC are directly  
set to ASI_INTR_DATA0:7_R and its ECC  
register.  
The extent of replaced  
data at error marking  
The quadword (16-byte data on 16-byte Only the doubleword with the raw UE is  
boundary) containing the doubleword replaced, as specified in TABLE P-4.  
with raw UE and its two ECCs are  
replaced.  
The doubleword and ECC specified in  
TABLE P-4 are written to each of the  
two doublewords in the quadword.  
Error marking on SPARC64 IV and SPARC64 V differs in two ways:  
On SPARC64 V, only the doubleword with raw UE is replaced at error marking.  
On SPARC64 IV, the quadword containing the doubleword with raw UE is  
replaced with two copies of the ERROR_MARK_ID.  
On SPARC64 V, error marking is not applied to incoming interrupt packet data.  
On SPARC64 IV, error marking is applied even for incoming interrupt packet  
data.  
160  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
P. 2 . 5 ASI_EIDR  
The ASI_EIDRregister designates the source ID in the ERROR_MARK_IDof the CPU.  
[1]  
Register name:  
ASI_EIDR  
6E16  
[2]  
[3]  
[4]  
[5]  
ASI:  
VA:  
0016  
Error checking:  
Format & function:  
Parity.  
See TABLE P-8.  
TABLE P-8 ASI_EIDRBit Description  
Bit  
Name  
RW  
R
Description  
63:14  
13:0  
Reserved  
Always 0.  
ERROR_MARK_ID  
RW  
ERROR_MARK_IDfor the error caused by the CPU.  
P.2.6  
Control of Error Action (ASI_ERROR_CONTROL)  
Error detection masking and the action after error detection are controlled by the  
value in ASI_ERROR_CONTROL, as defined in TABLE P-9.  
Register name:  
[1]  
[2]  
[3]  
[4]  
[5]  
[6]  
ASI_ERROR_CONTROL(ASI_ECR)  
4C16  
ASI:  
VA:  
1016  
Error checking:  
Format & function:  
Initial value at reset:  
None  
See TABLE P-9.  
Hard POR: ASI_ERROR_CONTROL.WEAK_EDis set to 1.  
Other fields are set to 0.  
Other resets: After UGE_HANDLERand WEAK_EDare copied  
into ASI_STCHG_ERROR_INFO, all fields in  
ASI_ERROR_CONTROLare set to 0.  
The ASI_ERROR_CONTROLregister controls error detection masking, error trap  
occurrence masking, and the multiple-ADE trap occurrence. The register fields are  
described in TABLE P-9.  
TABLE P-9 ASI_ERROR_CONTROLBit Description  
Bit  
Name  
RW  
Description  
9
RTE_UE  
RW  
Restrainable Error Trap Enable submask for UEand Raw UE. The bit works as  
defined in TABLE P-2.  
8
RTE_CEDG  
RW  
Restrainable Error Trap Enable submask for Corrected Error (CE) and  
Degradation (DG). The bit works as defined in TABLE P-2.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
161  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
TABLE P-9 ASI_ERROR_CONTROLBit Description (Continued)  
Bit  
Name  
RW  
Description  
1
WEAK_ED  
RW  
Weak Error Detection. Controls whether the detection of I_UGE and DAE is  
suppressed:  
When WEAK_ED= 0, error detection is not suppressed.  
When WEAK_ED= 1, error detection is suppressed if the CPU can continue  
processing.  
When I_UGE or DAE is detected during instruction execution while  
WEAK_ED= 1, the value of the output register or the store target memory  
location become unpredictable.  
Even if WEAK_ED= 1, I_UGE or DAE is detected and corresponding trap is  
caused when the CPU cannot continue processing by ignoring the error.  
WEAK_EDis the trap disabling mask for A_UGE and restrainable errors, as  
defined in TABLE P-2.  
When a multiple-ADE trap is caused (I_UGE, IAE, or DAE detection while  
ASI_ERROR_CONTROL.UGE_HANDLER= 1), WEAK_EDis set to 1 by hardware.  
0
UGE_HANDLER  
RW  
Designates whether hardware can expect a UGE handler to run in privileged  
software (operating system) when a UGE error occurs:  
0: Hardware recognizes that the privileged software UGE handler does not  
run.  
1: Hardware expects that the privileged software UGE handler runs.  
UGE_HANDLERis the trap disabling mask for A_UGE and restrainable errors,  
as defined in TABLE P-2.  
The value of UGE_HANDLERdetermines whether a multiple-ADE trap is  
caused or not upon detection of I_UGE, IAE, and DAE.  
When an async_data_error trap occurs, UGE_HANDLERis set to 1.  
When a RETRYor DONEinstruction is completed, UGE_HANDLERis set to 0.  
Always reads as 0.  
Other Reserved  
R
162  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
P.3  
Fatal Error and error_state  
Transition Error  
P. 3 . 1 ASI_STCHG_ERROR_INFO  
The ASI_STCHG_ERROR_INFOregister stores detected FATAL error and  
error_statetransition error information, for access by OBP (Open Boot PROM)  
software.  
[1] Register name:  
[2] ASI:  
ASI_STCHG_ERROR_INFO  
4C16  
[3] VA:  
1816  
[4] Error checking:  
[5] Format & function:  
[6] Initial value at reset:  
None  
See TABLE P-10  
Hard POR: All fields are set to 0.  
Other resets: Values are unchanged.  
[7] Update policy:  
Upon detection of each related error, the corresponding bit in  
ASI_STCHG_ERROR_INFOis set to 1. Writing 1 to bit 0 erases all  
error indications in ASI_STCHG_ERROR_INFO(sets all bits in  
the register, including bit 0, to 0).  
TABLE P-10 describes the fields in the ASI_STCHG_ERROR_INFOregister.  
TABLE P-10 Format of ASI_STCHG_ERROR_INFOBit Description  
Bit  
Name  
RW  
R
Description  
63:34  
33  
Reserved  
Always 0.  
ECR_WEAK_ED  
R
ASI_ERROR_CONTROL.WEAK_EDis copied into this  
field at the beginning of a POR or watchdog reset.  
32  
ECR_UGE_HANDLER  
R
ASI_ERROR_CONTROL.UGE_HANDLERis copied into  
this field at the beginning of the POR or watchdog  
reset.  
31:15  
14  
Reserved  
R
R
Always 0.  
Always 0 (EE_OTHER)  
In the ideal case, EE_OTHERwould be assigned in this  
bit, but the field is not implemented in SPARC64 V.  
13  
12  
11  
10  
EE_TRAP_ADDR_UNCORRECTED_ERROR  
EE_OPSR  
R
R
R
R
Upon detection of the corresponding error, set to 1.  
Upon detection of the corresponding error, set to 1.  
Upon detection of the corresponding error, set to 1.  
Upon detection of the corresponding error, set to 1.  
EE_WATCH_DOG_TIMEOUT_IN_MAXTL  
EE_SECOND_WATCH_DOG_TIMEOUT  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
163  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
TABLE P-10 Format of ASI_STCHG_ERROR_INFOBit Description (Continued)  
Bit  
9
Name  
RW  
R
Description  
EE_SIR_IN_MAXTL  
EE_TRAP_IN_MAXTL  
Reserved  
Upon detection of the corresponding error, set to 1.  
Upon detection of the corresponding error, set to 1.  
Always 0.  
8
R
7:3  
2
R
FE_OTHER  
R
Upon detection of the corresponding error, set to 1.  
Upon detection of the corresponding error, set to 1.  
1
FE_U2TAG_UNCORRECTED_ERROR  
FE_UPA_ADDR_UNCORRECTED_ERROR  
R
0
RW Upon detection of the corresponding error, set to 1.  
Writing 1 to this bit sets all fields in this register to 0.  
P.3.2  
P. 3 . 3  
Fatal Error Types  
FE_UPA_ADDR_UNCORRECTED_ERROR An uncorrected error in the  
address received from UPA  
FE_U2TAG_UNCORRECTED_ERROR An uncorrected error detected in the U2  
cache tag  
FE_OTHER A fatal error other than those listed above  
Ty p e s o f error_stateTransition Errors  
EE_TRAP_IN_MAXTL A trap occurred while TL= MAXTL.  
EE_SIR_IN_MAXTL An SIR occurred while TL= MAXTL.  
EE_SECOND_WATCH_DOG_TIMEOUT A second watchdog timeout was  
detected after an async_data_error exception with watchdog timeout indication  
(first watchdog timeout) was generated.  
EE_WATCH_DOG_TIMEOUT_IN_MAXTL A watchdog timeout occurred  
while TL= MAXTL.  
EE_OPSR An uncorrectable error occurred in OPSR(Operation Status Register);  
valid CPU operation after such an error cannot be guaranteed. OPSRis the  
hardware mode-setting register. OSPRis not visible to software and is set by a  
JTAG command.  
EE_TRAP_ADDR_UNCORRECTED_ERROR When hardware calculated the  
trap address to cause a trap, the valid address could not be obtained because of a  
UE in ASI_TBA, a UE in %tt, or a UE in the address calculator.  
Other error_statetransition errors:  
Current SPARC64 V implementation  
When hardware detects an error_statetransition error other than those  
described above, it causes a watchdog reset without setting any EE_xxxx bits in  
ASI_STCHG_ERROR_INFO.  
164  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                               
Ideal specification (not implemented)  
The EE_OTHERbit is specified in ASI_STCHG_ERROR_INFObit 14. When  
hardware detects error_statetransition errors other than those described  
above, it sets ASI_STCHG_ERROR_INFO.EE_OTHER= 1.  
P.4  
Urgent Error  
This section presents details about urgent errors: status monitoring, actions, and  
end-methods.  
P.4.1  
URGENT ERROR STATUS (ASI_UGESR)  
[1]  
[2]  
[3]  
[4]  
[5]  
[6]  
Register name:  
ASI:  
ASI_URGENT_ERROR_STATUS  
4C16  
VA:  
0816  
Error checking:  
Format & function:  
Initial value at reset:  
None  
See TABLE P-11.  
Hard POR: All fields are set to 0.  
Other resets: The values of all ASI_UGESRfields are  
unchanged.  
The ASI_UGESRregister contains the following information when an  
async_data_error (ADE) exception is generated.  
Detected I_UGEs and A_UGEs, and related information  
The type of second error to cause multiple async_data_error traps  
TABLE P-11 describes the fields of the ASI_UGESRregister. In the table, the prefixes in  
the name field have the following meaning:  
IUG_  
Instruction Urgent error  
IAG_ Autonomous Urgent error  
IAUG_ The error detected as both I_UGE and A_UGE  
TABLE P-11 ASI_UGESRBit Description (1 of 4)  
Bit  
Name  
RW Description  
Each bit in ASI_UGESR<22:8> indicates the occurrence of its corresponding error in a single-ADE trap as follows:  
0:  
1:  
The error is not detected.  
The error is detected.  
Each bit in ASI_UGESR<22:16> indicates an error in a CPU register. The error detection conditions for these  
errors are defined in Handling of Internal Register Errors on page 181.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
165  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
TABLE P-11 ASI_UGESRBit Description (2 of 4)  
Bit  
Name  
RW Description  
22  
IAUG_CRE  
R
Uncorrectable error in any of the following:  
(IA) ASI_EIDR  
(IA) ASI_PA_WATCH_POINTwhen enabled  
(IA) ASI_VA_WATCH_POINTwhen enabled  
(I) ASI_AFAR_D1  
(I) ASI_AFAR_U2  
(I) ASI_INTR_R(SPARC64 V deviation from the ideal specification: the  
uncorrectable error in ASI_INTR_Rat load instruction access is  
detected but reported as ASI_UGESR.COREERR instead of  
ASI_UGESR.IAUG_CRE; the reported ASI_UGESR.COREERR error is not  
erased by instruction retry)  
(A) ASI_INTR_DISPATCH_W(UE at store)  
(IA) ASI_PARALLEL_BARRIERcontaining the barrier variable transmission  
interface error (SPARC64 V deviation from the ideal specification; the  
uncorrectable error in the barrier is detected but reported as  
ASI_UGESR.COREERR instead of ASI_UGESR.IAUG_CRE; the reported  
ASI_UGESR.COREERR error is not erased by instruction retry)  
(IA) SOFTINT  
(IA) STICK  
(IA) STICK_COMP  
21  
20  
19  
IAUG_TSBCTXT  
R
R
R
Uncorrectable error in any of the following:  
(IA) ASI_DMMU_TSB_BASE  
(IA) ASI_DMMU_TSB_PEXT  
(IA) ASI_DMMU_TSB_SEXT  
(IA) ASI_DMMU_TSB_NEXT  
(IA) ASI_PRIMARY_CONTEXT  
(IA) ASI_SECONDARY_CONTEXT  
(IA) ASI_IMMU_TSB_BASE  
(IA) ASI_IMMU_TSB_PEXT  
(IA) ASI_IMMU_TSB_SEXT  
IUG_TSBP  
Uncorrectable error in any of the following:  
(I) ASI_DMMU_TAG_TARGET  
(I) ASI_DMMU_TAG_ACCESS  
(I) ASI_DMMU_TSB_8KB_PTR  
(I) ASI_DMMU_TSB_64KB_PTR  
(I) ASI_DMMU_TSB_DIRECT_PTR  
(I) ASI_IMMU_TAG_TARGET  
(I) ASI_IMMU_TAG_ACCESS  
(I) ASI_IMMU_TSB_8KB_PTR  
(I) ASI_IMMU_TSB_64KB_PTR  
IUG_PSTATE  
Uncorrectable error in any of the following: %pstate, %pc, %npc, CWP,  
CANSAVE, CANRESTORE, OTHERWIN, CLEANWIN, %pil, %wstate  
18  
17  
IUG_TSTATE  
IUG_%F  
R
R
Uncorrectable error in any of TSTATE, TPC, TNP.  
Uncorrectable error in any floating-point register or in the FPRS, FSR, or GSR  
register.  
16  
IUG_%R  
R
Uncorrectable error in any general-purpose (integer) register, or in the Y, CCR,  
or ASIregister.  
166  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                                                         
TABLE P-11 ASI_UGESRBit Description (3 of 4)  
Bit  
Name  
RW Description  
15  
AUG_SDC  
R
System data corruption. Indicates the occurrence of the following system data  
corruption:  
Small data corruption: Data in the cacheable area with an unpredictable  
address is destroyed. The destroyed area is some number of 64-byte blocks.  
Invalid physical address usage by software: On SPARC64 V, the following  
invalid physical address usage by software causes system data corruption:  
If a memory access with a physical address 200_0000_000016 is issued,  
then the 41-bit width for the UPA address is specified in the  
UPA_configuration_register.AMfield.  
A cacheable access with a physical address 400_0000_000016 was issued.  
Other error with data damage not limited to the CPU: In JPS1, this type of  
error is treated as a fatal error. On SPARC64 V, OPSRselects whether these  
errors cause a fatal error or an AUG_SDC error.  
Some address tag errors in the SPARC64 V data buffer cause AUG_SDC.  
14  
10  
IUG_WDT  
R
R
Watchdog timeout first time. Indicates the first watchdog timeout. If  
IUG_WDT= 1 when a single-ADE trap occurs, the instruction pointed to by TPC  
is abandoned and its result is unpredictable.  
IUG_DTLB  
Uncorrectable error in DTLB during load, store, or demap. Indicates that one of  
the following errors was detected during a data TLB access:  
An uncorrectable error in TLB data or TLB tag was detected when an LDXA  
instruction attempted to read ASI_DTLB_DATA_ACCESSor  
ASI_DTLB_TAG_ACCESS. TPCindicates either the instruction causing the  
error or the previous instruction.  
A store to the data TLB or a demap of the data TLB failed. TPCindicates  
either the instruction causing the error or the instruction following the one  
that caused the error.  
9
IUG_ITLB  
R
Uncorrectable error in ITLB during load, store, or demap. Indicates that one of  
the following errors was detected during an instruction TLB access:  
An uncorrectable error in TLB data or TLB tag was detected when an LDXA  
instruction attempted to read ASI_ITLB_DATA_ACCESSor  
ASI_ITLB_TAG_ACCESS. TPCindicates either the instruction causing the  
error or the previous instruction.  
A store to the instruction TLB or a demap of the instruction TLB failed. TPC  
indicates either the instruction causing the error or the successive  
instruction.  
8
IUG_COREERR  
R
CPU core error. Indicates an uncorrectable error in a CPU internal resource  
used to execute instructions, which cannot be directly accessed by software.  
When there is an uncorrectable error in a program-visible register and the  
instruction reading the register with UE is executed, the error in the register is  
always indicated. In this case, IUG_COREERR may or may not be indicated  
simultaneously with the register error.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
167  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
TABLE P-11 ASI_UGESRBit Description (4 of 4)  
Bit  
Name  
RW Description  
5:4  
INSTEND  
R
Trapped instruction end-method. Upon a single async_data_error trap  
without watchdog timeout detection, INSTENDindicates the instruction end-  
method of the trapped instruction pointed to by TPCas follows:  
002: Precise  
012: Retryable but not precise  
102: Reserved  
112: Not retryable  
See Section P.4.3 for the instruction end-method for the async_data_error trap.  
When a watchdog timeout is detected, the instruction end-method is  
undefined.  
3
PRIV  
R
Privileged mode. Upon a single async_data_error trap, the PRIVfield is set as  
follows:  
When the value of PSTATE.PRIVimmediately before the single-ADE trap is  
unknown because of an uncorrectable error in PSTATE, ASI_UGESR.PRIVis  
set to 1. Otherwise, the value of PSTATE.PRIVimmediately before the single-  
ADE trap is copied to ASI_UGESR.PRIV.  
2
MUGE_DAE  
MUGE_IAE  
MUGE_IUGE  
Reserved  
R
R
R
R
Multiple UGEs caused by DAE. Upon a single-ADE, MUGE_DAEis set to 0. Upon  
a multiple-ADE trap caused by a DAE, MUGE_DAEis set to 1. Upon a multiple-  
ADE trap not caused by a DAE, MUGE_DAE is unchanged.  
1
Multiple UGEs caused by IAE. Upon a single-ADE trap, MUGE_IAEis set to 0.  
Upon a multiple-ADE trap caused by an IAE, MUGE_IAEis set to 1. Upon a  
multiple-ADE trap not caused by an IAE, MUGE_IAE is unchanged.  
0
Multiple UGEs caused by I_UGE. Upon a single-ADE trap, MUGE_IUGEis set to  
0. Upon a multiple-ADE trap caused by an I_UGE, MUGE_IUGEis set to 1. Upon  
a multiple-ADE trap not caused by an I_UGE, MUGE_IUGE is unchanged.  
Other  
Always 0.  
P. 4 . 2  
A c t i o n o f async_data_error (ADE) Trap  
The single-ADE trap and the multiple-ADE trap are generated upon the conditions  
defined in TABLE P-2 on page 154. The actions upon their occurrence are defined in  
more detail in this section. For convenience, the shorthand ADE is used to refer to  
async_data_error.  
1. Conditions that cause ADE trap:  
An ADE trap occurs when one of the following conditions is satisfied:  
When ASI_ERROR_CONTROL.UGE_HANDLER= 0 and I_UGEs and/ or A_UGEs are  
detected, a single-ADE trap is generated.  
When ASI_ERROR_CONTROL.UGE_HANDLER= 1 and I_UGEs, IAE, and/ or DAE  
are detected, a multiple-ADE trap is generated.  
2. State change, trap target address calculation, and TL manipulation.  
168  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
The following actions are executed in this order:  
a. State transition  
if (TL= MAXTL), the CPU enters error_stateand abandons the ADE trap;  
else if (CPU is in execution state && (TL= MAXTL1)), then the CPU enters  
RED_state.  
b. Trap target address calculation  
When the CPU is in execution state, trap target address is calculated by %tba,  
%tt, and %tl.  
Otherwise, the CPU is in RED_stateand the trap target address is set to  
RSTVaddr+ A016.  
c. TL is incremented: TL TL + 1.  
3. Save the old value into TSTATE, TPC, and TNPC.  
PSTATE, PC, and NPCimmediately before the ADE trap are copied into TSTATE,  
TPC, and TNPC, respectively. If the copy source register contains an uncorrectable  
error, the copy target register also contains the UE.  
4. Set the specific register setting:  
The following three sets of registers are updated:  
a. Update and validation of specific registers.  
Hardware writes the registers listed in TABLE P-12.  
TABLE P-12 Registers Written for Update and Validation  
Register  
Condition For Writing  
Value Written  
PSTATE  
Always  
AG= 1, MG= 0, IG= 0, IE= 0, PRIV= 1, AM= 0, PEF= 1,  
RED= 0 (or 1 depending on the CPU status), MM= 00, TLE= 0,  
CLE= 0.  
PC  
Always  
ADE trap address.  
ADE trap address + 4.  
0.  
nPC  
Always  
CCR  
When the register contains UE  
When the register contains UE  
FSR, GSR  
If either FSRor GSRcontains a UE, 0 is written to that  
register. When 0 is written to FSRand/ or GSRupon a single-  
ADE trap, ASI_UGESR.IUG_%Fis set to 1.  
CWP, CANSAVE, When the register contains UE  
Any register among CWP, CANSAVE, CANRESTORE,  
OTHERWIN, and CLEANWINthat contains a UEis written to 0.  
When 0 is written to one of these registers upon a single-ADE  
trap, ASI_UGESR.IUG_PSTATE= 1 is set to 1.  
CANRESTORE,  
OTHERWIN,  
CLEANWIN  
The error(s) in a written register are removed by setting the correct value to the  
error checking (parity) code during the full write of the register.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
169  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Errors in registers other than those listed above and any errors in the TLB entry  
remain.  
b. Update of ASI_UGESR, as shown in TABLE P-13.  
TABLE P-13 ASI_UGESRUpdate for Single and Multiple-ADE Exceptions  
Bit  
Field  
Update upon a Single-ADE Trap  
Update upon a Multiple-ADE Traps  
63:6  
Error indication All bits in this field are updated.  
Unchanged.  
All I_UGEs and A_UGEs detected at the  
trap are indicated simultaneously.  
5:4  
2
INSTEND  
The instruction end-method of the  
instruction referenced by TPCis set.  
Unchanged.  
MUGE_DAE[  
Set to 0.  
Set to 0.  
Set to 0.  
If the multiple-ADE trap was caused by a  
DAE, MUGE_DAE is set to 1.  
Otherwise, MUGE_DAE is unchanged.  
1
0
MUGE_IAE  
If the multiple-ADE trap was caused by  
an IAE, MUGE_IAE is set to 1.  
Otherwise, MUGE_IAE is unchanged.  
MUGE_IUGE  
If the multiple-ADE trap was caused by  
an I_UGE, MUGE_IUGE is set to 1.  
Otherwise, MUGE_IUGE is unchanged.  
c. Update of ASI_ERROR_CONTROL  
Upon a single-ADE trap, ASI_ERROR_CONTROL.UGE_HANDLERis set to 1.  
During the period after the single-ADE trap occurs and before a RETRYor DONE  
instruction is executed, UGE_HANDLER= 1 tells hardware that the urgent error  
handler is running.  
Upon a multiple async_data_error trap, ASI_ERROR_CONTROL.WEAK_EDis set  
to 1 and the CPU starts running in the weak error detection state.  
4. Set ASI_ERROR_CONTROL.UGE_HANDLER to 0.  
Upon completion of a RETRYor DONEinstruction,  
ASI_ERROR_CONTROL.UGE_HANDLERis set to 0.  
P.4.3  
Instruction End-Method at ADE Trap  
In SPARC64 V, upon occurrence of the ADE trap, the trapped instruction referenced  
by TPCends by using one of the following instruction end-methods:  
Precise  
Retryable but not precise (not included in JPS1)  
Not retryable (not included in JPS1)  
Upon a single-ADE trap, the trapped instruction end-method is indicated in  
ASI_UGESR.INSTEND.  
170  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
TABLE P-14 defines each instruction end-method after an ADE trap.  
TABLE P-14 Instruction End-Method After async_data_error Exception  
Precise  
Retryable But Not Precise  
Not Retryable  
Instructions executed after Ended (Committed).  
the last ADE, IAE, or DAE  
trap and before the trapped  
instruction referenced by  
TPC.  
The instructions without UGE complete as defined in the architecture. The  
instruction with UGE was unpredictable value to its output (destination register or,  
in the case of a store instruction, destination memory location).  
The trapped instruction  
referenced by TPC  
Not executed. The output of the instruction is  
incomplete.  
The output of the instruction is  
incomplete.  
Part of the output may be  
Part of the output may be  
changed, or the invalid value  
changed, or the invalid value  
may be written to the instruction may be written to the instruction  
output. However, the output. However, the  
modification to the invalid target modification to the invalid target  
that is not defined as instruction that is not defined as instruction  
output is not executed.  
output is not executed.  
The following modifications are A store to an invalid address is  
not executed:  
Store to the cacheable area  
including cache.  
not executed. (Store to a valid  
address with uncorrected data  
may be executed.)  
Store to the noncacheable area.  
Output to the source register of  
the instruction (destructive  
overlap)  
Instructions to be executed Not executed. Not executed.  
after the instruction  
referenced by TPC  
Not executed.  
Impossible.  
The possibility of resuming Possible.  
the trapped program by  
executing the RETRY  
Possible.  
instruction to the %tpc  
when the trapped program  
is not damaged at the  
single-ADE trap  
P.4.4  
Expected Software Handling of ADE Trap  
The expected software handling of an ADE trap is described by the pseudo C code  
below. The main purpose of this flow is to recover from the following errors as much  
as possible:  
An error in the CPU internal RAM or register file  
An error in the accumulator  
An error in the CPU internal temporary registers and data bus  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
171  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
void  
expected_software_handling_of_ADE_trap()  
{
/* Only %r0-%r7 can be used from here to Point#1 because the register window  
control registers may not have valid value until Point#1. It is  
recommended that only %r0-%r7 are used as general-purpose registers (GPR)  
in the whole single-ADE trap handler, if possible. */  
ASI_SCRATCH_REGp %rX;  
ASI_SCRATCH_REGq %rY;  
%rX ASI_UGESR;  
if ((%rX && 0x07) 0) {  
/* multiple-ADE trap occurrence */  
invoke panic routine and take system dump as much as possible  
with the running environment of ASI_ERROR_CONTROL.WEAK_ED == 1;  
}
if (%rX.IUG_%R == 1) {  
%r1-%r31 except %rX and %rY %r0;  
%y %r0;  
%tstate.pstate %r0; /* because ccr or asi field in %tstate.pstate  
contains the error */  
}
else {  
save required %r1-%r7 to the ADE trap save area, using %rX, %rY,  
ASI_SCRATCH_REGp and ASI_SCRATCH_REGq;  
/* whole %r save and restore is required to retry the context  
with PSTATE.AG == 1 */  
}
if (ASI_UGESR.IUG_PSTATE == 1) {  
%tstate.pstate %r0;  
%tpc %r0;  
%pil %r0;  
%wstate %r0;  
All general-purpose registers in the register window %r0;  
Set the register window control registers  
(CWP, CANSAVE, CANRESTORE, OTHERWIN, CLEANWIN) to appropriate values;  
}
/* Point#1: Program can use the general-purpose registers except %r0-%r7  
after this because the register window control registers were validated  
in the above step. */  
if ((ASI_UGESR.IAUG_CRE == 1)||(ASI_UGESR.IAUG_TSBCTXT == 1)||  
(ASI_UGESR.IUG_TSBP == 1)||(ASI_UGESR.IUG_TSTATE == 1)||  
(ASI_UGESR.IUG_%F==1)){  
Write to each register with an error indication, to erase as many  
register errors as possible;  
}
if (ASI_UGESR.IUG_DTLB == 1) {  
execute demap_all for DTLB;  
/* A locked fDTLB entry with uncorrectable error is not removed by this  
operation. A locked fDTLB entry with UE never detects its tag match or  
172  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
causes the data_access_error trap when its tag matches at the DTLB  
reference for address translation. */  
}
if (ASI_UGESR.IUG_ITLB == 1) {  
execute demap_all for ITLB;  
/* A locked fITLB entry with uncorrectable error is not removed by this  
operation. A locked fITLB entry with UE never detects its tag match  
or causes the data access error trap when its tag matches at the ITLB  
reference for address translation. */  
}
if ((ASI_UGESR.bits22:14 == 0) &&  
((ASI_UGESR.INSTEND == 0) || (ASI_UGESR.INSTEND == 1))) {  
++ADE_trap_retry_per_unit_of_time;  
if (ADE_trap_retry_per_unit_of_time < threshold)  
resume the trapped context by use of the RETRY instruction;  
else  
invoke panic routine because of too many ADE trap retries;  
}
else if ((ASI_UGESR.bits22:18 == 0) &&  
(ASI_UGESR.bits15:14 == 0) &&  
(ASI_UGESR.PRIV == 0)) {  
++ADE_trap_kill_user_per_unit_of_time;  
if (ADE_trap_kill_user_per_unit_of_time < threshold)  
kill one user process trapped and continue system operation;  
else  
invoke panic routine because of too may ADE trap user kill;  
}
else  
}
P. 5  
P.6  
I n s t ru c t i o n A c c e s s E r ro r s  
See Appendix F, Memory Management Unit, for details.  
Data Access Errors  
See Appendix F, Memory Management Unit, for details.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
173  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
P.7  
Restrainable Errors  
This section describes the registersASI_ASYNC_FAULT_STATUS,  
ASI_ASYNC_FAULT_ADDR_D1, and ASI_ASYNC_FAULT_ADDR_U2that define the  
restrainable errors and explains how software handles these errors.  
P.7.1  
ASI_ASYNC_FAULT_STATUS (ASI_AFSR)  
[1]  
[2]  
[3]  
[4]  
[5]  
[6]  
Register name:  
ASI:  
ASI_ASYNC_FAULT_STATUS(ASI_AFSR)  
4C16  
VA:  
0016  
Error checking:  
Format & function:  
Initial value at reset:  
None  
See TABLE P-15  
Hard POR: All fields in ASI_AFSRare set to 0.  
Other resets: Values in ASI_AFSRare unchanged.  
The ASI_ASYNC_FAULT_STATUSregister holds the detected restrainable error  
sticky bits. TABLE P-15 describes the fields of this register. In the table, the prefixes in  
the name field have the following meaning:  
DG_ Degradation error  
CE_ Correctable Error  
UE_ Uncorrectable Error  
Notes about the Prio_xx columns in TABLE P-15:  
Prio_D1 column Indicates the ASI_AFAR_D1recording priority for each error  
shown in TABLE P-15 row as follows:  
If the Prio_D1 column for the error shown in the table row is blank, the error is  
never recorded into ASI_AFAR_D1.  
Otherwise, the Prio_D1 column for the error shown in the table row indicates  
the ASI_AFAR_D1recording priority, as follows. Let P_D1 be the Prio_D1  
column value for the error E1. Then:  
Upon detection of the error E1, if P_D1> ASI_AFAR_D1.CONTENTS, the error  
E1 is recorded into ASI_AFAR_D1and ASI_AFAR_D1.CONTENTSis set to  
P_D1.  
Upon detection of the error E1, if P_D1ASI_AFAR_D1.CONTENTS, the error  
E1 is not recorded into ASI_AFAR_D1and ASI_AFAR_D1is unchanged.  
Prio_U2 column Indicates the ASI_AFAR_U2recording priority for each error  
shown in the TABLE P-15 row as follows:  
174  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
If the Prio_U2 column for the error shown in the table row is blank, the error is  
never recorded into ASI_AFAR_U2.  
Otherwise, the Prio_U2 column for the error shown in the table row indicates  
the ASI_AFAR_U2recording priority, as follows. Let P_U2be the Prio_U2  
column value for the error E2. Then:  
Upon detection of the error E2, if P_U2> ASI_AFAR_U2.CONTENTS, the error  
E2 is recorded into ASI_AFAR_U2and ASI_AFAR_U2.CONTENTSis set  
to P_U2.  
Upon detection of the error E2, if P_U2 ASI_AFAR_U2.CONTENTS, the error  
E2 is not recorded in ASI_AFAR_U2and ASI_AFAR_U2is unchanged.  
TABLE P-15 ASI_ASYNC_FAULT_STATUSBit Description  
Bit  
Name  
R/W  
Prio_D1  
Prio_U2  
Description  
Bits 10:0 are restrainable error-pending stickybits. Each bit in ASI_AFSR<10:0> is set to 1 when the  
corresponding error is detected. The only way each of these error sticky bits can be cleared is to write 1 to it.  
When 1 is held in a bit of ASI_AFSRand the trap disable condition specified in the TABLE P-2 is not satisfied,  
an ECC_error trap is generated.  
10  
DG_L1$U2$STLB  
RW1C  
Degradation in L1$, U2$, and sTLB. This bit is set  
when automatic way reduction is applied in I1$,  
D1$, U2$, sITLB, or sDTLB. See Section P.9.5 and  
Section P.10.2 for further details about when this bit  
is set.  
9
CE_INCOMED  
RW1C  
4016  
Correctable error in incoming data from the UPA bus.  
CE is detected in the following cases:  
U2 (unified level 2) cache fill  
Data read from noncacheable area  
The two cases can be separated by the physical  
address indicated in ASI_AFAR_U2. For U2 cache fill,  
normally the CE in DIMMis detected.  
Programming Note: Data is transferred on the UPA  
bus in units of 16 bytes (one quadword). For data  
read from a noncacheable area, a correctable error in  
the opposite doubleword from the one that was  
accessed by the instruction may be reported as  
CE_INCOMED.  
The address indicated in ASI_AFAR_U2for  
CE_INCOMED always has doubleword resolution and  
indicates the correct error location for the incoming  
data path. However, the error reported for the  
noncacheable area read may be for the opposite  
doubleword in a quadword from the doubleword  
accessed by the instruction.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
175  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
TABLE P-15 ASI_ASYNC_FAULT_STATUSBit Description (Continued)  
Bit  
Name  
R/W  
Prio_D1  
Prio_U2  
Description  
3
UE_DST_BETO  
RW1C  
Disrupting store UPA bus error or timeout. Indicates  
that the store data is not written to memory because  
one of following errors was detected after the store  
instruction completed:  
UPA bus error for the store instruction Detected  
when a cacheable store to a noncacheable area is  
executed.  
UPA timeout for a store instruction Detected  
when a cacheable store to an uninstalled cacheable  
area is executed.  
2
1
UE_RAW_L2$FILL  
UE_RAW_L2$INSD  
RW1C  
RW1C  
8016  
Raw UE in incoming data at L2 cache fill. Indicates a  
raw (unmarked) uncorrectable error in incoming data  
from UPA bus at the level 2 cache fill. The  
doubleword containing the raw UE in the L2 cache  
was marked with the ERROR_MARK_ID= 0.  
C016  
Raw UE in L2 cache inside data. Indicates that a raw  
(unmarked) uncorrectable error in the L2 cache data  
is detected. The raw UE error should be detected in  
the following cases:  
L2 cache data is read to fill D1 cache or I1 cache.  
L2 cache data is read for copyback or writeback.  
The doubleword containing the raw UE in the read  
data and the doubleword in the L2 cache data are  
marked with ERROR_MARK_ID= ASI_EIDR.  
Implementation Deviation: SPARC64 V sets  
UE_RAW_L2$INSD to 1 only when a raw UE is  
detected during L2 cache writeback.  
0
UE_RAW_D1$INSD  
RW1C 8016  
Raw UE in D1 cache inside data. This bit indicates  
that a raw (not marked) uncorrectable error in the D1  
cache data has been detected in one of the following  
cases:  
D1 cache data is read during a load or store  
instruction.  
Store data is not written because of an  
uncorrectable error detected in the D1 cache after  
the store instruction completed.  
A raw UE is detected in the data during the D1  
cache writeback to level 2 cache.  
The doubleword containing a raw UE in the outgoing  
data and that in D1 cache are marked with  
ERROR_MARK_ID= ASI_EIDR.  
Other Reserved  
R
Always reads as 0; writes are ignored.  
176  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
P.7.2  
ASI_ASYNC_FAULT_ADDR_D1  
[1] Register name:  
[2] ASI:  
ASI_ASYNC_FAULT_ADDR_D1(ASI_AFAR_D1)  
4D16  
[3] VA:  
0016  
[4] Error checking:  
[5] Format & function:  
[6] Initial value at reset:  
Parity  
See TABLE P-16.  
Hard POR: All fields in ASI_AFAR_D1are set to 0.  
Other reset: Value in ASI_AFAR_D1is unchanged.  
When a new restrainable error is detected, ASI_AFAR_D1is  
updated as defined in Section P.7.1 in the notes on the AFSR  
Prio_D1column of TABLE P-15.  
When program writes to ASI_AFAR_D1, all fields in  
ASI_AFAR_D1are set to 0 and validated.  
ldxa [%g0]ASI_AFAR_D1,%rN  
[8] Software access  
stxa %g0, [%g0]ASI_AFAR_D1  
TABLE P-16 describes the fields of the ASI_ASYNC_FAULT_ADDR_D1register.  
TABLE P-16 ASI_ASYNC_FAULT_ADDR_D1(ASI_AFAR_D1) Bit Description  
Bit  
Name  
R/W Description  
63:56  
CONTENTS  
R
Contents of ASI_AFAR_D1. This field has the following two functions:  
Indicates the type of error held in the other fields of ASI_AFAR_D1as  
defined in TABLE P-15.  
Controls the recording of newly detected restrainable errors. Upon  
detection of a new restrainable error recordable in ASI_AFAR_D1, if the  
current ASI_AFAR_D1.CONTENTS< the AFSRPrio_D1 value of the new  
error, the new error is recorded into ASI_AFAR_D1. If the current  
ASI_AFAR_D1.CONTENTSthe AFSRPrio_D1 value of the new error, the  
error is not recorded into ASI_AFAR_D1and ASI_AFAR_D1is unchanged.  
55  
WAY  
R
R
D1 cache way with the error. Indicates the D1 cache way number (0 or 1) in  
which the error is detected.  
50:48  
VA_BIT15_13  
Indicates the virtual address bits 15:13 contained in the D1 cache index of the  
cache line that caused the error. Because the D1 cache is a VIPT cache, the D1  
cache index contains the virtual address bits 15:13.  
42:6  
PA_BIT42_6  
R
Indicates the physical address bits 42:6 for the D1 cache line that caused the  
error.  
Others Reserved  
R
Always reads as 0.  
All  
W
Any write access sets all fields in this register to 0. That is, when a program  
writes to ASI_AFAR_D1, the entire ASI_AFAR_D1is set to 0 regardless of the  
write value; the error in ASI_AFAR_D1is expunged.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
177  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
P.7.3  
ASI_ASYNC_FAULT_ADDR_U2  
[1] Register name:  
[2] ASI:  
ASI_ASYNC_FAULT_ADDR_U2(ASI_AFAR_U2)  
4D16  
[3] VA:  
0816  
[4] Error checking:  
[5] Format & function:  
[6] Initial value at reset:  
Parity  
See TABLE P-17.  
Hard POR: All fields are set to 0.  
Other reset: Values are unchanged.  
[7] Update:  
When a new restrainable error is detected, ASI_AFAR_U2is  
updated as defined in Section P.7.1 in the notes on the AFSR  
Prio_U2 column of TABLE P-15.  
When a program writes to ASI_AFAR_U2, all fields in  
ASI_AFAR_U2are set to 0 and validated.  
ldxa [%g0]ASI_AFAR_U2,%rN  
[8] Software access:  
stxa %g0, [%g0]ASI_AFAR_U2  
Write to ASI_AFAR_U2after read is expected.  
The ASI_ASYNC_FAULT_ADDR_U2register is described in TABLE P-17.  
TABLE P-17 ASI_ASYNC_FAULT_ADDR_U2(ASI_AFAR_U2) Register Bit Description  
Bit  
Name  
R/W  
Description  
63:56  
CONTENTS  
R
Contents of ASI_AFAR_U2. This field has the following two functions:  
Indicates the type of error held in the other fields of ASI_AFAR_U2as  
defined in TABLE P-15.  
Controls the recording of newly detected restrainable errors. Upon the  
detection of a new restrainable error recordable in ASI_AFAR_U2, if the  
current ASI_AFAR_U2.CONTENTS< the AFSRPrio_U2value of the new  
error, the new error is recorded into ASI_AFAR_U2. If the current  
ASI_AFAR_U2.CONTENTSthe AFSRPrio_U2 value of the new error, the  
error is not recorded in ASI_AFAR_U2and ASI_AFAR_U2is unchanged.  
55:48  
SYNDROME  
R
Syndrome of incoming data at L2$fill. When ASI_AFAR_U2.CONTENTS  
indicates CE_INCOMEDor UE_L2$FILL, this field indicates the syndrome of  
the doubleword with error incoming from UPA bus. Otherwise, this field  
indicates the unpredictable value.  
178  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
TABLE P-17 ASI_ASYNC_FAULT_ADDR_U2(ASI_AFAR_U2) Register Bit Description (Continued)  
Bit  
Name  
R/W  
Description  
42:3  
PA_BIT42_3  
R
Physical address bit 42:3. Contains the value indicated by  
ASI_AFAR_U2.CONTENTS, as shown below:  
Error Name  
Contents of PA_BIT42_3  
ASI_AFAR_U2.CONTENTS  
40  
CE_INCOMED  
The physical address of the  
doubleword with the error.  
16  
80  
UE_RAW_L2$FILL The physical address of the  
16  
doubleword with the error.  
C0  
UE_RAW_L2$INSD The physical address of the  
cache line (64-byte block) with  
16  
the error. The least significant 3  
bits in the PA_BIT42_3field  
are invalid and unpredictable.  
Others Reserved  
R
Always read as 0.  
All  
W
Any write access sets all fields in this register to 0. That is, when a program  
writes to ASI_AFAR_U2, the entire ASI_AFAR_U2is set to 0 regardless of the  
write value; any error recorded in ASI_AFAR_U2is expunged.  
P. 7 . 4  
E x p e c t e d Software Handling of Restrainable  
Errors  
Error recording and information is expected for all restrainable errors.  
The expected software recovery from each type of each restrainable error is  
described below.  
ASI_AFSR.DG_L1$U2$STLB The following status for the CPU is reported:  
Performance is degraded by the way reduction in I1$, D1$, U2$, sITLB, or  
sDTLB.  
CPU availability may be slightly down. If only one way facility is available  
among I1$, D1$, U2$, sITLB, and sDTLBand further way reduction is  
detected for this facility, the error_statetransition error is detected.  
Software stops the use of the CPU, if required.  
ASI_AFSR.CE_INCOMED If ASI_AFAR_U2contains CE_INCOMEDinformation  
and the physical address of the error indicates the cacheable area, the following  
software sequence to correct the memory block is expected:  
a. Make the U2 cache line with the CE detection dirty without changing the data.  
Use the CASAinstruction to write that same data to the U2 cache line.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
179  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
b. Write the U2 cache line with the CE detection to memory either by using the  
ASI_L2_CTRL.U2_FLUSHfacility or by displacement flush.  
c. Clear ASI_AFSR.CE_INCOMEDand reload the memory block to U2 cache,  
using load instructions. Check whether the CE in memory has been corrected  
by inspecting ASI_AFSR.CE_INCOMEDand ASI_AFAR_U2.  
d. If the CE in memory block is not corrected, a permanent error may be detected.  
Avoid using the memory block with the permanent correctable error as much  
as possible.  
ASI_AFSR.UE_DST_BETO This error is caused by either:  
Invalid DTLBentry is specified, or  
Invalid memory access instruction with physical address access ASI is executed  
in privileged software.  
This error is always caused by a mistake in privileged software. Record the error  
and correct the erroneous privileged software.  
ASI_AFSR.UE_RAW_L2$FILL, UE_RAW_L2$INSD, and UE_RAW_D1$INSD Software  
handles these errors as follows:  
Correct the cache line data containing the uncorrected error by executing a  
block store with commit instruction, if possible. Note that the original data is  
deleted by this operation.  
For UE_RAW_L2$FILL, avoid using the memory block with the UE as much as  
possible.  
No error indication in ASI_AFSRat ECC_error trap Ignore the ECC_error trap.  
This situation may occur at the condition described in the TABLE P-2 on page 154  
(see the third row, last column, and Deviation from the ideal specification).  
180  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
P.8  
Handling of Internal Register Errors  
This section describes error handling for the following:  
Most registers  
ASR registers  
ASI registers  
P.8.1  
Register Error Handling (Excluding ASRs and ASI  
Registers)  
The terminology used in TABLE P-18 is defined as follows:  
Column  
Term  
Meaning  
Error Detect  
Condition  
InstAccess The error is detected when the instruction accesses the register.  
Correction  
W
The error indication is removed when an instruction performs a  
full write to the register  
ADE trap  
The error is removed by a full write to the register in the  
async_data_error hardware trap sequence.  
TABLE P-18 shows error handling for most registers.  
TABLE P-18 Register Error Handling (Excluding ASRs and ASI Registers)  
Error  
Register Name  
%rn  
RW  
Protect  
Parity  
Parity  
Parity  
Parity  
Parity  
Parity  
Parity  
Error Detect Condition  
InstAccess  
Error Type  
Correction  
W
IUG_%R  
RW  
RW  
IUG_%F  
%fn  
InstAccess  
W
IUG_PSTATE  
IUG_PSTATE  
IUG_PSTATE  
PC  
Always  
ADE trap  
ADE trap  
ADE trap  
W (by OBP)  
W
nPC  
Always  
PSTATE  
TBA  
RW  
RW  
RW  
Always  
PSTATE.RED= 0  
error_state  
IUG_PSTATE  
PIL  
PSTATE.IE= 1  
or InstAccess  
IUG_PSTATE  
CWP, CANSAVE,  
CANRESTORE,  
OTHERWIN,  
RW  
Parity  
Always  
ADE trap, W  
CLEANWIN  
TT  
TL  
RW  
RW  
None  
Parity  
PSTATE.RED= 0  
error_state  
W (by OBP)  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
181  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
TABLE P-18 Register Error Handling (Excluding ASRs and ASI Registers)  
Error  
Register Name  
TPC  
RW  
Protect  
Parity  
Parity  
Parity  
Parity  
Error Detect Condition  
InstAccess  
Error Type  
Correction  
IUG_TSTATE  
RW  
RW  
RW  
RW  
W
IUG_TSTATE  
IUG_TSTATE  
IUG_TSTATE  
TNPC  
InstAccess  
W
TSTATE  
WSTATE  
InstAccess  
W
InstAccess  
W
VER  
FSR  
R
None  
Parity  
IUG_%F  
RW  
Always  
ADE trap, W  
P.8.2  
ASR Error Handling  
The terminology used in TABLE P-19 is defined as follows:  
Column  
Term  
Meaning  
Error Detect  
Condition  
AUG always  
The error is detected while  
(ASI_ERROR_CONTROL.UGE_HANDLER= 0) &&  
(ASI_ERROR_CONTROL.WEAK_ED= 0)  
InstAccess  
(I)AUG_xxx  
I(A)UG_xxx  
W
The error is detected when the instruction accesses the  
register.  
Error Type  
Correction  
The error is indicated by ASI_UGESR.IAUG_xxx = 1, and  
the error is an autonomous urgent error.  
The error is indicated by ASI_UGESR.IAUG_xxx = 1, and  
the error is an instruction urgent error.  
The error is removed by a full write to the register by an  
instruction.  
ADE trap  
The error is removed by a full write to the register in the  
async_data_error hardware trap sequence.  
TABLE P-19 shows the handling of ASR errors.  
TABLE P-19 ASR Error Handling  
ASR  
Number Register Name  
RW  
Error Protect Error Detect Condition  
Error Type  
Correction  
IUG_%R  
0
1
2
3
4
Y
RW Parity  
InstAccess  
W
IUG_%R  
IUG_%R  
CCR  
ASI  
TICK  
RW Parity  
RW Parity  
RW None  
Always  
Always  
ADE trap, W  
ADE trap, W  
182  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
TABLE P-19 ASR Error Handling (Continued)  
ASR  
Number Register Name  
RW  
Error Protect Error Detect Condition  
Error Type  
IUG_PSTATE  
IUG_%F  
Correction  
ADE trap  
5
PC  
R
Parity  
Always  
Always  
6
FPRS  
RW Parity  
ADE trap, W  
7
8-15  
16  
17  
18  
19  
20  
21  
22  
PCR  
RW None  
RW None  
PIC  
DCR  
R
None  
IUG_%F  
GSR  
RW Parity  
Always  
ADE trap, W  
SET_SOFTINT  
CLEAR_SOFTINT  
SOFTINT  
W
W
None  
None  
W
W
W
W
W
W
(I)AUG_CRE  
I(A)UG_CRE  
RW Parity  
AUG always  
InstAccess  
23  
24  
TICK_COMPARE  
STICK  
RW None  
RW Parity  
(I)AUG_CRE  
I(A)UG_CRE  
AUG always  
AUG always  
InstAccess  
(I)AUG_CRE  
25  
STICK_COMPARE  
RW Parity  
I(A)UG_CRE  
P.8.3  
ASI Register Error Handling  
The terminology used in TABLE P-20 is defined as follows:  
(1 of 3)  
Column  
Term  
Parity  
ECC  
Gecc  
PP  
Meaning  
Error Protect  
Parity protected.  
ECC (double-bit error detection, single-bit error correction) protected.  
Generated ECC.  
Parity propagation. The parity error in the input registers to calculate the  
register value is propagated.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
183  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
(2 of 3)  
Column  
Term  
Meaning  
Error Detect  
Condition  
Always  
AUG always  
Error is always checked.  
Error is checked when (ASI_ERROR_CONTROL.UGE_HANDLER= 0) &&  
(ASI_ERROR_CONTROL.WEAK_ED= 0).  
LDXA  
Error is checked when the register is read by LDXAinstruction.  
Error is checked when the register is read by LDXAinstruction.  
LDXA#I  
Also, the register is used for the calculation of IMMU_TSB_8KB_PTRand  
IMMU_TSB_64KB_PTR. When the register has a UE and the register is used  
for the calculation of ASI_IMMU_TSB_PTRregisters, the UE is propagated to  
the ASI_IMMU_TSB_PTRregisters. Upon execution of the LDXAinstruction  
to read ASI_IMMU_TSB_PTRwith the propagated UE, the IUG_TSBP error is  
detected.  
LDXA#D  
Error is checked when the register is read by LDXAinstruction.  
Also, the register is used for the calculation of DMMU_TSB_8KB_PTR,  
DMMU_TSB_64KB_PTR, and DMMU_TSB_DIRECT_PTR. When the register has  
a UE and the register is used for the calculation of ASI_DMMU_TSB_PTR  
registers, the UE is propagated to the ASI_DMMU_TSB_PTRregisters. Upon  
execution of the LDXAinstruction to read ASI_DMMU_TSB_PTRwith the  
propagated UE, the IUG_TSBP error is detected.  
ITLBwrite  
DTLBwrite  
Error is checked at the ITLBupdate timing after completion of the STXA  
instruction to write or demap an ITLBentry.  
Error is checked at the DTLBupdate timing after the completion of the STXA  
instruction to write or demap a DTLBentry.  
Use for TLB  
Enabled  
Error is checked when the register is used for a TLBreference.  
Error is checked when the facility is enabled.  
intr_receive Error is checked when the UPA interrupt packet is received. When an  
uncorrectable error is detected in the received interrupt packet, the vector  
interrupt trap is caused but ASI_INTR_RECEIVE.BUSY= 0 is set. In this  
case, a new interrupt packet can be received after software writes  
ASI_INTR_RECEIVE.BUSY= 0.  
BV interface  
Uncorrected error in the Barrier Variable transfer interface between the  
processor and the memory system is checked during the AUG_always  
period.  
184  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
(3 of 3)  
Column  
Term  
Meaning  
Error Type  
error_state error_statetransition error.  
(I)AUG_xxxx  
The error is indicated by ASI_UGESR.IAUG_xxxx = 1, and the error class is  
autonomous urgent error.  
I(A)UG_xxxx  
The error is indicated by ASI_UGESR.IAUG_xxxx = 1, and the error class is  
instruction urgent error.  
Not detected  
(#dv)  
In SPARC64 V, the error is not detected. In the ideal specification, some  
errors should be detected but this behavior is not implemented. See  
SPARC64 V Implementation and the Ideal Specification on page 188.  
COREERROR  
(#dv)  
In SPARC64 V, the ASI_UGESR.IUG_COREERR is detected. In the ideal  
specification, other errors should be detected but this behavior is not  
implemented. See SPARC64 V Implementation and the Ideal Specification on  
page 188.  
If an LDXAinstruction is used to load an ASI register and an  
ASI_UGESR.IUG_COREERR error is detected, a trap will occur. If that happens  
and IUG_COREERR is the only error indicated in ASI_UGESR, it is expected  
that the trap handler will retry the LDXAinstruction until the threshold of  
urgent errors is exceeded on the processor.  
Others  
RED trap  
W
The name of the bit set to 1 in ASI_UGESRindicates the error type.  
Correction  
The whole register is updated and corrected when a RED_statetrap occurs.  
The whole register is updated and corrected by use of an STXAinstruction to  
write the register.  
W1AC  
The whole register is updated and corrected by use of an STXAinstruction to  
write 1 to the specified bit in the register.  
WotherI  
The register is corrected by a full update of all of the following ASI registers:  
ASI_IMMU_TAG_ACCESS  
plus, when ASI_UGESR.IAUG_TSBCTXT= 1 is indicated in a single-ADE  
trap: ASI_IMMU_TSB_BASE, ASI_IMMU_TSB_PEXT,  
ASI_PRIMARY_CONTEXT, ASI_SECONDARY_CONTEXT  
WotherD  
The register is corrected by a full update of all of the following ASI registers:  
ASI_DMMU_TAG_ACCESS  
plus, when ASI_UGESR.IAUG_TSBCTXT= 1 is indicated in a single-ADE  
trap: ASI_DMMU_TSB_BASE, ASI_DMMU_TSB_PEXT,  
ASI_DMMU_TSB_SEXT, ASI_PRIMARY_CONTEXT,  
ASI_SECONDARY_CONTEXT  
DemapAll  
The error is corrected by the demap all operation for the TLB with the error.  
Note that the demap all operation does not remove the locked TLB entry with  
uncorrectable error.  
Interrupt  
receive  
The register is corrected when the UPA interrupt packet is received.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
185  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
TABLE P-20 shows the handling of ASI register errors.  
TABLE P-20 Handling of ASI Register Errors  
ASI  
VA  
Error  
Error Detect  
Register Name  
RW  
RW  
RW  
R
Protect Condition  
Parity Always  
Parity Always  
Gecc LDXA  
Error Type  
Correction  
RED trap  
RED trap  
None  
4516 0016 DCU_CONTROL  
error_state  
error_state  
I(A)UG_CRE (UE)  
ignored (CE)  
I(A)UG_CRE (UE)  
ignored (CE)  
0816 MEMORY_CONTROL  
4816 0016 INTR_DISPATCH_STATUS  
4916 0016 INTR_RECEIVE  
RW  
Gecc LDXA  
None  
4A16  
UPA_CONFIGUATION  
R
None  
None  
None  
4C16 0016 ASYNC_FAULT_STATUS  
4C16 0816 URGENT_ERROR_STATUS  
4C16 1016 ERROR_CONTROL  
4C16 1816 STCHG_ERROR_INFO  
4D16 0016 AFAR_D1  
RW1C  
R
RW  
Parity Always  
error_state  
RED trap  
R,W1AC None  
I(A)UG_CRE  
I(A)UG_CRE  
IUG_TSBP  
R,W1AC Parity LDXA  
R,W1AC Parity LDXA  
W1AC  
W1AC  
WotherI  
4D16 0816 AFAR_U2  
5016 0016 IMMU_TAG_TARGET  
5016 1816 IMMU_SFSR  
R
Parity LDXA#I  
None  
RW  
RW  
RW  
RW  
R
I(A)UG_TSBCTXT  
IUG_TSBP  
5016 2816 IMMU_TSB_BASE  
5016 3016 IMMU_TAG_ACCESS  
5016 4816 IMMU_TSB_PEXT  
5016 5816 IMMU_TSB_NEXT  
Parity LDXA#I  
W
Parity LDXA#I  
W (WotherI)  
W
IAUG_TSBCTXT  
IAUG_TSBCTXT  
IUG_TSBP  
Parity = ITSB_BASE  
Parity = ITSB_BASE  
W
5116  
5216  
5316  
5416  
5516  
IMMU_TSB_8KB_PTR  
IMMU_TSB_64KB_PTR  
SERIAL_ID  
R
PP  
LDXA  
LDXA  
WotherI  
WotherI  
IUG_TSBP  
R
PP  
R
None  
IUG_ITLB  
ITLB_DATA_IN  
W
Parity ITLB write  
Parity LDXA  
DemapAll  
DemapAll  
DemapAll  
DemapAll  
DemapAll  
WotherD  
W
IUG_ITLB  
IUG_ITLB  
ITLB_DATA_ACCESS  
RW  
ITLB write  
IUG_ITLB  
5616  
5716  
ITLB_TAG_READ  
IMMU_DEMAP  
R
Parity LDXA  
IUG_ITLB  
W
R
Parity ITLB write  
Parity LDXA#D  
IUG_TSBP  
5816 0016 DMMU_TAG_TARGET  
5816 0816 PRIMARY_CONTEXT  
RW  
Parity LDXA#I,  
LDXA#D  
I(A)UG_TSBCTXT  
I(A)UG_TSBCTXT  
(I)AUG_TSBCTXT  
Use for TLB  
AUG always  
W
W
W
W
W
IAUG_TSBCTXT  
5816 1016 SECONDARY_CONTEXT  
5816 1816 DMMU_SFSR  
RW  
RW  
RW  
RW  
Parity = P_CONTEXT  
None  
IAUG_CRE  
I(A)UG_TSBCTXT  
5816 2016 DMMU_SFAR  
Parity LDXA  
5816 2816 DMMU_TSB_BASE  
Parity LDXA#D  
186  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                                               
TABLE P-20 Handling of ASI Register Errors (Continued)  
ASI  
VA  
Error  
Error Detect  
Register Name  
RW  
Protect Condition  
Error Type  
Correction  
IUG_TSBP  
5816 3016 DMMU_TAG_ACCESS  
RW  
RW  
Parity LDXA#D  
Parity Enabled  
LDXA  
W (WotherD)  
(I)AUG_CRE  
I(A)UG_CRE  
5816 3816 DMMU_VA_WATCHPOINT  
W
W
(I)AUG_CRE  
I(A)UG_CRE  
5816 4016 DMMU_PA_WATCHPOINT  
RW  
Parity Enabled  
LDXA  
W
W
I(A)UG_TSBCTXT  
I(A)UG_TSBCTXT  
I(A)UG_TSBCTXT  
IUG_TSBP  
5816 4816 DMMU_TSB_PEXT  
5816 5016 DMMU_TSB_SEXT  
5816 5816 DMMU_TSB_NEXT  
RW  
RW  
R
Parity = DTSB_BASE  
Parity = DTSB_BASE  
Parity = DTSB_BASE  
W
W
None  
WotherD  
WotherD  
WotherD  
DemapAll  
DemapAll  
DemapAll  
DemapAll  
DemapAll  
W
5916  
5A16  
5B16  
5C16  
5D16  
DMMU_TSB_8KB_PTR  
DMMU_TSB_64KB_PTR  
DMMU_TSB_DIRECT_PTR  
DTLB_DATA_IN  
R
PP  
PP  
PP  
LDXA  
LDXA  
LDXA  
IUG_TSBP  
R
IUG_TSBP  
R
IUG_DTLB  
W
Parity DTLBwrite  
Parity LDXA  
DTLBwrite  
IUG_DTLB  
IUG_DTLB  
DTLB_DATA_ACCESS  
RW  
IUG_DTLB  
IUG_DTLB  
5E16  
5F16  
6016  
DTLB_TAG_READ  
DMMU_DEMAP  
R
Parity LDXA  
Parity DTLBwrite  
Parity LDXA  
Parity Always  
Parity AUG always  
LDXA  
W
IIU_INST_TRAP  
RW  
RW  
RW  
No match at error  
IAUG_CRE  
6E16 0016 EIDR  
6F16 parallel barrier assist  
W
Not detected (#dv)  
W
COREERROR (#dv)  
W
(I)AUG_CRE  
BV interface  
None  
W
7716 4016INTR_DATA0:7_W  
W
W
R
Gecc  
Gecc  
ECC  
None  
(I)AUG_CRE  
8816 INTR_DISPATCH_W  
store  
W
7F16 4016INTR_DATA0:7_R  
LDXA  
COREERROR (#dv) Interrupt  
8816  
Receive  
intr_receive  
BUSY= 0  
EF16  
Parallel barrier assist  
RW  
Parity AUG always  
LDXA  
Not detected (#dv)  
W
COREERROR (#dv)  
W
(I)AUG_CRE  
BV interface  
None  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
187  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                     
SPARC64 V Implementation and the Ideal Specification  
In the table on page 183 (defining terminology in TABLE P-20), the rows (ASIs 6F16,  
7F16, and EF16) with error type of Not detected (#dv)or COREERROR (#dv)”  
indicate that the SPARC64 V implementation deviates from the ideal specification,  
which is described in TABLE P-21 but is not implemented in SPARC64 V.  
TABLE P-21 Ideal Handling of ASI Register Errors (not implemented in SPARC64 V)  
ASI VA  
Error  
Protect  
Error Detect  
Condition  
Register name  
RW  
Error Type  
Correction  
(I)AUG_CRE  
I(A)UG_CRE  
(I)AUG_CRE  
6F16  
Parallel barrier assist  
RW  
Parity  
AUG always  
LDXA  
W
W
BV interface  
LDXA  
None  
I(A)UG_CRE  
7F16 4016-8816 INTR_DATA0:7_R  
EF16 Parallel barrier assist  
R
ECC  
Interrupt  
Receive  
BUSYis set to 0  
intr_receive  
AUG always  
LDXA  
(I)AUG_CRE  
I(A)UG_CRE  
(I)AUG_CRE  
RW  
Parity  
W
W
BV interface  
None  
P.9  
Cache Error Handling  
In this section, handling of cache errors of the following types is specified:  
Cache tag errors  
Cache data errors in I1, D1, and U2 caches  
This section concludes with the specification of automatic way reduction in the I1,  
D1, and U2 caches.  
P.9.1  
Handling of a Cache Tag Error  
Error in D1 Cache Tag and I1 Cache Tag  
Both the D1 cache (Data level 1) and the I1 cache (Instruction level 1) maintain a  
copy of their cache tags in the U2 (unified level 2) cache. The D1 cache tags, the D1  
cache tags copy, the I1 cache tags, and the I1 cache tags copy are each protected by  
parity.  
188  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
When a parity error is detected in a D1 cache tag entry or in a D1 cache tag copy  
entry, hardware automatically corrects the error by copying the correct tag entry  
from the other copy of the tag entry. If the error can be corrected in this way,  
program execution is unaffected.  
Similarly, when a parity error is detected in an I1 cache tag entry or in a I1 cache tag  
copy entry, hardware automatically corrects the error by copying the correct tag  
entry from the other copy of the tag entry. If the error can be corrected in this way,  
program execution is unaffected.  
When the error in the level-1 cache tag or tag copy is not corrected by the tag  
copying operation, the tag copying is repeated. If the error is permanent, a watchdog  
timeout or a FATAL error is then detected.  
Error in U2 (Unified Level 2) Cache Tag  
The U2 cache tag is protected by double-bit error detection and single-bit error  
correction ECC code.  
When a correctable error is detected in a U2 cache tag, hardware automatically  
corrects the error by rewriting the corrected data into the U2 cache tag entry. The  
error is not reported to software.  
When an uncorrectable error is detected in a U2 cache tag, one of following actions  
is taken, depending on the setting of OPSR(internal mode register set by the JTAG  
command):  
1. A fatal error is detected and the CPU enters the CPU fatal error state.  
2. The U2 cache tag uncorrectable error is treated as follows; however, in some cases,  
the fatal error is still detected.  
a. When ASI_ERROR_CONTROL.WEAK_ED= 0:  
The AUG_SDC is recognized during U2 cache tag error detection.  
If ASI_ERROR_CONTROL.UGE_HANDLER= 0, the AUG_SDC immediately  
generates an async_data_error trap with ASI_UGESR.AUG_SDC = 1.  
Otherwise:, if ASI_ERROR_CONTROL.UGE_HANDLER= 1, the AUG_SDC remains  
pending in hardware. At the point when  
ASI_ERROR_CONTROL.UGE_HANDLERis set to 0, an async_data_error exception  
is generated, with ASI_UGESR.AUG_SDC= 1.  
b. When ASI_ERROR_CONTROL.WEAK_ED= 1:  
Hardware ignores the U2 cache tag error if possible. However, the AUG_SDC or  
fatal error may still be detected.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
189  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
P.9.2  
Handling of an I1 Cache Data Error  
I1 cache data is protected by parity attached to every doubleword.  
When a parity error is detected in I1 cache data during an instruction fetch,  
hardware executes the following sequence:  
1. Reread the I1 cache line containing the parity error from the U2 cache.  
The read data from U2 cache must contain only the doubleword without error or  
the doubleword with the marked UE, because error marking is applied to U2  
cache outgoing data.  
2. For each doubleword read from U2 cache:  
a. When the doubleword does not have a UE, save the correct data in the I1 cache  
doubleword without parity error and supply the data for instruction fetch if  
required.  
There is no direct report to software for an I1 cache error corrected by refilling  
data.  
b. When the doubleword has a marked UE, set the parity bit in the I1 cache  
doubleword to indicate a parity error and supply the parity error data for the  
instruction fetch if required.  
3. Treat a fetched instruction with an error as follows:  
When the instruction with a parity error is fetched but not executed in any way  
visible to software, the fetched instruction with the error is discarded.  
Otherwise, fetch and execute the instruction with the indicated parity error.  
When the execution of the instruction is complete, an instruction_access_error  
exception will be generated (precise trap), and the marked UE detection and its  
ERROR_MARK_IDwill be indicated in ASI_ISFSR.  
P.9.3  
Handling of a D1 Cache Data Error  
D1 cache data is protected by 2-bit error detection and 1-bit error correction ECC,  
attached to every doubleword.  
Correctable Error in D1 Cache Data  
When a correctable error is detected in D1 cache data, the data is corrected  
automatically by hardware. There is no direct report to software for a D1 cache  
correctable error.  
190  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
Marked Uncorrectable Error in D1 Cache Data  
When a marked uncorrectable error (UE) in D1 cache data is detected during the D1  
cache line writeback to the U2 cache, the D1 cache data and its ECC are written to  
the target U2 cache data and its ECC without modification. That is, a marked UE in  
D1 cache is propagated into the U2 cache. Such an error is not reported to software.  
When a marked UE in D1 cache data is detected during access by a load or store  
(excluding doubleword store) instruction, the data access error is detected. The  
data_access_error exception is generated precisely and the marked UE detection and  
its ERROR_MARK_IDare indicated in ASI_DSFSR.  
Raw Uncorrectable Error in D1 Cache Data During D1 Cache  
Line Writeback  
When a raw (unmarked) UE is detected in D1 cache data during the D1 cache line  
writeback to the U2 cache, error marking is applied to the doubleword containing  
the raw UE with ERROR_MARK_ID= ASI_EIDR. Only the correct doubleword or the  
doubleword with marked UE is written into the target U2 cache line.  
The restrainable error ASI_AFSR.UE_RAW_D1$INSD is detected.  
Raw Uncorrectable Error in D1 Cache Data on Access by Load  
or Store Instruction  
When a raw (unmarked) UE is detected in D1 cache data during access by a load or  
store instruction, hardware executes the following sequence:  
1. Hardware writes back the D1 cache line and refills it from U2 cache. The D1 cache  
line containing the raw UE, whether it is clean or dirty, is always written back to  
the U2 cache. During this D1 cache line writeback to U2 cache, error marking is  
applied for the doubleword containing the raw UE with  
ERROR_MARK_ID= ASI_EIDR. The D1 cache line is refilled from the U2 cache  
and the restrainable error ASI_AFSR.UE_RAW_D1$INSD is detected.  
2. Normally, hardware changes the raw UE in the D1 cache data to a marked UE.  
However, yet another error may introduce a raw UE into the same doubleword  
again. When a raw UE is detected again, step 1 is repeated until the D1 cache way  
reduction is applied.  
3. At this point, hardware changes the raw UE in the D1 cache data to a marked UE.  
The load or store instruction accesses the doubleword with the marked UE. The  
marked UE is detected during execution of the load or store instruction, as  
described in Raw Uncorrectable Error in D1 Cache Data During D1 Cache Line  
Writeback, above.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
191  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
P.9.4  
Handling of a U2 Cache Data Error  
U2 cache data is protected by 2-bit error detection and 1-bit error correction ECC,  
attached to every doubleword.  
Correctable Error in U2 Cache Data  
When a correctable error is detected in the incoming U2 cache fill data from UPA, the  
data is corrected by hardware, stored into U2 cache, and the restrainable error  
ASI_AFSR.CE_INCOMED is detected.  
When a correctable error is detected in the data from U2 cache for I1 cache fill, D1  
cache fill, copyback to UPA, or writeback to UPA, both the transfer data and source  
data in U2 cache are corrected by hardware. The error is not reported to software.  
Marked Uncorrectable Error in U2 Cache Data  
For U2 cache data, a doubleword with marked UE is treated the same as a correct  
doubleword. No error is reported when the marked UE in U2 cache data is detected.  
When a marked uncorrectable error (UE) is detected in incoming U2 cache fill data  
from UPA, the doubleword with the marked UE is stored without modification in  
the target U2 cache line.  
When a marked uncorrectable error is detected in incoming data from the D1 cache  
to writeback D1 cache line, the doubleword with the marked UE is stored without  
modification in the target U2 cache line. Note that there is no raw UE in D1 writeback  
data because error marking is applied for D1 writeback data, as described in  
Handling of a D1 Cache Data Error on page 190.  
When a marked UE is detected in the data read from the U2 cache for an I1 cache fill,  
D1 cache fill, copyback to UPA, or writeback to UPA, the doubleword with the  
marked UE is transferred without modification.  
Raw Uncorrectable Error in U2 Cache Data  
When a raw (unmarked) UE is detected in incoming U2 cache fill data from UPA,  
error marking is applied for the doubleword with the raw UE, using  
ERROR_MARK_ID= 0. The doubleword and its ECC are changed to the marked UE  
data, the changed data is stored into target U2 cache line, and the restrainable error  
ASI_AFSR.UE_RAW_L2$FILL is detected.  
When a raw UE is detected in data read from U2 cache, such as for I1 cache fill, D1  
cache fill, copyback to UPA, or writeback to UPA, then error marking is applied for  
the doubleword with the raw UE, using ERROR_MARK_ID= ASI_EIDR. Both the  
192  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
doubleword and its ECC in the read data and those in the source U2 cache line are  
changed to marked UE data. The restrainable error ASI_AFSR.UE_RAW_L2$INSD is  
detected.  
Implementation Note SPARC64 V detects ASI_AFSR.UE_FAW_L2$INSD only on  
writeback.  
P.9.5  
Automatic Way Reduction of I1 Cache, D1 Cache, and  
U2 Cache  
When frequent errors occur in the I1, D1, or U2 cache, hardware automatically  
detects that condition and reduces the way, maintaining cache consistency.  
Way Reduction Condition  
Hardware counts the sum of the following error occurrences for each way of each  
cache:  
For each way of the I1 cache:  
Parity error in I1 cache tag or I1 cache tag copy  
I1 cache data parity error  
For each way of the D1 cache:  
Parity error in D1 cache tag or D1 cache tag copy  
Correctable error in D1 cache data  
Raw UE in D1 cache data  
For each way of U2 cache:  
Correctable error and uncorrectable error in U2 cache tag  
Correctable error in U2 cache data  
Raw UE in U2 cache data  
If an error count per unit of time for one way of a cache exceeds a predefined  
threshold, hardware recognizes a cache way reduction condition and takes the  
actions described below.  
I1 Cache Way Reduction  
When way reduction condition is recognized for the I1 cache way W (W = 0 or 1), the  
following way reduction procedure is executed:  
1. When only one way in I1 cache is active because of previous way reduction:  
The CPU enters error_state.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
193  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
2. Otherwise:  
All entries in I1 cache way W are invalidated and the way W will never be  
refilled.  
The restrainable error ASI_AFSR.DG_L1$U2$STLB is reported to software.  
D1 Cache Way Reduction  
When a way reduction condition is recognized for the D1 cache way W (W = 0 or 1),  
the following way reduction procedure is executed:  
1. When only one way in D1 cache is active because of previous way reduction:  
The CPU enters error_state.  
2. Otherwise:  
All entries in D1 cache way W are invalidated and the way W will never be  
refilled. On invalidation of each dirty D1 cache entry, the D1 cache line is  
written back to its corresponding U2 cache line.  
The restrainable error ASI_AFSR.DG_L1$U2$STLB is reported to software.  
U2 Cache Way Reduction  
When a way reduction condition is recognized for a U2 cache way, the U2 cache way  
reduction procedure is executed as follows:  
1. When ASI_L2CTL.WEAK_SPCA= 0,  
the U2 cache way reduction procedure (below) is started immediately.  
2. Otherwise, when ASI_L2CTL.WEAK_SPCA= 1 is set,  
the U2 cache way reduction procedure (below) becomes pending until  
ASI_L2CTL.WEAK_SPCAis changed to 0. When ASI_L2CTL.WEAK_SPCAis  
changed to 0, the U2 cache way reduction procedure will be started.  
The U2 cache way W (W=0, 1, 2, or 3) reduction procedure:  
1. When only one way in U2 cache is active because of previous way reductions:  
All entries in U2 cache way W are at once invalidated (that is, all active U2  
cache entries are invalidated) and U2 cache way W remains as the only  
available U2 cache way. The U2 cache data is invalidated to retain system  
consistency.  
The restrainable error ASI_AFSR.DG_L1$U2$STLB is reported to software, even  
though the available U2 cache configuration is not changed as a result of the  
error.  
194  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
2. Otherwise:  
All entries in available U2 cache ways, including way W, are invalidated to  
retain system consistency.  
Way W becomes unavailable and is never refilled.  
The restrainable error ASI_AFSR.DG_L1$U2$STLB is reported to software.  
TLB Error Handling  
This section describes how TLB entry errors and sTLB way reduction are handled.  
P.10.1  
Handling of TLB Entry Errors  
Error protection and error detection in TLB entries are described in  
TABLE P-22.  
TABLE P-22 Error Protection and Detection of TLB Entries  
TLB type  
Field  
Error Protection  
Parity  
Detectable Error  
sITLBand sDTLB  
sITLBand sDTLB  
fITLBand fDTLB  
fITLBand fDTLB  
fITLBand fDTLB  
tag  
Parity error (Uncorrectable)  
Parity error (Uncorrectable)  
None; the value is determined by majority  
Parity error (Uncorrectable)  
Parity error  
data  
Parity  
lock bit  
Triplicated  
Parity  
tag except lock bit  
data  
Parity  
Errors can occur during the following events:  
Access by LDXAinstruction  
Virtual address translation (sTLB)  
Virtual address translation (fTLB)  
Error in TLB Entry Detected on LDXAInstruction Access  
If a parity error is detected in a DTLBentry when an LDXAinstruction attempts to  
read ASI_DTLB_DATA_ACCESSor ASI_DTLB_TAG_ACCESS, hardware  
automatically demaps the entry and an instruction urgent error is indicated in  
ASI_UGESR.IUG_DTLB.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
195  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
When a parity error is detected in an ITLBentry when an LDXAinstruction attempts  
to read ASI_ITLB_DATA_ACCESSor ASI_ITLB_TAG_ACCESS, hardware  
automatically demaps the entry and an instruction urgent error is indicated in  
ASI_UGESR.IUG_ITLB.  
Error in sTLB Entry Detected During Virtual Address  
Translation  
When a parity error is detected in the sTLBentry during a virtual address  
translation, hardware automatically demaps the entry and does not report the error  
to software.  
Error in fTLB Entry Detected During Virtual Address  
Translation  
When an fTLB tag has a parity error, the fTLB entry never matches any virtual  
address. An fTLB tag error in a locked entry causes a TLB miss for the virtual  
address already registered as the locked TLB entry.  
A parity error in fTLB entry data is detected only when the tag of the fTLB entry  
matches a virtual address.  
When a parity error in the fITLB is detected at the time of an instruction fetch, a  
precise instruction_access_error exception is generated. The parity error in the fITLB  
entry and the fITLBentry index is indicated in ASI_IFSR.  
When a parity error in fDTLBis detected for the memory access of a load or store  
instruction, a precise data_access_error exception is generated. The parity error in the  
fDTLBentry and the fDTLBentry index is indicated in ASI_DFSR.  
P.10.2  
Automatic Way Reduction of sTLB  
When frequent errors occur in sITLBand sDTLB, hardware automatically detects  
that condition and reduces the way, with no adverse effects on software.  
Way Reduction Condition  
Hardware counts TLBentry parity error occurrences for each sITLBway and sDTLB  
way. If the error count per unit of time exceeds a predefined threshold, hardware  
recognizes an sTLBway reduction condition.  
196  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
sTLB Way Reduction  
When a way reduction condition is recognized for the sTLBway W (W = 0 or 1),  
hardware executes the following way reduction procedures:  
1. When only one way in sTLB is active because of previous way reductions:  
The previously reduced way is reactivated.  
2. Regardless of how many ways were previously active, way reduction occurs:  
Hardware reduces the way and invalidates all entries in sTLB way W. Way W  
will never be refilled.  
The restrainable error ASI_AFSR.DG_L1$U2$STLB is reported to software.  
P.11  
Handling of Extended UPA Bus Interface  
Error  
This section specifies how SPARC64 V handles UPA address and data bus errors.  
P.11.1  
Handling of Extended UPA Address Bus Error  
The extended UPA address bus is protected by a parity bit attached to every 8 bits.  
When the SPARC64 V processor detects a parity error in the extended UPA address  
bus, the processor takes one of the following actions, depending on the OPSRsetting:  
1. Upon detection of the error, the processor enters the CPU fatal error state.  
2. Upon detection of the autonomous urgent error ASI_UGESR.AUG_SDC, the  
processor tries to continue running. However, in some situations, the processor  
detects a fatal error and enters the CPU fatal error state.  
P.11.2  
Handling of Extended UPA Data Bus Error  
The extended UPA data bus is protected by a single-bit error correction and double-  
bit error detection ECC code attached to every doubleword.  
Error marking is applied to the data transmitted through the extended UPA data  
bus. The SPARC64 V processor will detect the following three types of errors at the  
extended UPA data bus interface:  
Correctable error (1-bit error)  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
197  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
Raw (unmarked) uncorrectable error (multibit error)  
Marked uncorrectable error  
Correctable Error on Extended UPA Data Bus  
When the SPARC64 V processor detects a correctable error in the extended UPA  
incoming data, the processor corrects the data and uses it. The restrainable error  
ASI_AFSR.CE_INCOMED is indicated.  
When the processor detects a correctable error in the outgoing data to the extended  
UPA data bus before the data transfer occurs, it corrects the error and sends the  
corrected data to the extended UPA data bus. If the correctable error is also detected  
in the data in the U2 cache, the processor corrects the source data in the U2 cache,  
too. The error is not reported to software.  
Uncorrectable Error in Incoming Data from Extended UPA  
Data Bus  
At the time data is received, the SPARC64 V processor handles UEs in data coming  
from the extended UPA data bus, as follows:  
Marked UE in incoming data from the extended UPA data bus. When the  
processor detects a marked UE in such data, the processor transfers that data to  
the destination register or cache without modification. The error is not reported to  
software when the marked UE is received at the extended UPA data bus interface.  
Raw UE in incoming data from the extended UPA data bus. When the processor  
detects a raw UE in such data, the processor applies error marking to that data.  
The processor changes the data to marked UE with ERROR_MARK_ID= 0,  
indicating a memory system error, and then transfers the marked UE data to the  
destination register or cache.  
If the error marking is applied to incoming cacheable data, the restrainable error  
ASI_AFSR.UE_RAW_L2$FILL is indicated. If the error marking is applied to incoming  
noncacheable data, the error is not reported to software at the time of error  
marking.  
Note The destination register or cache always receives the marked UE data for  
both marked UE and raw UE in the data sent via the extended UPA data bus, as  
described above.  
Finally, the treatment of an uncorrectable error (UE) coming from the extended UPA  
bus depends on whether the access was to cacheable or noncacheable data and  
whether the access was an instruction fetch, load, or store instruction, as follows:  
198  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Incoming noncacheable data fetched by an instruction fetch. When a UE is  
detected in such data, an instruction_access_error with marked UE is detected at the  
time the fetched instruction is executed.  
Incoming noncacheable data loaded by a load instruction. When the UE is  
detected in such data, a data_access_error with marked UE is detected at the time  
the load instruction is executed.  
Incoming cacheable data fetched by an instruction fetch. When the UE is  
and the target I1 cache line is filled with the parity error data. The  
instruction_access_error is detected when the fetched instruction is executed, as  
described in Handling of an I1 Cache Data Error on page 190.  
Incoming cacheable data accessed by a load or store instruction. When the UE is  
detected in such data, the target U2 cache line and the target D1 cache line are  
filled with the marked UE data. The data_access_error is detected when the load or  
store instruction (excluding doubleword store) is executed, as described in Marked  
Uncorrectable Error in D1 Cache Data on page 191.  
UE in Outgoing Data to Extended UPA Data Bus  
At the time data is sent to the extended UPA bus, a SPARC64 V processor handles a  
UE in data outgoing data, as follows:  
Marked UE in outgoing data to the extended UPA data bus. When the processor  
detects such data, the processor transfers the data without modification and does  
not report the error to software on the processor.  
Raw UE in outgoing data to the extended UPA data bus. When the processor  
detects such data, the processor applies error marking to the outgoing data. The  
data is changed to marked UE with ERROR_MARK_ID= ASI_EIDR, indicating the  
processor causing error. The marked UE data is then transferred to the destination.  
Note The destination always receives marked UE data for both marked UE and raw  
UE in outgoing data from the processor to the extended UPA data bus, as described  
above.  
Finally, the treatment of an uncorrectable error (UE) in outgoing data to the extended  
UPA bus depends on whether the access was to cacheable or noncacheable data, as  
follows:  
Outgoing noncacheable data with UE detected. When a UE is detected in such  
data, no error is reported on the source processor but error reporting from the  
destination UPA port is expected.  
Outgoing cacheable data with UE detected. When a UE is detected in such data,  
the processor transfers the marked UE data to the destination memory or cache.  
When the marked UE data is used by a processor or a channel, the error will be  
reported to software.  
Release 1.0, 1 July 2002  
F. Chapter P  
Error Handling  
199  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
200  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
Q
This appendix describes and specifies performance monitors that have been  
implemented in the SPARC64 V processor. The appendix contains these sections:  
Performance Monitor Overview on page 201  
Performance Monitor Description on page 203  
Instruction Statistics on page 204  
Trap-Related Statistics on page 206  
MMU Event Counters on page 207  
Cache Event Counters on page 208  
UPA Event Counters on page 210  
Miscellaneous Counters on page 211  
Q.1  
Performance Monitor Overview  
For the definitions of performance counter registers, please refer to Performance  
Control Register (PCR) (ASR16) and Performance Instrumentation Counter (PIC) Register  
(ASI 17) in Chapter 5 of Commonality.  
Q.1.1  
Sample Pseudocodes  
Counter Clear/ Set  
The PICs are read/ write registers (see Performance Instrumentation Counter (PIC)  
Register (ASR 17) on page 22). Writing zero will clear the counter; writing any other  
value will set that value. The following pseudocode procedure clears all PICs  
(assuming privileged access):  
201  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
/* clear pics without altering sl/su values */  
pic_init = 0x0;  
pcr = rd_pcr();  
pcr.ulro = 0x1;  
pcr.ovf = 0x0;  
pcr.ut = 0x0;  
pcr.st = 0x0;  
/* don’t change su/sl on write */  
/* clear overflow bits also */  
/* disable counts for good measure */  
for (i=0; i<=pcr.nc; i++) {  
/* select the pic to be written */  
pcr.sc = i;  
wr_pcr(pcr);  
wr_pic(pic_init);/* clear pic i */  
}
Counter Event Selection and Start  
Counter events are selected through PCR.SCand PCR.SU/ PCR.SLfields. The  
following pseudocode selects events and enables counters (assuming privileged  
access):  
pcr.ut = 0x0;  
pcr.st = 0x0;  
pcr.ulro = 0x0;  
pcr.ovro = 0x1;  
/* initially disable user counts */  
/* initially disable system counts */  
/* make sure read-only disabled */  
/* do not modify overflow bits */  
/* select the events without enabling counters */  
for(i=0; i<=pcr.nc; i++) {  
pcr.sc = i;  
pcr.sl = select an event;  
pcr.su = select an event;  
wr_pcr(pcr);  
}
/* start counting */  
pcr.ut = 0x1;  
pcr.st = 0x1;  
pcr.ulro = 0x1;  
/* for not changing the last su/sl */  
/* resetting of overflow bits can be done here */  
wr_pcr(pcr);  
Counter Stop and Read  
The following pseudocode disables and reads counters (assuming privileged  
access):  
pcr.ut = 0x0;  
pcr.st = 0x0;  
pcr.ulro = 0x1;  
pcr.ovro = 0x1;  
/* disable counts */  
/* disable counts */  
/* enable sl/su read-only */  
/* do not modify overflow bits */  
202  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
for(i=0; i<=pcr.nc; i++) {  
/* assume rest of pcr data has been preserved */  
pcr.sc = i;  
wr_pcr(pcr);  
pic = rd_pic();  
picl[i] = pic.picl;  
picu[i] = pic.picu;  
}
Q.2  
Performance Monitor Description  
The performance monitors can be divided into the following groups:  
1. Instruction statistics  
3. MMU event counters  
4. Cache event counters  
5. UPA transaction event counters  
6. Miscellaneous counters  
Events in Group 1 are counted on commit of the instructions. The instructions  
executed speculatively are not counted. Events in groups 2 through 5 are counted  
when they occur. All event counters implemented in SPARC64 V are listed in  
TABLE Q-1.  
TABLE Q-1  
Events and Encoding of Performance Monitor  
Counter  
Encoding  
picu0  
picl0  
picu1  
picl1  
picu2  
picl2  
picu3  
picl3  
000000 cycle_counts  
000001 instruction_counts  
000010 Reserved  
000011 Reserved  
000100 Reserved  
000101 Reserved  
000110 Reserved  
000111 Reserved  
001000 load_store_instructions  
001001 branch_instructions  
001010 floating_instructions  
001011 impdep2_instructions  
001100 prefetch_instructions  
Release 1.0, 1 July 2002  
F. Chapter Q  
Performance Instrumentation  
203  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
TABLE Q-1  
Events and Encoding of Performance Monitor (Continued)  
Counter  
Encoding  
picu0  
picl0  
picu1  
picl1  
picu2  
picl2  
picu3  
picl3  
001101 Reserved  
001110 Reserved  
001111 Reserved  
010000 Reserved  
010001 Reserved  
010010 Reserved  
010011 Reserved  
010100 Reserved  
010101 Reserved  
010110 trap_all  
trap_int_vector trap_int_level trap_spill  
trap_fill  
trap_trap_inst trap_IMMU  
_miss  
trap_DMMU  
_miss  
010111 Reserved  
100000 Reserved  
write_if_uTLB write_op_uTLB if_r_iu_req_mi op_r_iu_req  
_go _mi_go  
if_wait_all  
op_wait_all  
100001 Reserved  
100010 Reserved  
100011 Reserved  
sx_miss_wait sx_miss_count sx_miss_count_ sx_read_count sx_read_count dvp_count_dm dvp_count_pf  
_pf _dm pf _dm _pf  
110000 sx_miss  
_wait_dm  
sreq_cpi_count sreq_cpb  
_count  
sreq_cpd_count upa_abus_busy upa_data_busy asi_rd_bar  
asi_wr_bar  
110001 sreq_bi  
_count  
110010 Reserved  
110011 Reserved  
111111  
Disabled  
Q.2.1  
Instruction Statistics  
Instruction statistics counters can be monitored by any SUor SLof any PIC.  
Performance Monitor Cycle Count (cycle_counts)  
Counter  
Any  
Encoding  
000000  
2
Counts the cycles when the performance monitor is enabled. This counter is  
similar to the %tickregister but can separate user cycles from system cycles,  
based on PCR.UTand PCR.STselection.  
204  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
Instruction Count (instruction_counts)  
Counter  
Any  
Encoding  
000001  
2
Counts the number of committed instructions. For user or system mode counts,  
this counter is exact. Combined with the cycle_counts, it provides instructions per  
cycle.  
IPC = instruction_counts / cycle_counts  
If Instruction_counts and cycle_counts are both collected for user or system mode,  
IPC in user or system mode can be derived.  
Load/ Store Instruction Count (load_store_instructions)  
Counter  
Any  
Encoding  
001000  
2
Counts the committed load/ store instructions. Also counts atomic load-store  
instructions.  
Branch Instruction Count (branch_instructions)  
Counter  
Any  
Encoding  
001001  
2
Counts the committed branch instructions. Also counts CALL, JMPL, and  
RETURNinstructions.  
Floating Point Instruction Count (floating_instructions)  
Counter  
Any  
Encoding  
001010  
2
Counts the committed floating-point operations (FPop1 and FPop2). Does not  
count Floating-Point Multiply-and-Add instructions.  
Impdep2Instruction Count (impdep2_instructions)  
Counter  
Any  
Encoding  
001011  
2
Counts the committed Floating Multiply-and-Add instructions.  
Release 1.0, 1 July 2002  
F. Chapter Q  
Performance Instrumentation  
205  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Prefetch Instruction Count (prefetch_instructions)  
Counter  
Any  
Encoding  
001100  
2
Counts the committed prefetch instructions.  
Q.2.2  
Trap-Related Statistics  
All Traps Count (trap_all)  
Counter  
picu0  
010110  
Encoding  
2
Counts all trap events. The value is equivalent to the sum of type-specific traps  
counters.  
Interrupt Vector Trap Count (trap_int_vector)  
Counter  
picl0  
010110  
Encoding  
2
Counts the occurrences of interrupt_vector_trap.  
Level Interrupt Trap Count (trap_int_level)  
Counter  
picu1  
010110  
Encoding  
2
Counts the occurrences of interrupt_level_n.  
Spill Trap Count (trap_spill)  
Counter  
picl1  
010110  
Encoding  
2
Counts the occurrences of spill_n_normal, spill_n_other.  
Fill Trap Count (trap_fill)  
Counter  
picu2  
010110  
Encoding  
2
Count the occurrences of fill_n_normal, fill_n_other.  
206  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
Software Instruction Trap (trap_trap_inst)  
Counter  
picl2  
010110  
Encoding  
2
Counts the occurrences of Tcc instructions.  
Instruction MMU Miss Trap (trap_IMMU_miss)  
Counter  
picu3  
010110  
Encoding  
2
Counts the occurrences of fast_instruction_access_MMU_miss.  
Data MMU Miss Trap (trap_DMMU_miss)  
Counter  
picl3  
010110  
Encoding  
2
Counts the occurrences of fast_data_instruction_access_MMU_miss.  
Q.2.3  
MMU Event Counters  
Instruction uTLB Miss (write_if_uTLB)  
Counter  
picu1  
Encoding  
100000  
2
Counts the occurrences of instruction uTLB misses.  
Data uTLB Miss (write_op_uTLB)  
Counter  
picl1  
Encoding  
100000  
2
Counts the occurrences of data uTLB misses.  
Note Occurrences of main TLB misses are counted by trap_IMMU_miss/  
trap_DMMU_miss.  
Release 1.0, 1 July 2002  
F. Chapter Q  
Performance Instrumentation  
207  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Q.2.4  
Cache Event Counters  
I1 Cache Miss Count (if_r_iu_req_mi_go)  
Counter  
picu2  
Encoding  
100000  
2
Counts the occurrences of I1 cache misses.  
D1 Cache Miss Count (op_r_iu_req_mi_go)  
Counter  
picl2  
Encoding  
100000  
2
Counts the occurrences of D1 cache misses.  
I1 Cache Miss Latency (if_wait_all)  
Counter  
picu3  
Encoding  
100000  
2
Counts the total latency of I1 cache misses.  
D1 Cache Miss Latency (op_wait_all)  
Counter  
picl3  
Encoding  
100000  
2
Counts the total latency of D1 cache misses.  
L2 Cache Miss Wait Cycle by Demand Access  
(sx_miss_wait_dm)  
Counter  
picu0  
110000  
Encoding  
2
Counts the number of cycles from the occurrence of an L2 cache miss to data  
returned, caused by demand access.  
L2 Cache Miss Wait Cycle by Prefetch (sx_miss_wait_pf)  
Counter  
picl0  
110000  
Encoding  
2
Counts the number of cycles from the occurrence of an L2 cache miss to data  
returned, caused by both software prefetch and hardware prefetch access.  
208  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
L2 Cache Miss Count by Demand Access (sx_miss_count_dm)  
Counter  
picu1  
110000  
Encoding  
2
Counts the occurrences of L2 cache miss by demand access.  
L2 Cache Miss Count by Prefetch (sx_miss_count_pf)  
Counter  
picl1  
110000  
Encoding  
2
Counts the occurrences of L2 cache miss by both software prefetch and  
hardware prefetch access.  
L2 Cache Reference by Demand Access (sx_read_count_dm)  
Counter  
picu2  
110000  
Encoding  
2
Counts L2 cache references by demand read access.  
L2 Cache Reference by Prefetch (sx_read_count_pf)  
Counter  
picl2  
110000  
Encoding  
2
Counts L2 cache references by both software prefetch and hardware prefetch  
access.  
DVP Count by Demand Miss (dvp_count_dm)  
Counter  
picu3  
110000  
Encoding  
2
Counts the occurrences of L2 cache miss by demand, with writeback request.  
DVP Count by Prefetch Miss (dvp_count_pf)  
Counter  
picl3  
110000  
Encoding  
2
Counts the occurrences of L2 cache miss by both software prefetch and  
hardware prefetch, with writeback request.  
Release 1.0, 1 July 2002  
F. Chapter Q  
Performance Instrumentation  
209  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
Q.2.5  
UPA Event Counters  
UPA event counters count the number of S_REQ_xxx requests received by a CPU in  
a given time.  
INV Receive Count (sreq_bi_count)  
Counter  
picu0  
110001  
Encoding  
2
Counts the number of S_INV_REQpackets received.  
CPI Receive Count (sreq_cpi_count)  
Counter  
picl0  
110001  
Encoding  
2
Counts the number of S_CPI_REQpackets received.  
CPB Receive Count (sreq_cpb_count)  
Counter  
picu1  
110001  
Encoding  
2
Counts the number of S_CPB_REQpackets received.  
CPD Receive Count (sreq_cpd_count)  
Counter  
picl1  
110001  
Encoding  
2
Counts the number of S_CPD_REQpackets received.  
UPA Address Bus Busy Cycle (upa_abus_busy)  
Counter  
picu2  
110001  
Encoding  
2
Counts the number of bus-busy cycles of the UPA address bus, in units of UPA  
bus clocks, not in units of CPU clocks.  
UPA Data Bus Busy Cycle (upa_data_busy)  
Counter  
picl2  
110001  
Encoding  
2
Counts the number of bus-busy cycles of the UPA data bus, in units of UPA bus  
clocks, not in units of CPU clocks.  
210  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
Q.2.6  
Miscellaneous Counters  
Barrier-Assist ASI Read Count (asi_rd_bar)  
Counter  
picu3  
110001  
Encoding  
2
Counts the number of read accesses to the barrier-assist ASI registers.  
Barrier-Assist ASI Write Count (asi_wr_bar)  
Counter  
picl3  
110001  
Encoding  
2
Counts the number of write accesses to the barrier-assist ASI registers.  
Release 1.0, 1 July 2002  
F. Chapter Q  
Performance Instrumentation  
211  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
212  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
R
This chapter describes the programmers model of the UPA interface of the  
SPARC64 V. The registers for the UPA interface and the access method for those  
registers are described. The appendix contains the following sections:  
Mapping of the CPUs UPA Port Slave Area on page 213  
UPA PortID Register on page 214  
UPA Config Register on page 215  
R.1  
Mapping of the CPUs UPA Port Slave  
Area  
TABLE R-1 shows the mapping of the CPUs UPA port slave area.  
TABLE R-1 CPUs UPA Port Slave Area Mapping  
Relative Address  
(Hex)  
Length  
Possible Access  
Contents  
0 0000 0000  
8
Slave read from other  
UPA port  
UPA PortID Register; defined in  
Section R.2.  
0 0000 0008  
--  
None  
Nothing. Write is ignored and  
undefined value is read.  
~ 1 FFFF FFFF  
213  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R.2  
UPA PortID Register  
The UPA PortID Register is a standard read-only register that accessible by a slave  
read from another UPA port. This register is located at word address 0016 in the slave  
physical address of the UPA port. This register cannot be read or written by ASI  
instructions.  
The UPA PortID Register is illustrated below and described in TABLE R-2.  
FC  
Reserved SREQ_S ECC Not ONE_READ PINT_RDQ PREQ_DQ PREQ_RQ  
UPACAP  
Reserved  
16  
Valid  
63  
56 55  
36  
35  
34  
33  
32  
31 30  
25 24  
21 20  
16 15  
0
TABLE R-2 UPA PortID Register Fields  
Bit  
Field  
Description  
63:56  
55:36  
35  
FC  
Value = FC  
16  
16  
Reserved. Read as 0.  
SREQ_S  
Encodes the SREQ outstanding size as a unit of four. Set to 1,  
indicating maximum of four outstanding SREQs.  
34  
ECC  
ECCNotValid. Signifies that this UPA port does not support ECC.  
Set to 0.  
33  
ONE  
ONE_READ. Signifies that this UPA port supports only one  
outstanding slave read P_REQ transaction at a time. Set to 0.  
32:31  
PINT_RDQ  
PINT_RDQ<1:0>. Encodes the size of the PINT_RQ and PINT_DQ  
queues. Specifies the number of incoming P_INT_REQ requests  
that the slave port can receive. Specifies the number of 64-byte  
interrupt datums the UPA slave port can receive. Set to 1 since only  
one interrupt transaction can be outstanding to UPC at a time.  
30:25  
24:21  
PREQ_DQ  
PREQ_RQ  
PREQ_DQ<5:0>. Encodes the size of PREQ_DQ queue. Specifies the  
number of incoming quadwords the UPA slave port can receive in  
its P_REQ write data queue. Set to 0, since incoming slave data  
writes are not supported by UPC.  
PREQ_RQ<3:0>. Encodes the size of PREQ_RQ queue. Specifies the  
number of incoming P_REQ transaction request packets the UPA  
slave can receive. Set to 1, since only one incoming P_REQ to the  
UPC can be outstanding at a time.  
214  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
TABLE R-2 UPA PortID Register Fields (Continued)  
Bit  
Field  
Description  
20:16  
UPACAP  
UPACAP<4:0>. Indicates the UPA module capability type, as  
follows:  
UPACAP<4> Set; CPU is an interrupt handler.  
UPACAP<3> Set; CPU is an interrupter.  
UPACAP<2> Clear; CPU does not use UPA Slave_Int_L signal.  
UPACAP<1> Set; CPU is a cache master.  
UPACAP<0> Set; CPU has a master interface.  
R.3  
UPA Config Register  
The UPA Config Register is an implementation-specific ASI read-only register. This  
register is accessible in the ASI 4A16 space from the host processor and cannot be  
accessed for a UPA slave read.  
[1]  
[2]  
Register Name:  
ASI:  
ASI_UPA_CONFIGURATION_REGISTER  
4A  
0
16  
[3]  
[4]  
[5]  
VA:  
RW  
Supervisor read, a write is ignored.  
Data  
Bits 16:0 and bit 22 are connected to bits 32:16 and bit 35 of the UPA_PortId register,  
respectively. Bits 21:17 are connected to the P_UPA_PORT_ID 4:0 external pins. The  
UPA Config Register is illustrated below and described in TABLE R-3.  
Reserved WB_S WRI_ INT_S Reserved UC_S Reserved AM MCAP Reserved CLK_MODE PCON  
UPC_ MID  
CAP2  
UPC_CAP  
S
63  
62 61 59 58 57 56 55 54  
46 45 43 42 41 40 39 38 35  
34  
33  
30 29  
23 22 21 17 16  
0
TABLE R-3  
UPA Config Register Description  
Bits  
Field  
Description  
63:62  
61:59  
Reserved. Read as 0.  
WB_S  
Specify the size of maximum outstanding writeback (RDx with DVP) as follows.  
000 :  
1
2
4
8
2
001 :  
2
010 :  
2
011 :  
2
100 111 : 8 but should not be specified for the extension.  
2
2
Release 1.0, 1 July 2002  
F. Chapter R  
UPA Programmers Model  
215  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
TABLE R-3  
UPA Config Register Description (Continued)  
Bits  
Field  
Description  
58:57  
WRI_S  
Specify the size of maximum outstanding WRI packet as follows.  
00 :  
1
2
4
8
2
01 :  
2
10 :  
2
11 :  
2
56:55  
INT_S  
Specify the size of maximum outstanding INT packet as follows.  
00 :  
1
2
01 :  
8
2
10 11 :  
8, but should not be specified for the extension.  
2
2
54:46  
45:43  
Reserved. Read as 0.  
UC_S  
U2 cache size:  
010 :  
2 MB  
2
42:41  
40:39  
Reserved. Read as 0.  
AM  
Address Mode. Specifies the physical address size of UPA address field.  
00 :  
41 bits  
43 bits  
Reserved  
2
01 :  
2
10 11 :  
2
2
38:35  
MCAP  
The value set by OPSR is indicated. Consult the system document for the meaning and  
encoding of this field.  
34  
Reserved. Read as 0.  
33:30  
CLK_MODE  
Specify the ratio between CPU clock and UPAclock.  
0000 0011 : Reserved  
2
2
0100 :  
4:1  
2
0101 :  
5:1  
2
0110 :  
6:1  
2
0111 :  
7:1  
2
1000 :  
8:1  
2
1001 :  
9:1  
2
1010 :  
10:1  
11:1  
12:1  
13:1  
14:1  
15:1  
2
1011 :  
2
1100 :  
2
1101 :  
2
1110 :  
2
1111 :  
2
216  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
TABLE R-3  
UPA Config Register Description (Continued)  
Bits  
Field  
Description  
29:23  
PCON  
Processor Configuration. Separated into PCON<6:4> and PCON<3:0>.  
PCON<6:4> (UPA_CONFIG<29:27>) represents the size of class 1 request queue in the  
System Controller (SC).  
000 :  
1
2
001 010 : 1, but should not be specified for the extension  
2
2
011 :  
4
2
100 110 : 4, but should not be specified for the extension  
2
2
111 :  
8
2
PCON<3:0> (UPA_CONFIG<26:23> represents the size of class 0 request queue in the  
System Controller (SC).  
0000 :  
1
2
0001 0010 : 1, but should not be specified for the extension  
2
2
0011 :  
4
2
0100 1110 : 4, but should not be specified for the extension  
2
2
1111 :  
16  
2
22  
UPC_CAP2  
MID  
This field is connected to the UPAPort ID register bit 35, SREQ_S field  
21:17  
Module (Processor) ID register. Identifies the unique processor ID. This value is loaded  
from the UPA_MasterID<4:0> pins.  
16:0  
UPC_CAP  
This field is a composite of the following fields in the UPAPort ID register.  
16:15  
14:9  
8:5  
PINT_RDQ  
PREQ_DQ  
PREQ_RQ  
UPA_CAP  
4:0  
Release 1.0, 1 July 2002  
F. Chapter R  
UPA Programmers Model  
217  
Download from Www.Somanuals.com. All Manuals Search And Download.  
218  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.APPENDIX  
S
Summary of Differences between  
SPARC64 V and UltraSPARC-III  
The following table summarizes differences between SPARC64 V and UltraSPARC-III  
ISAs. This list is a summary, not an exhaustive list.  
TABLE T-1  
Feature  
SPARC64 V and UltraSPARC-III Differences (1 of 3)  
SPARC64 V  
UltraSPARC-  
III Section  
SPARC64 V  
Page  
UltraSPARC-III  
MMU  
architecture  
SPARC64 V supports an  
85  
UltraSPARC-III implements a flat F-1  
extended version of UltraSPARC  
IIs MMU architecture.  
UltraSPARC II-based MMU model.  
TLBs are split between instruction  
and data. Each side has a 2-level  
TLB hierarchy.  
TTE format  
SPARC64 V supports a 43-bit  
physical address. In addition, the  
CV bit is ignored and unaliasing is  
maintained by hardware.  
86  
UltraSPARC-III supports a 43-bit F-2  
physical address. Millennium  
will support a 47-bit PA.  
TLB locking  
mechanism  
Lock entries are supported in both 86  
fully-associative ITLB (fITLB) and  
fully-associative DTLB (fDTLB), 32-  
entry each.  
Lock entries supported only in  
the 16-entry fully-associative  
TLBs.  
F-1, F-2  
TSB hashing  
algorithm  
Direct hashing with contents of the 88  
Context-ID register (13-bit). Has a  
UltraSPARC I/ II compatibility  
mode.  
Hash field in pointer extension is F. 10.7  
used for hashing address. Setting  
0 in the field maintains  
compatibility with UltraSPARC  
I/ II.  
Floating-point  
Multiply-ADD  
SPARC64 V implements these  
instructions in IMPDEP2.  
50  
Does not support FMA  
instructions.  
219  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
TABLE T-1  
Feature  
SPARC64 V and UltraSPARC-III Differences (2 of 3)  
SPARC64 V  
UltraSPARC-  
III Section  
SPARC64 V  
Page  
UltraSPARC-III  
Floating-point  
subnormal  
handling  
In general, SPARC64 V does not  
handle most subnormal operands  
and results in hardware. However,  
its handling differs from that of  
UltraSPARC-III.  
65  
In general, UltraSPARC-III does B.6.1  
not handle most subnormal  
operands and results in  
hardware. However, its handling  
differs from that of SPARC64 V.  
Block LD/ ST  
SPARC64 V maintains register  
47  
57  
UltraSPARC-III does not  
A.4  
implementation dependency between block load/  
store and other instructions, but  
hardware memory order constraint  
is less than TSO.  
necessarily preserve memory or  
register dependency ordering in  
block load/ store operations.  
PREFETCH(A)  
Prefetch-invalidate is not  
Implements prefetch-invalidate  
A.49.1  
implementation implementedSPARC64 V does  
(fcn = 16).  
not implement a P-cache.  
fcn = 20-23 does not cause a  
trap. Equivalent to fcn = 0-3.  
Prefetch with fcn = 20-23 causes a  
trap on mDTLB miss.  
Data cache  
flushing  
Because SPARC64 V supports  
unaliasing by hardware, a flush of  
data cache is not needed.  
Because the data cache uses one 1.4.4, M.2  
virtual address bit for indexing, a  
displacement flushing algorithm  
or a cache diagnostic write is  
required when a virtual address  
alias is created.  
TPC/ TNPC state Both TPC and TNPC values are  
after power-on undefined after a power-on reset.  
reset  
141  
TPC<5:0> is zero after any reset C.2.5  
trap. TNPC will be equal to  
TNPC+4.  
W-cache  
SPARC64 V does not support a W- 117  
cache.  
ASIs 38 3B provide  
diagnostic access to the W-cache.  
L.3.2  
16  
16  
P-cache  
SPARC64 V does not support a  
P-cache.  
117  
ASIs 30 33 provide diagnostic L.3.2  
access to the P-cache.  
16  
16  
UPA  
Configuration  
ASI  
SPARC64 V uses ASI 4A as the  
UPA configuration register.  
215  
UltraSPARC-III does not support R.2  
UPA. Fireplane configuration  
16  
register is assigned in ASI 4A  
.
16  
SRAM test init  
D-cache  
Not supported.  
Not supported.  
ASI 40 : not defined in manual.  
16  
ASIs 42 through 47 support  
L.3.2  
16  
16  
data cache diagnostic access.  
ASIs 4B , 4E , 74 , 75 , 76 ,  
16  
E-cache  
ASIs 6B and 6C support E-  
cache diagnostic access.  
130  
174  
L.3.2  
P.4.2  
16  
16  
16  
16  
16  
16  
and 7E support control over the  
16  
E-cache.  
ASI_AFSR  
Many differences.  
Many differences.  
220  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
TABLE T-1  
SPARC64 V and UltraSPARC-III Differences (3 of 3)  
SPARC64 V  
Page  
UltraSPARC-  
III Section  
Feature  
SPARC64 V  
UltraSPARC-III  
Error status  
ASI 4C / 08 (ASI_UGESR):  
165  
Not implemented.  
16  
16  
SPARC64 V implements an error  
status register to indicate where an  
error was detected.  
Error Control  
Register  
ASI 4C / 10 (ASI_ECR):  
161  
Not implemented.  
16  
16  
SPARC64 V implements a control  
register to signal/ suppress a trap  
when an error was detected.  
ASI_AFAR  
Multiple registers (VA addressed) 177  
for L1D, L2. 43-bit PA.  
Single register, multiple use.  
43-bit PA.  
P. 4. 2  
?
ASI device and ASI 53 : provides an identification 119  
ASI 53 : ASI_SERIAL_ID  
16  
16  
serial ID  
code for each processor.  
I/ D SFSR  
Many differences.  
97  
Many differences.  
Not implemented.  
Chapter 8  
Error  
ASI 6E : SPARC64 V implements 161  
16  
Identification  
an error ID register. Used to encode  
Register (EIDR) CPU-ID into error marking when  
an unrecoverable ECC error occurs.  
I-cache and  
Branch  
Not supported.  
ASIs 66 through 68 and ASI V. 4 , V. 5  
16 16  
6F support instruction cache  
16  
Prediction Array  
and branch prediction array  
diagnostic access.  
MCU Control  
Register  
SPARC64 V does not have an  
MCU.  
ASI 72 : MCU Control Register. App. U  
16  
Module ID bits Implements 5-bit IDs.  
136  
Implements 10-bit IDs.  
R.2  
Performance  
counters  
SPARC64 V implements a different 203  
set of performance counters than  
those of UltraSPARC-III.  
UltraSPARC-III implements a  
different set of performance  
counters than those of  
SPARC64 V.  
App. Q  
Dispatch  
SPARC64 V does not have the DCR. 22  
UltraSPARC-III defines the DCR. 5.2.11  
Control Register  
(DCR)  
Version Register For SPARC64 V:  
20  
For UltraSPARC-III:  
manuf = 0017  
C.3.4  
(VER)  
manuf = 0004  
impl = 5,  
,
,
16  
16  
impl = 0014  
,
16  
mask = <mask revision number>,  
maxtl = 5,  
mask = <mask revision number>,  
maxtl = 5,  
maxwin = 7.  
maxwin = 7.  
Watchdog reset Supports watchdog_reset trap. By  
140  
Supports watchdog_reset trap.  
O.1  
trap  
setting OPSR, watchdog_reset trap  
is not signalled and CPU stays in  
error_state.  
Release 1.0, 1 July 2002  
F. Chapter S  
Summary of Differences between SPARC64 V and UltraSPARC-III  
221  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
222  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
Bibliography  
General References  
Please refer to Bibliography in Commonality.  
223  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
224  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
F.CHAPTER  
A
A_UGE  
categories152  
error detection action155  
error detection mask154  
specification of151  
address mask (AM) field of PSTATE register49, 53  
address space identifier (ASI)  
complete list117  
ADE  
conditions causing168  
end-method170  
software handling171  
state transition169  
AFSR  
FTYPE field120, 121  
ASI_AFAR221  
ASI_AFAR_D1166  
ASI_AFAR_D1 register186  
ASI_AFAR_U2166, 178  
CONTENTS179  
ASI_AFAR_U2 register186  
ASI_AFSR174, 220  
ASI_ASYNC_FAULT_ADDR_D1153, 177  
ASI_ASYNC_FAULT_ADDR_U2153, 178  
ASI_ASYNC_FAULT_STATUS153, 174  
ASI_ATOMIC_QUAD_LDD_PHYS54, 104, 117  
ASI_ATOMIC_QUAD_LDD_PHYS_LITTLE54, 104, 117  
ASI_BSTW0124  
ASI_BSTW1124  
225  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
ASI_C_BSTW0123  
ASI_C_BSTW1123  
ASI_C_LBSTWBUSY123  
ASI_C_LBSYR0122  
ASI_C_LBSYR1122  
ASI_DCU_CONTROL_REGISTER118  
ASI_DCUCR118  
ASI_DMMU_SFAR153  
ASI_DMMU_SFSR153  
ASI_DMMU_TAG_ACCESS166  
ASI_DMMU_TAG_TARGET166  
ASI_DMMU_TSB_64KB_PTR166  
ASI_DMMU_TSB_8KB_PTR166  
ASI_DMMU_TSB_BASE166  
ASI_DMMU_TSB_DIRECT_PTR166  
ASI_DMMU_TSB_NEXT166  
ASI_DMMU_TSB_PEXT166  
ASI_DMMU_TSB_PTR184  
ASI_DMMU_TSB_SEXT166  
ASI_DTLB_DATA_ACCESS195  
ASI_DTLB_TAG_ACCESS195  
ASI_ECR161  
UGE_HANDLER155  
ASI_EIDR153, 161, 166, 187, 191, 221  
ASI_ERROR_CONTROL153, 161  
UGE_HANDLER168, 189  
update after ADE170  
WEAK_ED150, 189  
ASI_FLUSH_L1I126, 129  
ASI_IESR118  
ASI_IMMU_SFSR153  
ASI_IMMU_TAG_ACCESS166  
ASI_IMMU_TAG_TARGET166  
ASI_IMMU_TSB_64KB_PTR166  
ASI_IMMU_TSB_8KB_PTR166  
ASI_IMMU_TSB_BASE166  
ASI_IMMU_TSB_PEXT166  
ASI_IMMU_TSB_SEXT166  
ASI_INT_ERROR_CONTROL118  
ASI_INT_ERROR_RECOVERY118  
ASI_INT_ERROR_STATUS118  
ASI_INTR_DISPATCH_STATUS134  
ASI_INTR_DISPATCH_W166  
ASI_INTR_R135, 166  
ASI_INTR_RECEIVE135  
226  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
ASI_INTR_W133, 134  
ASI_ITLB_DATA_ACCESS196  
ASI_ITLB_TAG_ACCESS196  
ASI_L2_CTRL130  
ASI_L2_DIAG_TAG131  
ASI_L2_DIAG_TAG_READ_REG131  
ASI_L3_DIAG_DATA0_REG118  
ASI_L3_DIAG_DATA1_REG118  
ASI_LBSYR0124  
ASI_LBSYR1124  
ASI_MCNTL92  
JPS1_TSBP88  
ASI_MEMORY_CONTROL_REG118  
ASI_NUCLEUS57, 98, 101  
ASI_NUCLEUS_LITTLE57, 101  
ASI_PA_WATCH_POINT166  
ASI_PARALLEL_BARRIER166  
ASI_PHYS_BYPASS_EC_WITH_E_BIT127  
ASI_PHYS_BYPASS_WITH_EBIT26  
ASI_PRIMARY57, 98, 101  
ASI_PRIMARY_AS_IF_USER57  
ASI_PRIMARY_AS_IF_USER_LITTLE57  
ASI_PRIMARY_CONTEXT166  
ASI_PRIMARY_LITTLE57, 101  
ASI_SCRATCH120  
ASI_SECONDARY57  
ASI_SECONDARY_AS_IF_USER57  
ASI_SECONDARY_AS_IF_USER_LITTLE57  
ASI_SECONDARY_CONTEXT166  
ASI_SERIAL_ID119  
ASI_STCHG_ERROR_INFO153, 164  
ASI_UGESR165  
IUG_DTLB195  
ASI_UPA_CONFIGURATION_REGISTER118  
ASI_URGENT_ERROR_STATUS153, 165  
ASI_VA_WATCH_POINT166  
ASRs20  
async_data_error exception25, 38, 46, 151, 152, 168  
ASYNC_FAULT_STATUS register186  
asynchronous error17  
atomic  
load quadword54  
load-store instructions  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
227  
Download from Www.Somanuals.com. All Manuals Search And Download.  
compare and swap37  
B
barrier assist121  
ASI read/ write accesses, counting211  
parallel187, 188  
block  
block store with commit120  
load instructions120, 220  
store instructions120, 220  
blocked instructions10  
branch history buffer2  
branch instructions24  
BSTW busy status register123  
BSTW control register123  
bus-busy cycle count210  
bypass attribute bits104  
C
cache  
coherence128, 140  
data  
cache tag error handling188189  
characteristics127  
data error detection190  
description7  
flushing220  
modification125  
protection190  
uncorrectable data error191  
way reduction194  
error protection3  
event counting208209  
instruction  
characteristics126  
data protection190  
description7  
error handling190  
fetched9  
flushing/ invalidation129  
invalidation125  
way reduction193  
level-1  
characteristics125  
tag 2 read130  
228  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
level-2  
characteristics125  
control register130  
tag read130  
unified127  
use2  
snooping140  
synchronizing42  
unified  
characteristics127  
description8  
CALL instruction24, 29, 30, 53  
CANRESTORE register166  
CANSAVE register166  
CASA instruction37, 102  
CASXA instruction37, 102  
catastrophic_error exception37  
CE  
correction157  
in D1 cache data190  
detection175, 197  
effect on CPU152  
permanent180  
in U2 cache tag189  
CLEANWIN register75, 166  
cmask field56  
committed, definition9  
compare and swap instructions37  
completed, definition9  
context ID hashing93  
counter  
disabling/ reading202  
enabling202  
instruction statistics204  
overflow (in PIC)22  
trap-related statistics206  
CPopn instructions (SPARC V8)49  
current exception (cexc) field of FSR register18  
CWP register75, 166  
D
DAE  
error detection action155, 162  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
229  
Download from Www.Somanuals.com. All Manuals Search And Download.  
error detection mask154  
reporting151  
data  
cacheable  
doubleword error marking158  
error marking157  
error protection158  
corruption167  
prefetch25  
data_access_error exception55, 90, 101, 103, 130, 152, 199  
data_access_exception exception54, 90, 102, 103, 120, 129  
data_access_MMU_miss exception46  
data_access_protection exception46, 55  
data_breakpoint exception72  
DCR  
differences from UltraSPARC III221  
error handling183  
nonprivileged access22  
DCU_CONTROL register186  
DCUCR  
access data format23  
CP (cacheability) field23  
CV (cacheability) field23  
data watchpoint masks57  
DM (DMMU enable) field23  
field setting after POR23  
IC (instruction cache enable) field24  
IM field126, 140  
IMI (IMMU enable) field23  
PM (PA data watchpoint mask) field23  
PR/ PW (PA watchpoint enable) fields23  
updating140  
WEAK_SPCA field23  
deferred trap37  
deferred-trap queue  
floating-point (FQ)17, 24  
integer unit (IU)11, 17, 24, 71  
denormal  
operands18  
results18  
DG_L1$L2$STLB error194  
DG_L1$U2$STLB error195  
230  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
dispatch (instruction)9  
disrupting traps17, 37  
distribution  
nonspeculative10  
speculative11  
DMMU  
access bypassing104  
disabled91  
internal register (ASI_MCNTL)92  
registers accessed92  
Synchronous Fault Status Register97  
Tag Access Register90  
DMMU_DEMAP register187  
DMMU_PA_WATCHPOINT register187  
DMMU_SFAR register186  
DMMU_SFSR register186  
DMMU_TAG_ACCESS register187  
DMMU_TAG_TARGET register186  
DMMU_TSB_64KB_PTR register187  
DMMU_TSB_8KB_PTR register187  
DMMU_TSB_BASE register186  
DMMU_TSB_DIRECT_PTR register187  
DMMU_TSB_NEXT register187  
DMMU_TSB_PEXT register187  
DSFAR  
on JMPL instruction error53  
update during MMU trap90  
DSFSR  
bit description100  
differences from UltraSPARC III221  
format97  
FT field102, 103, 129  
on JMPL instruction error53  
UE field101  
update during MMU trap90  
update policy103  
DTLB_DATA_ACCESS register187  
DTLB_DATA_IN register187  
DTLB_TAG_READ register187  
E
E bit of PTE26  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
231  
Download from Www.Somanuals.com. All Manuals Search And Download.  
ECC_error exception46, 153, 155, 180  
ee_opsr164  
ee_second_watch_dog_timeout164  
ee_sir_in_maxtl164  
ee_trap_addr_uncorrected_error164  
ee_trap_in_maxtl164  
ee_watch_dog_timeout_in_maxtl164  
error  
asynchronous17  
categories149  
classification3  
correctable152, 189  
correction, for single-bit errors3  
D1 cache data190  
error_state transition164  
fatal149  
handling  
ASI errors186  
ASR errors182  
most registers181  
isolation3  
restrainable152  
source identification159  
transition150  
U2 cache tag189  
uncorrectable189  
D1 cache data191  
without direct damage152  
urgent150  
ERROR_CONTROL register186  
ERROR_MARK_ID158, 159, 191  
error_state36, 72, 138, 140, 155, 169  
error_state transition error164  
exceptions  
catastrophic37  
data_access_error55  
data_access_protection55  
data_breakpoint72  
fp_exception_ieee_75453, 65  
fp_exception_other62, 79  
illegal_instruction30, 53, 57, 70, 71, 74  
LDDF_mem_address_not_aligned80, 120  
mem_address_not_aligned80, 120  
persistence38  
232  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
privileged_action79  
statistics monitoring206207  
unfinished_FPop62, 65  
execute_state140  
executed, definition9  
execution  
EU (execution unit)6  
out-of-order25  
speculative25  
externally_initiated_reset (XIR)138  
F
fast_data_access_MMU_miss exception90  
fast_data_instruction_access_MMU_miss exception207  
fatal error  
behavior of CPU150  
cache tag189  
definition149  
detection163  
types164  
U2 cache tag189  
fDTLB77, 85, 90, 91  
fe_other164  
fe_u2tag_uncorrected_error164  
fe_upa_addr_uncorrected_error164  
fetched, definition9  
fill_n_normal exception206  
fill_n_other exception206  
finished, definition9  
fITLB77, 85, 90  
floating-point  
deferred-trap queue (FQ)17, 24  
denormal operands18  
denormal results18  
operate (FPop) instructions18  
trap types  
fp_disabled48, 53, 57, 74  
unimplemented_FPop70  
FLUSH instruction70, 73  
flushing data caches220  
FMADD instruction30, 45  
FMADDd instruction50  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
233  
Download from Www.Somanuals.com. All Manuals Search And Download.  
FMADDs instruction50  
FMSUB instruction30, 45  
FMSUBd instruction50  
FMSUBs instruction50  
FNMADD instruction45  
FNMADDd instruction50  
FNMSUB instruction45  
FNMSUBd instruction50  
FNMSUBs instruction50  
formats, instruction28  
fp_disabled exception30, 48, 53, 57, 74  
fp_exception_ieee_754 exception53, 65  
fp_exception_other exception46, 62, 79  
FQ17, 24  
FSR  
aexc field19  
cexc field18, 19  
conformance19  
NS field62  
TEM field19  
VER field18  
fTLB78, 87, 94  
G
GSR register183  
H
high-speed synchronization121  
I
I_UGE  
definition151  
error detection action155, 162  
error detection mask154  
type150  
IAE  
error detection action155  
error detection mask154  
reporting151  
IEEE Std 754-198518, 61  
IIU_INST_TRAP register46, 187  
illegal_instruction exception24, 30, 53, 57, 70, 71, 74  
234  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
IMMU  
internal register (ASI_MCNTL)92  
registers accessed92  
Synchronous Fault Status Register97  
IMMU_DEMAP register186  
IMMU_SFSR register186  
IMMU_TAG_ACCESS register186  
IMMU_TAG_TARGET register186  
IMMU_TSB_64KB_PTR register186  
IMMU_TSB_8KB_PTR register186  
IMMU_TSB_BASE register186  
IMMU_TSB_NEXT register186  
IMMU_TSB_PEXT register186  
IMPDEP1 instruction30, 49  
IMPDEP2B instruction28, 50  
IMPDEPn instructions49, 50  
impl field of VER register18  
implementation number (impl) field of VER register71  
initiated, definition9  
instruction  
execution25  
formats28  
prefetch26  
instruction fields, reserved45  
instruction_access_error exception46, 90, 98, 100, 130, 152, 196, 199  
instruction_access_exception exception46, 90, 99, 100  
instruction_access_MMU_miss exception46  
instructions  
atomic load-store37  
blocked10  
cache manipulation128131  
cacheable126  
committed, definition9  
compare and swap37  
control unit (IU)6  
count, committed instructions205206  
executed, definition9  
fetched, definition9  
fetched, with error190  
finished, definition9  
floating-point operate (FPop)18  
FLUSH73  
IMPDEP274  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
235  
Download from Www.Somanuals.com. All Manuals Search And Download.  
implementation-dependent (IMPDEP2)30  
initiated, definition9  
issued, definition9  
LDDFA80  
prefetch91  
stall10  
statistics counters204  
timing46  
integer unit (IU) deferred-trap queue11, 17, 24, 71  
internal ASI, reference to103  
interrupt  
causing trap17  
dispatch133  
level 1522  
Interrupt Vector Dispatch Register136  
Interrupt Vector Receive Register136  
interrupt_level_n exception206  
interrupt_vector_trap exception38, 206  
INTR_DATA0:7_R register, error handling187  
INTR_DATA0:7_W register, error handling187  
INTR_RECEIVE register186  
I-SFSR  
update during MMU trap90  
ISFSR  
bit description98  
differences from UltraSPARC III221  
format97  
FT field99  
update policy100  
issue unit9  
issued (instruction)9  
issue-stalling instruction  
instructions  
issue-stalling10  
ITLB_DATA_ACCESS register186  
ITLB_DATA_IN register186  
ITLB_TAG_READ register186  
J
JEDEC manufacturer code20  
236  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
JMPL instruction29, 53  
JPS1_TSBP mode93  
JTAG command91, 164, 189  
L
LBSY control register122  
LDD instruction37  
LDDA instruction37, 54, 102, 103  
LDDF_mem_address_not_aligned exception80, 120  
LDDFA instruction80, 120  
LDQF_mem_address_not_aligned exception46  
LDSTUB instruction37, 102  
LDSTUBA instruction102  
LDXA instruction178, 185, 195  
load quadword atomic54  
LoadLoad MEMBAR relationship56  
load-store instructions  
compare and swap37  
D1 cache data errors191  
memory model47  
LoadStore MEMBAR relationship56  
Lookaside MEMBAR relationship56  
M
machine sync10  
MAXTL36, 73, 138, 140  
MEMBAR  
#LoadLoad56  
#LoadStore56  
#Lookaside56  
#MemIssue56  
#StoreLoad56  
#Sync56  
functions56  
in interrupt dispatch134  
instruction56  
partial ordering enforcement56  
membar_mask field56  
memory model  
PSO41  
RMO41  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
237  
Download from Www.Somanuals.com. All Manuals Search And Download.  
store order (STO)75  
TSO41, 42  
MEMORY_CONTROL register186  
mmask field56  
MMU  
disabled91  
event counting207  
exceptions recorded89  
Memory Control Register92  
physical address width86  
registers accessed92  
TLB data access address assignment94  
TLB organization85  
MOESI cache-coherence protocol128  
Multiply Add/ Subtract instructions53  
N
noncacheable access54, 126  
nonleaf routine53  
nonspeculative distribution10  
nonstandard floating-point (NS) field of FSR register18, 71  
nonstandard floating-point mode18, 62  
O
OBP  
facilitating diagnostics126  
notification of error163  
resetting WEAK_ED150  
validating register error handling181  
with urgent error151  
Operating Status Register (OPSR)37, 140, 216, 221  
OTHERWIN register75, 166  
out-of-order execution25  
P
panic process152  
parallel barrier assist187, 188  
parity error  
counting in D1 cache193  
D1 cache tag189  
fDTLB lookup91  
I1 cache data190  
I1 cache tag189  
238  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
partial ordering, specification56  
partial store instruction  
UPA transaction57  
watchpoint exceptions57  
partial store instructions120  
partial store order (PSO) memory model41  
PC register169  
PCR  
accessibility20  
counter events, selection202  
error handling183  
NC field21  
OVF field21  
OVRO field21  
PRIV field20, 58, 59  
SC field21, 202  
SL field202  
ST field204  
SU field202  
UT field204  
performance monitor  
events/ encoding203  
groups203  
pessimistic overflow65  
pessimistic zero64  
PIC register  
clearing201  
counter overflow22  
error handling183  
nonprivileged access22  
OVF field22  
PIL register38  
POR reset155, 161, 163, 174  
resets  
POR178  
power-on reset (POR)  
DCUCR settings23  
implementation dependency72  
RED_state140  
precise traps17, 37  
prefetch  
data25  
instruction26, 91, 220  
variants58  
prefetcha instruction57  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
239  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PRIMARY_CONTEXT register186  
privileged registers19  
privileged_action exception20, 79, 90, 103, 117  
PCR access58, 59  
privileged_opcode exception22  
processor states  
after reset141  
error_state36, 72, 140  
execute_state140  
RED_state36, 140  
program counter (PC) register75  
program order26  
PSTATE register  
AM field29, 49, 53, 75  
IE field134, 135  
MM field42  
PRIV field20, 58, 59  
RED field20, 126, 140, 141  
PTE  
E field26  
Q
quadword-load ASI54  
queues11  
R
RDPCR instruction20, 58  
RDTICK instruction19  
reclaimed status10  
RED_state156, 169  
entry after failure/ reset36  
entry after SIR138  
entry after WDR140  
entry after XIR138  
entry trap17  
processor states140, 141  
restricted environment36  
setting of PSTATE.RED20  
trap vector36  
trap vector address (RSTVaddr)74  
registers  
BSTW busy status123  
BSTW control123  
clean windows (CLEANWIN)75  
240  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
clock-tick (TICK)73  
current window pointer (CWP)75  
Data Cache Unit Control (DCUCR)23  
LBSY control122  
other windows (OTHERWIN)75  
privileged19  
renaming10  
restorable windows (CANRESTORE)75  
relaxed memory order (RMO) memory model41  
reservation station11  
reserved fields in instructions45  
reset  
externally_initiated_reset (XIR)138  
power_on_reset (POR)72  
software_initiated_reset (SIR)138  
WDR146  
resets  
POR155, 161, 163, 174  
WDR155, 163  
restorable windows (CANRESTORE) register75  
restrainable error  
definitions152  
handling  
ASI_AFSR.CE_INCOMED179  
ASI_AFSR.UE_DST_BETO180  
ASI_AFSR.UE_RAW_L2$FILL180  
UE_RAW_D1$INSD180  
software handling179  
types152  
Return Address Stack  
use in JMPL instruction53  
with CALL and JMP instructions30  
return prediction hardware30  
rs3 field of instructions28  
RSTVaddr36, 74, 138, 140  
S
S_CPB_REQ packets received count210  
S_CPD_REQ packets received count210  
S_CPI_REQ packets received count210  
S_INV_REQ packets received count210  
savable windows (CANSAVE) register75  
SAVE instruction53  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
241  
Download from Www.Somanuals.com. All Manuals Search And Download.  
scan  
definition11  
ring11  
sDTLB77, 85, 90  
SECONDARY_CONTEXT register186  
SERIAL_ID register186  
SET_SOFTINT register183  
SHUTDOWN instruction58  
SIR instruction138  
sITLB77, 85, 90  
size field of instructions28  
SOFTINT register38, 135, 166, 183  
speculative  
distribution11  
execution25  
spill_n_normal exception206  
spill_n_other exception206  
stall (instruction)10  
STBAR instruction59  
STCHG_ERROR_INFO register186  
STD instruction37  
STDA instruction37  
STDFA instruction120  
STICK register166, 183  
STICK_COMP register166  
STICK_COMPARE register183  
sTLB78, 87, 94  
store order (STO) memory model75  
store queue7  
StoreStore MEMBAR relationship56  
STQF_mem_address_not_aligned exception46  
STXA instruction  
ASI read method178  
stxa instruction  
ASI designation105  
virtual address designation105  
superscalar11, 25  
SWAP instruction37, 102  
SWAPA instruction102  
sync (machine)11  
Sync MEMBAR relationship56  
synchronizing caches42  
syncing instruction11  
system controller122  
242  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  
T
Tag Access Register96  
Tcc instruction, counting207  
TICK register19, 73  
TICK_COMPARE register183  
TL register138, 140  
TLB  
CP field126  
data  
characteristics77  
in TLB organization85  
data access address95  
index95  
instruction  
characteristics77  
in TLB organization85  
main10, 36  
multiple hit detection86  
replacement algorithm93  
TNP register166  
total store order (TSO) memory model41, 42  
TPC register166  
transition error150  
traps  
deferred37  
disrupting17, 37  
precise17  
TSB  
Base Register97  
Extension Register97  
size97  
TSTATE register  
CWP field19  
error bit in ASI_UCESR register166  
TTE  
CV field126  
differences from UltraSPARC III219  
U
U2 cache  
error handling179, 180  
operation control (SXU)8  
tag error protection189  
uncorrectable data error192  
Release 1.0, 1 July 2002  
F. Chapter  
Index  
243  
Download from Www.Somanuals.com. All Manuals Search And Download.  
way reduction194  
uDTLB10, 85, 90  
UE_RAW_D1$INSD error191  
UE_RAW_L2$FILL error192  
uITLB10, 85, 90  
uncorrectable error152, 167  
unfinished_FPop exception62, 65  
unimplemented_FPop floating-point trap type70  
unimplemented_LDD exception46  
unimplemented_STD exception46  
UPA  
bus error176  
Config Register215  
port slave area213  
PortID register214  
UPA_CONFIGUATION register error handling186  
UPA_XIR_L pin138  
urgent error  
definition150  
types  
A_UGE150  
DAE150  
IAE150  
instruction-obstructing150  
URGENT_ERROR_STATUS register186  
uTLB10, 36, 86  
V
VA_watchpoint exception103  
var field of instructions28  
VER register20, 119, 221  
version (ver) field of FSR register71  
W
watchdog timeout164, 167, 189  
watchdog_reset (WDR)37, 80, 140, 146, 221  
watchpoint exception  
on block load-store48  
on partial store instructions57  
quad-load physical instruction55  
WDR reset155, 163  
writeback cache127  
WRPCR instruction20, 59  
WRPR instruction140, 141  
244  
SPARC JPS1 Implementation Supplement: Fujitsu SPARC64 V Release 1.0, 1 July 2002  
Download from Www.Somanuals.com. All Manuals Search And Download.  

Electro Voice Range P3000RL User Manual
Fortinet Network Card v30 MR7 User Manual
Frymaster Kitchen Entertainment Center KFC 1 SMS User Manual
Furman Sound Music Pedal SPB 8 8E User Manual
Gamber Johnson Laptop Docking Station 7160 0318 01 User Manual
GarrettCom Switch MAGNUM 6KM User Manual
GE Clothes Dryer SE1200 User Manual
GE Monogram Refrigerator 36 User Manual
GE Washer WA5800R User Manual
Giant Bicycle Cycle User Manual