TOSHIBA TMPR4956C

64-Bit TX System RISC
TX49 Family
TMPR4956C
Rev. 1.1
Semiconductor Company
The information contained herein is subject to change without notice. 021023_D
TOSHIBA is continually working to improve the quality and reliability of its products.
Nevertheless, semiconductor devices in general can malfunction or fail due to their inherent
electrical sensitivity and vulnerability to physical stress.
It is the responsibility of the buyer, when utilizing TOSHIBA products, to comply with the
standards of safety in making a safe design for the entire system, and to avoid situations in
which a malfunction or failure of such TOSHIBA products could cause loss of human life,
bodily injury or damage to property.
In developing your designs, please ensure that TOSHIBA products are used within specified
operating ranges as set forth in the most recent TOSHIBA products specifications.
Also, please keep in mind the precautions and conditions set forth in the “Handling Guide for
Semiconductor Devices,” or “TOSHIBA Semiconductor Reliability Handbook” etc. 021023_A
The Toshiba products listed in this document are intended for usage in general electronics
applications (computer, personal equipment, office equipment, measuring equipment, industrial
robotics, domestic appliances, etc.).
These Toshiba products are neither intended nor warranted for usage in equipment that requires
extraordinarily high quality and/or reliability or a malfunction or failure of which may cause
loss of human life or bodily injury (“Unintended Usage”). Unintended Usage include atomic
energy control instruments, airplane or spaceship instruments, transportation instruments,
traffic signal instruments, combustion control instruments, medical instruments, all types of
safety devices, etc. Unintended Usage of Toshiba products listed in this document shall be
made at the customer’s own risk. 021023_B
The products described in this document shall not be used or embedded to any downstream
products of which manufacture, use and/or sale are prohibited under any applicable laws and
regulations. 060106_Q
The information contained herein is presented only as a guide for the applications of our
products. No responsibility is assumed by TOSHIBA for any infringements of patents or other
rights of the third parties which may result from its use. No license is granted by implication or
otherwise under any patent or patent rights of TOSHIBA or others. 021023_C
R4000/R4400/R5000 are a trademark of MIPS Technologies, Inc. 060116_X
Please use this product in compliance with all applicable laws and regulations that regulate the
inclusion or use of controlled substances.
Toshiba assumes no liability for damage or losses occurring as a result of noncompliance with
applicable laws and regulations. 060819_AF
The products described in this document may include products subject to the foreign exchange
and foreign trade laws. 021023_F
The products described in this document contain components made in the United States and
subject to export control of the U.S. authorities. Diversion contrary to the U.S. law is prohibited.
021023_G
© 2006 TOSHIBA CORPORATION
All Rights Reserved
Preface
Thank you for new or continued patronage of TOSHIBA semiconductor products. This is the 2006
edition of the user’s manual for the TMPR4956C 64-bit RISC microprocessor.
This databook is written so as to be accessible to engineers who may be designing a TOSHIBA
microprocessor into their products for the first time. No prior knowledge of this device is assumed. What
we offer here is basic information about the microprocessor, a discussion of the application fields in
which the microprocessor is utilized, and an overview of design methods. On the other hand, the more
experienced designer will find complete technical specifications for this product.
Toshiba continually updates its technical information. Your comments and suggestions concerning this
and other Toshiba documents are sincerely appreciated and may be utilized in subsequent editions. For
updating of the data in this manual, or for additional information about the product appearing in it, please
contact your nearest Toshiba office or authorized Toshiba dealer.
September 2006
Table of Contents
Table of Contents
Handling Precautions
TMPR4956C
1.
Introduction ...................................................................................................................................... 1-1
1.1
Overview ....................................................................................................................................... 1-1
1.2
Notation Used in this Manual ........................................................................................................ 1-1
1.2.1
Numerical Notation ................................................................................................................ 1-1
1.2.2
Data Notation ......................................................................................................................... 1-1
1.2.3
Signal Notation ....................................................................................................................... 1-1
1.2.4
Register Notation .................................................................................................................... 1-1
2.
Features............................................................................................................................................. 2-1
2.1
Block Diagram............................................................................................................................... 2-2
2.2
Pin Description.............................................................................................................................. 2-3
2.2.1
TX4956 Pin Out (217-pin PFBGA) ......................................................................................... 2-3
2.2.2
TX4956 Pin Description .......................................................................................................... 2-6
3.
TX49/H4 Core’s Registers................................................................................................................. 3-1
3.1
CPU Registers ............................................................................................................................... 3-1
3.2
CP0 Registers ................................................................................................................................ 3-2
3.2.1
Index Register (Reg#0) ............................................................................................................ 3-3
3.2.2
Random Register (Reg#1)........................................................................................................ 3-4
3.2.3
EntryLo0 Register (Reg#2) and EntryLo1 Register (Reg#3)...................................................... 3-5
3.2.4
Context Register (Reg#4) ......................................................................................................... 3-6
3.2.5
PageMask Register (Reg#5) ..................................................................................................... 3-7
3.2.6
Wired Register (Reg#6)............................................................................................................ 3-8
3.2.7
BadVAddr Register (Reg#8) ..................................................................................................... 3-9
3.2.8
Count Register (Reg#9).......................................................................................................... 3-10
3.2.9
EntryHi Register (Reg#10)..................................................................................................... 3-11
3.2.10 Compare Register (Reg#11) ................................................................................................... 3-12
3.2.11 Status Register (Reg#12) ........................................................................................................ 3-13
3.2.12 Cause Register (Reg#13) ........................................................................................................ 3-16
3.2.13 EPC Register (Reg#14) .......................................................................................................... 3-17
3.2.14 PRId Register (Reg#15) ......................................................................................................... 3-18
3.2.15 Config Register (Reg#16)....................................................................................................... 3-19
3.2.16 LLAddr Register (Reg#17)..................................................................................................... 3-21
3.2.17 XContext Register (Reg#20)................................................................................................... 3-22
3.2.18 Debug Register (Reg#23) ....................................................................................................... 3-23
3.2.19 DEPC Register (Reg#24) ....................................................................................................... 3-25
3.2.20 TagLo Register (Reg#28) and TagHi Register (Reg#29) .......................................................... 3-26
3.2.21 ErrorEPC Register (Reg#30).................................................................................................. 3-27
3.2.22 DESAVE Register (Reg#31)................................................................................................... 3-28
3.3
Floating-Point Unit, CP1 ............................................................................................................. 3-29
3.3.1
Floating-Point General Registers (FGRs)............................................................................... 3-29
3.3.2
Floating-Point Control Registers............................................................................................ 3-30
3.3.3
Accessing the FP Control and Implementation/Revision Registers ........................................ 3-33
4.
Memory Management System ........................................................................................................... 4-1
4.1
Address Space Overview................................................................................................................ 4-1
4.1.1
Virtual Address Space ............................................................................................................. 4-1
4.1.2
Physical Address Space ........................................................................................................... 4-2
4.1.3
Virtual-to-Physical Address Translation ................................................................................... 4-2
4.1.4
32-bit Mode Address Translation............................................................................................. 4-3
4.1.5
64-Bit Mode Address Translation ............................................................................................ 4-4
4.2
Operating Modes ........................................................................................................................... 4-5
i
Table of Contents
User Mode Operations ............................................................................................................ 4-5
4.2.1
4.2.2
Supervisor Mode Operations ................................................................................................... 4-7
4.2.3
Kernel Mode Operations ......................................................................................................... 4-9
4.3
Translation Lookaside Buffer ....................................................................................................... 4-15
4.3.1
Joint TLB.............................................................................................................................. 4-15
4.3.2
TLB Entry format ................................................................................................................. 4-15
4.3.3
Instruction-TLB .................................................................................................................... 4-16
4.3.4
Data-TLB.............................................................................................................................. 4-16
4.4
Virtual-to-Physical Address Translation Process ........................................................................... 4-16
5.
Cache Organization........................................................................................................................... 5-1
5.1
Memory Organization ................................................................................................................... 5-1
5.2
Cache Organization ....................................................................................................................... 5-2
5.2.1
Cache Sizes ............................................................................................................................. 5-2
5.2.2
Cache Line Lengths ................................................................................................................ 5-2
5.2.3
Organization of the Instruction Cache (I-Cache) ..................................................................... 5-2
5.2.4
Instruction Cache Address Field.............................................................................................. 5-3
5.2.5
Instruction Cache Configuration ............................................................................................. 5-3
5.2.6
Organization of the Data Cache (D-Cache) ............................................................................. 5-4
5.2.7
Data Cache Address Field ....................................................................................................... 5-4
5.2.8
Data Cache Configuration....................................................................................................... 5-4
5.3
Lock Function ............................................................................................................................... 5-5
5.3.1
Lock Bit Setting and Clearing .................................................................................................. 5-5
5.3.2
Operation during Lock ............................................................................................................ 5-6
5.3.3
Example of Data Cache Locking............................................................................................. 5-6
5.3.4
Example of Instruction Cache Locking ................................................................................... 5-6
5.4
The Primary Cache Accessing........................................................................................................ 5-7
5.5
Cache States .................................................................................................................................. 5-7
5.6
Cache Line Ownership .................................................................................................................. 5-8
5.7
Cache Multi-Hit Operation ............................................................................................................ 5-8
5.8
FIFO Replacement Algorithm ....................................................................................................... 5-8
5.9
Cache Testing ................................................................................................................................ 5-9
5.9.1
Cache Disabling ...................................................................................................................... 5-9
5.9.2
Cache Flushing ....................................................................................................................... 5-9
5.10 Cache Operations ........................................................................................................................ 5-10
5.10.1 Cache Write Policy................................................................................................................ 5-11
5.10.2 Data Cache Line Replacement .............................................................................................. 5-11
5.10.3 Instruction Cache Line Replacement ..................................................................................... 5-12
5.11 Manipulation of the Caches by an External Agent ....................................................................... 5-12
6.
Write Buffer ...................................................................................................................................... 6-1
7.
Debug Support Unit .......................................................................................................................... 7-1
7.1
Features ......................................................................................................................................... 7-1
7.2
EJTAG Interface............................................................................................................................ 7-1
7.3
Debug Unit.................................................................................................................................... 7-2
7.3.1
Extended Instructions ............................................................................................................. 7-2
7.3.2
Extended Debug Registers in CP0 ........................................................................................... 7-2
7.4
Register Map ................................................................................................................................. 7-2
7.5
Processor Bus Break Function........................................................................................................ 7-2
7.6
Debug Exception ........................................................................................................................... 7-2
8.
CPU Exception ................................................................................................................................. 8-1
8.1
Introduction................................................................................................................................... 8-1
8.2
Exception Vector Locations ........................................................................................................... 8-1
8.3
Priority of Exception ..................................................................................................................... 8-2
8.4
ColdReset Exception...................................................................................................................... 8-3
8.4.1
Cause ...................................................................................................................................... 8-3
8.4.2
Processing ............................................................................................................................... 8-3
8.4.3
Servicing ................................................................................................................................. 8-3
8.5
SoftReset Exception ....................................................................................................................... 8-4
8.5.1
Cause ...................................................................................................................................... 8-4
ii
Table of Contents
Processing ............................................................................................................................... 8-4
8.5.2
8.5.3
Servicing ................................................................................................................................. 8-4
8.6
NMI (Non-maskable Interrupt) Exception ..................................................................................... 8-5
8.6.1
Cause ...................................................................................................................................... 8-5
8.6.2
Processing ............................................................................................................................... 8-5
8.6.3
Servicing ................................................................................................................................. 8-5
8.7
Address Error Exception................................................................................................................ 8-6
8.7.1
Cause ...................................................................................................................................... 8-6
8.7.2
Processing ............................................................................................................................... 8-6
8.7.3
Servicing ................................................................................................................................. 8-6
8.8
TLB Refill Exception ..................................................................................................................... 8-7
8.8.1
Cause ...................................................................................................................................... 8-7
8.8.2
Processing ............................................................................................................................... 8-7
8.8.3
Servicing ................................................................................................................................. 8-7
8.9
TLB Invalid Exception................................................................................................................... 8-8
8.9.1
Cause ...................................................................................................................................... 8-8
8.9.2
Processing ............................................................................................................................... 8-8
8.9.3
Servicing ................................................................................................................................. 8-8
8.10 TLB Modified Exception ............................................................................................................... 8-9
8.10.1 Cause ...................................................................................................................................... 8-9
8.10.2 Processing ............................................................................................................................... 8-9
8.10.3 Servicing ................................................................................................................................. 8-9
8.11 Bus Error Exception .................................................................................................................... 8-10
8.11.1 Cause .................................................................................................................................... 8-10
8.11.2 Processing ............................................................................................................................. 8-10
8.11.3 Servicing ............................................................................................................................... 8-10
8.12 Integer Overflow Exception ......................................................................................................... 8-12
8.12.1 Cause .................................................................................................................................... 8-12
8.12.2 Processing ............................................................................................................................. 8-12
8.12.3 Servicing ............................................................................................................................... 8-12
8.13 Trap Exception ............................................................................................................................ 8-13
8.13.1 Cause .................................................................................................................................... 8-13
8.13.2 Processing ............................................................................................................................. 8-13
8.13.3 Servicing ............................................................................................................................... 8-13
8.14 System Call Exception ................................................................................................................. 8-14
8.14.1 Cause .................................................................................................................................... 8-14
8.14.2 Processing ............................................................................................................................. 8-14
8.14.3 Servicing ............................................................................................................................... 8-14
8.15 Breakpoint Exception................................................................................................................... 8-15
8.15.1 Cause .................................................................................................................................... 8-15
8.15.2 Processing ............................................................................................................................. 8-15
8.15.3 Servicing ............................................................................................................................... 8-15
8.16 Reserved Instruction Exception.................................................................................................... 8-16
8.16.1 Cause .................................................................................................................................... 8-16
8.16.2 Processing ............................................................................................................................. 8-16
8.16.3 Servicing ............................................................................................................................... 8-16
8.17 Coprocessor Unusable Exception ................................................................................................. 8-17
8.17.1 Cause .................................................................................................................................... 8-17
8.17.2 Processing ............................................................................................................................. 8-17
8.17.3 Servicing ............................................................................................................................... 8-17
8.18 Floating-Point Exception ............................................................................................................. 8-18
8.18.1 Cause .................................................................................................................................... 8-18
8.18.2 Processing ............................................................................................................................. 8-18
8.18.3 Servicing ............................................................................................................................... 8-18
8.19 Interrupt Exception...................................................................................................................... 8-19
8.19.1 Cause .................................................................................................................................... 8-19
8.19.2 Processing ............................................................................................................................. 8-19
8.19.3 Servicing ............................................................................................................................... 8-19
8.20 Exception Handling and Servicing Flowcharts ............................................................................. 8-20
8.21 Floating-Point Exception of Floating-Point Unit (CP1) ................................................................ 8-25
8.21.1 Introduction .......................................................................................................................... 8-25
iii
Table of Contents
8.21.2
8.21.3
8.21.4
8.21.5
8.21.6
8.21.7
Exception Types.................................................................................................................... 8-25
Exception Trap Processing .................................................................................................... 8-26
Flags ..................................................................................................................................... 8-26
FPU Exceptions .................................................................................................................... 8-27
Saving and Restoring State .................................................................................................... 8-30
Trap Handlers for IEEE Standard 754 Exceptions ................................................................. 8-30
9.
Initialization Interface ....................................................................................................................... 9-1
9.1
Functional Overview ..................................................................................................................... 9-1
9.1.1
System Coordination............................................................................................................... 9-1
9.2
Reset Signal Description ................................................................................................................ 9-2
9.2.1
Power-On Reset....................................................................................................................... 9-2
9.2.2
Cold Reset............................................................................................................................... 9-3
9.2.3
Soft Reset ................................................................................................................................ 9-4
9.3
User-Selectable Mode Configurations ............................................................................................ 9-5
9.3.1
System Bus Interface Modes.................................................................................................... 9-5
9.3.2
Clock Divisor for the System Bus ............................................................................................ 9-5
9.3.3
System Endianness.................................................................................................................. 9-5
9.3.4
Enabling and Disabling the Timer Interrupt ............................................................................ 9-5
9.3.5
System Bus Width Setting ....................................................................................................... 9-5
10.
Clock Interface ................................................................................................................................ 10-1
10.1 Signal Terminology...................................................................................................................... 10-1
10.2 Basic System Clocks .................................................................................................................... 10-2
10.2.1 MasterClock.......................................................................................................................... 10-2
10.2.2 CPUCLK.............................................................................................................................. 10-2
10.2.3 GBUSCLK ........................................................................................................................... 10-2
10.2.4 CPUCLK-to-GBUSCLK Division......................................................................................... 10-3
10.2.5 Phase-Locked Loop (PLL) .................................................................................................... 10-3
10.3 Connecting Clocks to a Phase-Locked System.............................................................................. 10-4
11.
TX4956 System Interface................................................................................................................. 11-1
11.1 Introduction................................................................................................................................. 11-1
11.2 Explanation of System Interface of R5000 Type Protocol Mode .................................................. 11-1
11.2.1 Interface Bus ......................................................................................................................... 11-2
11.2.2 Address Cycle and Data Cycle............................................................................................... 11-2
11.2.3 Issue Cycle ............................................................................................................................ 11-3
11.2.4 Handshake Signal.................................................................................................................. 11-4
11.2.5 System Interface Protocol of R5000 Type.............................................................................. 11-4
11.2.6 Processor Requests and External Requests............................................................................. 11-6
11.2.7 Handling of Requests .......................................................................................................... 11-10
11.2.8 Processor Request and External Request Protocol ............................................................... 11-12
11.2.9 Data Transfer ...................................................................................................................... 11-25
11.2.10 System Interface Cycle Time ............................................................................................... 11-26
11.2.11 System Interface Command and Data Identifiers ................................................................. 11-27
11.2.12 System Interface Addresses ................................................................................................. 11-32
11.2.13 Mode Register of System Interface (G2SConfig).................................................................. 11-32
11.2.14 Data Error Detection........................................................................................................... 11-33
11.3 System Interface of R4300 Type Protocol Mode ........................................................................ 11-34
11.3.1 System Interface Description of R4300 Type Protocol Mode ............................................... 11-34
11.3.2 System Events ..................................................................................................................... 11-38
11.3.3 System Event Sequences and the SysAD Bus Protocol......................................................... 11-38
11.3.4 System Interface Protocols .................................................................................................. 11-41
11.3.5 Timing Summary ................................................................................................................ 11-43
11.3.6 Arbitration .......................................................................................................................... 11-47
11.3.7 Issuing Commands.............................................................................................................. 11-48
11.3.8 Processor Write Request...................................................................................................... 11-48
11.3.9 Processor Read Request....................................................................................................... 11-50
11.3.10 External Write Request ....................................................................................................... 11-50
11.3.11 External Read Response ...................................................................................................... 11-52
11.3.12 Flow Control....................................................................................................................... 11-54
iv
Table of Contents
11.3.13
11.3.14
11.3.15
11.3.16
11.3.17
11.3.18
11.3.19
11.3.20
11.3.21
Data Rate Control............................................................................................................... 11-55
Consecutive SysAD Bus Transactions.................................................................................. 11-56
Starvation and Deadlock Avoidance .................................................................................... 11-58
Discarding and Re-Executing Read Command .................................................................... 11-58
Multiple Drivers on the SysAD Bus ..................................................................................... 11-59
Signal Codes ....................................................................................................................... 11-60
Physical Addresses .............................................................................................................. 11-62
Mode Register of System Interface (G2SConfig).................................................................. 11-62
Read Time Out Counter (MODE43* = 0) ........................................................................... 11-63
12.
TX4956 Processor Interrupts ........................................................................................................... 12-1
12.1 Nonmaskable Interrupt ................................................................................................................ 12-2
12.2 External Interrupts....................................................................................................................... 12-2
12.3 Interrupts by External Write Through SysAD[6:0] ....................................................................... 12-2
12.4 Software Interrupt........................................................................................................................ 12-2
12.5 Timer Interrupt............................................................................................................................ 12-3
12.6 Masking of the TX4956 Interrupts ............................................................................................... 12-3
12.7 Recognition of the Processor Interrupts ....................................................................................... 12-3
13.
Power-Saving Modes ....................................................................................................................... 13-1
13.1 Halt Mode ................................................................................................................................... 13-1
13.2 Doze Mode.................................................................................................................................. 13-1
13.3 Status Shifts ................................................................................................................................. 13-2
14.
JTAG Interface................................................................................................................................ 14-1
14.1 What Boundary Scanning Is ........................................................................................................ 14-1
14.2 Signal Summary .......................................................................................................................... 14-2
14.3 JTAG Controller and Registers .................................................................................................... 14-3
14.3.1 Instruction Register ............................................................................................................... 14-3
14.3.2 Bypass Register ..................................................................................................................... 14-4
14.3.3 Boundary-Scan Register(BSR) ............................................................................................... 14-5
14.3.4 Device Identification Register................................................................................................ 14-6
14.3.5 Test Access Port (TAP).......................................................................................................... 14-7
14.3.6 TAP Controller ..................................................................................................................... 14-7
14.3.7 Controller Reset .................................................................................................................... 14-7
14.3.8 TAP Controller ..................................................................................................................... 14-8
14.4 Instructions for JTAG ................................................................................................................ 14-12
14.4.1 The EXTEST Instruction .................................................................................................... 14-12
14.4.2 The SAMPLE/PRELOAD Instruction ............................................................................... 14-13
14.4.3 The BYPASS Instruction..................................................................................................... 14-14
14.4.4 The IDCODE Instruction ................................................................................................... 14-14
15.
CPU Instruction Set Summary ........................................................................................................ 15-1
15.1 Introduction................................................................................................................................. 15-1
15.2 Instruction Format....................................................................................................................... 15-1
15.3 Instruction Set Overview.............................................................................................................. 15-2
15.3.1 Load and Store Instructions (Table 15.3.1) ............................................................................ 15-2
15.3.2 Computational Instructions (Table 15.3.2)............................................................................. 15-3
15.3.3 Jump and Branch Instructions (Table 15.3.3) ......................................................................... 15-4
15.3.4 Special Instructions (Table 15.3.4) ......................................................................................... 15-5
15.3.5 Exception Instructions (Table 15.3.5)..................................................................................... 15-5
15.3.6 Coprocessor Instructions (Table 15.3.6) ................................................................................. 15-6
15.3.7 CP0 Instructions (Table 15.3.7) ............................................................................................. 15-6
15.3.8 Multiply and Divide Instructions (Table 15.3.8)..................................................................... 15-7
15.3.9 Debug Instructions (Table 15.3.9).......................................................................................... 15-7
15.3.10 Other Instructions (Table 15.3.10) ......................................................................................... 15-7
15.4 Instruction Execution Cycles........................................................................................................ 15-7
15.5 Defining Access Types ................................................................................................................. 15-8
15.6 Bit Encoding of CPU Instruction OPcodes .................................................................................. 15-9
16.
FPU Instruction Set Details ............................................................................................................. 16-1
16.1 Instruction Formats ..................................................................................................................... 16-1
v
Table of Contents
16.2 Instruction Set Summary ............................................................................................................. 16-2
16.2.1 Floating-Point Loads, Stores, and Moves ............................................................................... 16-2
16.2.2 Floating-Point Computational Instructions............................................................................ 16-2
16.3 Load and Store Instructions ......................................................................................................... 16-3
16.4 Computational Instructions ......................................................................................................... 16-5
16.5 Bit Encoding of FPU Instruction Opcodes ................................................................................... 16-8
17.
Electrical Characteristics ................................................................................................................. 17-1
17.1 TMPR4956C Electrical Characteristics ........................................................................................ 17-1
17.1.1 Absolute Maximum Ratings .................................................................................................. 17-1
17.1.2 Recommended Operating Conditions .................................................................................... 17-1
17.1.3 DC Characteristics ................................................................................................................ 17-2
17.1.4 AC Characteristics ................................................................................................................ 17-3
17.1.5 Timing Diagrams .................................................................................................................. 17-3
18.
Package Dimension ......................................................................................................................... 18-1
18.1 TMPR4956CXBG ....................................................................................................................... 18-1
Appendix A.
PLL Passive Components....................................................................................................... A-1
Appendix B.
Movement parameter setting of a processor .............................................................................B-1
vi
Handling Precautions
Handling Precautions
1. Precautions for Semiconductor Product Use
Toshiba is continually working to improve the quality and reliability of its products. Nevertheless,
semiconductor devices in general can malfunction or fail due to their inherent electrical sensitivity and
vulnerability to physical stress.
It is the responsibility of the buyer, when utilizing Toshiba semiconductor products, to comply with the
standards of safety in making a safe design for the entire system, and to avoid situations in which a malfunction
or failure of such Toshiba semiconductor products could cause loss of human life, bodily injury or damage to
property.
In developing your designs, please check the most recent product specifications and ensure that the Toshiba
semiconductor products are used within the operating ranges. Also, please keep in mind the precautions and
conditions set forth in this Handbook.
1
Handling Precautions
2.
Safety Precautions
This section lists important precautions which users of semiconductor devices (and anyone else) should observe
in order to avoid injury to human body and damage to property, and to ensure safe and correct use of devices.
Please be sure that you understand the meanings of the labels and graphic symbols described below before you
move on to the detailed descriptions of the precautions, and make every effort to observe the precautions stated.
[Explanation of Labels]
Label
Meaning
Indicates an imminently hazardous situation which will result in death or serious injury1 if you do
not followinstructions.
Indicates a potentially hazardous situation which could result in death or serious injury1 if you do
not followinstructions.
Indicates a potentially hazardous situation which if not avoided, may result in minor injury2,
moderate injury2, or property damage3.
1. Serious injury includes blindness, wounds, burns (low and high temperature), electric shock, fractures,
and poisoning, etc. with long-lasting effects or that require hospitalization and/or long-term hospital
visits for treatment.
2. Injury includes wounds, burns, electric shock, etc. not requiring hospitalization and/or long-term
hospital visits for treatment.
3. Damage includes extensive damage to machines and equipment.
[Explanation of Graphic Symbols]
Graphic Symbol
Meaning
Indicates prohibited (restricted) actions.
Prohibited actions are explained in or near the symbols in pictures and sentences.
Prohibited
Indicates compulsory (mandatory) actions.
Compulsory actions are explained in or near the symbols in pictures and sentences.
Instructions
2
Handling Precautions
Indicates cautions.
Cautions are explained in or near the symbols in pictures and sentences.
Caution
Example of a caution symbol:
Indicates laser beam caution.
Caution
3
Handling Precautions
2.1
General Precautions Regarding Semiconductor Products
Prohibited
Prohibited
Prohibited
Prohibited
Instructions
Instructions
Instructions
The absolute maximum ratings of a semiconductor device are a set of ratings that must not be
exceeded, even for a moment. Do not exceed any of these ratings.
Exceeding the rating(s) may cause the device breakdown, damage or deterioration, and may result
injury by explosion or combustion.
Do not insert devices in the wrong orientation or incorrectly. Make sure that the positive and
negative terminals of power supplies are connected properly. Otherwise, the current or power
consumption may exceed the absolute maximum rating, and exceeding the rating(s) may cause
the device breakdown, damage or deterioration, and may result injury by explosion or combustion.
In addition, do not use any device that is applied the current with inserting in the wrong orientation
or incorrectly even just one time.
Do not touch the heat sink of the device while the device is on or immediately after the device has
been turned off.
Heat sinks become hot. Contact to the heat sink may result in a burn.
Do not touch the lead tips of a device.
Some devices have leads withsharp tips. Contact to sharp tips may result in a puncture wound.
On the evaluation, inspection or test, be sure to connect the test equipment’s electrodes or probes
to the pins of the device before turning the power on. When you have finished, discharge any
electrical charge remaining in the device.
Insufficient connection, wrong power-on timing or incomplete discharge may cause electric shock,
resulting in injury.
Check that there is no electrical leakage before grounding measuring equipment or a solder iron.
Electrical leakage may cause the device you are testing or soldering to electrically break down or
may cause electric shock.
Always wear safety glasses when cutting the leads of a device with clippers or a similar tool.
Failure to do so may result in eye damage from the small shavings that fly off the cut ends.
4
Handling Precautions
2.2
2.2.1
Precautions Specific to Product Group
Optical Semiconductor Devices
Prohibited
Prohibited
When a semiconductor laser is operating, do not look into the laser beam or look through the
optical system.
Doing so may damage your eyesight or, in the worst case, cause blindness. When inspecting the
optical characteristics of the laser using laser protective glasses, be sure the glasses comply with
JISC6802.
Do notapply voltage or current into the LED device that exceeds the device’s absolute maximum
rating.
With resin-packaged LED devices in particular, excessive voltage or current may cause the
package resin to explode, scattering resin fragments and may result injury.
When evaluating and testing the dielectric strength voltage of a photocoupler, use equipment that
can shut off the supply voltage if a leakage current exceeding 100µA is detected.
Instructions
Instructions
2.2.2
Failure to do so may result in the continuous flow of a large short-circuit current, causing the device
to explode or combust, resulting in fire or injury.
When designing a semiconductor laser, use the built-in or another light-receiving element to
stabilize optical output so as to ensure that laser beams exceeding the laser’s rated optical output
are not emitted.
If this stabilization function does not work properly and the rated output is exceeded, not only the
device may break down but also injury may result by the laser beam.
Power Device
Prohibited
Instructions
Do not touch a power device while it is on or after it has been turned off and all remaining electrical
charge has not yet been discharged.
Touching power element with electrical charge may cause electric shock, resulting in death or
serious injury.
When evaluating, inspecting or testing a device, be sure to connect all of the test equipment’s
electrodes or probes before turning the power on. When you have finished, discharge any electrical
charge remaining in the device.
Connecting the electrodes or probes with the power on may cause electric shock, resulting in death
or serious injury.
5
Handling Precautions
Prohibited
Instructions
Instructions
Instructions
Instructions
Instructions
Instructions
Instructions
Do not use a device under conditions that exceed its absolute maximum ratings (such as current,
voltage, safe operation range, temperature.).
Using device with exceeded its absolute maximum ratings may cause the device to break down,
causing a short-circuit current, which may in turn cause it to explode or combust, resulting in fire or
injury.
Use a unit which can detect short-circuit currents and shut off the power supply if a short-circuit
occurs.
If the power supply is not shut off, a large short-circuit current will flow continuously, causing the
device to explode or combust, resulting in fire or injury.
Design the case for enclosing your system taking into consideration the prevention of flying debris
in the event the device explodes or combusts.
Flying debris may cause injury.
When conducting an evaluation, inspection or test, use protective safety tools such as device
covers.
The device may explode or combust due to excessive stress in the event of breakdown or arc
discharge between the electrode and ground potential, resulting in fire or injury.
Design your product so that it is used with all metal areas (other than electrodes and terminals)
grounded. Even with products where the device’s electrodes and metal casings are insulated,
electrostatic capacitance in the product may cause the electrostatic potential in the casing to rise.
Insulation deterioration or breakdown may cause a high voltage to be applied to the casing,
causing electric shock when touched, resulting in death or serious injury.
When designing the heat radiation and safety features of a system incorporating Schottky barrier
diodes and high-speed rectifiers, take into consideration the device’s forward and reverse losses.
The reverse current in these devices is greater than that in ordinary rectifiers. If the operating
environment is severe (such as high temperature, high voltage), the device’s reverse loss may
increase, causing a short-circuit current and subsequently explosion or combustion, resulting in fire
or injury.
Be sure to design the product so that, except when the main circuits of the device are active, the
main circuits will be inactive when electricity is conducted to control circuits.
Malfunction of the device may cause a serious accident or injury.
When conducting an evaluation, inspection or test, either wear protective gloves or wait until the
device cools down prior to handling.
Devices become hot when operated. Even after the power supply has been turned off, residual
heat may cause a burn when the device is touched.
6
Handling Precautions
2.2.3
Application Specific Standard Products and General-Purpose Linear ICs
Instructions
Instructions
Instructions
Instructions
Use an appropriate power supply fuse to ensure that a large current does not continuously flow in
case of over current and/or IC failure. The IC will fully break down when used under conditions that
exceed its absolute maximum ratings, when the wiring is routed improperly or when an abnormal
pulse noise occurs from the wiring or load, causing a large current to continuously flow and the
breakdown can lead smoke or ignition. To minimize the effects of the flow of a large current in case
of breakdown, appropriate settings, such as fuse capacity, fusing time and insertion circuit location,
are required.
If your design includes an inductive load such as a motor coil, incorporate a protection circuit into
the design to prevent device malfunction or breakdown caused by the current resulting from the
inrush current at power ON or the negative current resulting from the back electromotive force at
power OFF. For details on how to connect a protection circuit such as a current limiting resistor or
back electromotive force adsorption diode, refer to individual IC datasheets or the IC databook. IC
breakdown may cause injury, smoke or ignition.
Use a stable power supply with ICs with built-in protection functions. If the power supply is
unstable, the protection function may not operate, causing IC breakdown. IC breakdown may
cause injury, smoke or ignition.
Carefully select external components (such as inputs and negative feedback capacitors) and load
components (such as speakers), for example, power amp and regulator. If there is a large amount
of leakage current such as input or negative feedback condenser, the IC output DC voltage will
increase. If this output voltage is connected to a speaker with low input withstand voltage, over
current or IC failure can cause smoke or ignition. (The over current can cause smoke or ignition
from the IC itself.) In particular, please pay attention when using a Bridge Tied Load (BTL)
connection type IC that inputs output DC voltage to a speaker directly.
7
Handling Precautions
2.2.4
Memory Card Products
Prohibited
Prohibited
Prohibited
Prohibited
Prohibited
Prohibited
Keep out of reach of small children.
Accidental swallowing may cause suffocation or injury.
Contact a doctor immediately if you suspect a child has swallowed the Product.
Do not directly touch the interface pins, put them in contact with metal, strike them with hard objects, or
cause them to short. Do not expose to static electricity.
Do not bend, apply strong force to, drop, expose to strong impact or lay heavy objects on top of the
Product.
Do not put the Product in the back pocket, etc. of trousers. It may break when you sit down or exert
strong force on it in other ways.
Do not disassemble or modify the Product. This may cause electric shock, damage to the Product, or
fire.
Do not expose the Product to moisture. Do not use, store, or place in humid locations or expose to
water. Do not expose the Product to excessive heat or cold. Do not use, store, or place in direct
sunlight, inside a hot car, near fire or sources of heat or flame, such as a stove. Do not use, store, or
place the Product near an air-conditioner outlet. Do not expose the Product to dust, strong magnetic
fields, or corrosive chemicals or gas.
Avoid sudden temperature changes which could cause condensation.
Prohibited
8
Handling Precautions
Prohibited
(Applicable only to mini SD)
While writing data to or reading data from the Product, do not turn off the power, remove the Product or
the miniSD adapter from the device, or permit the Product or device to be shaken or impacted.
Prohibited
(Applicable only to mini SD)
Do not insert, remove or change the Product while the miniSD adapter is still inserted into a device.
This may cause product failure or the destruction or loss of data.
Prohibited
(Applicable only to mini SD)
Do not insert into a device the miniSD adapter that does not contain the Product. This may cause
improper function on the device.
Prohibited
(Applicable only to mini SD)
Do not insert into the miniSD adapter a memory card other than the Product or other foreign object.
This may cause product failure.
Prohibited
Prohibited
Instructions
Instructions
Instructions
While writing data to or reading data from the Product, do not turn off the power, remove the Product
from the device, or permit the Product or device to be shaken or impacted.
(Applicable only to USB flash memory)
Performing the following operations with the Product connected to your PC may cause improper
function on your PC.
- Booting - Rebooting - Resuming from standby or suspended mode
Please perform these operations after removing the Product from your computer.
The Product comes pre-formatted. When formatting, all data stored in the Product will be lost, so make
sure to back up the data on the Product. Please use functions relevant to the Product.
(Applicable to SD, mini SD and compact flash)
Formatting with other devices, for example PCs, may cause problems such as the inability to read,
write, or delete data.
(Applicable only to USB flash memory)
Please take note of the following when formatting the Product using Windows XP or Windows 2000.
·
Log in as a user with administrator access rights. The Product cannot be formatted while
logged in as a user with limited access rights.
·
Format the Product as FAT. It may not format properly as NTFS or FAT32.
When removing the Product from the slot or the USB port of a PC, first follow the removal (stop)
procedure for your operating system.
9
Handling Precautions
Refer to your device’s manual to learn how to insert and remove the Product.
Instructions
Instructions
Instructions
Instructions
Insert the Product firmly in the correct orientation. The Product will not operate correctly if it is inserted
in an incorrect orientation or not inserted all the way.
Always use the Product with the interface pins and connector in a clean state. When cleaning the
Product, use a soft, dry cloth.
(Applicable only to miniSD)
Always use the miniSD adapter when using the Product with a standard SD memory card device.
Directly inserting the Product into a standard SD memory card device may cause improper function on
the device.
10
Handling Precautions
3.
General Safety Precautions and Usage Considerations
This section provides information that will help you gain a better understanding of semiconductor devices so as
to ensure device safety, quality and reliability.
3.1
From Incoming to Shipping
3.1.1
Electrostatic Discharge (ESD)
When handling individual devices, be sure that the environment is protected
against static electricity. Operators should wear anti-static clothing. In addition,
containers and other objects that come in direct contact with devices should be
made of materials that do not produce static electricity that would cause damage.
Please follow the precautions below. This is particularly important for those
devices marked “Be careful of static.”
3.1.1.1
Work Environment Control
(1) When humidity decreases, static electricity readily occurs due to friction. Taking into consideration the fact
that moisture-proof-packed products absorb moisture after unpacking, the recommended humidity is 40 to
60%.
(2) Be sure that all equipment such as jigs and tools installed in the work area are grounded.
(3) Place a conductive mat over the floor of the work area or take other measure to ensure that the floor is
protected against static electricity and is grounded to the earth. (Resistance between surface and ground: 1 x
109Ω or less)
(4) Place a conductive mat over the surface of worktables to ensure that the tables are grounded. (Resistance
between surface and ground: 7.5 x 105 to 1 x 109Ω) Do not construct worktable surfaces of metallic
materials. Metallic materials are low in resistance, allowing rapid discharge when a charged device comes
in contact with them directly.
(5) Observe the following when using automated equipment:
(a) When picking up a device with a vacuum, use conductive rubber in sections which come into contact
with the device surface to protect against electrostatic charge.
(b) Avoid friction on the device surface to the extent possible. If rubbing is unavoidable due to the
device’s mechanical structure, minimize the friction plane or use material with a small friction
coefficient and low electrical resistance. Also, prevent electrostatic charge by using an ionizer.
(c) Use a material which dissipates static electricity in sections which come in contact with device leads
or terminals.
(d) Ensure that no statically charged bodies (such as work clothes or the human body) come in contact
with the devices.
(e) Use a tape carrier that employs a low-resistance material on sections that come in contact with
11
Handling Precautions
electrical machinery.
(f)
Make sure that jigs and tools used in the manufacturing process do not touch the devices.
(g) In processing associated with package electrostatic charge, use an ionizer to neutralize the ions in the
ambient environment.
(6) Make sure that CRT displays in the work area are protected against static charge by employing a filter, for
example. Avoid turning displays on and off to the extent possible. Neglecting to do so can cause
electrostatic induction in devices.
(7) Periodically measure the charged potential of devices, systems and fixtures located in the work area to
ensure that the area is free of any charge.
(8) Ensure that the work chairs are protected by a conductive cover and grounded to the floor by conductive
castors. (Resistance between seat surface and ground: 1 x 1010Ω or less)
(9) Install anti-static mats on storage shelf surfaces and ground the mat surface. (Resistance between surface
and ground: 7.5 x 105 to 1 x 109Ω)
(10) For device transport and temporary storage, use containers (boxes, jigs or bags) that are made of a material
which does not produce static electricity that could damage the device.
(11) Make sure that cart surfaces which come in contact with product packaging are made of materials which
conduct static electricity, and ground the cart surfaces to the floor surface using conductive castors.
(12) In static electricity control areas, install anti-static dedicated ground wires. Use a transmission line circuit
ground wire [Type D (previous Class C) or above], or a trunk line ground wire. In addition, separate and
ground the various devices individually.
3.1.1.2
Work Environment Control
(1) Operators must wear anti-static clothing and conductive shoes (or a toe or heal strap).
(2) Operators must wear a wrist strap grounded to earth via a resistor.
(Resistance between surface and earth when worn: 7.5 x 105 to 3.5 x
107Ω)
(3) Soldering irons must be grounded from the iron tip to earth, and
must be used at low voltages (6 to 24V).
(4) If the tweezers you use are likely to touch the device terminals, use anti-static tweezers. Do not use metallic
tweezers since they are low in resistance and may cause rapid discharge when a charged device comes in
contact with them.
When using a vacuum tweezers, attach a conductive chucking pat to the tip, and connect it to a dedicated
anti-static ground. In addition, follow the manufacturer’s methods of use and maintenance.
(5) Do not place devices or their containers near sources of strong electrical fields (such as above a CRT).
(6) Place boards with mounted devices in anti-static board containers separated from one another, and do not
stack them directly on top of one another. Stacking them directly on top of one another may cause frictional
charge or discharge.
12
Handling Precautions
(7) Ensure, to the extent possible, that any articles (such as clipboards) which are brought to a static electricity
control area are constructed of anti-static materials.
(8) When the human body is to come in direct contact with a device, wear anti-static finger covers or gloves.
(9) The material of equipment safety covers located near devices should have a resistance rating of 1 x 109Ω or
less.
(10) If a wrist strap cannot be used and there is a possibility of imparting friction to devices, use an ionizer.
(11) The transport film used in tape carrier products is manufactured from materials in which static electricity
readily builds up. When using these products, use an ionizer to prevent the film from being charged. Also,
to ensure than no static electricity will be applied to the copper foil area, take measures to prevent
electrostatic discharge failure of peripheral equipment.
3.1.2
Vibration, Impact and Stress
Handle devices and packaging with care. Dropping or applying impact to
devices or packaging causes device damage. Ensure that devices and packaging
are not subjected to mechanical vibration or impact to the extent possible.
Hollow canister-type devices and ceramic sealed devices contain unsecured
Vibration
wires, making them more susceptible to vibration and impact than plastic
sealed devices.
When a location such as a soldered area, connecting area or top surface of a device is subjected to vibration,
impact or stress in actual equipment, bonding fault or device destruction may result. Therefore, be sure to keep
this in mind at the time of structural design. If a device is subject to especially strong vibration, impact or stress,
the package or chip may crack. If stress is applied to a semiconductor chip through the package, changes in the
resistance of the chip may result due to piezoelectric effects, resulting in fluctuation in element characteristics.
Furthermore, if a stress that does not instantly result in damage is applied continually for a long period of time,
product deformation may result, causing defects such as disconnection or element failure. Thus, at the time of
structural design, carefully consider vibration, impact and stress.
3.2
3.2.1
Storage
General Packaged Products
(1) Avoid storage locations where devices may be exposed to
moisture or direct sunlight.
Humidity:
(2) Follow the precautions printed on the packing label of the
device for transportation and storage.
(3) Keep the storage location temperature and humidity within a
range of 5°C to 35°C and 45% to 75%, respectively.
13
Temperature:
Handling Precautions
(4) Do not store the products in locations with poisonous gases (especially corrosive gases) or in dusty
conditions.
(5) Store the products in locations with minimal temperature fluctuations. Rapid temperature changes during
storage can cause condensation, resulting in lead oxidation or corrosion, which will deteriorate the
solderability of the leads.
(6) When restoring devices after removal from their packing, use anti-static containers.
(7) Do not allow loads to be applied directly to devices while they are in storage.
(8) If devices have been stored for more than two years under normal storage conditions, it is recommended
that you check the leads for ease of soldering prior to use.
3.2.2
Moisture-Proof Packing
Moisture-proof packing should be used while taking into careful consideration the handling methods specified
for each packing type. If the specified procedures are not followed, the quality and reliability of the devices may
be deteriorated. This section describes the general precautions for handling moisture-proof packing. Since the
details may differ from device to device, refer to the individual standards or databooks during handling.
3.2.2.1
Moisture-Proof Packing General Precautions
Follow the precautions printed on the packing label of the device for transportation
and storage.
For chip products, follow the individual specifications.
(1) Do not toss or drop device packing. The aluminum laminated bag may be
damaged, resulting in a loss in airtightness.
(2) Keep the storage environment at 5°C to 30°C, and the relative humidity at 90% or less. Use devices within
12 months of the date marked on the package seal.
(3) If the 12-month storage period has been exceeded, or if the 30% humidity indicator is pink when the
package is opened, remove any moisture under the conditions described in the table below. The effective
usage period without moisture removal after the packing has been opened and the product has been stored
at 5°C to 30°C and a relative humidity of 60% is listed on the moisture-proof package. If the effective
usage period has been exceeded, or if the packing has been stored in a high-humidity environment or an
environment that produces condensation, remove any existing moisture.
14
Handling Precautions
Packing Type
Tray
Moisture Removal Applicability/Procedure
If the packing indicates a “Heatproof” or temperature label, bake at 125°C for 20
hours. (Some devices may require a different amount of time.)
If the packing does not indicate a “Heatproof” or temperature label, transfer the
devices to an anti-static container that bears a “Heatproof” or temperature label
and then bake.
The moisture-proof package itself is not heat resistance. Be sure to remove the
devices from the package prior to baking.
Magazine
Transfer devices to antistatic containers bearing the “Heatproof” or temperature
label, and then bake at 125°C for 20 hours. (Some devices may require a different
amount of time.)
The moisture-proof package itself is not heat resistance. Be sure to remove the
devices from the package prior to baking.
Tape
Transfer devices to antistatic containers bearing the “Heatproof” or temperature
label, and then bake at 125°C for 20 hours. (Some devices may require a different
amount of time.)
The moisture-proof package itself is not heat resistance. Be sure to remove the
devices from the package prior to baking.
(4) When removing the moisture from the devices, protect the devices from breakdown from static electricity.
(5) Moisture indicators (for your reference)
Moisture indicators detect the approximate ambient humidity level at a standard temperature of 25°C.
Figure 3.1 shows a 3-point indicator.
HUMIDITY INDICATOR
30
20
DANGER IF PINK
40
READ AT LAVENDER
BETWEEN PINK & BLUE
3-point indicator
Figure 3.1 Humidity Indicator
(6) Do not allow loads to be applied directly to devices while they are in storage.
15
Handling Precautions
3.3
Design
To achieve the reliability required by an electronic device or system, it is important not only to use the
semiconductor device in accordance with specified absolute maximum ratings and operating ranges, but also to
consider the environment in which the equipment will be used, including factors such as the ambient temperature,
transient noise and current surges, as well as mounting conditions which affect semiconductor device reliability.
This section describes general design precautions. Be sure to refer to the individual ratings of each product at the
time of design.
3.3.1
Absolute Maximum Ratings
The absolute maximum ratings of a semiconductor device are a set of ratings that must not be
exceeded, even for a moment. Do not exceed any of these ratings.
Exceeding the rating(s) may cause device breakdown, damage or deterioration, and may
result injury by explosion or combustion.
If the voltage or current on any pin exceeds the absolute maximum rating, the overvoltage or overcurrent causes
the device’s internal circuitry to deteriorate. In extreme cases, heat generated in
internal circuitry can fuse wiring or cause the semiconductor chip to break down.
If the storage or operating temperature exceeds the absolute maximum rating, the
device internal circuitry may deteriorate and the bonded areas may open or the
package airtightness may deteriorate due to the differences between the thermal
expansion coefficients of the materials from which the device is constructed.
Although absolute maximum ratings differ from product to product, they essentially concern the voltage and
current at each pin, the allowable power dissipation, the connecting area temperatures, and storage temperatures.
Note that the term “maximum rating” which appears in semiconductor technical datasheets and
the like refers to “absolute maximum rating.”
3.3.2
Operating Range
The operating range is the range of conditions necessary for the device to operate as specified in individual
technical datasheets and databooks. Care must be exercised in the design of the equipment. If a device is used
under conditions that do not exceed absolute maximum ratings but exceed the operating range, the specifications
related to device operation and electrical characteristics may not be met, resulting in a decrease in reliability.
If greater reliability is required, derate the device’s operating ranges for voltage, current, power and temperature
before use.
16
Handling Precautions
3.3.3
Derating
The term “derating” refers to ensuring greater device reliability by setting operating ranges reduced from rated
values and taking into consideration factors such as current surges and noise.
While derating generally applies to electrical stresses such as voltage, current and power, and environmental
stresses such as ambient temperature and humidity, it differs from application to application. Refer to the
individual technical datasheets available for each product. Power devices in particular require heat sink
consideration as well since the level of derating greatly affects reliability.
For your reference, details are provided in the appendix. Be sure to read the appendix carefully.
3.3.4
Unused Pins
If unused pins are left open, some devices exhibit input instability, resulting in faulty operation such as a sudden
increase in current consumption. In addition, if unused output pins on a device are connected to the power
supply, GND or other output pin, the IC may malfunction or break down.
Since the treatment of unused input and output pins differs for each product and pin, please follow the directions
in the individual technical datasheets and databooks.
CMOS logic IC inputs, for example, have extremely high impedance. If an input pin is left open, it can readily
pick up noise and become unstable. In this case, if the input reaches an intermediate level, both the P-channel
and N-channel transistors will become conductive, allowing unnecessary power supply current to flow. It is
therefore necessary to ensure that the unused input gates of a device are connected to the power supply pin or
ground (GND) pin of the same device. For treatment of heat sink pins, refer to the individual technical
datasheets and databooks.
3.3.5
Latch-up
Semiconductor devices sometimes transition to an inherent condition referred to as “latch-up.” This condition
mainly occurs in CMOS devices. This happens when a parasitic PN-PN junction (thyristor structure) built in the
device itself is turned on, causing a large current to flow between the power supply voltage and GND,
eventually causing the device to break down.
Latch-up occurs when the voltage impressed on an input or output pin exceeds the rated value, causing a large
current to flow in the internal element, or when the voltage impressed on the power supply voltage pin exceeds
its rated value, forcing the internal element to breakdown. Once the element falls into the latch-up state, even
though the excess voltage may have been applied only for an instant, the large current continues to flow between
the power supply voltage and GND, potentially causing device explosion or combustion. To avoid this problem,
observe the following:
(1) Do not allow the voltage levels on the input and output pins to rise above the power supply voltage or
decrease below GND. Consider the timing during power supply activation as well.
(2) Do not allow any abnormal noises to be applied to the device.
(3) Set the electrical potential of unused input pins to the power supply voltage or GND.
(4) Do not create an output short.
17
Handling Precautions
3.3.6
Input/Output Protection
Wired-AND configurations in which outputs are connected together directly cannot be used since the outputs
short-circuit with the configurations. Outputs should, of course, never be connected to the power supply voltage
or GND. In addition, products with tri-state outputs can undergo IC deterioration if a shorted output current
continues for a long period of time. Design the circuit so that the tri-state outputs will not be enabled
simultaneously.
3.3.7
Load Capacitance
Certain devices exhibit an increase in delay times and a large charging and discharging current if a large load
capacitance is connected, resulting in noise. In addition, since outputs are shorted for a long period of time,
wiring can become fused. Use the load capacitance recommended for each product.
3.3.8
Thermal Design
The failure rate of semiconductor devices largely increases as the operating temperatures increase. As shown in
Figure 3.2, the thermal stress applied to device internal circuitry is the sum of the ambient temperature and the
temperature rise caused by the power consumption of the device. For thermal design, therefore, refer to the
precautions stated in individual technical datasheets and databooks.
To achieve even higher reliability, take into consideration the following thermal design points:
(1) Conduct studies to ensure that the ambient temperature (Ta) is maintained as low as possible, avoiding the
effects of heat generation from the surrounding area.
(2) If the device’s dynamic power consumption is relatively large, conduct studies regarding use of forced
air-cooling, circuit board composed of low thermal resistance material, and heat sinks. Such measures can
lower the thermal resistance of the package.
(3) Derate the device’s absolute maximum ratings to minimize thermal stress from power consumption.
θja = θjc + θca
θja = (Tj − Ta)/P
θjc = (Tj − Tc)/P
θca = (Tc − Ta)/P
where, θja: Thermal resistance between junction and
ambient air (°C/W)
Ta
θca
Tc
θjc: Thermal resistance between junction and package
surface, or internal thermal resistance (°C/W)
θca: Thermal resistance between package surface and
θjc
Tj
ambient air, or external thermal resistance (°C/W)
Tj: Junction temperature or chip temperature (°C)
Tc: Package surface temperature or case temperature (°C)
Ta: Ambient temperature (°C)
Figure 3.2 Thermal Resistance of
Package
P: Power consumption (W)
18
Handling Precautions
3.3.9
Interfacing
When connecting devices with different input and output voltage levels, make sure that the input voltage
(VIL/VIH) and output voltage (VOL/VOH) levels match. Otherwise, the devices may malfunction. In addition,
when connecting devices with different power supply voltages, such as in a dual power supply system, device
breakdown may result if the power-on and power-off sequences are incorrect. For device interface details, refer
to the individual technical datasheets and databooks. In addition, if you have any questions about interfacing,
contact your nearest Toshiba office or distributor.
3.3.10
Decoupling
Spike currents generated during switching can cause power supply voltage and GND voltage levels to fluctuate,
causing ringing in the output waveform or a delay in the response speed. (The power supply and GND wiring
impedance is normally 50 to 100Ω.) For this reason, the impedance of the power supply lines with respect to
high frequencies must be kept low. Specifically, this is ideally accomplished by routing thick and short power
supply and GND lines and by inserting decoupling capacitors (of approximately 0.01 to 1µF) as high-frequency
filters between the power supply and GND into each required location on the circuit board.
For low-frequency filtering, it is appropriate to insert a 10 to 100µF capacitor in each circuit board. However,
conversely if the capacitance is excessively large (such as 1000µF), latch-up may result. An appropriate
capacitance value is therefore required.
On the other hand, in the case of high-speed logic ICs, noise is caused by reflection, crosstalk or common power
supply impedance. Reflections cause increased signal delay, ringing, overshoot and undershoot, thereby
reducing the device’s noise margin. One effective wiring measure for preventing reflections is to reduce the
wiring length by increasing the mounting density so as to lower the wiring inductance (L) and capacitance (C).
This measure, however, also requires consideration with regard to crosstalk between wires. In actual pattern
design, both of these factors must be considered.
3.3.11
External Noise
When externally induced noise or surges are applied to a printed circuit
board with long I/O signals or signal lines, malfunction may result,
depending on the device. To protect against noise, protective measures
against surges must be taken such as lowering the impedance of the
Input/Output
Signals
signal line or inserting a noise-canceling circuit.
For details of required protection, refer to individual technical datasheets and databooks.
19
Handling Precautions
3.3.12
Electromagnetic Interference
Radio and TV reception problems have increased in recent years as a result of increased electromagnetic
interference radiated from electrical and electronic equipment. To use radio waves effectively and to maintain
the quality of radio communications, each country has defined limitations for the amount of electromagnetic
interference which can be generated by designated devices.
The types of electromagnetic interference include noise propagated through power supply and telephone lines,
and noise from direct electromagnetic waves radiated from equipment. Different measurement methods and
corrective actions are used for each type.
Difficulties in countering electromagnetic interference derive from the fact that there is no means for calculating
at the design stage the strength of the electromagnetic waves produced from each component in a piece of
equipment. As a result, it is after the prototype equipment has been completed that measurements are taken using
dedicated instruments to determine for the first time the strength of the electromagnetic interference. Yet it is
possible during system design to incorporate measures for the prevention of electromagnetic interference which
can facilitate corrective action after design completion. One effective method, for example, is to design the
product with several shielding options, and then select the optimum shielding method based on the results of the
measurements subsequently taken.
3.3.13
Peripheral Circuits
In many cases semiconductor devices are used with peripheral circuits and components. The input and output
signal voltages and currents in these circuits must be designed to match the specifications of the device, taking
into consideration the factors below.
(1) Input voltages and currents that are not appropriate with respect to the input pins may cause malfunction.
Some devices contain pull-up or pull-down resistors, depending on specifications. Design your system
taking into account the required voltage and current.
(2) The output pins on a device have a predetermined external circuit drive capability. If a drive capability
exceeding this value is required, either insert a compensating circuit or take that fact into account when
selecting components for use in external circuits
3.3.14
Safety Standards
Each country and region has established safety standards which must be observed. These safety standards
sometimes include requirements for quality certification systems and insulation design standards. The safety
standards of the respective countries and regions must be taken fully into account to ensure compliant device
selection and design.
20
Handling Precautions
3.3.15
Other
(1) When designing a system, incorporate fail-safe and other measures according to system application. In
addition, debug the system under actual mounting conditions.
(2) If a plastic package device is placed in a strong electric field, surface leakage may occur due to charge-up,
resulting in malfunction. When using such a device in a strong electric field, take measures by, for example,
protecting the package surface with a conductive shield.
(3) With some memory devices and microcomputers, attention is required at power on or reset release. To
ensure that your design is device appropriate, refer to the individual technical datasheets and databooks.
(4) Design the casing so as to ensure that no conductive material (such as a metal pin) can drop from an
external source onto a terminal of a mounted device, causing a short.
3.4
3.4.1
Inspection, Testing and Evaluation
Grounding
Check that there is no electrical leakage before grounding measuring equipment or a
solder iron.
Electrical leakage may cause the device you are testing or soldering to electrically break
down or may cause electric shock.
3.4.2
Inspection Sequence
[1] Do not insert devices in the wrong orientation or incorrectly. Make sure that the positive
and negative terminals of power supplies are connected properly. Otherwise, the current
or power consumption may exceed the absolute maximum rating, and exceeding the
rating(s) may cause the device breakdown, damage or deterioration, and may result
injury by explosion or combustion. In addition, do not use any device that is applied the
current with inserting in the wrong orientation or incorrectly even just one time.
[2] On the evaluation, inspection or test using AC power with a peak value of 42.4V or DC
power exceeding 60V, be sure to connect the electrodes or probes of the testing
equipment before activating the power. When you have finished, discharge any electrical
charge remaining in the device. Insufficient connection, wrong power-on timing or
incomplete discharge may cause electric shock, resulting in injury.
(1) Apply voltage to the device after inserting it into the test jig. At this time, observe the power supply
activation or shutdown standards, if existent.
(2) After test completion, be sure that the voltage applied to the device is off before removing the device from
the test jig. Removing the device with the power supply on can cause device deterioration or breakdown.
21
Handling Precautions
(3) Make sure that no surge voltages from the measuring equipment are applied to the device.
(4) The chips in tape carrier packages (TCPs) are LSI chips and therefore exposed. During inspection, be
careful not to crack or scratch the chip.
Electrical contact may also cause chip failure. Therefore make sure that nothing comes into electrical
contact with the chip.
3.5
Mounting
There are two types of device packages: lead insertion and surface mount. The items that affect reliability during
circuit board mounting include contamination by flux and thermal stress during the soldering process. With
surface-mount devices in particular, the most significant problem is thermal stress from solder reflow, when the
entire package is subjected to heat. In addition, the mounting method differs according to factors such as chip
size and frame design, even for the same package type. For details, refer to the individual technical datasheets
and databooks for each device.
When a location such as a soldered area, connecting area or top surface of a device is subjected to vibration,
impact or in actual equipment, bonding fault or device destruction may result. Therefore, be sure to keep this in
mind at the time of mounting. If a device is subject to especially strong vibration, impact or stress, the package
or chip may crack. Thus, at the time of mounting, carefully consider vibration, impact and stress.
3.5.1
Lead Forming
[1] Always wear safety glasses when cutting the leads of a device with clippers or a similar
tool. Failure to do so may result in eye damage from the small shavings that fly off the
cut ends.
[2] Do not touch the lead tips of a device.
Some devices have leads withsharp tips. Contact to sharp tips may result in a puncture
wound.
Semiconductor devices sometimes undergo a process in which the leads are cut and formed before the devices
are installed on a printed circuit board. If abnormal stress is applied to the interior of a device during this process,
mechanical breakdown or reliability deterioration may result. This is attributable mainly to the relative stress
applied between the device itself and the lead, and can result in internal lead damage, adhesive property
deterioration and sealant breakdown. Observe the following precautions during the lead-forming process.
(This does not apply to surface-mount devices.)
(1) Lead insertion hole intervals on the printed circuit board should be designed using the same dimension
standard as that for the lead interval of the device.
(2) If the lead insertion hole intervals on the printed circuit board do not match the lead interval of the device,
do not forcibly insert the device.
22
Handling Precautions
(3) For the minimum dimension between a device and printed circuit board, refer to
the individual technical datasheets and databooks. When necessary, create space
when forming the device’s leads. Do not use the spacers for raising devices
above the surface of the printed circuit board during soldering. These spacers
may continue to expand due to heat even after the solder has solidified,
sometimes applying a great amount of stress to the device.
(4) Observe the following when forming the leads of a device:
(a) When bending a lead, secure the lead at the end of the bending section near the package to ensure that
mechanical stress is not applied to the device. Also, do not repeatedly bend or stretch a lead at the
same location.
(b) Do not damage the lead during lead forming.
(c) Following any other precautions specified in the individual technical datasheets or databooks.
3.5.2
Socket Mounting
(1) When socket-mounting devices on a printed circuit board, use sockets that match the package.
(2) Use sockets with contacts that have the appropriate contact pressure. If the contact pressure is insufficient,
the contact may become poor when the device is repeatedly inserted and removed. If the contact pressure is
too high, the device leads may bend or become damaged when they are inserted into or removed from the
socket.
(3) When soldering sockets to the printed circuit board, use sockets designed to prevent flux from penetrating
the contacts and to allow flux to be completely cleaned off.
(4) Ensure that the coating agent applied to the printed circuit board for moisture-proofing does not adhere to
the socket contacts.
(5) If the leads are severely bent when inserted into or removed from a socket and you want to repair the leads
and continue using the device, repair the leads once only. Do not use devices whose leads have been
corrected multiple times.
(6) If external vibration will be applied to a printed circuit board with devices mounted on it, use sockets with
strong contact pressure so as to prevent vibration between the devices and sockets.
3.5.3
Lead(Pb)-Free / Lead(Pb)-Free Finish* Soldering Temperature Profile
Perform soldering following the methods and conditions described in the individual technical datasheets and
databooks for the device used. The soldering method, temperature and time may be restricted, depending on the
device. All soldering temperature profiles and conditions described in the mounting methods below are
representative. The profiles and conditions vary from product to product. Therefore, mount the product after first
confirming the information described in the individual technical datasheets and databooks with the customer.
For details regarding lead(Pb) soldering, please contact your nearest Toshiba office or distributor.
*Toshiba Semiconductor Company defines capitalized “Lead(Pb)-Free” products as those Containing no more than 0.1 percent lead(Pb) by
weight in homogeneous materials. This does not mean that Toshiba Semiconductor products labeled "Lead(Pb)-Free" are entirely free of
23
Handling Precautions
lead(Pb). In addition to Lead(Pb)-Free, Toshiba Semiconductor Company will offer products that have Lead(Pb)-Free terminals, which will
be referred to as “Lead(Pb)-Free Finish.” The Lead(Pb)-Free Finish products may Contain greater than 0.1 percent lead(Pb) by weight in
homogeneous materials in portions of the product other than the terminals (based on the exemption(s) in the RoHS Directive), for example,
in internal solder used to connect the semiconductor silicon to the package. This does not mean that Toshiba Semiconductor products that are
labeled "Lead(Pb)-Free Finish" have terminals that are entirely free of lead(Pb). Furthermore, the expressions “Lead(Pb)-Free” and
“Lead(Pb)-Free Finish” will be changed in package labeling as the like below from April 2006.
<<Examples of correspondence with the existing lead (Pb)-free markings>>
[Lead (Pb)-free products]: Lead (Pb)-Free -> [[G]]/RoHS COMPATIBLE
[Lead (Pb)-free finish products]: Lead(Pb)-Free Finish -> [[G]]/RoHS [[Pb]]
3.5.3.1
Using Infrared Reflow
(1) It is recommended the top and bottom heating method with long or medium infrared rays. (See Figure 3.3.)
Medium infrared ray heater
(Reflow heater)
Device flow
Long infrared ray heater (preheater)
Figure 3.3 Top and Bottom Heating Method with Long or Medium Infrared Rays
(2) Complete the infrared ray reflow process with a maximum package surface temperature of 260°C, within
30 to 50 seconds when a package surface temperature is 230°C or higher.
(3) Refer to Figure 3.4 for an example of a temperature profile.
Package Surface Tempature
(°C)
260
230
190
180
60 to 120 seconds
30 to 50 seconds
Time
(Seconds)
Figure 3.4 Example of Temperature Profile
24
Handling Precautions
This profile is based on the device’s maximum heat resistance guaranteed value.
Set the preheat temperature/heating temperature to the optimum temperature corresponding to the solder paste
type used by the customer within the above-described profile.
3.5.3.2
Using Hot Air Reflow
(1) Complete hot air reflow with a maximum package surface temperature of 260°C, within 30 to 50 seconds
when a package surface temperature is 230°C or higher.
(2) For an example of a temperature profile, refer to Figure 3.4 in Section 3.5.3.1 (3) above.
3.5.3.3
Using Solder Flow/Dip
(1) Apply preheating for 60 to 120 seconds at a temperature of 150°C.
(2) For lead insertion-type packages, mount the device within 10 seconds of solder flow with a maximum
temperature of 260°C at the stopper or at a location more than 1.5mm from the body.
(3) For surface-mount packages, mount the device within 5 seconds at a temperature of 250°C or less in order
to avoid thermal stress.
(4) Figure 3.5 shows an example of the temperature profile of solder flow for a surface-mount package.
Package Surface Temperature
(°C)
250
160
140
60 to 120 seconds
Within 5
seconds
Time
(Seconds)
Figure 3.5 Example of Surface-Mount Package Temperature Profile
This profile is based on the device’s maximum heat resistance guaranteed value.
Set the preheat temperature/heating temperature to the optimum temperature corresponding to the solder paste
type used by the customer within the above-described profile.
3.5.4
Flux Cleaning
(1) When cleaning circuit boards to remove flux, make sure that no reactive ions such as sodium or chlorine
remain. Some organic solvents react with water to generate hydrogen chloride and other corrosive gases
which can result in device deterioration.
(2) When washing devices with water, make sure that no reactive ions such as sodium or chlorine remain
particularly.
25
Handling Precautions
(3) When washing devices, do not rub markings with a brush or with your hand while the cleansing liquid is
still on the device. Doing so can rub off the markings.
(4) Dip cleaning, shower cleaning and steam cleaning processes are performed based on the chemical action of
a solvent. When immersing devices in a solvent or steam bath, complete the cleaning for a period of one
minute or less at a liquid temperature of 50°C or less, taking into consideration the effects on the devices.
(5) Avoid use of ultrasonic cleaning with hermetically sealed ceramic packages such as a leadless chip carrier
(LCC), pin grid array (PGA) or charge-coupled device (CCD). Using the ultrasonic cleaning may cause the
internal wires to become disconnected due to resonance. Even if a device package allows ultrasonic
cleaning, keep the duration of ultrasonic cleaning in a brief time. Long hours of ultrasonic cleaning may
deteriorate the adhesion between the mold resin and frame material.
The basic recommended conditions are as follows:
Recommended Ultrasonic Cleaning Conditions
Frequency:
27 to 29kHz
Ultrasonic output:
Cleaning time:
15W/L or less
30 seconds or less
Suspend the printed circuit board in the solvent bath to ensure that the circuit board and device do not come in
direct contact with the ultrasonic vibrator.
3.5.5
No Cleaning
It is recommended that you clean analog devices and high-speed devices. If such devices are not cleaned, flux
may cause minute leakage between leads or migration, depending on the flux grade. Be sure therefore to check
cleanliness at the time of use. If you are considering no cleaning, be sure to use a flux that does not require
cleaning.
3.5.6
Tape Carrier Packages (TCPs) Mounting
(1) When tape carrier packages are mounted, measures must be taken to prevent electrostatic breakdown of the
devices.
(2) When separating devices from tape, or carrying out outer lead bonding (OLB) mounting, be sure to take
work safety into consideration.
(3) The base film, which is made of polyimide, is hard and thin. Be careful not to injury yourself or damage
any objects during handling.
(4) When punching tape, take countermeasures to prevent minute broken pieces from scattering. Scattered
pieces may cause injury.
(5) Appropriately treat the tape, reels and spacers left after separating the device as industrial waste.
26
Handling Precautions
(6) With tape carrier package (TCPs) devices, the backside of the LSI chips is exposed. To ensure that the chip
will not crack, mount the device so that mechanical shock is not applied to the LSI backside. In addition,
electrical contact may also cause LSI failure. Mount the device so that there is no electrical contact with the
backside of the LSI chip.
If you are mounting the backside of the LSI chip to improve device characteristics, please contact your
nearest Toshiba office or distributor in advance.
3.5.7
Chips Mounting
Devices delivered in chip form readily deteriorate or become damaged due to external factors in comparison
with plastic-packaged products. Attention is therefore required during handling.
(1) Mount devices in a properly maintained environment so that the chip will not be exposed to contaminated
ambient air or other substances.
(2) When handling chips, be careful not to expose the chips to static electricity. In particular, measures must be
taken to prevent electrostatic breakdown during chip mounting. For this purpose, it is recommended that
you mount all peripheral devices before you mount the chips.
(3) Use chip mounting circuit boards (such as PCBs) that do not have any chemical residue on them (such as
the chemicals used during PCB etching).
(4) When mounting chips, use the method of assembly that is most suitable for achieving the appropriate
electrical, thermal and mechanical characteristics of the semiconductor product used.
*
3.5.8
For chip details, refer to the relevant specification sheet.
Circuit Board Coating
When using devices that require high reliability or devices used under extreme environments (where moisture,
corrosive gas or dust is present), circuit boards are sometimes coated with a moisture-proof coating. When using
a coating resin, choose the coating resin which results in minimal stress to the device.
3.5.9
Heat Sinks
(1) When installing a heat sink to a device, use the specified accessories. In addition, be careful not to apply
excessive force to the device during installation.
(2) When installing a device to a heat sink by fixing it in two or more locations, do not tighten one location to
the specified torque while the rest are left not tightened. Rather, lightly tighten all locations evenly first and
tighten all locations to the specified torque by rotation.
(3) Drill screw holes in the heat since as specified, and smooth the surface of the
device installation area by removing burrs and protrusions or indentations.
(4) Thinly applying silicone grease between the heat sink makes device better to
improve heat conductivity compared with no grease. If you choose to apply the
silicone grease, use a non-volatile type. Volatile type silicone grease can cause
27
Handling Precautions
cracks over time, resulting in the deterioration of the heat radiation effect.
(5) With plastic-packaged devices, the base oil of some silicone grease compounds penetrates the package
interior, significantly reducing the lifetime of the device. We ask therefore that you use the recommended
silicon grease YG6260 from GE Toshiba Silicone. If you choose to use another product, select one that is
equivalent to the Toshiba Silicone product.
(6) During device operation, heat sinks become very hot. Be careful not to touch them. A burn may result.
3.5.10
Tightening Torque
(1) Tighten screws to a tightening torque that is within the specified values described in the individual
technical datasheets and databooks for the device used.
(2) Be careful not to allow a pneumatic screwdriver to come in contact with devices. Device damage may
result.
3.5.11
Repeated Device Mounting and Usage
Do not remount or reuse devices that have histories such as that described below. These devices may cause
significant problems with regard to device characteristics and reliability.
(1) Devices that have been removed from the board after soldering.
(2) Devices that have been inserted in the wrong orientation or with reverse polarity and charged.
(3) Devices that have undergone lead forming more than once.
3.6
3.6.1
Operating Environment
Temperature
Semiconductor devices are generally more sensitive to temperature than other electromechanical parts. The
various electrical characteristics of a semiconductor device are restricted by the operating temperature. It is
therefore necessary to understand the temperature characteristics of a device and incorporate derating into the
device design in advance. When a device is used at a temperature outside the specified operating range,
electrical characteristics will not be realized and device deterioration will occur more rapidly.
3.6.2
Humidity
Plastic package devices are sometimes not completely sealed.
When these devices are used for an extended period of time under high humidity, moisture can seep into the
device and cause semiconductor chip deterioration or failure. Furthermore, when devices are mounted on a
regular printed circuit board, the impedance between wiring can decrease under high humidity. In systems with a
high signal-source impedance, circuit board leakage or leakage between device leads can cause malfunction. In
such a case, moisture-proof treatment to the device surface should be considered. On the other hand, operation
under low humidity can damage a device due to the occurrence of electrostatic discharge. Unless moisture-proof
treatments have been specifically taken, use devices within the humidity range of 40 to 60%.
28
Handling Precautions
3.6.3
Corrosive Gases
Devices react to corrosive gases may cause deteriorating device characteristics. For example, consideration must
be given to lead corrosion and leakage between leads caused by the chemical reaction that occurs when a device
is placed near a rubber product. The reason is that the rubber product will not only produce condensation but
also generate sulfur-bearing corrosive gases under high-humidity conditions.
3.6.4
Radioactive and Cosmic Rays
Standard devices are not designed with protection against radioactive and cosmic rays. Devices must therefore
be shielded if the device will be used in environments that may result in exposure to radioactive or cosmic rays
above the levels that exist in the natural environment.
3.6.5
Strong Electrical and Magnetic Fields
Devices exposed to magnetic fields can undergo a polarization phenomenon in the plastic material or within the
IC chip, which gives rise to abnormal conditions such as impedance changes or leak current increases.
Malfunctions have been reported in LSIs mounted near television deflection yokes. In such cases, the device
installation location must be changed or the device must be shielded against the electrical or magnetic field.
Shielding against magnetism is especially required in an alternating magnetic field due to the electromotive
forces generated.
3.6.6
Interference from Light (such as Ultraviolet Rays, Sunlight, Fluorescent
Lamps, Incandescent Lamps)
Light striking a semiconductor device generates electromotive force due to photoelectric effects, sometimes
causing malfunction. Devices in which the chip is visible through the package are especially affected by such
light. When designing the circuits, make sure that the devices are protected against light interference. Not just
optical semiconductor devices, but all types of devices are affected by light.
3.6.7
Dust and Oil
Similar to corrosive gases, dust and oil cause chemical reactions in semiconductor products, sometimes
adversely affecting product characteristics. Be sure to use semiconductor products in an environment that will
not result in dust or oil adhesion. Solvent and oil contained in heat release sheets similarly may result in
semiconductor product quality deterioration, characteristic deterioration or disconnection. Be sure to use such
products with care.
29
Handling Precautions
3.6.8
Smoke and Ignition
Semiconductor devices and modularized devices are not noncombustible; they can emit smoke or ignite when
excessive current or failure occurs. When this happens, poisonous gases may be produced.
Be sure to develop a safe design that protects the device from excessive current so as to ensure excessive current
does not flow within the device during operation or at the time of failure.
To prevent the propagation of fire caused by a smoking or ignited Toshiba product and to ensure that Toshiba
products do not emit smoke or ignite due to surrounding conditions, do not use Toshiba products in close
proximity to combustible thing, heat-generating thing, igniting materials or flammable materials.
3.7
Disposal
Each country and region has laws and regulations for the proper disposal of devices and packing materials. Be
sure to follow these laws and regulations at the time of disposal.
30
Handling Precautions
4. Precautions and Usage Considerations Specific to
Each Product Group
This section describes the matters specific to each product group which need to be taken into consideration. The
precautions described in this section take precedence over those described in Section 3, “General Safety
Precautions and Usage Considerations.”
4.1
4.1.1
Microcomputers
Design
(1) Use of Crystal Oscillators Other than Those Recommended
For components such as crystal oscillators that are used in the oscillation circuit of microcomputer products,
use the components with usage conditions described in the individual technical datasheets and databooks.
If you plan on using components with usage conditions other than those recommended, contact the our
engineering department stated in the individual technical datasheet or databook, or consult with the
oscillator manufacturer.
(2) Undefined Functions
Microcomputer products have commands that are not individually defined for each product (i.e., undefined
commands). These products also similarly have undefined functions (for instance, bits to which functions
are not assigned in the register).
Refer to the product’s individual technical datasheets and databooks and do not use the undefined
commands and undefined functions.
31
Handling Precautions
32
TMPR4956C
Rev. 1.1
Chapter 1 Introduction
1.
Introduction
1.1
Overview
The TMPR4956C (to be called “TX4956” hereinafter) is a standard microcontroller of 64-bit RISC
Microprocessor TX49 family.
The TX4956 uses the TX49/H4 Processor Core as the CPU. The TX49/H4 Processor Core is a 64-bit RISC
CPU core Toshiba developed based on the R4000 architecture of MIPS Technologies, Inc (“MIPS”).
TX4956 supports 64-bit (32-bit for TX4955 mode) SysAD bus interface which have multiplexed address
and data between the processor and an external agent
1.2
Notation Used in this Manual
1.2.1
Numerical Notation
•
Hexadecimal numbers in this manual are expressed as follows:0x2A (example shown for decimal
number 42)
KB (kilobyte) 210 = 1,024 bytes
MB (megabyte) 220 = 1,024 × 1,024 = 1,048,576 bytes
GB (gigabyte) 230 = 1,024 × 1,024 × 1,024 = 1,073,741,824 bytes
1.2.2
Data Notation
•
Byte: Eight bits
•
Half word: Two contiguous bytes (16 bits)
•
Word: Four contiguous bytes (32 bits)
“W” may be used for a word data.
•
Double word: Eight contiguous bytes (64 bits)
“D” may be used for a double word data.
1.2.3
1.2.4
Signal Notation
•
Active-low signals are indicated by adding an asterisk(*) at the end of the signal name (Example:
RESET*)
•
When a signal is driven to the active voltage level, the signal is said to be “asserted.”
When the signal is driven to an inactive voltage level, it is said to be “deasserted.”
Register Notation
•
The following nomenclature is used for access attributes.
R:
Read only. Cannot be written.
W:
Write only. The bit value is undefined if read.
R/W: Read/Write
R4000/R4300/R5000 are a trademark of MIPS Technologies, Inc.
1-1
Chapter 1 Introduction
1-2
Chapter 2 Features
2.
Features
•
TX49/H4 Processor Core
TX49/H4 Processor Core is a 64-bit RISC CPU core Toshiba developed based on the architecture of MIPS
for interactive consumer applications including Printer, Network and set-top terminals.
•
Internal bus width is 64-bit, External bus width is 64-bit or 32-bit.
Core and Cache are connected with 64-bit internal bus. External bus is 64-bit or 32-bit SysAD-bus I/F with
multiplexed address and data. This interface is compatible with the R4300, and R5000 system interfaces.
•
Power management
Internal: 1.25 V
I/O: 3.3 V or 2.5 V
The TX49/H4 Processor support Power management mode (Halt, Doze)
•
Maximum operating frequency
The SysAD-bus I/F and TX49/H4 Processor’s maximum operating frequency is set by External pin
(DivMode[2:0]).
•
Div Mode[2:0]
EC-bit
Clock Ratio
000
001
010
011
100
101
110
111
010
111
000
001
100
101
110
011
1:4
1:2.5
1:2
1:3
1:3.5
1:4.5
1:5
1:6
Package
217-pin PFBGA
•
Part Number
TMPR4956CXBG-400: Maximum internal operating frequency = 400 MHz
(Ask your nearest Toshiba sales representative for the latest part number.)
2-1
Chapter 2 Features
2.1
Block Diagram
TX4956
MasterClock
TX49/H4 Core
CG
(PLL)
Integer Unit
Interrupt /
Reset
EJTAG
Interface
64-bit/32-bit
SysAD Bus
Synchronize
DSU
(EJTAG)
GPR
Pipeline
Control
Data Path
JTAG
(BSR)
SysAD
Interface
MAC
32 KB
4-Way set
Instruction Cache
Cache
Controller
System Control
Coprocessor (CP0)
CP0 Registers
FP Registers
MMU / TLB
Data Path
Exception Unit
Pipeline
Control
32 KB
4-Way set
Data Cache
Write
Buffer
Figure 2.1.1 TX4956 Block Diagram
2-2
Floating-Point
Coprocessor (CP1)
Chapter 2 Features
2.2
Pin Description
2.2.1
TX4956 Pin Out (217-pin PFBGA)
Table 2.2.1 shows the TX4956 pin assignment.
TX4956 has two types of system interface. One is for R5000 type protocol , other is for R4300 type protocol,
R5000 type protocol supports two bus widths, 32-bit bus width and 64-bit bus width. R4300 type protocol only
supports 32-bit bus width, Operation with 32-bit bus width on either R5000 or R4300 type protocol is called
“32-bit mode”. Operation with 64-bit bus width on R5000 is called “64-bit mode”. And especially we call
operation of R5000 type protocol with 32-bit width “TX4955 mode” which means TX4955 compatible.
Table 2.2.1 shows the relation between System Interface operation modes and pin settings .
Table 2.2.1 Relationship between System Interface Operation Mode and Pin Setting
BSIZE64*=0
MODE43*=0
BSIZE64*=1
(NA)
R43000 type protocol
MODE43*=1
R5000 type protocol
TX4955 mode
See the Chapter 11 about System Interface in detail.
In the following table, signal names surrounded by () mean the signal name in the case of R4300 type
protocol selected, and “*” means the signal is the low-active
2-3
Chapter 2 Features
Table 2.2.2 TX4956 Pin Assginment (1/2)
Pin No.
Signal Name
Pin No.
Signal Name
Pin No.
Signal Name
A1
MasterClock
C8
PCST8
E15
SysAD25
A2
DivMode2
C9
SysADC1
F1
SysAD7
A3
VccPLL
C10
Vss
F2
SysAD8
A4
VssPLL
C11
VccInt
F3
VccIO
A5
JTDO
C12
VccInt
F4
VccIO
A6
SysAD3
C13
SysADC0
F5
VccIO
A7
SysAD2
C14
SysADC3
F6
VccIO
A8
SysAD1
C15
SysAD27
F7
VccIO
A9
SysAD0
D1
SysAD5
F8
Vss
A10
SysAD31
D2
SysAD34
F9
Vss
A11
SysAD30
D3
VccIO
F10
Vss
A12
SysAD29
D4
VccIO
F11
VccInt
A13
SysAD28
D5
VccIO
F12
VccInt
A14
DivMode0
D6
VccIO
F13
VccInt
A15
DivMode1
D7
VccIO
F14
SysAD52
B1
BufSel
D8
Vss
F15
SysAD24
B2
SysAD32
D9
Vss
G1
SysAD9
B3
JTCK
D10
Vss
G2
SysAD10
B4
JTDI
D11
VccInt
G3
Vss
B5
SysAD63
D12
VccInt
G4
Vss
B6
SysAD62
D13
VccInt
G5
Vss
B7
SysAD61
D14
SysADC2
G6
Vss
B8
SysAD60
D15
SysAD26
G7
Vss
B9
SysAD59
E1
SysAD6
G10
Vss
B10
SysAD58
E2
SysAD35
G11
Vss
B11
SysAD57
E3
VccIO
G12
Vss
B12
SysAD56
E4
VccIO
G13
Vss
B13
SysAD55
E5
VccIO
G14
SysAD51
B14
SysAD54
E6
VccIO
G15
SysAD23
B15
MODE43*
E7
VccIO
H1
SysAD11
C1
SysAD4
E8
Vss
H2
SysAD12
C2
SysAD33
E9
Vss
H3
Vss
C3
JTMS
E10
Vss
H4
Vss
C4
PCST4
E11
VccInt
H5
Vss
C5
PCST5
E12
VccInt
H6
Vss
C6
PCST6
E13
VccInt
H10
Vss
C7
PCST7
E14
SysAD53
H11
Vss
2-4
Chapter 2 Features
Table 2.2.2 TX4956 Pin Assginment (2/2)
Pin No.
Signal Name
Pin No.
Signal Name
Pin No.
Signal Name
H12
Vss
L7
Vss
N14
SysAD45
H13
Vss
L8
Vss
N15
SysAD17
H14
SysAD50
L9
Vss
P1
WrRdy* (EOK*)
H15
SysAD22
L10
VccIO
P2
PLLReset*
J1
SysAD13
L11
VccIO
P3
SysAD41
J2
SysAD36
L12
VccIO
P4
SysAD42
J3
Vss
L13
TPC1
P5
TintDis
J4
Vss
L14
SysAD47
P6
SysCmd1
J5
Vss
L15
SysAD19
P7
SysCmd3
J6
Vss
M1
TRST*
P8
SysCmd5
J10
Vss
M2
SysAD39
P9
SysCmd7
J11
Vss
M3
PCST1
P10
Int1*
J12
Vss
M4
VccInt
P11
Int2*
J13
Vss
M5
VccInt
P12
DCLK
J14
SysAD49
M6
VccInt
P13
SysAD43
J15
SysAD21
M7
Vss
P14
SysAD44
K1
SysAD14
M8
Vss
P15
SysAD16
K2
SysAD37
M9
Vss
R1
ValidIn* (Evalid*)
K3
PCST3
M10
VccIO
R2
ValidOut* (Pvalid*)
K4
VccInt
M11
VccIO
R3
Release* (PMaster*)
K5
VccInt
M12
VccIO
R4
BSIZE64*
K6
VccInt
M13
TPC2
R5
SysCmd0
K7
Vss
M14
SysAD46
R6
SysCmd2
K8
Vss
M15
SysAD18
R7
SysCmd4
K9
Vss
N1
RdRdy*
R8
SysCmd6
K10
VccIO
N2
SysAD40
R9
SysCmd8
K11
VccIO
N3
PCST0
R10
Int0*
K12
VccIO
N4
SysADC6
R11
NMI*
K13
VccIO
N5
SysADC7
R12
ExtRqst* (EReq*)
K14
SysAD48
N6
SysADC5
R13
Reset*
K15
SysAD20
N7
HALTDOZE
R14
ColdReset*
L1
SysAD15
N8
SysCmdP
R15
Endian
L2
SysAD38
N9
SysADC4
L3
PCST2
N10
Int3*
L4
VccInt
N11
Int4*
L5
VccInt
N12
Int5*
L6
VccInt
N13
TPC3
2-5
Chapter 2 Features
2.2.2
TX4956 Pin Description
Table 2.2.3 System Interface (when R5000 type protocol mode (MODE43* = 1))
Signal Name
Pin No.
I/O
Function
SysAD[63:0]
B5, B6, B7,
B8, B9, B10,
B11, B12,
B13, B14,
E14, F14,
G14, H14,
J14, K14,
L14, M14,
N14, P14,
P13, P4, P3,
N2, M2, L2,
K2, J2, E2,
D2, C2, B2,
A10, A11,
A12, A13,
C15, D15,
E15, F15,
G15, H15,
J15, K15,
L15, M15,
N15, P15,
L1, K1, J1,
H2, H1, G2,
G1, F2, F1,
E1, D1, C1,
A6, A7, A8,
A9
I/O
System address/data bus
A 64-bit address and data bus for communication between the processor and an
external agent.
When 32-bit bus width is selected for external bus (R4 pin:BISIZE64*=1), upper 32
bits are driven to 0 at both address output and data input cycles, and then these pins
can be left open on the board
SysCmd[8:0]
R9, P9, R8,
P8, R7, P7,
R6, P6, R5
I/O
System command/data identifier bus
A 9-bit bus for command and data identifier transmission between the processor and
an external agent.
SysADC[7:0]
N5, N4, N6,
N9, C14,
D14, C9,
C13
I/O
System command/data check bus
A 8-bit bus containing parity check bits for the SysAD bus during data cycle.
When 32-bit bus width is selected for external bus (R4 pin:BISIZE64*=1), upper 4 bits
are driven to 0 at both address output and data input cycles, and then these pins can
be left open on the board
SysCmdP
N8
I/O
Reserved for system command/data identifier bus parity
This signal is unused for TX4956. 0 is driven for output. Please put a pull-down or
pull-up resistor for input on the board.
ValidIn*
R1
I
Valid input
The external agent asserts Validln* when it is driving a valid address or data on the
SysAD bus and valid command or data identifier on the SysCmd bus.
ValidOut*
R2
O
Valid output
The processor asserts ValidOut* when it is driving a valid address or data on the
SysAD bus and a valid command or data identifier on the SysCmd bus.
ExtRqst*
R12
I
External request
An external agent asserts ExtRqst* to request use of the System interface.
Release*
R3
O
Release interface
The processor asserts this signal when the system interface is released to the slave
state.
WrRdy*
P1
I
Write Ready
This signals should be asserted when an external agent accepts a processor write
request.
RdRdy*
N1
I
Read Ready (with pull-down resistor).
This signals should be asserted when an external agent accepts a processor read
request.
2-6
Chapter 2 Features
Table 2.2.4 System Interface (when R4300 type protocol mode (MODE43* = 0, BSIZE64*=1))
Signal Name
Pin No.
I/O
Function
SysAD[63:32]
B5, B6, B7,
B8, B9, B10,
B11, B12,
B13, B14,
E14, F14,
G14, H14,
J14, K14,
L14, M14,
N14, P14,
P13, P4, P3,
N2, M2, L2,
K2, J2, E2,
D2, C2, B2
I/O
These pins are driven to 0 at both address output and data input cycles, and then
these pins can be left open on the board.
SysAD[31:0]
A10, A11,
A12, A13,
C15, D15,
E15, F15,
G15, H15,
J15, K15,
L15, M15,
N15, P15,
L1, K1, J1,
H2, H1, G2,
G1, F2, F1,
E1, D1, C1,
A6, A7, A8,
A9
I/O
System address/data bus
A 32-bit address and data bus for communication between the processor and an
external agent.
SysCmd[8:5]
R9, P9, R8,
P8
I/O
These pins are driven to 0 at both address output and data input cycles, and then can
be left open on the board.
SysCmd[4:0]
R7, P7, R6,
P6, R5
I/O
System command/data identifier bus
A 5-bit bus for command and data identifier transmission between the processor and
an external agent.
SysADC[7:0]
N5, N4, N6,
N9, C14,
D14, C9,
C13
I/O
These pins are driven to 0 at both address output and data input cycles, and then can
be left open on the board.
SysCmdP
N8
I/O
This pin is driven to 0 at both address output and data input cycles, and then can be
left open on the board
Evalid*
R1
I
External agent valid input
This signal should be asserted when an external agent is driving a valid address or
valid data on the SysAD bus, and a valid command or data identifier on the SysCmd
bus.
Pvalid*
R2
O
Processor valid output
The processor asserts this signal when the processor is driving a valid address or valid
data on the SysAD bus, and a valid command or data identifier on the SysCmd bus.
EReq*
R12
I
External request
This signal should be asserted when an external agent is requesting System interface
bus ownership.
PMaster*
R3
O
Processor Master
The processor asserts this signal when the processor is a bus master.
EOK*
P1
I
External agent Ready
This signal should be asserted when an external agent accepts a processor request.
RdRdy*
N1
I
This signal has a pull-down resistor in the internal of the processor, and then this
signal can be left open on the board.
2-7
Chapter 2 Features
Table 2.2.5 Clock/Control Interface
Signal Name
Pin No.
I/O
Function
MasterClock
A1
I
Master clock
Master clock input that establishes the processor operating frequency.
DivMode[2:0]
A2, A15,
A14
I
Set the operational frequency of the System interface
Set the Clock ratio between MasterClock and internal clock (CPUCLK).
* EC-bit indicates the bit filed of Config Register in CP0.
DivMode[2:0]
EC-bit
Clock Ratio (MasterClock:CPUCLK)
000
010
1:4
001
111
1:2.5
010
000
1:2
011
001
1:3
100
100
1:3.5
101
101
1:4.5
110
110
1:5
111
011
1:6
See chapter 10 described about Clock interface in detail.
TintDis
P5
I
Timer-Interrupt disable input
0: enable Timer-Interrupt
1: disable Timer-Interrupt
HALTDOZE
N7
O
HALT/DOZE mode output
This signal output the status of HALT or DOZE mode. This signal indicates that the
TX4956 is in the HALT or DOZE mode when this signal is “H”.
Endian
R15
I
Endianess input
Indicates the initial setting of the endian during a reset.
0: Little Endian
1: Big Endian
Table 2.2.6 Interrupt Interface
Signal Name
Pin No.
I/O
Function
Int[5:0]*
N12, N11,
N10, P11,
P10, R10
I
Interrupt (with pull-up resistor).
General-purpose processor interrupt inputs, which are sampled at rising edges of the
MasterClock.
When TintDis is deasserted (TintDis = 0), Int5* is not available.
R11
I
Nonmaskable interrupt (with pull-up resistor).
Nonmaskable interrupt input, which is sampled at rising edges of the MasterClock.
NMI*
2-8
Chapter 2 Features
Table 2.2.7 EJTAG Interface
Signal Name
Pin No.
I/O
Function
JTDI
B4
I
JTAG data input/Debug interrupt input
Run-time mode: Input serial data to JTAG data/instruction registers.
(with pull-up resistor).
JTCK
B3
I
JTAG clock input
Clock input for JTAG. The JTDI and JTMS data are latched on rising edges of this
clock (with pull-up resistor).
JTDO/TPC[0]
A5
O
JTAG data output/Trace PC output
Data is serially shifted out from this pin. Outputs a non-sequential program counter
value synchronously with DCLK.
JTMS
C3
I
JTAG command
Controls mainly the status transition of the TAP controller state machine.
When the serial input data is a JTAG command, apply a high signal (= 1) to this pin
(with pull-up resistor).
DCLK
P12
O
Debug clock (1/3 CPU clock)
Clock output for a real-time debug system. Timings of the serial monitor bus and PC
trace interface signals all are defined by this debug clock DCLK.
C8, C7, C6,
C5, C4, K3,
L3, M3, N3
O
PC trace status
Outputs PC trace status information and serial monitor bus mode.
N13, M13,
L13
O
Trace PC output (with pull-up resistor for TPC[1] and with pull-down resistors for
TPC[3:2])
M1
I
DCLK clock frequency is 1/3 that of CPUCLK.
PCST[8:0]
TPC[3:1]
Outputs a non-sequential program counter value synchronously with DCLK.
TRST*
Test reset input
Reset input for a real-time debug system. When TRST* is asserted (= 0), the debug
support unit (DSU) is initialized. TRST* should be asserted when DSU is not used
(with pull-down resistor).
2-9
Chapter 2 Features
Table 2.2.8 Initialization Interface
Signal Name
Pin No.
I/O
Function
Reset*
R13
I
Reset (with pull-up resistor).
This signal should be asserted for soft reset.
See section 9.2.3 SoftReset in detail.
ColdReset*
R14
I
Cold reset
This signal should be assert at power-on and for a cold reset. GBUSCLK starts
operating synchronously with this signal.
See section 9.2.2 ColdReset in detail.
PLLReset*
P2
I
PLL reset input
This signal should be asserted for initialization of the on-chip PLL, for example, when
the system power is turned on.
MODE43*
B15
I
SysAD bus protocol selection
The high or low level of this input signal at power-on or cold reset selects the SysAD
bus protocol.
0: R4300 type protocol
1: R5000 type protocol
BSIZE64*
R4
I
SysAD bus width selection
The high or low level of this input signal selects the SysAD bus address and data width
0: 64-bit bus width
1: 32-bit bus width (TX4955 mode or R4300 type protocol)
BufSel
B1
I
Output Buffer Select
Select the output buffer type of data bus and control signals.
BufSel
Buffer output rate
0
100 % (16-mA buffer type)
1
50 % (8-mA buffer type)
Please not change the value after power-on.
See section 9.2.1 Power-On Reset in detail.
2-10
Chapter 2 Features
Table 2.2.9 Power Supply
Signal Name
Pin No.
I/O
Function
VccPLL
A3
−
Vcc for the PLL
This is a static Vcc for the internal Phase Locked Loop. (Apply a 1.25 V power supply.)
VssPLL
A4
−
Vss for the PLL
This is a static Vss for the internal Phase Locked Loop.
VccIO
F3, F4, F5,
F6, F7D3,
D4, D5, D6,
D7, E3, E4,
E5, E6, E7,
L10, L11,
L12, M10,
M11, M12,
K10, K11,
K12, K13
−
VccIO
This is a 3.3 V or 2.5 V power supply pin.
VccInt
C11, C12,
F11, F12,
F13, D11,
D12, D13,
E11, E12,
E13, M4,
M5, M6, K4,
K5, K6, L4,
L5, L6
−
VccInt
This is a 1.25 V power supply pin.
Vss
C10, F8, F9,
F10, D8, D9,
D10, G3,
G4, G4, G6
G10, G11,
G12, G13,
E8, E9, E10,
H3, H4, H5,
H6, H10,
H11, H12,
H13, L7, L8,
L9, J3, J4,
J5, J6, J10,
J11, J12,
J13, M7, M8,
M9, K7, K8,
K9
−
Vss
This is the ground pin.
2-11
Chapter 2 Features
2-12
Chapter 3 TX49/H4 Core’s Registers
3.
3.1
TX49/H4 Core’s Registers
CPU Registers
The TX4956 with TX49/H4 Core has the 64-bit CPU registers.
•
32 general-purpose registers
•
64-bit program counter
•
HI/LO register for storing the result of multiply and divide operations
Figure 3.1.1 shows the configuration of these registers.
General Purpose Registers (GPR)
63
0
Multiply/Divide Registers
63
0
r0 = 0
HI
r1
63
0
r2
LO
.
.
Program counter
r29
63
r30
0
PC
r31 = Link Address
Figure 3.1.1 CPU Registers
The r0 and r31 registers of GPR have special functions as follows.
•
Register r0 always contains the value 0. It can be a target register of an instruction whose operation
result is not needed. Or, it can be a source register of an instruction that requires a value of 0.
•
Register r31 is the link register for the Jump and Link instruction. The address of the instruction after
the delay slot is placed in r31.
The TX49/H4 Core has the following some special registers that are used or modified implicitly by certain
instructions.
•
HI - Holds the high-order bits of the result of integer multiply operation or the remainder of integer
divide operation.
•
LO - Holds the low-order bits of the result of integer multiply operation or the quotient of integer
divide operation.
These two registers are used to store that result of an integer multiplication or division. In multiplication, the
64 high-order bits of a 128-bit result are stored in the HI, and the 64 low-order bits are stored in the LO. In
division, the resulting quotient is stored in the LO, and the remainder is stored in the HI.
•
PC - Program Counter
The register contains the address of the currently executed instruction.
3-1
Chapter 3 TX49/H4 Core’s Registers
3.2
CP0 Registers
TX49/H4 Core has the 32-bit or 64-bit System control coprocessor(CP0) registers. These registers are used
for memory system or exception handling. Table 3.2.1 lists the CP0 registers built into the TX49/H4 Core.
Table 3.2.1 CP0 Registers
Register Name
Reg. No.
Register Name
Reg. No.
Index
Reg#0
Config
Reg#16
Random
Reg#1
LLAddr
Reg#17
EntryLo0
Reg#2
(Reserved) (Note 1)
Reg#18
EntryLo1
Reg#3
(Reserved) (Note 1)
Reg#19
Context
Reg#4
XContext
Reg#20
PageMask
Reg#5
(Reserved) (Note 1)
Reg#21
Wired
Reg#6
(Reserved) (Note 1)
Reg#22
(Reserved) (Note 1)
Reg#7
Debug (Note 2)
Reg#23
BadVAddr
Reg#8
DEPC (Note 2)
Reg#24
Count
Reg#9
(Reserved) (Note 1)
Reg#25
EntryHi
Reg#10
(Reserved) (Note 1)
Reg#26
Compare
Reg#11
(Reserved) (Note 1)
Reg#27
Status
Reg#12
TagLo
Reg#28
Cause
Reg#13
TagHi
Reg#29
EPC
Reg#14
ErrorEPC
Reg#30
PRId
Reg#15
DESAVE (Note 2)
Reg#31
Note 1: These registers are used to test the System Control Coprocessor (CP0) and should not be
accessed by the user.
Note 2: These registers are exclusively used by external in-circuit emulators (ICE).
3-2
Chapter 3 TX49/H4 Core’s Registers
3.2.1
Index Register (Reg#0)
The Index register is a 32-bit read/write register containing six bits to index an entry in the TLB. The P
bit of the register shows the success/failure of a TLB Probe (TLBP) instruction.
The Index register also specifies the TLB entry affected by TLB Read (TLBR) or TLB Write Index
(TLBWI) instructions. Figure 3.2.1 shows the format of the Index register and Table 3.2.2 describes the
Index register fields.
31
30
6 5
P
0
0
Index
Figure 3.2.1 Index Register Format
Table 3.2.2 Index Register Field Descriptions
Bit(s)
Field Name
Description
31
P
30:6
0
Reserved
0x0
Read
5:0
Index
Index to the TLB entry affected by the TLB Read (TLBR) and
TLB Write Index (TLBWI) instructions.
Undefined
Read/Write
Probe failure. Set to 1 when the previous
TLB Probe (TLBP) instruction was unsuccessful.
3-3
Cold Reset
Read/Write
Undefined
Read/Write
Chapter 3 TX49/H4 Core’s Registers
3.2.2
Random Register (Reg#1)
The Random register is a read only register containing six bits to index an entry in the TLB. This
register decrements as each instruction executes. The values are as follows.
•
A lower bound is set by the number of TLB entries reserved for exclusive use by the operating
system (the contents of the Wired register).
•
An upper bound is set by the total number of TLB entries (47 maximum).
The Random register specifies the TLB entry affected by TLB Write Random (TLBWR) instruction.
However the register doesn’t need to be read for this purpose, it is readable to verify proper operation of
the processor.
To simplify testing, the Random register is set to the value of the upper bound upon system reset. This
register is also set to the upper bound when the Wired register is written.
Figure 3.2.2 shows the format of the Random register and Table 3.2.3 describes the Random register
fields.
31
6 5
0
0
Random
Figure 3.2.2 Random Register Format
Table 3.2.3 Random Register Field Descriptions
Bit(s)
Field Name
Cold Reset
Read/Write
31:6
0
Reserved
Description
0x0
Read
5:0
Random
TLB random index for TLBWR instruction.
Upper bound
(47)
Read
3-4
Chapter 3 TX49/H4 Core’s Registers
3.2.3
EntryLo0 Register (Reg#2) and EntryLo1 Register (Reg#3)
The EntryLo register consists of two registers have identical formats:
•
EntryLo0 is used for even virtual pages
•
EntryLo1 is used for odd virtual pages
The EntryLo0 and EntryLo1 register are read/write register. These registers hold the physical page
frame number (PFN) of the TLB entry for even and odd pages, respectively, when performing TLB read
and write operations.
Figure 3.2.3 shows the format of the EntryLo0/EntryLo1 register and Table 3.2.4 describes the
EntryLo0/EntryLo1 register fields.
63
32 31
0
30 29
WCE
6 5
PFN
C
3 2
1
0
D
V
G
Figure 3.2.3 EntryLo0/EntryLo1 Register Format
Table 3.2.4 EntryLo0/EntryLo1 Register Field Descriptions
Bit(s)
Field Name
Description
Cold Reset
Read/Write
63:32
0
Reserved
0x0
Read
31:30
WCE
Usable for Windows CE
0x0
Read/Write
29:6
PFN
Page frame number.
This frame number is the upper bit filed of physical address.
Undefined
Read/Write
5:3
C
Specifies the TLB page coherency attribute.
0: Cacheable, noncoherent, write-through, no-Write Allocate
1: Cacheable, noncoherent, write-through, Write Allocate
2: Uncached
3: Cacheable, noncoherent, write-back, Write Allocate
4-7: Reserved
0x0
Read/Write
2
D
Dirty
If this bit is set, the page is marked as dirty and, therefore,
writable. This bit is actually a write-protect bit that software
can use to prevent alteration of data.
0
Read/Write
1
V
Valid
If this bit is set, it indicates that the TLB entry is valid;
otherwise, a TLBL or TLBS miss occurs.
0
Read/Write
0
G
Global
If this bit is set in both EntryLo0 and EntryLo1, then the
processor ignores the ASID during TLB lookup.
0
Read/Write
3-5
Chapter 3 TX49/H4 Core’s Registers
3.2.4
Context Register (Reg#4)
The Context register is a read/write register containing the pointer to an entry in the page table entry
(PTE) array. This array is an operating system data structure that stores virtual to physical address
translations. When there is a TLB miss, the CPU loads the TLB with the missing translation from the PTE
array. Normally, the operating system uses the Context register to address the current page map which
resides in the kernel mapped segment, kseg3. However the contents of this register duplicates some
information of the BadVAddr register, it is arranged in a form that is more useful for TLB exception
handler by a software.
Figure 3.2.4 shows the formats of the Context register and Table 3.2.5 describes the Context register
fields.
31
23
22
4
PTEBase
3
BadVPN2
0
0
(32-bit mode)
63
23 22
PTEBase
4
3
BadVPN2
0
0
(64-bit mode)
Figure 3.2.4 Context Register Formats
Table 3.2.5 Context Register Field Descriptions
32-bit mode
Cold Reset
Read/Write
31:23
Bit(s)
Field Name
PTEBase
Page table entry base pointer
This field is for use by the operating system. It is normally
written with a value that allows the operating system to use
the Context register as a pointer into the current PTE array in
memory.
Description
Undefined
Read/Write
22:4
BadVPN2
Bad virtual address bits 31-13
This field is written by hardware on a miss. It contains the
virtual page number (VPN) of the most recent virtual address
that did not have a valid translation.
Undefined
Read
3:0
0
Reserved
0x0
Read
Cold Reset
Read/Write
64-bit mode
Bit(s)
Field Name
Description
63:23
PTEBase
Page table entry base pointer
Undefined
Read/Write
22:4
BadVPN2
Bad virtual address bits 31-13
Undefined
Read
3:0
0
Reserved
0x0
Read
The 19-bit BadVPN2 field contains bits 31-13 of the virtual address that caused the TLB miss; bits 12
is excluded because a single TLB entry maps-an even-odd page pair. For a 4-Kbyte page size, this format
can directly address the pair-table of 8-byte PTEs. For other page size and PTE sizes, shifting and
masking this value produces the appropriate address.
3-6
Chapter 3 TX49/H4 Core’s Registers
3.2.5
PageMask Register (Reg#5)
The PageMask register is a read/write register used for reading from/writing to the TLB. This register
holds a comparison mask that sets the variable page size for each TLB entry.
TLB read and write operations use this register as either a source or a destination. When virtual
addresses are presented for translation into physical address, the corresponding bits in the TLB identify
which virtual address bits among bits 24-13 are used in the comparison. When the Mask field is not one of
the values shown in Table 3.2.6, the operation of the TLB is undefined.
Figure 3.2.5 shows the format of the PageMask register and Table 3.2.6 describes the PageMask
register fields.
31
25 24
0
13 12
0
MASK
0
Figure 3.2.5 PageMask Register Format
Table 3.2.6 PageMask Register Field Descriptions
Bit(s)
Field Name
Cold Reset
Read/Write
31:25
0
Reserved
Description
0x0
Read
24:13
MASK
Page comparison mask
000000000000: page size = 4 Kbytes
000000000011: page size = 16 Kbytes
000000001111: page size = 64 Kbytes
000000111111: page size = 256 Kbytes
000011111111: page size = 1 Mbytes
001111111111: page size = 4 Mbytes
111111111111: page size = 16 Mbytes
0x0
Read/Write
12:0
0
Reserved
0x0
Read
3-7
Chapter 3 TX49/H4 Core’s Registers
3.2.6
Wired Register (Reg#6)
The Wired register is a read/write register specifies the boundary between the wired and random entries
of the TLB as follows. Wired entries are non-replaceable entries, which can not be overwritten by a TLB
write random operation. Random entries can be overwritten.
TLB
47
Range of Random entries
Wired Register
Range of Wired entries
0
The Wired register is set to 0 upon system reset. Writing this register also sets the Random register to
the value of its upper bound.
Figure 3.2.6 shows the format of the Wired register and Table 3.2.7 describes the Wired register fields.
31
6 5
0
0
Wired
Figure 3.2.6 Wired Register
Table 3.2.7 Wired Register Filed Descriptions
Bit(s)
Field Name
Cold Reset
Read/Write
31:6
0
Reserved
(Must be written as zeroes, and returns zeroes when read.)
Description
0x0
Read
5:0
Wired
TLB Wired boundary.
0x0
Read/Write
3-8
Chapter 3 TX49/H4 Core’s Registers
3.2.7
BadVAddr Register (Reg#8)
The Bad Virtual Address (BadVAddr) register is a read only register that displays the most recent
virtual address that cause one of the following exceptions; Address Error, TLB Invalid, TLB Modified
and TLB Refill exceptions.
The processor does not write to this register when the EXL bit in the Status register is set to a 1.
Figure 3.2.7 shows the formats of the BadVAddr register and Table 3.2.8 describes the BadVAddr
register fields.
31
0
Bad Virtual Address
(32-bit mode)
63
0
Bad Virtual Address
(64-bit mode)
Figure 3.2.7 BadVAddr Register Formats
Table 3.2.8 BadVAddr Register Field Descriptions
32-bit mode
Bit(s)
Field Name
31:0
BadVAddr
Description
Bad Virtual address
Cold Reset
Read/Write
Undefined
Read
64-bit mode
Bit(s)
Field Name
63:0
BadVAddr
Description
Bad Virtual address
3-9
Cold Reset
Read/Write
Undefined
Read
Chapter 3 TX49/H4 Core’s Registers
3.2.8
Count Register (Reg#9)
The Count register is a read/write register. This register acts as a timer, incrementing at a constant rate
(1/2 rate of CPUCLK) whether or not an instruction is executed, retired, or any forward progress is made
through the pipeline.
When all count bits of the Counter register become up to 1, then they are flushed to 0 and continue to
count up from 0.
This register can be also written for diagnostic purpose or system initialization.
Figure 3.2.8 shows the format of the Count register and Table 3.2.9 describes the Count register field.
31
0
Count
Figure 3.2.8 Count Register Format
Table 3.2.9 Count Register Field Description
Bit(s)
Field Name
31:0
Count
Description
32-bit timer, incrementing at half the maximum instruction
issue rate (CPUCLK).
3-10
Cold Reset
Read/Write
0x0
Read/Write
Chapter 3 TX49/H4 Core’s Registers
3.2.9
EntryHi Register (Reg#10)
The EntryHi is a read/write register, and holds the high-order bits of a TLB entry for TLB read and
write operations. This register is accessed by the TLB Probe (TLBP), TLB Write Ransom (TLBWR),
TLB Write Indexed (TLBWI), and TLB Read Indexed (TLBR) instructions.
When either a TLB refill, TLB invalid, or TLB modified exception occurs, this register is loaded with
the virtual page number (VPN2) and the ASID of the virtual address that did not have a matching TLB
entry.
Figure 3.2.9 shows the formats of the EntryHi register and Table 3.2.10 describes the EntryHi register
fields.
31
13 12
VPN2
8 7
0
0
ASID
(32-bit mode)
63
62 61
R
40 39
FILL
13 12
VPN2
8 7
0
0
ASID
(64-bit mode)
Figure 3.2.9 EntryHi Register Formats
Table 3.2.10 EntryHi Register Field Descriptions
32-bit mode
Bit(s)
Field Name
31:13
VPN2
12:8
0
7:0
ASID
Description
Cold Reset
Read/Write
Virtual page number divided by two
Undefined
Read/Write
Reserved
0x0
Read
Address space ID field
An 8-bit field that lets multiple processes share the TLB; each
process has a distinct mapping of otherwise identical virtual
page numbers.
Undefined
Read/Write
64-bit mode
Bit(s)
Field Name
63:62
R
Description
61:40
Fill
Reserved. 0 on read. Ignored on write.
Undefined
Read
39:13
VPN2
Virtual page number divided by two
Undefined
Read/Write
Region. Used to match vAddr63 and vAddr62.
00: user
01: supervisor
11: kernel
Cold Reset
Read/Write
Undefined
Read/Write
12:8
0
Reserved
0x0
Read
7:0
ASID
Address space ID field.
Undefined
Read/Write
3-11
Chapter 3 TX49/H4 Core’s Registers
3.2.10
Compare Register (Reg#11)
The Compare register acts as a timer. When value of the Count register equals the value of the Compare
register, interrupt bit IP (7) in the Cause register is set. This causes an interrupt exception as soon as the
interrupt is enabled. Writing a value to this register, as a side effect, clears the timer interrupt.
For diagnostic purpose, this register is a read/write register. However, in normal operation this register
is write only.
Figure 3.2.10 shows the format of the Compare register and Table 3.2.11 describes the Compare
register field.
31
0
Compare
Figure 3.2.10 Compare Register Format
Table 3.2.11 Compare Register Field Description
Bit(s)
Field Name
31:0
Compare
Description
Acts as a timer; it maintains a stable value that does not
change on its own.
3-12
Cold Reset
Read/Write
0x0
Read/Write
Chapter 3 TX49/H4 Core’s Registers
3.2.11
Status Register (Reg#12)
The Status register is a read/write register that contains the operating mode, interrupt enabling, and
diagnostic states of the processor. The more important Status register fields are as followings:
•
The Interrupt Mask (IM) field of 8 bits controls the enabling of eight interrupt conditions.
Interrupt must be enabled before they can be asserted, and the corresponding bits are set in both
the IM field of this register and the Interrupt Pending field of the Cause register.
•
The Coprocessor Usability (CU) field of 4 bits controls the usability of four possible
coprocessors. Regardless of the CU0 bit setting, CP0 is always usable in Kernel mode.
•
The Diagnostic Status (DS) field of 9 bits is used for self-testing, and checks the cache and
virtual memory system.
•
The Reverse Endian (RE) bit reverses the endianness. The processor can be configured as either
little/big-endian at reset; reverse-endian selection is used in Kernel and Supervisor modes, and
in the User mode when the RE bit is 0. Setting the RE bit to 1 inverts the User mode endianness.
Figure 3.2.11 shows the format of the Status register and Table 3.2.12 describes the Status register field.
31
28
CU
27
26
25
0
FR
RE
24
16 15
DS
8
IM
7
6
5
KX
SX
UX
24 23
22
21
20
19
18
17
16
0
BEV
0
SR
0
CH
0
0
4
3
KSU
2
1
ERL
EXL
0
IE
Figure 3.2.11 Status Register Format
Table 3.2.12 Status Register Field Descriptions
Bit(s)
Field Name
31:28
CU
(3, 2, 1, 0)
Description
Controls the usability of each of the four coprocessor unit
numbers. CP0 is always usable when in Kernel mode,
regardless of the setting of the CU0 bit.
Cold Reset
Read/Write
0000
Read/Write
0: unusable
1: usable
27
0
Reserved
0
Read
26
FR
Number of floating-point registers(FPR)
0: 64-bit wide 16 FPRs
1: 32-bit wide 32 FPRs
See Section 3.3.1, “Floating-Point General Registers” in
detail.
0
Read/Write
25
RE
Reverse-Endian bit, valid in User mode.
0
Read/Write
24:23
0
Reserved
0x0
Read
22
BEV
Controls the location of TLB refill and general exception
vectors.
1
Read/Write
0: normal
1: bootstrap
3-13
Chapter 3 TX49/H4 Core’s Registers
Bit(s)
Field Name
21
0
Cold Reset
Read/Write
Reserved
Description
0
Read
20
SR
1: Indicates a soft reset or NMI has occurred.
0
Read/Write
19
0
Reserved
0
Read
18
CH
“Hit” or “miss” indication for last CACHE Hit Invalidate, Hit
Write Back Invalidate, Hit Write Back for a primary cache.
0: miss
1: hit
0
Read/Write
17:16
0
Reserved
0x0
Read
15:8
IM
Interrupt Mask
Controls the enabling of each of the external, internal and
software interrupts. An interrupt is taken if interrupts are
enabled, and the corresponding bits are set in both the IM field
of the Status register and the IP field of the Cause register.
0x0
Read/Write
0
Read/Write
0
Read/Write
0: disabled
1: enabled
7
KX
Enables 64-bit addressing in Kernel mode. The
extended-addressing TLB refill exception is used for TLB
misses on kernel addresses.
0: 32-bit
1: 64-bit
6
SX
Enables 64-bit addressing and operations in Supervisor
mode. The extended-addressing TLB refill exception is used
for TLB misses on supervisor addresses.
0: 32-bit
1: 64-bit
5
UX
Enables 64-bit addressing and operations in User mode. The
extended-addressing TLB refill exception is used for TLB
misses on user addresses.
0: 32-bit
1: 64-bit
0
Read/Write
4:3
KSU
Mode
10: user
01: supervisor
00: kernel
11: reserved
0x0
Read/Write
2
ERL
Error Level
0: normal
1: error
1
Read/Write
1
EXL
Exception Level
0: normal
1: exception
0
Read/Write
0
IE
Interrupt Enable
0: disable
1: enable
0
Read/Write
3-14
Chapter 3 TX49/H4 Core’s Registers
Status Register Modes and Access States
Fields of the Status register set the modes and access states described in the section that follow.
•
Interrupt Enable: Interrupts are enabled when all of the following conditions are met:
– IE = 1
– EXL = 0
– ERL = 0
If these conditions are met, the settings of the IM bits enable the interrupt.
•
Operation Modes: The following CPU Status register bit settings are required for User, Kernel and
Supervisor modes (see Section 4.2, “Operation Modes,” for more information about operating
modes).
– The processor is in User mode when KSU = 102, EXL = 0, and ERL = 0.
– The processor is in Supervisor mode when KSU = 012, EXL = 0 and ERL = 0.
– The processor is in Kernel mode when KSU = 002, EXL= 1, or ERL =1.
•
32- and 64-bit Modes: The following CPU Status register settings select 32- or 64-bit operation for
User, Kernel, and Supervisor operating modes. Enabling 64-bit operation permits the execution of
64-bit opcodes and translation of 64-bit addresses. 64-bit operation for User, Kernel and Supervisor
modes can be set independently.
– 64-bit addressing for Kernel mode is enabled when KX = 1. 64-bit operations are always valid
in Kernel mode.
– 64-bit addressing and operations are enabled for Supervisor mode when SX = 1.
– 64-bit addressing and operations are enabled for User mode when UX = 1.
•
Kernel Address Space Accesses: Access to the kernel address space is allowed when the processor is
in Kernel mode.
•
Supervisor Address Space Accesses: Access to the supervisor address space is allowed when the
processor is in Kernel or Supervisor mode, as described above in the section above titled “Operating
Modes.”
•
User Address Space Accesses: Access to the user address is allowed in any of the three operating
modes.
Status Register Reset
The contents of the Status register are undefined at reset, except for the following bits in the Diagnostic
Status field:
•
ERL and BEV = 1
The SR bit distinguishes between the Reset exception and the Soft Reset exception (caused by
Nonmaskable Interrupt [NMI]).
3-15
Chapter 3 TX49/H4 Core’s Registers
3.2.12
Cause Register (Reg#13)
The Cause register holds the cause of the most recent exception. This register is read-only, except for
the IP[1:0] bits.
Figure 3.2.12 shows the format of the Cause register and Table 3.2.13 describes the Cause register
field.
31
30
BD
0
29
28 27
16 15
CE
0
8
7
IP
6
0
2 1
ExcCode
0
0
Figure 3.2.12 Cause Register Format
Table 3.2.13 Cause Register Field Descriptions
Bit(s)
Field Name
31
BD
Description
Indicates whether or not the last exception was taken while
executing in a branch delay slot.
Cold Reset
Read/Write
0
Read
0: normal
1: delay slot
30
0
Reserved
0
Read
29:28
CE
Indicates the coprocessor unit number referenced when a
coprocessor unusable exception is taken.
0x0
Read
00: coprocessor 0
01: coprocessor 1
10: coprocessor 2
11: coprocessor 3
27:16
0
Reserved
0x0
Read
15:10
IP[7:2]
Indicates whether an interrupt is pending.
0: not pending
1: pending
INT[5:0]
Read
9:8
IP[1:0]
Software interrupts.
0: reset
1: set
0x0
Read/Write
7
0
Reserved
0
Read
6:2
ExcCode
Exception Code field.
0: Int: Interrupt.
1: Mod: TLB modification exception.
2: TLBL: TLB exception (load or instruction fetch)
3: TLBS: TLB exception (Store)
4: AdEL: Address error exception (load or instruction fetch)
5: AdES: Address error exception (store)
6: IBE: Bus error exception (instruction fetch)
7: DBE: Bus error exception (data reference: load)
8: Sys: System call exception
9: Bp: Breakpoint exception
10: RI: Reserved instruction exception
11: CpU: Coprocessor Unusable exception
12: Ov: Arithmetic Overflow exception
13: Tr: Trap exception
14: Reserved
15: FPE: Floating-Point exception
16-31: Reserved
0x0
Read
1:0
0
Reserved
0x0
Read
3-16
Chapter 3 TX49/H4 Core’s Registers
3.2.13
EPC Register (Reg#14)
The Exception Program Counter (EPC) register is a read/write register. This register contents the
address at which processing resumes after an exception has been serviced.
For synchronous exceptions, this register contains either:
•
the virtual address of the instruction that was the direct cause of the exception.
•
the virtual address of the immediately preceding branch or jump instruction (when the
instruction is in a branch delay slot, and the Branch Delay bit in the Cause register is set).
The processor does not write to the EPC register when EXL bit in the Status register is set to 1.
Figure 3.2.13 shows the formats of the EPC register and Table 3.2.14 describes the EPC register field.
31
0
EPC
(32-bit mode)
63
0
EPC
(64-bit mode)
Figure 3.2.13 EPC Register Formats
Table 3.2.14 EPC Register Field Description
32-bit mode
Bit(s)
Field Name
31:0
EPC
Description
Exception program counter
Cold Reset
Read/Write
Undefined
Read/Write
Cold Reset
Read/Write
Undefined
Read/Write
64-bit mode
Bit(s)
Field Name
63:0
EPC
Description
Exception program counter
3-17
Chapter 3 TX49/H4 Core’s Registers
3.2.14
PRId Register (Reg#15)
The Processor Revision Identifier (PRId) register is a read-only register. This register contents
information identifying the implementation and revision level of the CPU and CP0.
Figure 3.2.14 shows the format of the PRId register and Table 3.2.15 describes the PRId register field.
31
16 15
0
8 7
Imp
0
Rev
Figure 3.2.14 PRId Register Format
Table 3.2.15 PRId Register Field Descriptions
Bit(s)
31:16
Field Name
0
Cold Reset
Read/Write
Reserved
Description
0x0
Read
15:8
Imp
Implementation number (0x2d means “TX49 family”.)
0x2d
Read
7:0
Rev
Revision number +.
+
Read
+ Value is shown in product sheet
3-18
Chapter 3 TX49/H4 Core’s Registers
3.2.15
Config Register (Reg#16)
The Config register is a read-only register; except for HALT, ICE#, DCE# and K0 fields. This register
specifies various configuration options selected on the processor.
EC, BE, IC, DC, IB and DB fields are set by the hardware during reset and are included in this register
as read-only status bits for the software to access.
Figure 3.2.15 shows the format of the Config register and Table 3.2.16 describes the Config register
field.
31
0
30
28 27
EC
24 23
0
19
0
18
17
16
15
14 13
12
HALT
ICE#
DCE#
BE
1
0
11
9 8
IC
6
DC
5
4
3
IB
DB
0
2
0
K0
Figure 3.2.15 Config Register Format
Table 3.2.16 Config Register Field Descriptions
Bit(s)
Field Name
Description
Cold Reset
Read/Write
31
0
Reserved
0
Read
30:28
EC
GBUS clock rate
This bit indicates the divided rate of CPUCLK and GBUSCLK.
0: processor clock frequency divided by 2
1: processor clock frequency divided by 3
2: processor clock frequency divided by 4
3: processor clock frequency divided by 6
4: processor clock frequency divided by 3.5
5: processor clock frequency divided by 4.5
6: processor clock frequency divided by 5
7: processor clock frequency divided by 2.5
pin
Read
27:19
0
Reserved
0x0
Read
18
HALT
Wait mode
0: Halt
1: Doze
Indicates the power-down behavior of the processor when
WAIT instruction is executed. The processor stalls the
pipeline both in halt and doze mode. Cache snoops are
possible during Doze mode but not possible during Halt
mode. Halt mode reduces power consumption to a greater
extent than Doze mode.
0
Read/Write
17
ICE#
Instruction Cache Enable
0: Instruction cache enable
1: Instruction cache disable
0
Read/Write
16
DCE#
Data Cache Enable
0: Data cache enable
1: Data cache disable
0
Read/Write
15
BE
Big Endian
0: Little Endian
1: Big Endian
pin
Read
14:13
1
Reserved
11
Read
12
0
Reserved
0
Read
3-19
Chapter 3 TX49/H4 Core’s Registers
Cold Reset
Read/Write
11:9
Bit(s)
Field Name
IC
Instruction cache size. In the processor, this is set to 32 KB
(011).
Description
011
Read
8:6
DC
Data cache size. In the processor, this is set to 32 KB (011).
011
Read
5
IB
Primary I-Cache line Size
1:32 bytes (8 words)
1
Read
4
DB
Primary D-cache line Size
1:32 bytes (8 words)
1
Read
3
0
Reserved
0
Read
2:0
K0
kseg0 coherency algorithm
0: Cacheable, non-coherent, write-through, no-Write Allocate
1: Cacheable, non-coherent, write-through, Write Allocate
2: Un-cached
3: Cacheable, non-coherent, write-back, Write Allocate
4-7: Reserved
0x0
Read/Write
3-20
Chapter 3 TX49/H4 Core’s Registers
3.2.16
LLAddr Register (Reg#17)
The Load Linked Address (LLAddr) register is a read/write register, and contains the physical address
read by the most recent Load Linked (LL/LLD) instruction. This register is for diagnostic purposes only,
and serves no function during normal operation. Figure 3.2.16 shows the format of the LLAddr register
and Table 3.2.17 describes the LLAddr register field.
31
0
pAddr[35:4]
Figure 3.2.16 LLAddr Register Format
Table 3.2.17 LLAddr Register Field Description
Bit(s)
Field Name
31:0
pAddr
Description
Physical address bits 35-4
3-21
Cold Reset
Read/Write
0x0
Read/Write
Chapter 3 TX49/H4 Core’s Registers
3.2.17
XContext Register (Reg#20)
The XContext register is a read/write register, and contains a pointer to an entry in the page table entry
(PTE) array, an operating system data structure that stores virtual to physical address translations. When
there is a TLB miss, the operating system software loads the TLB with the missing translation from the
PTE array. However the contents of this register duplicates some information of the BadVAddr register, it
is arranged in a form that is more useful for TLB exception handler by a software. This register is for use
with the XTLB refill handler, which loads TLB entries for references to a 64-bit address space, and is
included solely for operating system use. The operating system sets the PTE base field in the register, as
needed. Normally, the operating system uses this register to address the current page map which resides in
the Kernel mapped segment, kseg3.
The BadVPN2 field of 27 bits has bit 39-13 of the virtual address that caused the TLB miss; bit 12 is
excluded because a single TLB entry maps to an even-odd page pair. For a 4 KByte page size, this format
may be used directly to access the pair-table of 8 Byte PTEs. For other page sizes and PTE sizes, shifting
and masking this value produces the appropriate address.
Figure 3.2.17 shows the format of the XContext register and Table 3.2.18 describes the XContext
register field.
63
33 32 31 30
PTEBase
R
4 3 0
BadVPN2
0
Figure 3.2.17 XContext Register Format
Table 3.2.18 XContext Register Field Description
Cold Reset
Read/Write
63:33
Bit(s)
Field Name
PTEBase
Page table entry base pointer
This field is normally written with a value that allows the
operation system to use the Context register as a pointer into
the current PTE array in memory.
Description
Undefined
Read/Write
32:31
R
The Region field contains bits 63-62 of the virtual address.
00: user
01: supervisor
11: kernel
Undefined
Read/Write
30:4
BadVPN2
Bad virtual page number divided by two.
This field is written by hardware on a miss. It contains the
VPN of the most recent invalidly translated virtual address.
Undefined
Read
3:0
0
Reserved
0x0
Read
3-22
Chapter 3 TX49/H4 Core’s Registers
3.2.18
Debug Register (Reg#23)
The Debug register is a read-only; except for TLF, BsF, SSt and JtagRst fields. This register holds the
information for debug handler.
6
5
4
JtagRst
0
DINT
DIB
3
2
1
0
DSS
7
DBp
8
DDBL
9
DDBS
10
SSt
11
0
12
BsF
13
TLF
14
OES
15
TRS
29
0
30
DM
DBD
31
NIS
Figure 3.2.18 shows the format of the Debug register and Table 3.2.19 describes the Debug register
field.
Figure 3.2.18 Debug Register Format
Table 3.2.19 Debug Register Field Descriptions
Bit(s)
Field Name
Cold Reset
Read/Write
31
DBD
Debug Branch Delay
When a debug exception occurs while an instruction in the
branch delay slot is executing, this bit is set to 1.
Description
0
Read
30
DM
Debug Mode
It indicates that a debug exception has taken place. This bit is
set when a debug exception is taken, and is cleared upon
return from the exception (DERET). While this bit is set all
interrupts, including NMI, TLB exception , BUS error
exception, and debug exception are masked and cache line
locking function is disabled.
0
Read
0: Debug handler not running
1: Debug handler running
29:15
0
Reserved
0x0
Read
14
NIS
Non-maskable Interrupt Status
When this bit is set indicating that a non-maskable interrupt
has occurred at the same time as a debug exception. In this
case the Status, Cause, EPC, and BadVAddr registers
assumes the usual status after occurrence of a non-maskable
interrupt, but the address in DEPC is not the non-maskable
exception vector address (0xbfc0 0000). Instead, 0xbfc0
0000 is put in DEPC by the debug handler software after
which processing returns directly from the debug exception to
the non-maskable interrupt handler.
0
Read
13
TRS
TLB Miss Status
When this bit is set indicating the Debug Exception and
TLB/XTLB refill exception has occurred at the same time. In
this case the Status, Cause, EPC, and BadVAddr registers
assumes the usual status after occurrence of TLB/XTLB refill.
The address in the DEPC is not the other exception vector
address. Instead, 0xbfc0 0200 (if BEV = 1) in case of TLB refill
exception and 0xbfc0 0280 (if BEV = 1) in case of XTLB refill
exception or 0x8000 0000 (if BEV = 0) in case of TLB refill
exception and 0x8000 0080 (if BEV = 0) in case of XTLB refill
exception is put in DEPC by the debug exception handler
software, after which processing returns directly from the
debug exception to the other exception handler.
0
Read
3-23
Chapter 3 TX49/H4 Core’s Registers
Bit(s)
Field Name
Cold Reset
Read/Write
12
OES
Other Exception Status
When this bit is set, indicates exception other than reset, NMI,
or TLB/XTLB refill has occurred at the same time as a debug
exception. In this case the Status, Cause, EPC, and
BadVAddr registers assume the usual status after occurrence
of such an exception, but the addressing the DEPC is not the
other exception Vector address. Instead, 0xbfc0 0380 (if BEV
= 1) or 0x8000 0180 (if BEV = 0) is put in DEPC by the debug
exception handler software, after which processing returns
directly from the other exception handler.
Description
0
Read
11
TLF
TLB Exception Flag
This bit is set to 1 when TLB related exception occurs for
immediately preceding load or store instruction while a debug
exception handler is running (DM = 1). TLB exception will set
this bit to 1 regardless of writing zero. It is cleared by writing 0
and writing 1 is ignored.
0
Read/Write
10
BsF
Bus Error Exception Flag
This bit is set to 1 when a bus error exception occurs for a
load or store instruction while a debug exception handler is
running (DM = 1). Bus error exception will set this bit to 1
regardless of writing zero. It is cleared by writing 0 and writing
1 is ignored.
0
Read/Write
9
0
Reserved
0
Read
8
SSt
Single Step
Set to 1 indicates the single step debug function is enable (1)
or disabled (0). The function is disable when the DM bit is set
to 1 while the debug exception is running.
0
Read/Write
7
JtagRst
JTAG Reset
When this bit is set to 1 the processor reset the JTAG unit.
0
Read/Write
6
0
Reserved
0
Read
5
DINT
Debug Interrupt Break Exception Status
Set to 1 when debug interrupts occurs.
0
Read
4
DIB
Debug Instruction Break Exception Status
Set to 1 on instruction address break.
0
Read
3
DDBS
Debug Data Break Store Exception Status
Set to 1 on data address break at store operation.
0
Read
2
DDBL
Debug Data Break Load Exception Status
Set to 1 on data address break at load operation.
0
Read
1
DBp
Debug Breakpoint Exception Status
This bit is set when executing SDBBP instruction.
0
Read
0
DSS
Debug Single Step Exception Status
Set to 1 indicate Single Step Exception.
0
Read
3-24
Chapter 3 TX49/H4 Core’s Registers
3.2.19
DEPC Register (Reg#24)
The DEPC register holds the address where processing resumes after the debug exception routine has
finished. The address that has been loaded in the DEPC register is the virtual address of the instruction
that caused the debug exception. If the instruction is in the branch delay slot, the virtual address of the
immediately preceding branch or jump instruction is placed in this register. Execution of the DERET
instruction causes a jump to the address in the DEPC. If the DEPC is both written from software (by
MTC0) and by hardware (debug exception) then the DEPC is loaded by the value generated by the
hardware.
Figure 3.2.19 shows the formats of the DEPC register and Table 3.2.20 describes the DEPC register
field.
31
0
DEPC
(32-bit mode)
63
0
DEPC
(64-bit mode)
Figure 3.2.19 DEPC Register Formats
Table 3.2.20 DEPC Register Field Description
32-bit mode
Bit(s)
Field Name
31:0
DEPC
Description
Debug exception program counter.
Cold Reset
Read/Write
Undefined
Read/Write
Cold Reset
Read/Write
Undefined
Read/Write
64-bit mode
Bit(s)
Field Name
63:0
DEPC
Description
Debug exception program counter.
3-25
Chapter 3 TX49/H4 Core’s Registers
3.2.20
TagLo Register (Reg#28) and TagHi Register (Reg#29)
The TagLo and TagHi registers are a read/write registers. These registers hold the primary cache tag for
cache lock function or cache diagnostics. These registers are written by the CACHE/MTC0 instruction.
Figure 3.2.20 shows the formats of the TagLo and TagHi registers and Table 3.2.21 describes the TagLo
and TagHi registers field.
31
8 7
PTagLo
6 5
PState
3
RWNT
2
1
Lock
F0
0
0
(TagLo)
31
30
F1
PTagLo1
29
0
0
(TagHi)
Figure 3.2.20 TagLo and TagHi Register Formats
Table 3.2.21 TagLo and TagHi Register Field Descriptions
TagLo
Bit(s)
Field Name
31:8
PTagLo
7:6
PState
Description
Cold Reset
Read/Write
Bits 35-12 of the physical address
0x0
Read/Write
Specifies the primary cache state
0: Invalid
1: Reserved
2: Reserved
3: Valid
0x0
Read/Write
Read/Write
5:3
RWNT
Read/Write bits required for Windows NT
0x0
2
Lock
Lock bit (0: not locked, 1: locked)
0
Read/Write
1
F0
FIFO Replace bit 0 (indicates the set to be replaced)
0
Read/Write
0
0
Reserved
0
Read
TagHi
Bit(s)
Field Name
Cold Reset
Read/Write
31
F1
FIFO Replace bit 1 (indicates the set to be replaced)
Description
0
Read/Write
30
PTagLo1
Bit 11 of the physical address
0
Read/Write
29:0
0
Reserved
0x0
Read
F1 and F0 are concatenated and indicate the set to be replaced.
F1 ⏐ F0
0
0
: way0
0
1
: way1
1
0
: way2
1
1
: way3
3-26
Chapter 3 TX49/H4 Core’s Registers
3.2.21
ErrorEPC Register (Reg#30)
The ErrorEPC is a read/write register, and is similar to the EPC register. This register is used to store
the program counter (PC) on ColdReset, SoftReset and NMI exceptions.
This register contains the virtual address at which instruction processing can resume after servicing an
error. This address can be:
•
The virtual address of the instruction that caused the exception
•
The virtual address of the immediately preceding branch or jump instruction, when this address
is in a branch delay slot.
There is no branch delay slot indication for this register.
Figure 3.2.21 shows the formats of the ErrorEPC register and Table 3.2.22 describes the ErrorEPC
register field.
31
0
ErrorEPC
(32-bit mode)
63
0
ErrorEPC
(64-bit mode)
Figure 3.2.21 ErrorEPC Register Formats
Table 3.2.22 ErrorEPC Register Field Descriptions
32-bit mode
Bit(s)
Field Name
31:0
ErrorEPC
Description
Error Exception Program Counter.
Cold Reset
Read/Write
Undefined
Read/Write
64-bit mode
Bit(s)
Field Name
63:0
ErrorEPC
Description
Error Exception Program Counter.
3-27
Cold Reset
Read/Write
Undefined
Read/Write
Chapter 3 TX49/H4 Core’s Registers
3.2.22
DESAVE Register (Reg#31)
This register is used by the debug exception handler to save one of the GPRs, that is then used to save
the rest of the context to a pre-determined memory area, e.g. in the processor probe. This register allows
the safe debugging of exception handlers and other types of code where the existence of a valid stack for
context saving cannot be assumed.
Figure 3.2.22 shows the formats of the DESAVE register and Table 3.2.23 describes the DESAVE
register field.
Note:
This register can use for ICE system only.
63
0
DESAVE
Figure 3.2.22 DESAVE Register Format
Table 3.2.23 DESAVE register Field Description
32-/64-bit mode
Bit(s)
Field Name
63:0
DESAVE
Description
Save one of the GPRs
3-28
Cold Reset
Read/Write
Undefined
Read/Write
Chapter 3 TX49/H4 Core’s Registers
3.3
Floating-Point Unit, CP1
The floating-point operations fully conform to the requirements of ANSI/IEEE Standard 754-1985, IEEE
Standard for Binary Floating-Point Arithmetic
3.3.1
Floating-Point General Registers (FGRs)
CP1 has a set of Floating-Point General Purpose registers (FGRs) that can be accessed in the following
ways:
•
As 32 general purpose registers (32 FGRs), each of which is 32-bits wide when the FR bit in the
CPU Status register equals 0; or as 32 general purpose registers (32 FGRs), each of which is
64-bits wide when FR equals 1. The CPU accesses these registers through move, load, and store
instructions.
•
As 16 floating-point registers (see the next section for a description of FPRs), each of which is
64-bits wide, when the FR bit in the CPU Status register equals 0. The FPRs hold values in
either single- or double-precision floating-point format. Each FPR corresponds to adjacently
numbered FGRs as shown in Figure 3.3.1.
•
As 32 floating-point registers (see the next section for a description of FPRs), each of which is
64-bits wide, when the FR bit in the CPU Status register equals 1. The FPRs hold values in
either single- or double-precision floating-point format. Each FPR corresponds to an FGR as
shown in Figure 3.3.1.
Floating-point
Registers (FPR)
(FR = 0)
Floating-Point
General Purpose Registers
31
FPR0
FPR2
(least)
(FGR)
Floating-point
Registers (FPR)
(FR = 1)
0
63
FGR0
FPR0
FPR15
(FGR)
FGR1
FPR1
FGR1
(least)
FGR2
FPR2
FGR2
(most)
FGR3
FPR3
FGR3
•
•
•
(least)
FGR28
FPR28
(most)
FGR29
FPR29
FGR29
(least)
FGR30
FPR30
FGR30
(most)
FGR31
FPR31
FGR31
31
0
FGR0
(most)
•
•
•
FPR14
Floating-Point
General Purpose Registers
Control/Status Register
(FCR31)
0
FGR28
Floating-point
Control Registers
(FCR)
Implementation/Revision Register
31
(FCR0)
0
Figure 3.3.1 FP Registers
3-29
Chapter 3 TX49/H4 Core’s Registers
3.3.2
Floating-Point Control Registers
The MIPS RISC architecture defines 32 floating-point control registers (FCRs); the TX49 processor
implements two of these registers: FCR0 and FCR31. These FCRs are described below:
•
The Implementation/Revision register (FCR0) holds revision information.
•
The Control/Status register (FCR31) controls and monitors exceptions, holds the result of
compare operations, and establishes rounding modes.
•
FCR1 to FCR30 are reserved.
Table 3.3.1 lists the assignments of the FCRs.
Table 3.3.1 Floating-Point Control Register Assignments
FCR Number
Use
FCR0
Coprocessor implementation and revision register
FCR1-FCR30
Reserved
FCR31
Rounding mode, cause, trap enables, and flags
Implementation and Revision Register (FCR0)
The read-only Implementation and Revision register (FCR0) specifies the implementation and revision
number of CP1. This information can determine the coprocessor revision and performance level, and can
also be used by diagnostic software.
Figure 3.3.2 shows the layout of the register; Table 3.3.2 describes the Implementation and Revision
register (FCR0) fields.
Implementation/Revision Register (FCR0)
31
16 15
8 7
0
0
Imp
Rev
16
8
8
Figure 3.3.2 Implementation/Revision Register
Table 3.3.2 FCR0 Fields
Field Name
Description
Imp
Implementation number
Rev
Revision number in the form of y. x
0
Reserved. Returns zeroes when read.
The revision number is a value of the form y. x, where:
•
y is a major revision number held in bits 7:4.
•
x is a minor revision number held in bits 3:0.
3-30
Chapter 3 TX49/H4 Core’s Registers
Control/Status Register (FCR31)
The Control/Status register (FCR31) contains control and status information that can be accessed by
instructions in either Kernel or User mode. FCR31 also controls the arithmetic rounding mode and
enables User mode traps, as well as identifying any exceptions that may have occurred in the most
recently executed floating-point instruction, along with any exceptions that may have occurred without
being trapped.
Figure 3.3.3 shows the format of the Control/Status register, and Table 3.3.3 describes the
Control/Status register fields. Figure 3.3.4 shows the Control/Status register Cause, Flag, and Enable
fields.
Control/Status Register (FCR31)
31
25 24 23 22
0
18 17
FS C
7
1
1
12 11
76
21
0
Enables
VZOUI
Flags
VZOUI
RM
5
6
5
5
2
Figure 3.3.3 FP Control/Status Register Bit Assignments
Table 3.3.3 Control/Status Register Fields
Field Name
Description
FS
When set, denormalized results can be flushed instead of causing an
unimplemented operation exception.
C
Condition bit. Stores the result of compare instruction. See description
of Control/Status register Condition bit.
Cause
Cause bits. These bits identify the exceptions raised by the most
recently executed floating-point instruction. See Figure 3.3.4 and the
description of Control/Status register Cause, Flag, and Enable bits.
Enables
Enable bits. When set, these bits trap any floating-point exceptions to
indicate that they have been passed to the CPU. See Figure 3.3.4 and
the description of Control/Status register Cause, Flag, and Enable
bits.
Flags
Flag bits. These bits indicate that an exception was raised. See Figure
3.3.4 and the description of Control/Status register Cause, Flag, and
Enable bits.
RM
Rounding mode bits. See Table 3.3.5 and the description of
Control/Status register Rounding Mode Control bits.
Bit#
0
Cause
EVZOUI
17
16
15
14
13
12
E
V
Z
O
U
I
Bit#
11
10
9
8
7
V
Z
O
U
I
Bit#
6
5
4
3
2
V
Z
O
U
I
Cause
Bits
Enable
Bits
Flag
Bits
Inexact Operation
Underflow
Overflow
Division by Zero
Invalid Operation
Unimplemented Operation
Figure 3.3.4 Control/Status Register Cause, Flag, and Enable Fields
3-31
Chapter 3 TX49/H4 Core’s Registers
Control/Status Register FS Bit
The FS bit enables the flushing of denormalized values. When the FS bit is set and the Underflow and
Inexact Enable bits are not set, denormalized results are flushed instead of causing an Unimplemented
Operation exception. Results are flushed either to 0 or the minimum normalized value, depending upon
the rounding mode (see Table 3.3.4 below), and the Underflow and Inexact Flag and Cause bits are set.
Table 3.3.4 Flush Values of Denormalized Results
Denormalized
Result
Flushed Result Rounding Mode
RN
RZ
Positive
+0
+0
Negative
-0
-0
RP
+2
Emin
-0
RM
+0
-2Emin
Control/Status Register Condition Bit
When a floating-point Compare operation takes place, the result is stored at bit 23, the Condition bit.
The C bit is set to 1 if the condition is true; the bit is cleared to 0 if the condition is false. Bit 23 is affected
only by compare and CTC1 instructions.
The BC1T and BC1F instructions test the C bit to decide whether or not to cause a branch.
Control/Status Register Cause, Flag, and Enable Fields
Figure 3.3.4 illustrates the Cause, Flag, and Enable fields of the Control/Status register. The Cause and
Flag fields are updated by all conversion, computational (except MOV. fmt), CTC1, reserved, and
unimplemented instructions. All other instructions have no affect on these fields.
Cause Bits
Bits 17-12 in the Control/Status register contain Cause bits, as shown in Figure 3.3.4, which
reflect the results of the most recently executed floating-point instruction. The Cause bits are a
logical extension of the CP0 Cause register; they identify the exceptions raised by the last
floating-point operation. If the corresponding Enable bit is set at the time of the exception a
floating-point exception and interrupt is raised. If more than one exception occurs on a single
instruction, each appropriate bit is set.
The Cause bits are updated by most floating-point operations. The Unimplemented Operation (E)
bit is set to 1 if software emulation is required, otherwise it remains 0. The other bits are set to 0 or 1
to indicate the occurrence or non-occurrence (respectively) of an IEEE 754 exception. Within the set
of floating-point instructions that update the Cause bits, the Cause field indicates the exceptions
raised by the most-recently-executed instruction.
When a floating-point exception is taken, no results are stored, and the only state affected is the
Cause bit. Therefore, software emulation routines can use the original values to emulate the
exception-causing floating-point operation.
Enable Bits
A floating-point exception is generated any time a Cause bit and the corresponding Enable bit are
set. A floating-point operation that sets an enabled Cause bit forces an immediate floating-point
exception, as does setting both Cause and Enable bits with CTC1. Software can also emulate above.
There is no enable for Unimplemented Operation (E). An Unimplemented exception always
generates a floating-point exception.
3-32
Chapter 3 TX49/H4 Core’s Registers
Before returning from a floating-point exception, software must first clear the enabled Cause bits
with a CTC1 instruction to prevent a repeat of the interrupt. Thus, User mode programs can never
observe enabled Cause bits set; if this information is required in a User mode handler, it must be
passed somewhere other than the Status register.
For a floating-point operation that sets only unenabled Cause bits, no floating-point exception
occurs and the default result defined by IEEE 754 is stored. In this case, the exceptions that were
caused by the immediately previous floating-point operation can be determined by reading the
Cause field.
Flag Bits
The Flag bits are cumulative and indicate the exceptions that were raised by the operations that
were executed since the bits were explicitly reset. Flag bits are set to 1 if an IEEE 754 exception is
raised, otherwise they remain unchanged. The Flag bits are never cleared as a side effect of
floating-point operations; however, they can be set or cleared by writing a new value into the Status
register, using a CTC1 instruction.
Control/Status Register Rounding Mode Control Bits
Bits 1 and 0 in the Control/Status register constitute the Rounding Mode (RM) field.
As shown in Table 3.3.5, these bits specify the rounding mode that CP1 uses for all floating-point
operations.
Table 3.3.5 Rounding Mode Bit Decoding
3.3.3
Rounding
ModeRM
[1:0]
Mnemonic
Description
0
RN
Round result to nearest representable value; round to value with least-significant bit
0 when the two nearest representable values are equally near.
1
RZ
Round toward 0: round to value closest to and not greater in magnitude than the
infinitely precise result.
2
RP
Round toward +∞: round to value closest to and not less than the infinitely precise
result.
3
RM
Round toward −∞: round to value closest to and not greater than the infinitely precise
result.
Accessing the FP Control and Implementation/Revision Registers
The Control/Status and the Implementation/Revision registers are read by a Move Control From
Coprocessor 1 (CFC1) instruction.
The bits in the Control/Status register can be set or cleared by writing to the register using a Move
Control To Coprocessor 1 (CTC1) instruction. The Implementation/Revision register is a read-only
register. There are no pipeline hazards (between any instructions) associated with floating-point control
registers.
3-33
Chapter 3 TX49/H4 Core’s Registers
3-34
Chapter 4 Memory Management System
4.
Memory Management System
The processor provides a full-featured memory management unit (MMU) which uses an on-chip translation
look aside buffer (TLB) to translate virtual addresses into physical addresses.
4.1
Address Space Overview
The physical address space is either 4 Gbytes or 64 Gbytes depending on whether the processor is operating
in 32- or 64-bit bus width mode. In 32-bit bus width mode, address space is 4 Gbytes using a 32-bit address. In
64-bit bus width mode, address space is 64 Gbytes using a 36-bit address.
The virtual address is either 32 or 64 bits wide depending on whether the processor is operating in 32- or
64-bit bus width mode. In 32-bit bus width mode, addresses are 32 bits wide and the maximum user process
size is 2 Gbytes (231). In 64-bit bus width mode, addresses are 64 bits wide and the maximum user process is 1
Tbytes (240). The virtual address is extended with an Address Space Identifier (ASID) to reduce the frequency
of TLB flushing when switching context. The size of the ASID field is 8 bits. The ASID is contained in the
CP0 EntryHi register.
4.1.1
Virtual Address Space
The processor virtual address can be either 32 or 64 bits wide, depending on whether the processor is
operating in 32-bit or 64-bit bus width mode.
•
In 32-bit bus width mode, addresses are 32 bits wide.
The maximum user process size is 2 Gbytes (231).
•
In 64-bit bus width mode, addresses are 64 bits wide.
The maximum user process size is 1 Tbytes (240).
Figure 4.1.1 shows the translation of a virtual address into a physical address.
Virtual address
1. Virtual address (VA) represented by the
virtual page number (VPN) is compared with
tag in the TLB.
G
G
ASID
VPN
ASID
Offset
VPN
TLB
Entry
2. If there is a match, the page frame number
(PFN) representing the upper bits of the
physical address (PA) is output from the
TLB.
PFN
TLB
3. The Offset, which does not pass through the
TLB, is then concatenated to the PFN.
PFN
Offset
Physical address
Figure 4.1.1 Overview of a Virtual-to-Physical Address Translation
As shown in Figure 4.1.2 and Figure 4.1.3, the virtual address is extended with an 8-bit address space
identifier (ASID), which reduces the frequency of TLB flushing when switching contexts. This 8-bit
ASID is in the CP0 EntryHi register, described later in this chapter. The Global bit (G) is in the EntryLo0
and EntryLo1 registers, described later in this chapter.
4-1
Chapter 4 Memory Management System
4.1.2
Physical Address Space
The physical address space can be either 4 G or 64 Gbytes, depending on whether the processor is
operating in 32-bit or 64-bit bus width mode.
4.1.3
•
In 32-bit bus width mode, address space is 4 Gbytes using a 32-bit address.
•
In 64-bit bus width, mode, addresses space is 64 Gbytes using a 36-bit address.
Virtual-to-Physical Address Translation
Converting a virtual address to a physical address begins by comparing the virtual address from the
processor with the virtual addresses in the TLB; there is a match when the virtual page number (VPN) of
the address is the same as the VPN field of the entry, and either:
•
the Global (G) bit of the TLB entry is set, or
•
the ASID field of the virtual address is the same as the ASID field of the TLB entry.
This match is referred to as a TLB hit. If there is no match, a TLB Miss exception is taken by the
processor and software is allowed to refill the TLB from a page table of virtual/physical addresses in
memory.
If there is a virtual address match in the TLB, the physical address is output from the TLB and
concatenated with the Offset, which represents an address within the page frame space. The Offset does
not pass through the TLB.
Virtual-to-physical translation is described in greater detail throughout the remainder of this chapter;
Figure 4.4.1 is a flow diagram of the process shown at the end of this chapter. The next two sections
describe the 32-bit and 64-bit address translations.
4-2
Chapter 4 Memory Management System
4.1.4
32-bit Mode Address Translation
Figure 4.1.2 shows the virtual-to-physical-address translation of a 32-bit mode address. This figure
illustrates two of the possible page sizes: a 4-Kbyte page (12 bits) and a 16-Mbyte page (24 bits).
•
The top portion of Figure 4.1.2 shows a virtual address with a 12-bit, or 4-Kbyte, page size,
labeled Offset. The remaining 20 bits of the address represent the VPN, and Index the 1M-entry
page table.
•
The bottom portion of Figure 4.1.2 shows a virtual address with a 24-bit, or 16-Mbyte, page size,
labeled Offset. The remaining 8 bits of the address represent the VPN, and index the 256-entry
page table.
Virtual Address with 1M (220) 4-Kbyte pages
39
32 31
20 bits = 1 M pages
29 28
12 11
0
ASID
VPN
Offset
8
20
12
Virtual-to-physical
translation in TLB
TLB
32-bit Physical Address
Bits 31, 30 and 29 of the virtual
address select user, supervisor,
or kernel address spaces.
0
31
PFN
Offset
Virtual-to-physical
translation in TLB
TLB
39
32 31
ASID
8
Offset passed
unchanged to
physical
memory
29 28
Offset passed
unchanged to
physical
memory
24 23
VPN
0
Offset
8
8 bits = 256 pages
24
Virtual Address with 256 (28) 16-Mbyte pages
Figure 4.1.2 32-bit Mode Virtual Address Translation
4-3
Chapter 4 Memory Management System
4.1.5
64-Bit Mode Address Translation
Figure 4.1.3 shows the virtual-to-physical-address translation of a 64-bit mode address. This figure
illustrates two of the possible page sizes: a 4-Kbyte page (12 bits) and a 16-Mbyte page (24 bits).
•
The top portion of Figure 4.1.3 shows a virtual address with a 12-bit, or 4-Kbyte, page size,
labelled Offset. The remaining 28 bits of the address represent the VPN, and index the
256M-entry page table.
•
The bottom portion of Figure 4.1.3 shows a virtual address with a 24-bit, or 16-Mbyte, page size,
labelled Offset. The remaining 16 bits of the address represent the VPN, and index the
64K-entry page table.
Virtual Address with 256 M (228) 4-Kbyte pages
71
64 63 62 61
ASID
40 39
28 bits = 256M pages
12 11
0 or -1
VPN
Offset
24
28
12
8
Virtual-to-physical
translation in TLB
Bits 62 and 63 of the virtual
address select user, supervisor,
35
or kernel address spaces.
TLB
36-bit Physical Address
Offset
Virtual-to-physical
translation in TLB
Offset passed
unchanged to
physical memory
TLB
64 63 62 61
40 39
ASID
0 or -1
8
24
Offset passed
unchanged to
physical memory
0
PFN
71
0
24 23
VPN
0
Offset
16
24
16 bits = 64 K pages
Virtual Address with 64 K (216) 16-Mbyte pages
Figure 4.1.3 64-bit Mode Virtual Address Translation
4-4
Chapter 4 Memory Management System
4.2
Operating Modes
The processor has the three operating modes, User mode, Supervisor mode and Kernel mode, for 32- and
64-bit operation. The KSU, EXL and ERL bit in the Status register select User, Supervisor or Kernel mode.
The UX, SX and KX bit in the Status register select 32- or 64-bit addressing in user, supervisor and kernel
mode respectively.
4.2.1
KSU
EXL
ERL
UX
SX
KX
10
0
0
0
–
–
32-bit addressing in user mode
Mode
10
0
0
1
–
–
64-bit addressing in user mode
01
0
0
–
0
–
32-bit addressing in supervisor mode
01
0
0
–
1
–
64-bit addressing in supervisor mode
00
–
–
–
–
0
32-bit addressing in kernel mode
–
1
–
–
–
0
32-bit addressing in kernel mode
–
–
1
–
–
0
32-bit addressing in kernel mode
00
–
–
–
–
1
64-bit addressing in kernel mode
–
1
–
–
–
1
64-bit addressing in kernel mode
–
–
1
–
–
1
64-bit addressing in kernel mode
User Mode Operations
In User mode, a single, uniform virtual address space-labelled User segment-is available; its size is:
•
2 Gbytes (231 bytes) in 32-bit mode (useg)
•
1 Tbytes (240 bytes) in 64-bit mode (xuseg)
Figure 4.2.1 shows User mode virtual address space.
32-bit (Note)
64-bit
0x FFFF FFFF
0x FFFF FFFF FFFF FFFF
Address
Error
Address
Error
0x 8000 0000
0x 0000 0100 0000 0000
2 GB
Mapped
Cacheable
0x 0000 0000
1 TB
Mapped
Cacheable
useg
xuseg
0x 0000 0000 0000 0000
Figure 4.2.1 User Mode Virtual Address Space
Note:
In 32-bit mode, bit 31 is sign-extended through bits 63-32. Failure results in an address
error exception.
The User segment starts at address 0 and the current active user process resides in either useg (in 32-bit
mode) or xuseg (in 64-bit mode). The TLB identically maps all references to useg/xuseg from all modes,
and controls cache accessibility.
The processor operates in User mode when the Status register contains the following bit-values:
•
KSU bits = 102
•
EXL = 0
•
ERL = 0
4-5
Chapter 4 Memory Management System
In conjunction with these bits, the UX bit in the Status register selects between 32- or 64-bit User mode
addressing as follows:
•
when UX = 0, 32-bit useg space is selected and TLB misses are handled by the 32-bit TLB refill
exception handler
•
when UX = 1, 64-bit xuseg space is selected and TLB misses are handled by the 64-bit TLB
refill exception handler
Table 4.2.1 lists the characteristics of the two user mode segments, useg and xuseg.
Table 4.2.1 32-bit and 64-bit User Mode Segments
Status Register
Bit Values
Address Bit
Values
Segment
Name
Address Range
Segment Size
KSU
EXL
ERL
UX
32-bit
A[31]=0
102
0
0
0
useg
0x0000 0000
through
0x7FFF FFFF
2 Gbytes
(231 bytes)
64-bit
A[63:40]=0
102
0
0
1
xuseg
0x0000 0000 0000 0000
through
0x0000 00FF FFFF FFFF
1 Tbytes
(240 bytes)
32-bit User Mode (useg)
In User mode, when UX = 0 in the Status register, User mode addressing is compatible with the 32-bit
addressing model shown in Figure 4.2.1, and a 2-Gbyte user address space is available, labelled useg.
All valid User mode virtual addresses have their most-significant bit cleared to 0; any attempt to
reference an address with the most-significant bit set while in User mode causes an Address Error
exception.
The system maps all references to useg through the TLB, and bit settings within the TLB entry for the
page determine the cacheability of a reference.
64-bit User Mode (xuseg)
In User mode, when UX = 1 in the Status register, User mode addressing is extended to the 64-bit model
shown in Figure 4.2.1. In 64-bit User mode, the processor provides a single, uniform address space of 240
bytes, labelled xuseg.
All valid User mode virtual addresses have bits 63-40 equal to 0; an attempt to reference an address
with bits 63-40 not equal to 0 causes an Address Error exception.
The system maps all reference to xuseg through the TLB, and bit settings within the TLB entry for the
page determine the cacheability of a reference.
4-6
Chapter 4 Memory Management System
4.2.2
Supervisor Mode Operations
Supervisor mode is designed for layered operating systems in which a true kernel runs in Kernel mode,
and the rest of the operating system runs in Supervisor mode.
The processor operates in Supervisor mode when the Status register contains the following bit-values:
•
KSU = 012
•
EXL = 0
•
ERL = 0
In conjunction with these bits, the SX bit in the Status register selects between 32- or 64-bit Supervisor
mode addressing:
•
when SX = 0, 32-bit supervisor space is selected and TLB misses are handled by the 32-bit TLB
refill exception handler
•
when SX = 1, 64-bit supervisor space is selected and TLB misses are handled by the 64-bit
XTLB refill exception handler
The system maps all references through the TLB, and bit settings within the TLB entry for the page
determine the cacheability of a reference.
Figure 4.2.2 shows Supervisor mode address mapping. Table 4.2.2 lists the characteristics of the
supervisor mode segments; descriptions of the address spaces follow.
32-bit (Note)
0x FFFF FFFF
0x E000 0000
0x A000 0000
0x 8000 0000
Address
error
2 GB
Mapped
Cacheable
0x 0000 0000
0x FFFF FFFF FFFF FFFF
Address
error
512 MB
Mapped
Cacheable
Address
error
0x C000 0000
64-bit
0x FFFF FFFF E000 0000
Address
error
0x 4000 0100 0000 0000
512 MB
Mapped
Cacheable
Address
error
0x 4000 0000 0000 0000
1 TB
Mapped
Cacheable
sseg
0x FFFF FFFF C000 0000
csseg
xsseg
Address
error
0x 0000 0100 0000 0000
suseg
0x 0000 0000 0000 0000
1 TB
Mapped
Cacheable
xsuseg
Figure 4.2.2 Supervisor Mode Address Space
Note:
In 32-bit mode, bit 31 is sign-extended through bits 63-32. Failure results in an address
error exception.
4-7
Chapter 4 Memory Management System
Table 4.2.2 32-bit and 64-bit Supervisor Mode Segments
Status Register
Bit Values
Address Bit
Values
Segment
Name
Address Range
Segment Size
KSU
EXL
ERL
SX
32-bit
A[31] = 0
012
0
0
0
suseg
0x0000 0000
through
0x7FFF FFFF
2 Gbytes
(231 bytes)
32-bit
A[31:29] = 1102
012
0
0
0
ssseg
0xC000 0000
through
0xDFFF FFFF
512 Mbytes
(229 bytes)
64-bit
A[63:62] = 002
012
0
0
1
xsuseg
0x0000 0000 0000 0000
through
0x0000 00FF FFFF FFFF
1 Tbytes
(240 bytes)
64-bit
A[63:62] = 012
012
0
0
1
xsseg
0x4000 0000 0000 0000
through
0x4000 00FF FFFF FFFF
1 Tbytes
(240 bytes)
64-bit
A[63:62] = 112
012
0
0
1
csseg
0xFFFF FFFF C000 0000
through
0xFFFF FFFF DFFF FFFF
512 Mbytes
(229 bytes)
32-bit Supervisor Mode, User Space (suseg)
In Supervisor mode, when SX = 0 in the Status register and the most-significant bit of the 32-bit virtual
address is set to 0, the suseg virtual address space is selected; it covers the full 231 bytes (2 Gbytes) of the
current user address space. The virtual address is extended with the contents of the 8-bit ASID field to
form a unique virtual address. This mapped space starts at virtual address 0x0000 0000 and runs through
0x7FFF FFFF.
32-bit Supervisor Mode, Supervisor Space (sseg)
In Supervisor mode, when SX = 0 in the Status register and the three most-significant bits of the 32-bit
virtual address are 1102, the sseg virtual address space is selected; it covers 229 bytes (512 Mbytes) of the
current supervisor address space. The virtual address is extended with the contents of the 8-bit ASID field
to form a unique virtual address. This mapped space begins at virtual address 0xC000 0000 and runs
through 0xDFFF FFFF.
64-bit Supervisor Mode, User Space (xsuseg)
In Supervisor mode, when SX = 1 in the Status register and bits 63-62 of the virtual address are set to
002, the xsuseg virtual address space is selected; it covers the full 240 bytes (1 Tbytes) of the current user
address space. The virtual address is extended with the contents of the 8-bit ASID field to form a unique
virtual address. This mapped space starts at virtual address 0x0000 0000 0000 0000 and runs through
0x0000 00FF FFFF FFFF.
64-bit Supervisor Mode, Current Supervisor Space (xsseg)
In Supervisor mode, when SX = 1 in the Status register and bits 63-62 of the virtual address are set to
012, the xsseg current supervisor virtual address space is selected. The virtual address is extended with the
contents of the 8-bit ASID field to form a unique virtual address. This mapped space begins at virtual
address 0x4000 0000 0000 0000 and runs through 0x4000 00FF FFFF FFFF.
4-8
Chapter 4 Memory Management System
64-bit Supervisor Mode, Separate Supervisor Space (csseg)
In Supervisor mode, when SX = 1 in the Status register and bits 63-62 of the virtual address are set to
112, the csseg separate supervisor virtual address space is selected. Addressing of the csseg is compatible
with addressing sseg in 32-bit mode. The virtual address is extended with the contents of the 8-bit ASID
field to form a unique virtual address. This mapped space begins at virtual address 0xFFFF FFFF C000
0000 and runs through 0xFFFF FFFF DFFF FFFF.
4.2.3
Kernel Mode Operations
The processor operates in Kernel mode when the Status register contains one or more of the following
values:
•
KSU = 002
•
EXL = 1
•
ERL = 1
In conjunction with these bits, the KX bit in the Status register selects between 32- or 64-bit Kernel
mode addressing:
•
when KX = 0, 32-bit kernel space is selected and all TLB misses are handled by the 32-bit TLB
refill exception handler
•
when KX = 1, 64-bit kernel space is selected and all TLB misses are handled by the 64-bit
XTLB refill exception handler
The processor enters Kernel mode whenever an exception is detected and it remains in Kernel mode
until an Exception Return (ERET) instruction is executed and results in ERL and/or EXL = 0. The ERET
instruction restores the processor to the mode existing prior to the exception.
Kernel mode virtual address space is divided into regions differentiated by the high-order bits of the
virtual address, as shown in Figure 4.2.3. Table 4.2.3 lists the characteristics of the 32-bit kernel mode
segments, and Table 4.2.4 lists the characteristics of the 64-bit kernel mode segments.
4-9
Chapter 4 Memory Management System
32-bit
0x FFFF FFFF
(Note 1)
64-bit
0x FFFF FFFF FFFF FFFF
kseg3 (Note 2) 0x FFFF FFFF E000 0000
0x E000 0000
512 MB
Mapped
Cacheable
0x FFFF FFFF C000 0000
ksseg
0x C000 0000
512 MB
Mapped
Cacheable
kseg1
0x A000 0000
512 MB
Unmapped
Uncached
0x 8000 0000
512 MB
Unmapped
Cacheable
512 MB
Mapped
Cacheable
512 MB
Mapped
Cacheable
512 MB
Unmapped
Uncached
512 MB
Unmapped
Cacheable
0x FFFF FFFF A000 0000
0x FFFF FFFF 8000 0000
Address
error
Mapped
Cacheable
0x C000 00FF 8000 0000
kseg0
0x C000 0000 0000 0000
Unmapped
(For details see
figure 4.2.4)
ckseg3 (Note 2)
cksseg
ckseg1
ckseg0
xkseg
xkphys
0x 8000 0000 0000 0000
2 GB
Mapped
Cacheable
0x 0000 0000
0x 4000 0100 0000 0000
Address
error
0x 4000 0000 0000 0000
1 TB
Mapped
Cacheable
0x 0000 0100 0000 0000
Address
error
0x 0000 0000 0000 0000
1 TB
Mapped
Cacheable
kuseg
xksseg
xkuseg
Figure 4.2.3 Kernel Mode Address Space
Note 1: In 32-bit mode, bit 31 is sign-extended through bits 63-32. Failure results in an address error
exception.
Note 2: 0xff00_0000 through 0xff3f_ffff in 32-bit mode and 0xffff_ffff_ff00_0000 through 0xffff_ffff_ff3f_ffff in
64-bit mode are reserved (unmapped, uncached) for use by registers in the Debug Support Unit
and the processor’s peripherals.
4-10
Chapter 4 Memory Management System
0xBFFF FFFF FFFF FFFF
4 × 64 GB
Unmapped
Reserved
0xA000 0000 0000 0000
0x9FFF FFFF FFFF FFFF
64 GB
Unmapped
Cacheable
noncoherent
WB
0x9800 0000 0000 0000
0x97FF FFFF FFFF FFFF
64 GB
Unmapped
Uncached
0x9000 0000 0000 0000
0x8FFF FFFF FFFF FFFF
64 GB
Unmapped
Cacheable
noncoherent
WT-WA
0x8800 0000 0000 0000
0x87FF FFFF FFFF FFFF
64 GB
Unmapped
Cacheable
noncoherent
WT-no-WA
0x8000 0000 0000 0000
Figure 4.2.4 xkphys Address Space
4-11
Chapter 4 Memory Management System
Table 4.2.3 32-bit Kernel Mode Segments
Address
Bit Values
Status Register
Is One Of These Values
KSU
EXL
ERL
Segment
Name
Address Range
Segment Size
KX
A[31] = 0
0
Kuseg
0x0000 0000
through
0x7FFF FFFF
2 Gbytes
(231 bytes)
A[31:29] = 1002
0
Kseg0
0x8000 0000
through
0x9FFF FFFF
512 Mbytes
(229 bytes)
0
Kseg1
0xA000 0000
through
0xBFFF FFFF
512 Mbytes
(229 bytes)
0
Ksseg
0xC000 0000
through
0xDFFF FFFF
512 Mbytes
(229 bytes)
Kseg3
0xE000 0000
through
0xFFFF FFFF
512 Mbytes-4 Mbytes
(229 bytes)
Reserved (Note)
0xFF00 0000
through
0xFF3F FFFF
4 Mbytes
A[31:29] = 1012
A[31:29] = 1102
A[31:29] = 1112
KSU = 002
or
EXL = 1
or
ERL = 1
0
Note : 0xff00_0000 through 0xff3f_ffff in 32-bit mode is reserved (unmapped, uncached) for use by
registers in the Debug Support Unit and the processor’s peripherals.
32-bit Kernel Mode, User Space (kuseg)
In Kernel mode, when KX = 0 in the Status register, and the most-significant bit of the virtual address,
A31, is cleared, the 32-bit kuseg virtual address space is selected; it covers the full 231 bytes (2 Gbytes) of
the current user address space. The virtual address is extended with the contents of the 8-bit ASID field to
form a unique virtual address. When ERL = 1 in the Status register, the user address region becomes a 231
bytes unmapped (that is, mapped directly to physical addresses) uncached address space.
32-bit Kernel Mode, Kernel Space 0 (kseg0)
In Kernel mode, when KX = 0 in the Status register and the most-significant three bits of the virtual
address are 1002, 32-bit kseg0 virtual address space is selected; it is the 229 bytes (512 Mbytes) kernel
physical space. References to kseg0 are not mapped through the TLB; the physical address selected is
defined by subtracting 0x8000 0000 from the virtual address. The K0 field of the Config register,
described in this chapter, controls cacheability and coherency.
32-bit Kernel Mode, Kernel Space 1 (kseg1)
In Kernel mode, when KX = 0 in the Status register and the most-significant three bits of the 32-bit
virtual address are 1012, 32-bit kseg1 virtual address space is selected; it is the 229 bytes (512 Mbytes)
kernel physical space. References to kseg1 are not mapped through the TLB; the physical address selected
is defined by subtracting 0xA000 0000 from the virtual address. Caches are disabled for accesses to these
addresses, and physical memory (or memory-mapped I/O device registers) are accessed directly.
32-bit Kernel Mode, Supervisor Space (ksseg)
In Kernel mode, when KX = 0 in the Status register and the most-significant three bits of the 32-bit
virtual address are 1102, the ksseg virtual address space is selected; it is the current 229 bytes (512 Mbytes)
supervisor virtual space. The virtual address is extended with the contents of the 8-bit ASID field to form
a unique virtual address.
4-12
Chapter 4 Memory Management System
32-bit Kernel Mode, Kernel Space 3 (kseg3)
In Kernel mode, when KX = 0 in the Status register and the most-significant three bits of the 32-bit vital
address are 1112, the kseg3 virtual address space is selected; it is the current 229 bytes (512 Mbytes-4
Mbytes) kernel virtual space. The virtual address is extended with the contents of the 8-bit ASID field to
form a unique virtual address.
Table 4.2.4 64-bit Kernel Mode Segments
Address
Bit Values
Status Register
Is One Of These Values
KSU
EXL
ERL
KX
Segment
Name
Address Range
Segment Size
A[63:62] = 002
1
xkuseg
0x0000 0000 0000 0000
through
0x0000 00FF FFFF FFFF
1 Tbytes
(240 bytes)
A[63:62] = 012
1
xksseg
0x4000 0000 0000 0000
through
0x4000 00FF FFFF FFFF
1 Tbytes
(240 bytes)
A[63:62] = 102
1
xkphys
0x8000 0000 0000 0000
through
0xBFFF FFFF FFFF FFFF
8 × 232 bytes
A[63:62] = 112
1
xkseg
0xC000 0000 0000 0000
through
0xC000 00FF 7FFF FFFF
2 –2 bytes
1
ckseg0
0xFFFF FFFF 8000 0000
through
0xFFFF FFFF 9FFF FFFF
512 Mbytes
(229 bytes)
A[63:62] = 112
A[61:31] = -1
1
ckseg1
0xFFFF FFFF A000 0000
through
0xFFFF FFFF BFFF FFFF
512 Mbytes
(229 bytes)
A[63:62] = 112
A[61:31] = -1
1
cksseg
0xFFFF FFFF C000 0000
through
0xFFFF FFFF DFFF FFFF
512 Mbytes
(229 bytes)
ckseg3
0xFFFF FFFF E000 0000
through
0xFFFF FFFF FFFF FFFF
512 Mbytes
-4 Mbyte
Reserved (Note)
0xFFFF FFFF FF00 0000
through
0xFFFF FFFF FF3F FFFF
4 Mbytes
A[63:62] = 112
A[61:31] = -1
A[63:62] = 112
A[61:31] = -1
KSU = 002
or
EXL = 1
or
ERL = 1
1
40
31
Note : 0xffff_ffff_ff00_0000 through 0xffff_ffff_ff3f_ffff in 64-bit mode is reserved (unmapped, uncached) for
use by registers in the Debug Support Unit and the processor’s peripherals.
64-bit Kernel Mode, User Space (xkuseg)
In Kernel mode, when KX = 1 in the Status register and bits 63-62 of the 64-bit virtual address are 002,
the xkuseg virtual address space is selected; it covers the current user address space. The virtual address is
extended with the contents of the 8-bit ASID field to form a unique virtual address.
When ERL = 1 in the Status register, the user address region becomes a 231 bytes unmapped (that is,
mapped directly to physical addresses) uncached address space.
64-bit Kernel Mode, Current Supervisor Space (xksseg)
In Kernel mode, when KX = 1 in the Status register and bits 63-62 of the 64-bit virtual address are 012,
the xksseg virtual address space is selected; it is the current supervisor virtual space. The virtual address is
extended with the contents of the 8-bit ASID field to form a unique virtual address.
4-13
Chapter 4 Memory Management System
64-bit Kernel Mode, Physical Spaces (xkphys)
In Kernel mode, when KX = 1 in the Status register and bits 63-62 of the 64-bit virtual address are 102,
one of the two unmapped xkphys address spaces are selected, either cached or uncached. Accesses with
address bits 58-36 not equal to 0 cause an address error.
References to this space are not mapped; the physical address selected is taken from bits 35-0 of the
virtual address. Bits 61-59 of the virtual address specify the cacheability and coherency attributes, as
shown in Table 4.2.5.
Table 4.2.5 Cacheability and Coherency Attributes
Value[61:59]
Cacheability and Coherency Attributes
Starting Address
0
Cacheable, non-coherent, write-through, no write
allocate
0x8000 0000 0000 0000
1
Cacheable, non-coherent, write-through, no write
allocate
0x8800 0000 0000 0000
2
Uncached
0x9000 0000 0000 0000
3
Cacheable, non-coherent
0x9800 0000 0000 0000
Reserved
0xA000 0000 0000 0000
4-7
64-bit Kernel Mode, Kernel Space (xkseg)
In Kernel mode, when KX = 1 in the Status register and bits 63-62 of the 64-bit virtual address are 112,
the address space selected is one of the following:
•
kernel virtual space, xkseg, the current kernel virtual space; the virtual address is extended with
the contents of the 8-bit ASID field to form a unique virtual address
•
one of the four 32-bit kernel compatibility spaces, as described in the next section.
64-bit Kernel Mode, Compatibility Spaces (ckseg0, ckseg1, cksseg, ckseg3)
In Kernel mode, when KX = 1 in the Status register, bits 63-62 of the 64-bit virtual address are 112, and
bits 61-31 of the virtual address equal-1, the lower two bytes of address, as shown in Figure 4.2.3, select
one of the following 512 Mbytes compatibility spaces.
•
ckseg0
This 64-bit virtual address space is an unmapped region, compatible with the 32-bit address
model kseg0. The K0 field of the Config register, described in this chapter, controls cacheability
and coherency.
•
ckseg1
This 64-bit virtual address space is an unmapped and uncached region, compatible with the
32-bit address model kseg1.
•
Cksseg
This 64-bit virtual address space is the current supervisor virtual space, compatible with the
32-bit address model ksseg.
•
ckseg3
This 64-bit virtual address space is kernel virtual space, compatible with the 32-bit address
model kseg3.
4-14
Chapter 4 Memory Management System
4.3
Translation Lookaside Buffer
4.3.1
Joint TLB
The processor has a fully associative TLB which maps 48 pairs (odd/even entry) of virtual pages to
their corresponding physical addresses.
4.3.2
TLB Entry format
32-bit addressing
127
121 120
109 108
0
96
MASK
0
95
77 76
VPN2
63
75
G
72 71
64
0
ASID
62 61
38 37
0
PFN
31 30 29
6 5
0
PFN
64-bit addressing
255
G
V
0
136 135
0
94 93
63
0
D
192
141 140 139
VPN2
0
128
ASID
70 69
PFN
30 29
0
0
0
168 167
0
127
V
1
205 204
MASK
191 190 189
D
3 2
C
217 216
0
R
35 34 33 32
C
67 66 65 64
C
6 5
PFN
D
V
3 2
1
0
D
V
0
C
0
MASK: Page comparison mask. This field sets the variable page size for each TLB entry.
VPN2:
Virtual page number divided by two (maps to two pages)
ASID:
Address space ID field.
R:
Region. (00: user, 01: supervisor, 11: kernel) used to match Vaddr[63:62].
PFN:
Page frame number; upper bits of the physical address.
C:
Specifies the cache algorithm to be used (see the “C” field of the EntryLo0, 1).
D:
Dirty. If this bit is set, the page is marked as dirty and therefore, writable. This bit is actually
a write-protect bit that software can use to prevent alteration of data.
V:
Valid. If this bit is set, it indicates that the TLB entry is valid. If a cache hit occurs through
a TLB entry when this bit is cleared, a TLB invalid exception occurs.
G:
Global. If this bit is set in both Lo0 and Lo1, then ignore the ASID during TLB lookup.
0:
Reserved. Returns zeroes when read.
4-15
Chapter 4 Memory Management System
4.3.3
Instruction-TLB
The processor has a 2-entry instruction TLB (ITLB). Each ITLB entry is a subset of any single JTLB
entry. The ITLB is completely invisible to software.
4.3.4
Data-TLB
The processor has a 4-entry data TLB (DTLB). Each DTLB entry is a subset of any single JTLB entry.
The DTLB is completely invisible to software.
4.4
Virtual-to-Physical Address Translation Process
During virtual-to-physical address translation, the CPU compares the 8-bit ASID (if the Global bit, G, is not
set) of the virtual address to the ASID of the TLB entry to see if there is a match. One of the following
comparisons are also made:
•
In 32-bit mode, the 7 to 19 bits (depending upon the page size) of the virtual address are compared to
the contents of the TLB VPN2 (virtual page number divided by two).
•
In 64-bit mode, the 15 to 27 bits (depending upon the page size) of the virtual address are compared
to the contents of the TLB VPN2 (virtual page number divided by two).
If a TLB entry matches, the physical address and access control bits (C, D, and V) are retrieved from the
matching TLB entry. While the V bit of the entry must be set for a valid translation to take place, it is not
involved in the determination of a matching TLB entry.
Figure 4.4.1 illustrates the TLB address translation process.
4-16
Chapter 4 Memory Management System
Virtual Address (Input)
For valid
address space, see
the section describing
Operating Modes
No
Address
Error
Exception
VPN and
ASID
Legal
Yes
Address?
User
Mode?
Sup Yes
Mode?
No
Legal
No
Address?
Address
Error
Exception
Yes
No
Address
Error
No
Yes
Legal
Address?
Yes
Mapped
Address?
Yes
VPN
Match?
No
Global
Yes
No
No
G
= 1?
ASID
Match?
No
Yes
Yes
V
= 1?
No
32-bit
address?
No
Yes
Yes
Dirty
Yes
Write?
No
No
TLB
Mod
D
= 1?
Yes
TLB
Invalid
Uncached?
Yes
No
Exception
TLB
Refill
Exception
Access
Main
Memory
Access
Cache
Physical Address (Output)
Figure 4.4.1 TLB Address Translation
4-17
XTLB
Refill
Chapter 4 Memory Management System
TLB Misses
If there is no TLB entry that matches the virtual address, a TLB refill exception occurs. (TLB refill
exceptions are described in Chapter 8.) If the access control bits (D and V) indicate that the access is not valid,
a TLB modification or TLB invalid exception occurs. If the C bits equal 0102, the physical address that is
retrieved accesses main memory, bypassing the cache.
TLB Instructions
Table 4.4.1 lists the instructions that the CPU provides for working with the TLB. See Appendix A for a
detailed description of these instructions.
Table 4.4.1 TLB Instructions
Op Code
Description of Instruction
TLBP
Translation Lookaside Buffer Probe
TLBR
Translation Lookaside Buffer Read
TLBWI
Translation Lookaside Buffer Write Index
TLBWR
Translation Lookaside Buffer Write Random
4-18
Chapter 5 Cache Organization
5.
Cache Organization
This chapter describes in detail the cache memory: its place in the processor memory organization, and
individual organization of the caches.
This chapter uses the following terminology:
•
The data cache may also be referred to as the D-cache.
•
The instruction cache may also be referred to as the I-cache.
These terms are used interchangeably throughout this book.
5.1
Memory Organization
Figure 5.1.1 shows the processor system memory hierarchy. In the logical memory hierarchy, both primary
and secondary caches lie between the CPU and main memory. They are designed to make the speedup of
memory accesses transparent to the user.
Each functional block in Figure 5.1.1 has the capacity to hold more data than the block above it. For instance,
physical main memory has a larger capacity than the caches. At the same time, each functional block takes
longer to access than any block above it. For instance, it takes longer to access data in main memory than in the
CPU on-chip registers.
TX49 CPU
CPU Core
I-cache
D-cache
Core
Caches
Cache
Faster Access
Time
Main Memory
Disk, CD-ROM,
Tape, etc.
Increasing Data
Capacity
Memory
Peripherals
Figure 5.1.1 Logical Hierarchy of Memory
The processor has two on-chip caches: one holds instructions (the instruction cache), the other holds data
(the data cache). The instruction and data caches can be read in one CPUCLK cycle.
Data writes are pipelined and can complete at a rate of one per CPUCLK cycle. In the first stage of the cycle,
the store address is translated and the tag is checked; in the second stage, the data is written into the data RAM.
5-1
Chapter 5 Cache Organization
5.2
Cache Organization
This section describes the organization of the on-chip data and instruction caches. Figure 5.2.1 provides a
block diagram of the processor cache and memory model.
TX4956
Main Memory
Cache Controller
I-cache
Caches
D-cache
I-cache: Instruction cache
D-cache: Data cache
Figure 5.2.1 Processor Cache Support
5.2.1
Cache Sizes
The processor instruction cache is 32 Kbytes; the data cache is 32 Kbytes.
5.2.2
Cache Line Lengths
A cache line is the smallest unit of information that can be fetched from main memory for the cache,
and that is represented by a single tag.(Note)
The line size for the instruction cache is 8 words (32 bytes) and the line size for the data cache is 8
words (32 bytes).
Note: Cache tags are described in the following sections.
5.2.3
Organization of the Instruction Cache (I-Cache)
Each line of I-cache data (although it is actually an instruction, it is referred to as data to distinguish it from
its tag) has an associated 24-bit tag.
The processor I-cache has the following characteristics:
•
Cache size: 32 KB
•
Four-way set associative
•
FIFO replacement
•
Indexed with a virtual address
•
Checked with a physical tag
•
Block (line) size: 8 words (32 bytes)
•
Burst refill size: 8 words (32 bytes)
•
Lockable on a per-line basis (way1 to way3)
•
All Valid bits, Lock and FIFO bits are cleared by a Reset exception
5-2
Chapter 5 Cache Organization
5.2.4
Instruction Cache Address Field
Figure 5.2.2 shows the instruction cache address field.
35
12 11
5 4
3 2
0
Physical Tag
(24 bits )
Cache Tag Index
(8 bits)
Byte
(3 bits)
Word
(2 bits)
Figure 5.2.2 Instruction Cache Address Field
5.2.5
Instruction Cache Configuration
Each line in the 4 ways of the instruction cache share F1, F0 replacement bits. Figure 5.2.3 shows the
format of replacement bits. These bits are shared by way0, way1, way2 and way3 for 32 KB cache, and
indicate next set to which replacement will be directed; when lock bit is set to 1, indicate this set is not
locked.
Each line of instruction cache data has an associated 26-bit tag that contains a 24-bit physical address,
a single Lock bit and a single Valid bit, except for the line in way0, which has an 25-bit tag that excludes
a Lock bit. Figure 5.2.4 shows the formats of tag and data pair.
1
0
F1
F0
F0: FIFO replace bit 0
F1: FIFO replace bit 1
Figure 5.2.3 Format of Replacement Bits
24
V
23
0
63
P Tag
0
63
0
Data
63
Data
0
63
Data
0
Data
Format for way0
25 24
L
V
23
P Tag
0
63
0
63
0
Data
63
Data
0
Data
Format for way1, 2 and 3
L: Lock bit (1: enable, 0: disable)
V: Valid bit (1: valid, 0: invalid)
PTag: Physical tag (bits 35-12 of the physical address)
Data: Instruction cache data
Figure 5.2.4 Format of Tag and Data Pair for I-cache
5-3
63
0
Data
Chapter 5 Cache Organization
5.2.6
Organization of the Data Cache (D-Cache)
Each line of D-cache data has an associated 24-bit tag.
The processor D-cache has the following characteristics:
5.2.7
•
Cache size: 32 KB
•
Four-way set associative
•
FIFO replacement
•
Indexed with a virtual address
•
Checked with a physical tag
•
Block (line) size: 8 words (32 bytes)
•
Burst size: 8 words (32 bytes)
•
Store buffer
•
Lockable on a per-line basis (way1 to way3)
•
Write-back or write-through on a per-page basis
•
All Write-back, CS, FIFO and Lock bits are cleared by a Reset exception
Data Cache Address Field
Figure 5.2.5 shows the data cache address field.
35
12 11
5 4
3 2
0
Physical Tag
(24 bits )
Cache Tag Index
(8 bits)
Word
(2 bits)
Byte
(3 bits)
Figure 5.2.5 Data Cache Address Field
5.2.8
Data Cache Configuration
Each line in the 4 ways of the data cache share F1, F0 replacement bits. Figure 5.2.6 shows the format
of replacement bits. These bits are shared by way0, way1, way2 and way3 for 32 KB cache, and indicate
next set to which replacement will be directed; when Lock bit is set to 1, indicate this set is not locked.
Each line of data cache data has an associated 28-bit tag that contains a 24-bit physical address, a single
Lock bit, a single Write-back bit and a 2-bit cache state, except for the line in way0, which has an 27-bit
tag that excludes a Lock bit. Figure 5.2.7 shows the formats of tag and data pair.
1
0
F1
F0
F0: FIFO replace bit 0
F1: FIFO replace bit 1
Figure 5.2.6 Format of Replacement Bits
5-4
Chapter 5 Cache Organization
26 25 24
W
23
CS
0
63
PTag
0
63
DATA
0
63
DATA
0
63
DATA
0
DATA
Format for way0
27
L
26 25 24 23
W
CS
0
PTag
63
0
63
DATA
0
DATA
63
0
DATA
63
0
DATA
Format for way1, 2 and 3
L: Lock bit (1: enable, 0: disable)
W: Write-back bit (set if cache line has written)
CS: Primary cache state (0: Invalid, 1: Reserved, 2: Reserved, 3: Valid)
PTag: Physical tag (bits 35-12 of the physical address)
Data: Data cache data
Figure 5.2.7 Format of Tag and Data Pair for D-cache
In the processor, the W (write-back) bit, not the cache state, indicates when the primary cache contents
modified data that must be written back to memory. The states Invalid and Dirty Exclusive are used to
describe the cache line. That is, there is no hardware support for cache coherency.
5.3
Lock Function
The lock function can be used to locate critical instruction/data in one instruction/data cache set and they are
not replaced when the Lock bit is set.
5.3.1
Lock Bit Setting and Clearing
Setting the Lock bit in each line cache enable the instruction/data cache lock function. When the lock
function is enabled, the instruction/data in the valid line is locked and never be replaced. The set to be
locked is pointed by FIFO bit. Refilled instruction/data during the lock function is enabled is locked.
When a store miss occurs for the write-through data cache without write allocate, the store data is not
written to the cache and will therefore not be locked.
The lock function is disabled by clearing the Lock bit in each line.
In order to clear or set the Lock bit in the cache, CACHE instructions (Index store I-cache /D-cache
Tag) can be used, and in order to load the instruction/data to cache from memory, another CACHE
instructions (Fill I-cache/D-cache) can be used (refer to CACHE instruction).
Clear the Lock bit as follows when data written to a locked line should be stored in main memory.
1)
Read the locked data from cache memory
2)
Clear the Lock bit
3)
Store the data that was read
5-5
Chapter 5 Cache Organization
5.3.2
Operation during Lock
After the Lock bit is set for a line, the line can be replaced only when it’s line state is invalid. The
locked valid line can never be replaced. FIFO bit should point only to the set of locked invalid line or
unlocked line.
A write access to a locked valid line takes place only to the cache not to the memory at Write-back
mode. Both of the cache and the memory are replaced at Write-through mode.
5.3.3
Example of Data Cache Locking
During the load operation to the locked line of the cache, any interrupt should be disabled in order to
avoid to lock the wrong data.
To lock data cache lines, the following sequence of codes could be used.
.......................
/* Disable the interrupt */
mtc0
t0, TagLo
/* Load data into TagLo reg */
cache
2 (D), offset (base)
/* Invalidate and lock line in desired set using
Index_Store_Tag cache instruction */
cache
7 (D), offset (base)
/* Fill the cache line from desired memory location */
.......................
5.3.4
/* Enable the interrupt */
Example of Instruction Cache Locking
To lock instruction cache lines, the following sequence of codes could be used:
.......................
/* Disable the interrupt */
mtc0
t0, TagLo
/* Load data into TagLo reg */
cache
2 (I), offset (base)
/* Invalidate and lock line in desired set using
Index_Store_Tag cache instruction */
cache
5 (I), offset (base)
/* Fill the cache line from desired memory location */
.......................
/* Enable the interrupt */
5-6
Chapter 5 Cache Organization
5.4
The Primary Cache Accessing
Figure 5.4.1 shows the virtual address (VA) index to the primary cache. Instruction cache size is 32 KB and
Data cache size is 32 KB. The virtual address bits be used to index into the primary cache decided by the cache
size.
Data
Tags
Tag line
Data line
Instruction Cache: VA[12:5]
Data Cache:
VA[12:5]
VA[12:5]
VA[12:5]
W Stage Tag
64
Figure 5.4.1 Primary Cache Data and Tag Organization
5.5
Cache States
The section describes about the state of a cache line. The cache lines in the processor are in one of states
described in Table 5.5.1.
The I-Cache line is in one of the following states:
•
invalid
•
valid
The D-Cache line is in one of the following states:
•
invalid
•
valid
Table 5.5.1 Cache States
Cache Line State
Description
Invalid
A cache line that does not contain valid information must be marked invalid, and
cannot be used. A cache line in any other state than invalid is assumed to contain
valid information.
Valid
A cache line contains valid information. The cache line may or not be consistent
with memory and is owned by the processor (see “Cache Line Ownership” in this
chapter).
5-7
Chapter 5 Cache Organization
5.6
Cache Line Ownership
The processor becomes the owner of a cache line after it writes to that cache line (that is, by entering the
dirty exclusive), and is responsible for providing the contents of that line on a read request. There can only be
one owner for each cache line.
5.7
Cache Multi-Hit Operation
The processor is not guaranteed the operation for the multi-hit of primary cache.
Thus, in case of locking the specified program/data in the primary cache, the program/data must be used
after locked in the cache by Fill instruction.
5.8
FIFO Replacement Algorithm
The instruction and data caches in the processor use the FIFO replacement algorithm.
•
Usually, cache elements are replaced in this order: Way0, Way1, Way2, Way3.
•
The FIFO[1:0] replacement bits do not point to a locked, valid cache line.
•
Data is first written to a cache line marked invalid, if any.
•
The FIFO replacement bits change every time memory data is written to the cache or a CACHE
instruction is executed.
Figure 5.8.1 shows several examples of how the FIFO replacement bits change.
Way0
Way1
Way2
Way3
A)
Invalid
Invalid
Invalid
Invalid
Way0
Way1
Way2
Way3
C)
Invalid
Invalid
valid
Invalid
Way0
Way1
Way2
Way3
Invalid
valid
Lock
valid
Lock
valid
Lock
E)
Way0
Way1
Way2
Way3
B)
Invalid
Invalid
Lock
Invalid
Invalid
Way0
Way1
Way2
Way3
D)
Invalid
valid
Lock
Invalid
valid
Way0
Way1
Way2
Way3
valid
valid
valid
Lock
valid
F)
Figure 5.8.1 Examples of Cache State Transitions by the FIFO Replacement Algorithm
5-8
Chapter 5 Cache Organization
5.9
Cache Testing
5.9.1
Cache Disabling
The ICE# and DCE# bits in the Config register enable and disable the instruction and data caches
respectively.
When the cache is disabled, any attempt to access the cache causes a cache miss; therefore, a cache
refill does not occur. (A burst bus cycle does not occur, either, as is the case with an access to an uncached
memory space.) With the cache disabled, the Valid (V) and Cache State (CS) bits for each entry remain
unchanged.
Note: When the instruction cache is disabled
– All instruction fetches cause an instruction cache miss. External memory accesses will occur as
a single-read operation.
– Instruction cache operations by the CACHE instruction are valid.
Note: When the data cache is disabled
– All memory accesses by the load and store instructions cause a data cache miss. At this time,
no cache refill occurs. External memory accesses will occur as a single-read or single-write
operation.
– Data cache operations by the CACHE instruction are valid.
Note: How to disable the instruction cache reliably
– To disable the instruction cache, stop instruction streaming by following the MTC0 instruction
with a jump instruction, as shown below:
Example: MTC0
Rn, Config
(Set ICE# bit.)
J
L1
(Jump to L1 and stop streaming.)
NOP
(Jump delay slot)
L1: CACHE IndexInvalidate, offset (base)
5.9.2
Cache Flushing
Both the instruction and data caches are flushed by a ColdReset or WarmReset exception. i.e., all the
Valid and CS bits are cleared to zeroes.
The instruction cache is also flushed by the Index Invalidate and Hit Invalidate operations with a
CACHE instruction. The data cache is flushed by the Hit Invalidate operation with a CACHE instruction.
Data is written back to the main memory when an Index Writeback Invalidate or Hit Writeback
Invalidate operation is performed, when a Hit Writeback operation is performed, and when a cache line is
replaced. When the write-back policy is employed, it is required to consciously maintain cache coherency
when flushing the cache.
5-9
Chapter 5 Cache Organization
5.10 Cache Operations
As described earlier, caches provide fast temporary data storage, and they make the speedup of memory
accesses transparent to the user. In general, the processor accesses cache-resident instructions or data through
the following procedure:
1.
The processor, through the on-chip cache controller, attempts to access the next instruction or data in the
appropriate cache.
2.
The cache controller checks to see if this instruction or data is present in the cache.
3.
•
If the instruction/data is present, the processor retrieves it. This is called a cache hit.
•
If the instruction/data is not present in the cache, the cache controller must retrieve it from memory.
This is called a cache miss.
The processor retrieves the instruction/data from the cache and operation continues.
It is possible for the same data to be in two places simultaneously: main memory and cache. This data is kept
consistent through the use of a write-back methodology; that is, modified data is not written back to memory
until the cache line is to be replaced.
Instruction and data cache line replacement operations are listed in described as the following sections.
Table 5.10.1 Cache Instruction
Name
Caches
Operation
Index Invalidate
Instruction
Sets the cache state of cache block to invalid.
Index Write Back Invalidate
Data
Examines cache state, if Valid Dirty, then that block is written back to main
memory. Then the cache block is set to invalid.
Index Load Tag
Instruction & Data
Read the tag for the cache block at the specified index and place it into
TagLo.
Index Store Tag
Instruction & Data
Write the tag for the cache block at the specified index from the TagLo and
TagHi register.
Create Dirty Exclusive
Data
If the cache does not contain the specified address, and the block is Valid
Dirty the block will be written back to main memory. Then the tag will be set
to the specified physical address and will be marked valid.
Hit Invalidate
Instruction & Data
If the cache block contains the specified address, cache block will be
marked invalid.
Hit Write Back Invalidate
Data
If the cache block contains the specified address, and it is Valid Dirty, the
data will be written back to main memory. Then, the cache block is marked
invalid.
Fill
Instruction
Fill the Instruction cache block from main memory.
Fill
Data
Fill the Data cache block from memory.
Hit Write Back
Data
If the cache block contains the specified address, and it is marked Valid
Dirty, the block will be written back to main memory, and marked Valid
Clean.
5-10
Chapter 5 Cache Organization
5.10.1
Cache Write Policy
The processor manages its data cache by using a write-back and a write-through policy. A write-back stores
write data into the cache, instead of writing it directly to memory. Some time later this data is
independently written into memory. In the processor implementation, a modified cache line is not written
back to memory until the cache line is to be replaced either in the course of satisfying a cache miss, or
during the execution of a write-back CACHE instruction.
When the processor writes a cache line back to memory, it does not ordinarily retain a copy of the cache
line, and the state of the cache line is changed to invalid.
A write-through is written simultaneously to cache and memory.
Selection of a write policy is done by the K0 bit in the Config register (Reg#16) for the kseg0 segment.
For the other segments, selection of a write policy is done by the C bits in each TLB entry.
5.10.2
Data Cache Line Replacement
Since the data cache uses a write-back and a write-through methodology, a cache line load is issued to
main memory on a load or store miss, as described below. After the data from memory is written to the
data cache, the pipeline resumes execution.
The processor does not support “Critical Data Word First”. Always it transfer the data of first address.
The data cache miss penalties, in number of CPUCLK cycles, are given in Table 5.10.2.
Table 5.10.2 Data Cache Miss Penalty Cycle Count
Number of
CPUCLK Cycles
Action
1
Stall the DC stage.
1
Transfer address to the write buffer and wait for the pipeline start signal
1-2
Transfer address to the internal SysAD bus on the GBUSCLK.
2
Transfer to the external SysAD bus.
M
Time needed to access memory, measured in CPUCLK cycles.
4
Transfer the cache line form memory to the SysAD bus.
2
Transfer the cache line from the external bus to the internal bus.
0
Restart the DC stage.
5-11
Chapter 5 Cache Organization
5.10.3
Instruction Cache Line Replacement
For an instruction cache miss, refill is done using sequential ordering, starting from the first word of the
retrieved cache line.
During an instruction cache miss, a memory read is issued. The requested line is returned from memory
and written to the instruction cache. At this time the pipeline resumes execution, and the instruction cache
is reaccessed.
The replacement sequence for an instruction cache miss is:
1.
Move the instruction physical address to the processor pads.
2.
Wait for a CPUCLK cycle, aligned with a GBUSCLK boundary, to occur.
3.
Read the line from memory and write it out to the instruction cache array.
4.
Restart the processor pipe.
The instruction cache miss penalties, in number of CPUCLK, is given in Table 5.10.3.
Table 5.10.3 Instruction Cache Miss Penalty Cycle Count
Number of
CPUCLK
1
1
Action
Stall the RF stage.
Transfer address to the write buffer and wait for the pipeline start signal.
1-2
Transfer to the external SysAD bus.
2
Transfer to the external SysAD bus.
M
Time needed to access memory, measured in CPUCLK cycles.
8
Transfer the cache line from memory to the SysAD bus.
2
Transfer the cache line from the external bus to the internal bus.
0
Restart the RF stage.
5.11 Manipulation of the Caches by an External Agent
The processor does not provide any mechanisms for an external agent to examine and manipulate the state
and contents of the caches.
5-12
Chapter 6 Write Buffer
6.
Write Buffer
The processor contains a write buffer to improve the performance of writes to the external memory. Every
write to external memory uses this on-chip write buffer. The write buffer holds up to four 64-bit address and data
pairs.
For a cache miss write-back, the entire buffer is used for the write-back data and allows the processor to
proceed in parallel with the memory update. For uncached and write-through stores, the write buffer uncouples
the CPU from the write to memory. If the write buffer is full, additional stores will stall until there is room for
them in the write buffer.
The processor core might issue a read request while the write buffer is performing a write operation. Multiple
read/write operations are serviced in the following order:
•
If there is only a write request, the data in the write buffer is written to an external device.
•
If there is only a read request, a read operation is performed to bring in data from an external device.
•
If a read request and a write request occur simultaneously, the read request is serviced first, except for
the following cases:
–
when the processor issues a read request to the target address of one of the write buffer entries
–
when the processor issues an uncacheable read reference while the write buffer has uncacheable
write data
The BC0T and BC0F instructions can be used to determine whether any data is present in the write buffer:
•
If there is data in the write buffer, the coprocessor condition signal is false (0).
•
If there is no data in the write buffer, the coprocessor condition signal is true (1).
Following is the assembly language code to freeze the processor until the write buffer becomes empty.
SW
NOP
NOP
Loop: BC0F Loop
NOP
The following sequence of instructions also causes the processor to perform the same action. Appended to a
store instruction, the SYNC instruction ensures that the store instruction initiated prior to this instruction is
completed before any instruction after this instruction is allowed to start.
SW
SYNC
6-1
Chapter 6 Write Buffer
6-2
Chapter 7 Debug Support Unit
7.
7.1
7.2
Debug Support Unit
Features
1.
TX4956 can provide various kinds of execution controls and access to registers of TX49/H4 core through
EJTAG interface implemented by the debug support unit inside TX49/H4 Core.
2.
Supports DMA access through EJTAG interface to internal processor bus to access system memory.
3.
Debug functions
•
Instruction Address Break
•
Data Bus break
•
Processor Bus Break
•
Hardware Debug Interrupt
•
Reset, NMI, Interrupt Mask
EJTAG Interface
This interface consists of external signals for a Run Time Mode. The Run Time Mode provides functions
such as processor Run, STOP, Single Step, and access to internal registers and system memory.
About TX4956 EJTAG interface signals, see Table 2.2.7 “EJTAG Interface” on Chapter 2.
7-1
Chapter 7 Debug Support Unit
7.3
Debug Unit
7.3.1
7.3.2
7.4
Extended Instructions
•
SDBBP
•
DERET
•
CTC0
•
CFC0
Extended Debug Registers in CP0
•
Debug Register
•
DEPC Register
•
DESAVE Register
Register Map
Table 7.4.1 Register Map
7.5
Address
Mnemonic
0xf ff30 0000
DCR
Description
Debug Control Register
0xf ff30 0008
IBS
Instruction Break Status
0xf ff30 0010
DBS
Data Break Status
0xf ff30 0018
PBS
Processor Break Status
0xf ff30 0100
IBA0
Instruction Break Address 0
0xf ff30 0108
IBC0
Instruction Break Control 0
0xf ff30 0110
IBM0
Instruction Break Address Mask 0
0xf ff30 0300
DBA0
Data Break Address 0
0xf ff30 0308
DBC0
Data Break Control 0
0xf ff30 0310
DBM0
Data Break Address Mask 0
0xf ff30 0318
DB0
0xf ff30 0600
PBA0
Processor Bus Break Address 0
Data Break Value 0
0xf ff30 0608
PBD0
Processor Bus Break Data 0
0xf ff30 0610
PBM0
Processor Bus Break Mask 0
0xf ff30 0618
PBC0
Processor Bus Break Control 0
Processor Bus Break Function
This function is to monitor the interface to core and provide debug interruption or trace trigger for a given
physical address and data.
7.6
Debug Exception
Three kinds of debug exception are supported.
•
Debug Single Step (DSS bit)
•
Debug Breakpoint Exception (SDBBP Instruction)
•
JTAG Break Exception (Jtagbrk bit in JTAG_Control_Register)
7-2
Chapter 8 CPU Exception
8.
8.1
CPU Exception
Introduction
This chapter describes the explanation of CPU exception processing. The chapter concludes with a
description of each exception’s cause, together with the manner in which the CPU processes and services these
exceptions.
8.2
Exception Vector Locations
Exception vector addresses are stored in an area of kseg0 or kseg1 except for Debug exception vector. The
vector address of the ColdReset, SoftReset and NMI exception is always in a non-cacheable area of kseg1.
Vector addresses of the other exceptions depend on the BEV bit of Status register. When BEV is 0, these
exceptions are vectored to a cacheable area of kseg0. When BEV is 1, all vector addresses are in a
non-cacheable area of kseg1.
Table 8.2.1 shows the list of the exception vector locations.
Table 8.2.1 Exception Vector Locations
Vector Address (virtual address)
Exception
(BEV = 0)
(BEV = 1)
ColdReset, SoftReset, NMI
0xffff_ffff_bfc0_0000
0xffff_ffff_bfc0_0000
TLB refill, EXL = 0
0xffff_ffff_8000_0000
0xffff_ffff_bfc0_0200
XTLB refill, EXL = 0
(X = 64-bit TLB)
0xffff_ffff_8000_0080
0xffff_ffff_bfc0_0280
Others (common exception)
0xffff_ffff_8000_0180
0xffff_ffff_bfc0_0380
Vector Address (physical address)
Exception
(BEV = 0)
(BEV = 1)
ColdReset, SoftReset, NMI
0x0_1fc0_0000
0x0_1fc0_0000
TLB refill, EXL = 0
0x0_0000_0000
0x0_1fc0_0200
XTLB refill, EXL = 0
(X = 64-bit TLB)
0x0_0000_0080
0x0_1fc0_0280
Others (common exception)
0x0_0000_0180
0x0_1fc0_0380
The cache error exception is not occurred because the TX4956 does not have the parity bit into the primary
cache. Debug exception needs the care, it has the special address.
Table 8.2.2 shows the list of the debug exception vector locations.
Table 8.2.2 Debug Exception Vector Locations
Exception
Debug
Exception
Debug
Debug Exception Vector Address (virtual address)
(ProbEnb = 0)
0xffff_ffff_bfc0_0400
(ProbEnb = 1)
0xffff_ffff_ff20_0200
Debug Exception Vector Address (physical address)
(ProbEnb = 0)
0x0_1fc0_0400
8-1
(ProbEnb = 1)
0xf_ff20_0200
Chapter 8 CPU Exception
8.3
Priority of Exception
More than one exception may be raised for the same instruction, in which case only the exception with the
highest priority is reported. The TX4956 Processor Core instruction exception priority is shown in Table 8.3.1.
Table 8.3.1 Priority of Exception
Priority
Exception
Mnemonic
ColdReset
High
SoftReset
NMI
Address error
Inst. Fetch
AdEL
TLB refill
Inst. Fetch
TLBL
TLB invalid
Inst. Fetch
TLBL
Bus error
Inst. Fetch
Low
IBE
Ov, Tr, Sys,
Bp, RI, CpU,
FPE
Integer overflow, Trap, System Call, Breakpoint,
Reserved Instruction, Coprocessor Unusable, or
Floating-Point Exception
Address error
Data access
AdEL/AdES
TLB refill
Data access
TLBL/TLBS
TLB invalid
Data access
TLBL/TLBS
TLB modified
Data write
Mod
Bus error
Data access
DBE
Interrupt
Int
General exceptions (i.e., exceptions other than debug exceptions) are prioritized as follows:
1.
If more than one exception condition occurs for a single instruction or a single cycle, only the
exception with the highest priority is reported, as shown in Table 8.3.1 (from highest to lowest
priority).
2.
If two instructions cause exception conditions in the M and E stages of the pipeline simultaneously,
the instruction in the M stage causes the processor to take an exception.
3.
When 64-bit instructions are executed in 32-bit mode, the Reserved Instruction (RI) exception can
occur simultaneous with other exception, as shown below. In that case, the RI exception is given
precedence.
•
RI and CpU
•
RI and Ov
•
RI and AdEL/S (data)
•
RI and TLBL/S (data)
General and debug exceptions are prioritized as follows:
1.
If a general exception condition and a debug exception condition occur for a single instruction, the
debug exception is serviced first, and then the general exception is serviced.
2.
If two instructions cause exception conditions in the M and E stages of the pipeline simultaneously,
only the instruction in the M stage generates an exception.
8-2
Chapter 8 CPU Exception
8.4
ColdReset Exception
8.4.1
Cause
This ColdReset exception occurs when the ColdReset* signal is asserted and then deasserted. This
exception is not maskable.
8.4.2
Processing
A special interrupt vector that resides in an unmapped and uncached area is used. It is therefore not
necessary for hardware to initialize TLB and cache memory in order to process this exception. The vector
location of this exception is:
•
In 32-bit mode, 0xbfc0 0000 (virtual address), 0x1fc0_0000 (physical address)
•
In 64-bit mode, 0xffff ffff bfc0 0000 (virtual address), 0x1fc0_0000 (physical address)
The most register’s contents are cleared when this exception occurs. The values of these bits are listed
into the table of Chapter 3.
Valid bits, Lock bits and FIFO replacement bits in the instruction cache are all cleared to 0. W bits, CS
bits, Lock bits and FIFO replacement bits in the data cache are all cleared to 0.
If a ColdReset exception occurs during bus cycle, the current bus cycle is aborted and an exception is
taken.
8.4.3
Servicing
The ColdReset exception is serviced by;
•
initializing all registers, coprocessor registers, caches and the memory system
•
performing diagnostic tests
•
bootstrapping the operating system
8-3
Chapter 8 CPU Exception
8.5
SoftReset Exception
8.5.1
Cause
This SoftReset exception occurs when the Reset* signal is asserted and then deasserted. This exception
is not maskable.
8.5.2
Processing
A special interrupt vector that resides in an unmapped and uncached area is used. It is therefore not
necessary for hardware to initialize TLB and cache memory in order to process this exception. The vector
location of this exception is:
•
In 32-bit mode, 0xbfc0 0000 (virtual address), 0x0_1fc0_0000 (physical address)
•
In 64-bit mode, 0xffff ffff bfc0 0000 (virtual address), 0x0_1fc0_0000 (physical address)
All register contents are retained except for the following.
•
ErrorEPC register, which contains the restart PC
If the exception-causing instruction is in a branch delay slot, the ErrorEPC register points at the
preceding branch instruction.
•
ERL, SR and BEV bits of Status register, which are set to 1
Because SoftReset exception can abort cache and bus operations, cache and memory state is undefined
when this exception occurs.
8.5.3
Servicing
The SoftReset exception is serviced by saving the current processor state for diagnostic purposes, and
reinitializing for the ColdReset exception.
8-4
Chapter 8 CPU Exception
8.6
8.6.1
NMI (Non-maskable Interrupt) Exception
Cause
The NMI (Non-maskable Interrupt) exception occurs at the falling edge of the NMI* signal. This
interrupt is not maskable, and occurs regardless of the EXL, ERL and IE bits of the Status register.
8.6.2
Processing
The same special interrupt vector as for ColdReset/SoftReset exception (virtual address: 0xbfc0_0000/
0xffff_ffff_bfc0_0000). This vector is located within unmapped and uncached area so that the cache and
TLB need not be initialized to process this exception. When this exception occurs, the SR bit of Status
register is set.
Because NMI exception can occur in the midst of another exception, it is not normally possible to
continue program execution after servicing NMI exception.
Unlike the ColdReset/SoftReset exception, but like other exceptions, this exception occurs at an
instruction boundary. The state of the primary cache and memory system are preserved by this exception.
All register contents are retained except for the following.
8.6.3
•
ErrorEPC register, which contains the restart PC
If the exception-causing instruction is in a branch delay slot, the ErrorEPC register points at the
preceding branch instruction.
•
ERL, SR and BEV bits of the Status register, which is set to 1.
Servicing
The NMI exception is serviced by saving the current processor state for diagnostic purposes, and
reinitializing the system for the ColdReset exception.
8-5
Chapter 8 CPU Exception
8.7
Address Error Exception
8.7.1
Cause
The Address Error exception occurs when an attempt is made to execute one of the following.
•
load or store a doubleword that is not aligned on a doubleword boundary
•
load, fetch or store a word that is not aligned on a word boundary
•
load or store a halfword that is not aligned on a halfword boundary
•
reference Kernel mode address while in User or Supervisor mode
•
reference Supervisor mode address while in User mode
This exception is not maskable.
8.7.2
Processing
The common exception vector (virtual address: 0x8000_0180/0xffff_ffff_8000_0180) is used.
ExcCode AdEL or AdES in Cause register is set depending on whether the memory access attempt was a
load or store. When this exception is raised, the misalign virtual address causing the exception, or the
protected virtual address that was illegally referenced, is placed in BadVAddr register. The contents of the
VPN field of Context and EntryHi registers are undefined, as are the contents of EntryLo register.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.7.3
Servicing
The process executing at the time is handed a segmentation violation signal. This error is usually fatal
to the process incurring the exception.
8-6
Chapter 8 CPU Exception
8.8
TLB Refill Exception
8.8.1
Cause
The TLB refill exception occurs when there is no TLB entry to match a reference to a mapped address.
This exception is not maskable.
8.8.2
Processing
There are two special exception vectors for this exception; one for references to 32-bit virtual address,
and one for references to 64-bit virtual address. The KX, SX and UX bits of Status register determine
whether the User, Supervisor or Kernel address referenced are 32-bit mode or 64-bit mode. When EXL bit
of Status register is set to 0, all references use these vectors. When this exception occurs, TLBL or TLBS
code is set in the ExcCode field of Cause register. This code indicates whether the instruction, as shown
by EPC register and BD bit of Cause register, caused the miss by an instruction reference, load operation,
or store operation.
When this exception occurs:
•
BadVAddr, Context, XContext and EntryHi registers hold the virtual address failed address
translation
•
EntryHi register contains ASID from which the translation fault occurred, too
•
A valid address in which to place the replacement TLB entry is contained into Random register
•
The contents of EntryLo register are undefined
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.8.3
Servicing
To service this exception, the contents of the Context or XContext register are used as a virtual address
to fetch memory locations containing the physical page frame and access control bits for a pair of TLB
entries. The two entries are placed into the EntryLo0/EntryLo1 register; the EntryHi and EntryLo
registers are written into the TLB.
It is possible that the virtual address used to obtain the physical address and access control information
is on a page that is not resident in the TLB. This condition is processed by allowing a TLB refill exception
in the TLB refill handler. This exception goes to the common exception vector because the EXL bit of the
Status register is set.
8-7
Chapter 8 CPU Exception
8.9
TLB Invalid Exception
8.9.1
Cause
The TLB Invalid exception occurs when a virtual address reference matches a TLB entry that is marked
invalid (TLB valid bit cleared). This exception is not maskable.
8.9.2
Processing
The common exception vector is used for this exception. When this exception occurs, TLBL or TLBS
code is set in the ExcCode field of Cause register. This code indicates whether the instruction, as shown
by EPC register and BD bit of Cause register, caused the miss by an instruction reference, load operation,
or store operation.
When this exception occurs:
•
BadVAddr, Context, XContext and EntryHi registers hold the virtual address failed address
translation
•
EntryHi register contains ASID from which the translation fault occurred, too
•
A valid address in which to place the replacement TLB entry is contained into Random register
•
The contents of EntryLo register are undefined
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.9.3
Servicing
A TLB entry is typically marked invalid when one of the following is true:
•
a virtual address does not exist
•
the virtual address exists, but is not in main memory (a page fault)
•
a trap is desired on any reference to the page (for example, to maintain a reference bit or during
debug)
After servicing the cause of a TLB Invalid exception, the TLB entry is located with TLB Probe (TLBP)
instruction, and replaced by an entry with that entry’s Valid bit set.
8-8
Chapter 8 CPU Exception
8.10 TLB Modified Exception
8.10.1
Cause
The TLB Modified exception occurs when a store operation virtual address reference to memory
matches a TLB entry that is marked valid but is not dirty and therefore is not writable. This exception is
not maskable.
8.10.2
Processing
The common exception vector is used for this exception, and Mod code in Cause register is set.
When this exception occurs:
•
BadVAddr, Context, XContext and EntryHi registers hold the virtual address failed address
translation
•
EntryHi register contains ASID from which the translation fault occurred, too
•
The contents of EntryLo register are undefined
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.10.3
Servicing
The kernel uses the failed virtual address or virtual page number to identify the corresponding access
control information. The page identified may or may not permit write accesses; if writes are not permitted,
a write protection violation occurs.
If write accessed are permitted, the page frame is marked dirty/writable by the kernel in its own data
structures. The TLB Probe (TLBP) instruction places the index of the TLB entry that must be altered into
the Index register. The EntryLo register is loaded with a word containing the physical page frame and
access control bits (with the D bit set), and the EntryHi and EntryLo registers are written into the TLB.
8-9
Chapter 8 CPU Exception
8.11 Bus Error Exception
8.11.1
Cause
This Bus Error exception occurs when any of the following errors is detected during. memory read
responsing on SysAD bus by “instruction fetch cycle” or “ data read cycle”
1.
Error data is reported by the SysCmd
2.
Parity errors are detected
3.
Time-out error is detected
Table 8.11.1 shows the condition of Bus Error Exception.
Table 8.11.1 Condition of Bus Error Exception
Operation
Mode
Error Data
Parity Error
R5000
type
protocol
SysCmd[5] =1
(When this error data bit is
set to 1 on the SysAD bus)
SysCmd[4] =1 and any
parity bit of SysADC[7:0] is
set to 1
N.A
R4300
type
protocol
SysCmd[1] =1
(When this error data bit is
set to 1 on the SysAD bus)
N.A
G2SConfig register[3]
(ToutEnable) = 1 and
G2SConfig register[19:4]
(ToutVal) = 0
8.11.2
Time-out Error
Processing
The common interrupt vector is used for a Bus Error exception. The IBE or DBE code in the ExcCode
field of the Cause register is set, signifying whether the instruction (as indicated by the EPC register and
BD bit in the Cause register) caused the exception by an instruction reference, load operation, or store
operation.
The EPC register contains the address of the instruction that caused the exception, unless it is in a
branch delay slot, in which case the EPC register contains the address of the preceding branch instruction
and the BD bit of the Cause register is set to 1.
8.11.3
Servicing
The physical address at which the fault occurred can be computed from information available in the
CP0 registers.
•
If the IBE code in the Cause register is set (indicating an instruction fetch reference), the virtual
address is contained in the EPC register (or 4+ the contents of the EPC register if the BD bit of
the Cause register is set).
•
If the DBE code is set (indicating a load or store reference), the instruction that caused the
exception is located at the virtual address contained in the EPC register (or 4+ the contents of
the EPC register if the BD bit of the Cause register is set).
8-10
Chapter 8 CPU Exception
The virtual address of the load and store reference can then be obtained by interpreting the instruction.
The physical address can be obtained by using the TLB Probe (TLBP) instruction and reading the
EntryLo register to compute the physical page number.
The process executing at the time of this exception is handed a bus error signal, which is usually fatal.
Note:
The bus error treats only the read bus cycle because the TX4956 supports the write
buffer. Because the TX4956 supports the non-blocking load and the streaming, please
stop the program counter by SYNC instruction or the depending registers instruction, for
using EPC register to return from this exception.
8-11
Chapter 8 CPU Exception
8.12 Integer Overflow Exception
8.12.1
Cause
The Integer Overflow exception occurs when ADD, ADDI, SUB, DADD, DADDI or DSUB
instruction results in a 2’s complement overflow. This exception is not maskable.
8.12.2
Processing
The common exception vector is used for this exception, and the Ov code in Cause register is set.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.12.3
Servicing
The process executing at the time of the exception is handed a floating-point exception signal or integer
overflow signal. This error is usually fatal to the current process.
8-12
Chapter 8 CPU Exception
8.13 Trap Exception
8.13.1
Cause
The Trap exception occurs when TGE, TGEU, TLT, TLTU, TEQ, TNE, TGEI, TGEIU, TLTI, TLTIU,
TEQI or TNEI instruction results in a TRUE condition. This exception is not maskable.
8.13.2
Processing
The common exception vector is used for this exception, and the Tr code in Cause register is set.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.13.3
Servicing
The process executing at the time of a Trap exception is handed a floating-point exception signal or
integer overflow signal. This error is usually fatal.
8-13
Chapter 8 CPU Exception
8.14 System Call Exception
8.14.1
Cause
The System Call exception occurs during an attempt to execute the SYSCALL instruction. This
exception is not maskable.
8.14.2
Processing
The common exception vector is used for this exception, and the Sys code in Cause register is set.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the SYSCALL instruction. If, however, the affected instruction was in the branch delay slot
(for execution during a branch), the immediately preceding branch instruction address is retained in EPC
register, and BD bit of Cause register is set to 1.
8.14.3
Servicing
When this exception occurs, control is transferred to the applicable system routine.
To resume execution, the EPC register must be altered so that the SYSCALL instruction does not
re-execute; this is accomplished by adding a value of 4 to the EPC register (EPC register + 4) before
returning.
If a SYSCALL instruction is in a branch delay slot, a more complicated algorithm, beyond the scope of
this description, may be required.
8-14
Chapter 8 CPU Exception
8.15 Breakpoint Exception
8.15.1
Cause
The Breakpoint exception occurs when an attempt is made to execute the BREAK instruction. This
exception is not maskable.
8.15.2
Processing
The common exception vector is used for this exception, and the Bp code in Cause register is set.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the BREAK instruction. If, however, the affected instruction was in the branch delay slot
(for execution during a branch), the immediately preceding branch instruction address is retained in EPC
register, and BD bit of Cause register is set to 1.
8.15.3
Servicing
When the Breakpoint exception occurs, control is transferred to the applicable system routine.
Additional distinctions can be mode by analyzing the unused bits of the BREAK instruction (bits 25-6),
and loading the contents of the instruction whose address the EPC register contains. A value of 4 must be
added to the contents of the EPC register (EPC register + 4) to locate the instruction if it resides in a
branch delay slot.
To resume execution, the EPC register must be altered so that the BREAK instruction does not
re-execute; this is accomplished by adding a value of 4 to the EPC register (EPC register + 4) before
returning.
If a BREAK instruction is in a branch delay slot, interpretation of the branch instruction is required to
resume execution.
8-15
Chapter 8 CPU Exception
8.16 Reserved Instruction Exception
8.16.1
Cause
The Reserved Instruction exception occurs when one of the following condition occurs:
•
an attempt is made to execute an instruction with an undefined major opcode (bits 31-26)
•
an attempt is made to execute a SPECIAL instruction with an undefined minor opcode (bits 5-0)
•
an attempt is made to execute a REGIMM instruction with an undefined minor opcode (bits
20-16)
•
an attempt is made to execute 64-bit operations in 32-bit mode when in User or Supervisor
modes
•
an attempt is made to execute a COPz rs instruction with an undefined minor opcode (bits
25-21)
•
an attempt is made to execute a COPz rt instruction with an undefined minor opcode (bits
20-16)
64-bit operations are always valid in Kernel mode regardless of the value of the KX bit in Status
register. This exception is not maskable.
8.16.2
Processing
The common exception vector is used for this exception, and the RI code in Cause register is set.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and the BD bit of Cause register is set to 1.
8.16.3
Servicing
No instruction in the MIPS ISA are currently interpreted. The process executing at the time of this
exception is handed an illegal instruction/reserved operand fault signal. This error is usually fatal.
8-16
Chapter 8 CPU Exception
8.17 Coprocessor Unusable Exception
8.17.1
Cause
The Coprocessor Unusable exception occurs when an attempt is made to execute a coprocessor
instruction for either.
8.17.2
•
attempting to execute a coprocessor CPz instruction when its corresponding CUz bit in Status
register.
•
in User or Supervisor mode attempting to execute a CP0 instruction when CU0 bit is cleared to
0. (In Kernel mode, an exception is not raised when a CP0 instruction is issued , regardless of
the CU0 bit setting)
•
an attempt is made to execute a FPU instruction in TX49 without FPU
Processing
The common exception vector is used for this exception, and the CpU code in Cause register is set. The
coprocessor number referred to at the time of the exception is stored in Cause register CE (Coprocessor
Error) field.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and BD bit of Cause register is set to 1.
8.17.3
Servicing
The coprocessor unit to which an attempted reference was mode is identified by the Coprocessor Usage
Error field (CE) of Cause register, which results in one of the following situations:
•
If the process is entitled access to the coprocessor, the coprocessor is marked usable and the
corresponding user state is restored to the coprocessor.
•
If the process is entitled access to the coprocessor, but the coprocessor does not exist or has
failed, interpretation of the coprocessor instruction is possible.
•
If the BD bit is set in the Cause register, the branch instruction must be interpreted; then the
coprocessor instruction can be emulated and execution resumed with the EPC register advanced
past the coprocessor instruction.
•
If the process is not entitled access to the coprocessor, the process executing at the time is
handed an illegal instruction/privileged instruction fault signal. This error is usually fatal.
8-17
Chapter 8 CPU Exception
8.18 Floating-Point Exception
8.18.1
Cause
The Floating-Point exception is used by the floating-point coprocessor. This exception is not maskable.
8.18.2
Processing
The common exception vector is used for this exception, and the FPE code in Cause register is set. The
contents of the Floating-Point Control/Status register indicate the cause of this exception.
If EXL bit of Status register is only set to 0, the following operation is executed. EPC register points to
the address of the instruction causing the exception. If, however, the affected instruction was in the branch
delay slot (for execution during a branch), the immediately preceding branch instruction address is
retained in EPC register and the BD bit of Cause register is set to 1.
8.18.3
Servicing
This exception is cleared by clearing the appropriate bit in the Floating-Point Control/Status register.
For an unimplemented instruction exception, the kernel should emulate the instruction; for other
exceptions, the kernel should pass the exception to the user program that caused the exception.
8-18
Chapter 8 CPU Exception
8.19 Interrupt Exception
8.19.1
Cause
The Interrupt exception is raised by any of eight interrupts (two software and six hardware). A
hardware interrupt is raised when Int[5:0]* signal goes active. A software interrupt is raised by setting the
IP[1]/IP[0] bit in Cause register. The significance of these interrupts is dependent upon the specific
system implementation.
Each of the eight interrupts can be masked individually by clearing its corresponding bit in the
IM(Interrupt Mask) field of Status register, and all interrupts can be masked at once by clearing IE bit of
Status register to 0.
8.19.2
Processing
The common exception vector is used as following:
•
In 32-bit mode, 0x8000 0180 (BEV = 0)
0xbfc0 0380 (BEV = 1)
•
In 64-bit mode, 0xffff ffff 8000 0180 (BEV = 0)
0xffff ffff bfc0 0380 (BEV = 1
When the processor is in the doze or halt operation mode, it is returned to the normal operation mode by
an interrupt.
8.19.3
Servicing
If the interrupt is caused by one of the two software-generated exceptions (SW1 or SW0), the interrupt
condition is cleared by setting the corresponding Cause register bit to 0.
If the interrupt is hardware-generated, the interrupt condition is cleared by correcting the condition
causing the interrupt pin to be asserted.
If the timer interrupt is caused, the interrupt condition is cleared by changing the value of the Compare
register or setting the corresponding Cause register bit (IP[7]) to 0.
Interrupts are not acceptable when the settings of the Status register are EXL = 1 and ERL = 1.
Note:
Due to the write buffer, a store to an external device will not necessary occur until after
other instructions in the pipeline finish. Thus, the user must ensure that the store will
occur before the return from exception instruction (ERET) is executed otherwise the
interrupt may be serviced again even though there should be no interrupt pending.
8-19
Chapter 8 CPU Exception
8.20 Exception Handling and Servicing Flowcharts
The remainder of this chapter contains flowcharts for the following three sets of. exceptions and guidelines
for their handlers:
1.
2.
3.
general exceptions and their exception handler
•
Figure 8.20.1 shows general exception handler (HW)
•
Figure 8.20.2 shows general exception servicing guidelines (SW)
TLB/XTLB miss exception and their exception handler
•
Figure 8.20.3 shows TLB/XTLB miss exception handler (HW)
•
Figure 8.20.4 shows TLB/XTLB exception servicing guidelines (SW)
ColdReset, SoftReset and NMI exceptions, and a guideline to their handler.
•
Figure 8.20.5 shows ColdReset, SoftReset & NMI Exception Handling (HW) and Servicing
Guidelines (SW)
Generally speaking, the exceptions are handled by hardware (HW); the exceptions are then serviced by
software (SW).
Comments
Set FP Control Status Resister
EnHi ← VPN2, ASID
X/Context ← VPN2
Set Cause Register
(ExcCode, CE)
Set BadVA
Check if exception within
another exception
EXL
(SR1)
FP Control/Status Register
is only set if the respective exception
occurs.
EnHi, X/Context are set only for
*TLB- Invalid, Modified,
& Refill exceptions
BadVA is set only for
TLB-invalid, Modified,
and Refill exceptions
Note: not set if it is a Bus Error
=1
=0
Yes
Instr. in
Br. Dly. Slot?
Cause 31 (BD) ← 0
EPC ← PC
Cause 31 (BD) ← 1
EPC ← (PC - 4)
EXL ← 1
= 0 (normal)
No
BEV
PC ← 0xFFFF FFFF 8000 0000 + 180
(unmapped, cached)
Processor forced to Kernel Mode
& interrupt disabled
= 1 (bootstrap)
PC ← 0xFFFF FFFF BFC0 0200 + 180
(unmapped, uncached)
To General Exception Servicing Guidelines
Figure 8.20.1 General Exception Handler (HW)
8-20
Chapter 8 CPU Exception
Comments
Save the Context
No
Set Status register
(KSU←00,
EXL←0, IE = 1)
Interrupt enabled
Exception cause is
interrupt?
* Treat in unmapped area
* Save the Context (Status, Cause, X/Context, EPC, etc.)
to stack area
* Avoid all other exceptions except to NMI, Soft Reset and
Cold Reset until saving the Context
* Check ExcCode field of Cause register
Yes
Check of interrupt
cause
* Check the interrupt cause from IP field of Cause register
and IM field of Status register
Service routine of
each interrupts
* Negate the current interrupt cause in the service routine
Interrupt disabled
* Set 1 to EXL field of Status register, and disable interrupt
on kernel mode
Restore Context
* Restore the saved registers
Service routine of each
exception
* Close the exception handler by ERET instruction
ERET
Figure 8.20.2 General Exception Servicing Guidelines (SW)
8-21
Chapter 8 CPU Exception
Yes
Instr. in
Br. Dly. Slot?
No
EnHi ← VPN2, ASID
X/Context ← VPN2
Set Cause Reg.
ExcCode, CE and
Set BadVA
EXL
(SR bit 1)
EnHi ← VPN2, ASID
X/Context ← VPN2
Set Cause Reg.
ExcCode, CE and
Set BadVA
=1
EXL
(SR bit 1)
=1
Check if exception within
another exception
=0
=0
EPC ← (PC-4)
Cause bit 31 (BD) ← 1
Yes
EPC ← PC
Cause bit 31 (BD) ← 0
XTLB
Exception?
Vector Offset = 0x080
No
Vector Offset = 0x000
Points to Refill Exception
Points to General Exception
EXL ← 1
= 0 (normal)
Vector Offset = 0x180
BEV
(SR bit 22)
PC ← 0xFFFF FFFF 8000 0000 + Vec. Off.
(unmapped, cached)
Processor forced to Kernel Mode &
interrupt disabled
= 1 (bootstrap)
PC ← 0xFFFF FFFF BF00 0200 + Vec. Off.
(unmapped, uncached)
To TLB/XTLB Exception Servicing Guidelines
Figure 8.20.3 TLB/XTLB Miss Exception Handler (HW)
8-22
Chapter 8 CPU Exception
Comments
* Unmapped vector TLBMod, TLBInv,
TLB Refill exceptions not possible
MFC0 CONTEXT
* EXL = 1 so Interrupt exceptions disabled
* OS/System to avoid all other exceptions
* Only Cold Reset, Soft Reset, NMI exceptions
possible.
* Load the mapping of the virtual address in Context Reg.
Move it to ENLO and Write into the TLB
Service Code
* There could be a TLB miss again during the mapping
of the data or instruction address. The processor will
jump to the general exception vector since the EXL is 1.
(Option to complete the first level refill in the general
exception handler or ERET to the original instruction
and take the exception again)
* ERET is not allowed in the branch delay slot of
another Jump Instruction
ERET
* Processor does not execute the instruction which is
in the ERET’s branch delay slot
* PC ← EPC; EXL = 0
* LLbit ← 0
Figure 8.20.4 TLB/XTLB Miss Exception Servicing Guidelines (SW)
8-23
Chapter 8 CPU Exception
Soft Reset & NMI Exception
Cold Reset Exception
Random ← TLBENTRIES-1
Wired ← 0
Status:
ColdReset, SoftReset & NMI Exception Handling (HW)
Status:
BEV ← 1
TS ← 0 (*)
SR ← 1
ERL ← 1
BEV ← 1
TS ← 0 (*)
SR ← 0
ERL ← 1
Instr. in
Br. Dly. Slot?
Yes
No
ErrorEPC ← PC
ErrorEPC ← PC - 4
ColdReset, SoftReset & NMI Servicing
Guidelines (SW)
PC ← 0xFFFF FFFF BFC0 0000
(Optional)
Yes
NMI?
No
NMI Service Code
Note: There is no indication from the
proessor to differentiate between
NMI & SoftReset;
there must be a system level indication.
Status bit 20
(SR)
=0
=1
ERET
SoftReset Service Code
ColdReset Service Code
(*) Reserved for TX4956
Figure 8.20.5 ColdReset, SoftReset & NMI Exception Handling (HW) and
Servicing Guidelines (SW)
8-24
Chapter 8 CPU Exception
8.21 Floating-Point Exception of Floating-Point Unit (CP1)
8.21.1
Introduction
This chapter describes floating-point exceptions, including FPU exception type, exception trap
processing, exception flags, saving and restoring state when handling an exception, and trap handlers for
IEEE Standard 754 exceptions.
8.21.2
Exception Types
The FP Control/Status register described in Chapter 3 contains an Enable bit for each exception type;
exception Enable bits determine whether an exception will cause the FPU to initiate a trap or set a status
flag.
•
If a trap is taken, the FPU remains in the state found at the beginning of the operation and a
software exception handling routine executes.
•
If no trap is taken, an appropriate value is written into the FPU destination register and
execution continues.
The FPU supports the five IEEE Standard 754 exceptions:
•
Inexact (I)
•
Underflow (U)
•
Overflow (O)
•
Division by Zero (Z)
•
Invalid Operation (V)
Cause bits, Enables, and Flag bits (status flags) are used.
The FPU adds a sixth exception type, Unimplemented Operation (E). This exception indicates the use
of a software implementation. The Unimplemented Operation exception has no Enable or Flag bit;
whenever this exception occurs, an unimplemented exception trap is taken.
Figure 8.21.1 shows the Control/Status register bits that support exceptions.
Bit #
17
16
15
14
13
12
E
V
Z
O
U
I
Bit #
|
11
|
10
|
9
|
8
|
7
V
Z
O
U
I
|
6
|
5
|
4
|
3
|
2
V
Z
O
U
I
|
Invalid
|
Division by
Zero
|
Overflow
|
Underflow
|
Inexact
Bit #
|
Unimplemented
Figure 8.21.1 Control/Status Register (Exception/Flag/Trap/Enable Bits)
8-25
Cause Bits
Enable Bits
Flag Bits
Chapter 8 CPU Exception
8.21.3
Exception Trap Processing
When a floating-point exception trap is taken, the Cause register indicates the floating-point
coprocessor is the cause of the exception trap.
The Floating-Point Exception (FPE) code is used, and the Cause bits of the floating-point
Control/Status register indicate the reason for the floating-point exception. These bits are, in effect, an
extension of the system coprocessor Cause register.
8.21.4
Flags
A Flag bit is provided for each IEEE exception. This Flag bit is set to a 1 on the assertion of its
corresponding exception, with no corresponding exception trap signaled.
When no exception trap is signaled, floating-point coprocessor takes a default action, providing a
substitute value for the exception-causing result of the floating-point operation. The particular default
action taken depends upon the type of exception. Table 8.21.1 lists the default action taken by the FPU for
each of the IEEE exceptions.
Table 8.21.1 Default FPU Exception Actions
Field
Description
Rounding
Mode
Default Action
I
Inexact exception
ANY
Supply a rounded result.
U
Underflow
exception
ANY
Supply a rounded result.
O
Overflow
exception
RN
Modify overflow values to ∞ with the sign of the
intermediate result.
RZ
Modify overflow values to the format’s largest finite
number with the sign of the intermediate result.
RP
Modify negative overflows to the format’s most negative
finite number; modify positive overflows to + ∞
RM
Modify positive overflows to the format’s largest finite
number; modify negative overflows to – ∞
Z
Division by zero
ANY
Supply a properly signed ∞
V
Invalid operation
ANY
Supply a quiet Not a Number (NaN).
The FPU detects the eight exception causes internally. When the FPU encounters one of these unusual
situations, it causes either an IEEE exception or an Unimplemented Operation exception (E).
Table 8.21.2 lists the exception-causing situations and contrasts the behavior of the FPU with the
requirements of the IEEE Standard 754.
8-26
Chapter 8 CPU Exception
Table 8.21.2 FPU Exception-Causing Conditions
FPA Internal
Result
IEEE Standard
754
Inexact result
Trap Enable
Trap Disable
Notes
I
I
I
O, I (Note 1)
O, I
O, I
Division by zero
Z
Z
Z
Zero is (exponent = Emin – 1, mantissa = 0)
Overflow on convert
V
E
E
Source out of integer range
Signaling NaN source
V
V
V
Quiet NaN result generated from quiet NaN
source
Invalid operation
V
V
V
0/0, etc.
Exponent underflow
U
E
E
Normalized exponent < Emin
None
E
E
Denormalized is (exponent = Emin – 1 and
mantissa < > 0)
Exponent overflow
(Note 2)
Denormalized or
QNaN
Loss of accuracy
Normalized exponent > Emax
Note 1: The IEEE Standard 754 specifies an inexact exception on overflow only if the overflow trap is
disabled.
Note 2: If the conversion is to integer, it occurs the E-exception on Signaling NaN source.
8.21.5
FPU Exceptions
The following sections describe the conditions that cause the FPU to generate each of its exceptions,
and details the FPU response to each exception-causing condition.
Inexact Exception (I)
The FPU generates the Inexact exception if one of the following occurs:
•
the rounded result of an operation is not exact, or
•
the rounded result of an operation overflows, or
•
the rounded result of an operation underflows and both the Underflow and Inexact Enable bits
are not set and the FS bit is set.
Trap Enabled Results: If Inexact exception traps are enabled, the result register is not modified and
the source registers are preserved.
Trap Disabled Results: The rounded or overflowed result is delivered to the destination register if no
other software trap occurs.
Invalid Operation Exception (V)
The Invalid Operation exception is signaled if one or both of the operands are invalid for an
implemented operation. When the exception occurs without a trap, the MIPS ISA defines the result as a
quiet Not a Number (qNaN). The invalid operations are:
•
Addition or subtraction: magnitude subtraction of infinities, such as: (+∞) + (–∞) or (–∞) – (–∞)
•
Multiplication: 0 times ∞, with any signs
•
Division: 0/0, or ∞/∞, with any signs
•
Comparison of predicates involving ‘<’ or ‘>’ without ‘?’, when the operands are unordered
•
Any arithmetic operation, when one or both operands is a signaling NaN. A move (MOV)
operation is not considered to be an arithmetic operation, but absolute value (ABS) and negate
(NEG) are.
•
Comparison or a Convert From Floating-point Operation on a signaling NaN.
•
Square root:
x , where x is less than zero.
8-27
Chapter 8 CPU Exception
Software can simulate the Invalid Operation exception for other operations that are invalid for the
given source operands. Examples of these operations include IEEE Standard 754-specified functions
implemented in software, such as Remainder: x REM y, where y is 0 or x is infinite; conversion of a
floating-point number to a decimal format whose value causes an overflow, is infinity, or is NaN; and
transcendental functions, such as In(–5) or cos–1(3). Refer to Appendix B for examples or for routines to
handle these cases.
Trap Enabled Results: The result register is not modified, and the source registers are preserved.
Trap Disabled Results: A quiet NaN is delivered to the destination register if no other software trap
occurs.
Divide-by-Zero Exception (Z)
The Division-by-Zero exception is signaled on an implemented divide operation if the divisor is zero
and the dividend is a finite nonzero number. Software can simulate this exception for other operations that
produce a signed infinity, such as In (0), sec (π/2), csc (0), or 0–1.
Trap Enabled Results:
The result register is not modified, and the source registers are preserved.
Trap Disabled Results:
The result, when no trap occurs, is a correctly signed infinity.
Overflow Exception (O)
The Overflow exception is signaled when the magnitude of the rounded floating-point result, with an
unbounded exponent range, is larger than the largest finite number of the destination format. (This
exception also signals an Inexact exception.)
Trap Enabled Results:
The result register is not modified, and the source registers are preserved.
Trap Disabled Results:
The result, when no trap occurs, is determined by the rounding mode and the
sign of the intermediate result.
Underflow Exception (U)
Two related events contribute to the Underflow exception:
•
creation of a tiny nonzero result between ±2Emin which can cause some later exception because it
is so tiny
•
extraordinary loss of accuracy during the approximation of such tiny numbers by denormalized
numbers.
IEEE Standard 754 allows a variety of ways to detect these events, but requires they be detected the
same way for all operations.
Tininess can be detected by one of the following methods:
•
after rounding (when a nonzero result, computed as though the exponent range were unbounded,
would lie strictly between ±2Emin)
•
before rounding (when a nonzero result, computed as though the exponent range and the
precision were unbounded, would lie strictly between ±2Emin).
The MIPS architecture requires that tininess be detected after rounding.
Loss of accuracy can be detected by one of the following methods:
•
denormalization loss (when the delivered result differs from what would have been computed if
the exponent range were unbounded)
•
inexact result (when the delivered result differs from what would have been computed if the
exponent range and precision were both unbounded).
8-28
Chapter 8 CPU Exception
The MIPS architecture requires that loss of accuracy be detected as an inexact result.
Trap Enabled Results:
If Underflow or Inexact traps are enabled, or if the FS bit is not set, then an
Unimplemented exception (E) is generated, and the result register is not
modified.
Trap Disabled Results:
If Underflow and Inexact traps are not enabled and the FS bit is set, the result
is determined by the rounding mode and the sign of the intermediate result.
Unimplemented Instruction Exception (E)
Any attempt to execute an instruction with an operation code or format code that has been reserved for
future definition sets the Unimplemented bit in the Cause field in the FPU Control/Status register and
traps. The operand and destination registers remain undisturbed and the instruction is emulated in
software. Any of the IEEE Standard 754 exceptions can arise from the emulated operation, and these
exceptions in turn are simulated.
The Unimplemented Instruction exception can also be signaled when unusual operands or result
conditions are detected that the implemented hardware cannot handle properly. These include:
•
Denormalized operand, except for Compare instruction
•
Quiet Not a Number operand, except for Compare instruction
•
Denormalized result or Underflow, when either Underflow or Inexact Enable bits are set or the
FS bit is not set.
•
Reserved opcodes
•
Unimplemented formats
•
Operations which are invalid for their format (for instance, CVT.S.S)
Note:
Denormalized and NaN operands are only trapped if the instruction is a convert or
computational operation. Moves do not trap if their operands are either denormalized or
NaNs.
The use of this exception for such conditions is optional; most of these conditions are newly developed
and are not expected to be widely used in early implementations. Loopholes are provided in the
architecture so that these conditions can be implemented with assistance provided by software,
maintaining full compatibility with the IEEE Standard 754.
Trap Enabled Results: The result register is not modified, and the source registers are preserved.
Trap Disabled Results: This trap cannot be disabled.
8-29
Chapter 8 CPU Exception
8.21.6
Saving and Restoring State
Sixteen doubleword† coprocessor load or store operations save or restore the coprocessor floating-point
register state in memory. The remainder of control and status information can be saved or restored
through CFC1/CTC1 instructions, and saving and restoring the processor registers. Normally, the
Control/Status register is saved first and restored last.
When state is restored, state information in the Control/Status register indicates the exceptions that are
pending. Writing a zero value to the Cause field of Control/Status register clears all pending exceptions,
permitting normal processing to restart after the floating-point register state is restored.
8.21.7
Trap Handlers for IEEE Standard 754 Exceptions
The IEEE Standard 754 strongly recommends that users be allowed to specify a trap handler for any of
the five standard exceptions that can compute; the trap handler can either compute or specify a substitute
result to be placed in the destination register of the operation.
By retrieving an instruction using the processor Exception Program Counter (EPC) register, the trap
handler determines:
•
exceptions occurring during the operation
•
the operation being performed
•
the destination format
On Overflow or Underflow exceptions (except for conversions), and on Inexact exceptions, the trap
handler gains access to the correctly rounded result by examining source registers and simulating the
operation in software.
On Overflow or Underflow exceptions encountered on floating-point conversions, and on Invalid
Operation and Divide-by-Zero exceptions, the trap handler gains access to the operand values by
examining the source registers of the instruction.
The IEEE Standard 754 recommends that, if enabled, the overflow and underflow traps take
precedence over a separate inexact trap. This prioritization is accomplished in software; hardware sets the
bits for both the Inexact exception and the Overflow or Underflow exception.
†
32 doublewords if the FR bit is set to 1.
8-30
Chapter 9 Initialization Interface
9.
Initialization Interface
This chapter describes the TX4956 Initialization interface, and the processor modes. This includes the reset
signal description and types, and initialization sequence, with signals and timing dependencies, and the userselectable TX4956 processor modes.
Low-active signals are indicated by a trailing asterisk, such as ColdReset*, the power-on/cold reset signal.
9.1
Functional Overview
The TX4956 processor has the following three types of resets; they use the PLLReset*, ColdReset* and
Reset* input signals.
•
PLLReset* signal is asserted to initialize the Clock Generator. (CG)
•
ColdReset* signal is asserted after the power supply is stable and then restarts all clocks. A cold
reset completely reinitializes the internal state machine of the processor without saving any state
information.
•
Reset* signal is asserted to generate SoftReset exception. Clock ratio is not changed (DivMode is
not reloaded). The internal state except certain registers is not saved.
After reset, the processor is bus master and drives the SysAD bus.
For reset vector address, use 0xbfc0 0000.
In the TX4956 processor core, the reset vector is located in uncached and unmapped address space.
Therefore, the cache and TLB need not be initialized at reset processing.
9.1.1
System Coordination
Care must be taken to coordinate system reset with other system elements. In general, bus errors
immediately before, during, or after a reset may result in unpredicted behavior. Also, a small amount of
processor state is guaranteed as stable after a reset of the TX4956 processor, so extreme care must be
taken to correctly initialize the processor through software.
9-1
Chapter 9 Initialization Interface
9.2
Reset Signal Description
This section describes the three reset signals, PLLReset*, ColdReset* and Reset*.
9.2.1
•
PLLReset*:
•
ColdReset*: The ColdReset* signal must be asserted to reset the processor. Internal clock begins
to cycle and is synchronized with the deasserted edge of ColdReset* signal.
ColdReset* signal can be asserted and deasserted asynchronously with the rising
edge of MasterClock.
•
Reset*:
Assertion of PLLReset* signal initializes the on-chip PLL. PLLReset* signal should
be asserted, for example, when the system power is turned on.
The Reset* signal must be asserted to generate SoftReset exception. Keep Reset*
signal to be deasserted when a soft reset is not used.
Power-On Reset
Power-on reset is a reset that occurs when the system power is turned on. This reset initializes the
PLL inside the on-chip Clock Generator. After MasterClock became stable and the PLL stabilization
time has elapsed, PLLReset* must be deasserted and then ColdReset* must be deasserted.
Figure 9.2.1 illustrates the power-on reset timing.
VCC IO
VCC Int
Wavy lines indicate one or more identical
cycles, not shown due to space constraints.
MasterClock
(MClk)
GBUSCLK
(Internal Clock)
PLLReset*
MasterClock & PLL Stabilization Time
≥ 10 ms
≥ 1 ms
ColdReset*
Reset*
Note: PLLReset* need not be synchronized to MasterClock.
PLLReset* is sampled by the on-chip logic.
Figure 9.2.1 Power-On Reset Timing
9-2
Chapter 9 Initialization Interface
9.2.2
Cold Reset
A cold reset is used to completely reset the processor, including the processor clock. Processor states
should be saved as follows.
After the processor power has stabilized, ColdReset* must be kept asserted for a minimum of 64,000,
MasterClock cycles to ensure that the processor clock locks with respect to the MasterClock input.
ColdReset* may be asserted and deasserted asynchronously from the rising edge of MasterClock.
While ColdReset* is asserted, the processor assumes bus ownership and drives the SysAD bus, as
follows:
In R5000 Mode
SysAD:
output)
SysCmd:
In R4300 Mode
64’hxxxxxxxxxxxxxxxx (unknown output) 64’hxxxxxxxxxxxxxxxx
9’b111010000 (output)
(unknown
9’b111010000 (output)
ValidOut*: 1’b1 (output)
1’b1 (output)
Release*:
1’b1 (output)
1’b1 (output)
After ColdReset* is deasserted, the processor branches to the Reset Exception vector and begins
executing the ColdReset Exception handler. Information about the CPU register bits during a cold reset
is provided in the Chapter 3, “TX49 Core’s Registers.”
When ColdReset* is asserted during a SysAD transfer, all external agents must be reset to avoid bus
contention on the SysAD bus. Figure 9.2.2 illustrates the cold reset timing.
VCC
Wavy lines indicate one or more identical cycles, not
shown due to space constraints.
MasterClock
(MClk)
≥ 64,000MClk cycles
ColdReset*
TDH
TDS
≥ 16MClk cycles
Reset*
Figure 9.2.2 Cold Reset
9-3
Chapter 9 Initialization Interface
9.2.3
Soft Reset
A soft reset is used to reset the processor without affecting the clocks; in other words, a soft reset is a
logic reset.
Asserting the Reset* signal resets the processor without disrupting the clocks and allows the
processor to retain as much of its state as possible for debugging. (For information on saving the
processor states, see the section on SoftReset exception in CPU Exception Processing.) Because
asserting the Reset* signal results in an immediate soft reset, multicycle instructions such as cache
misses or floating-point instructions may be aborted and some data lost as a result.
A soft reset is started by assertion of the Reset* signal. Reset* signal must be asserted for a minimum
of 16 cycles, and must be asserted and deasserted synchronously with MasterClock. In general, data in
the processor is preserved for debugging purposes.
While Reset* signal is asserted, the processor assumes bus ownership and drives the SysAD bus, as
follows:
In R5000 Mode
In R4300 Mode
SysAD:
64'hxxxxxxxxxxxxxxxx (unknown output) 64'hxxxxxxxxxxxxxxxx (unknown output)
SysCmd:
9'b111010000 (output)
9'b111010000 (output)
ValidOut*: 1'b1 (output)
1'b1 (output)
Release*:
1'b1 (output)
1'b1 (output)
After Reset* signal is deasserted, the processor branches to the Reset Exception vector and begins
executing the SoftReset Exception handler. Information about the CPU register bits by a soft reset is
provided in the Section 8.5, “SoftReset Exception.”
When Reset* signal is asserted during a SysAD transfer, all external agents must be reset to avoid bus
contention on the SysAD bus. Figure 9.2.3 illustrates the soft reset timing.
VCC
Wavy lines indicate one or more identical cycles, not
shown due to space constraints.
MasterClock
(MClk)
TDH
TDS
ColdReset*
≥ 16MClk cycles
Reset*
Figure 9.2.3 Soft Reset
9-4
Chapter 9 Initialization Interface
9.3
User-Selectable Mode Configurations
The TX4956 supports several user-selectable modes, which are designated during initialization.
9.3.1
System Bus Interface Modes
The TX4956 provides two system bus (SysAD) interface modes: R4300 mode and R5000 mode. The
MODE43* signal selects which interface mode is used.
0: R4300 mode
1: R5000 mode
9.3.2
Clock Divisor for the System Bus
The DivMode[1:0] signals specify the frequency relationship between the system bus (SysAD bus)
interface and the CPU core. The TX4956 supports eight divide ratios: 1:2, 1:2.5, 1:3, 1:3.5, 1:4, 1:4.5,
1:5, and 1:6.
9.3.3
System Endianness
The value of the Endian signal when ColdReset* is released (High) controls the system endianness: 0
for little-endian and 1 for big-endian. The BE bit in the Config register is read-only. Setting the RE bit
in the Status register reverses the User-mode endianness.
9.3.4
Enabling and Disabling the Timer Interrupt
The Timer interrupt, an internal interrupt of the TX49/H4 core, can be enabled and disabled through
the TintDis* signal:
0: Enabled
1: Disabled
9.3.5
System Bus Width Setting
The TX4956 provides two widths for system bus (SysAD) interface, 64-bit and 32-bit width. The
BSIZE64* signal selects which bus width is used.
0: 64-bit width for external bus signals
1: 32-bit width for external bus signals
Note 1: Upper bits of a system bus always to be set to LOW when 32-bit width external bus
mode. And the function of the system interface is the same as for TX4955.
Note 2: R4300 mode is not used when 64-bit width external bus mode is selected.
9-5
Chapter 9 Initialization Interface
9-6
Chapter 10 Clock Interface
10. Clock Interface
This chapter describes the clock signals (“clocks”) used in the TX4956 processor.
The subject matter includes basic system clocks, system timing parameters, operating the TX4956 processor in
reduced power (RP) mode, connecting clocks to a phase-locked system, and connecting clocks to a system without
phase locking.
10.1 Signal Terminology
The following terminology is used in this chapter (and book) when describing signals:
•
Rising edge indicates a low-to-high transition.
•
Falling edge indicates a high-to-low transition.
•
Clock-to-Q delay is the amount of time it takes for a signal to move from the input of a device (clock)
to the output of the device (Q).
Figure 10.1.1 and Figure 10.1.2 illustrate these terms.
single clock cycle
1
high-to-low transition
2
3
4
low-to-high transition
Figure 10.1.1 Signal Transitions
data in
Q
data in
clock in
clock in
clock-to-Q
data out
Clock-to-Q
delay
Figure 10.1.2 Clock-to-Q Delay
10-1
data out
Chapter 10 Clock Interface
10.2 Basic System Clocks
The various clock signals used in the TX4956 processor are described below, starting with MasterClock,
upon which the processor bases all internal and external clocking.
The clocks on the TX4956 processor are controlled by an on-processor Phase-locked Loop (PLL) circuit.
This circuit keeps the TX4956 processor’s internal clock edges aligned with the clock edges of the
MasterClock signal, which itself acts as the master system clock.
Inside the TX4956 processor, the MasterClock signal can be multiplied by a factor set by the DivMode[2:0]
inputs to the processor. All internal clocks are then derived from this clock. The TX4956 processor has two
primary internal clocks, the pipeline (also referred to as processor) clock, CPUCLK, and the system interface
clock, GBUSCLK. GBUSCLK has the same frequency and phase as MasterClock.
10.2.1
MasterClock
The Processor bases all internal and external clocking on the single MasterClock input signal.
MasterClock specifications are shown in Figure 10.2.1.
tMCH
tMCP
0.8VCC IO
tMCL
tMCH
1.5 V
0.2VCC IO
tMCR
tMCF
Figure 10.2.1 MasterClock
10.2.2
CPUCLK
The pipeline (or processor) clock, CPUCLK, can be 1:2, 1:2.5, 1:3, 1:3.5, 1:4, 1:4.5, 1:5, 1:6 times the
MasterClock frequency. This multiplication factor is determined by DivMode[2:0] pins, which are static
signal inputs to TX4956.
All internal registers and latches use CPUCLK.
10.2.3
GBUSCLK
The system interface clock, GBUSCLK, is the same as the MasterClock frequency. GBUSCLK is
always derived from CPUCLK. The TX4956 processor drives its outputs on this clock edge.
The first rising edge of GBUSCLK, after ColdReset* is deasserted, is aligned with the first rising edge
of MasterClock.
10-2
Chapter 10 Clock Interface
10.2.4
CPUCLK-to-GBUSCLK Division
Figure 10.2.2 shows the clocks for a CPUCLK-to-GBUSCLK division by 2.
Cycle
1
2
4
3
MasterClock
CPUCLK
GBUSCLK
D
SysAD Driven
D
D
D
tDO
D
SysADIn
D
D
D
tDS
tDH
Figure 10.2.2 Processor Clock, CPUCLK-to-GBUSCLK Divisor of 2
10.2.5
Phase-Locked Loop (PLL)
The TX4956 clocks are controlled by a Phase-locked Loop circuit (PLL).
10-3
Chapter 10 Clock Interface
10.3 Connecting Clocks to a Phase-Locked System
When the processor is used in a phase-locked system, the external agent must phase lock its operation to a
common MasterClock. In such a system, the delivery of data and data sampling have common characteristics,
even if the components have different delay values. For example, transmission time (the amount of time a
signal takes to move from one component to another along a trace on the board) between any two components
A and B of a phase-locked system can be calculated from the following equation:
Transmission Time = (GBUSCLK period) − (tDO for A) − (tDS for B) −
(Clock Jitter for A Max) − (Clock Jitter for B Max)
Figure 10.3.1 shows a block-level diagram of a phase-locked system using the TX4956 processor.
MasterClock
External Agent
TX4956
MasterClock
MasterClock
SysCmd
SysCmd
SysAD
SysAD
Figure 10.3.1 The TX4956 Processor Phase-Locked System
10-4
Chapter 11 TX4956 System Interface
11. TX4956 System Interface
11.1 Introduction
The TX4956 processor supports both of 64-bit and 32-bit bus widths. In 32bit bus width, it is available
R4300 type protocol mode and R5000 type protocol mode same as TX4955. In 64-bit bus width, it is only
available R5000 type protocol mode. A selection of above-mentioned bus widths and protocol modes depend
on the status of signals of BSIZE64* (Pin No.: R4) and MODE43*(Pin No.: B15) after ColdReset*(Pin No.:
R14) is deasserted.
The following terms are used in this section.
•
External agent: Logic device that is directly connected to the processor via the system
interface so a processor can issue (instructions).
•
System event: Event issued inside a processor which, when generated, means that access to
external system resources is required.
•
Sequence:
Strict order of requests that the processor generates in order to provide service for
system events.
•
Protocol:
Shift of signals for each cycle generated on the system interface so processor
requests or external requests can be asserted.
•
Syntax:
Strict definition of the bit pattern on the encoded bus (command bus, etc.).
11.2 Explanation of System Interface of R5000 Type Protocol Mode
A selection of above-mentioned R5000 type protocol mode increases by followings.
64-bit bus width:
BSIZE64*=0
MODE43* = 1
32-bit bus width:
BSIZE64*=1
MODE43* = 1
The TX4956 processor supports 32-bit or 64-bit address/data interfaces. This processor makes it possible to
construct a processor system by processors, main memory and external agent (ASIC and companion devices).
System interfaces consist of the following components:
•
64-bit address/data bus, SysAD
•
8-bit SysAD check bus, SysADC
•
9-bit command bus, SysCmd
•
1-bit SysCmd check parity, SysCmdP
•
6 handshake signals
– RdRdy*, WrRdy*
– ExtRqst*, Release*
– ValidIn*, ValidOut*
The TX4956 processor accesses external resources using the system interface in order to correct cache
misses, uncached operation, and other problems.
11-1
Chapter 11 TX4956 System Interface
11.2.1
Interface Bus
Figure 11.2.1 illustrates the 64-bit address/data bus SysAD[63:0], which is the main communication
bus of the system interface, and the 9-bit command bus SysCmd[8:0]. SysAD and SysCmd are
bi-directional busses. In other words, these two busses are used for the processor to issue processor
requests and for the external agent to issue external requests.
Note:
When 32-bit bus width is selected, SysAD[63:32] signals and SysADC[7:4] signals are
always driven to Low.
TX4956
External agent
SysAD[63:0]
SysCmd[8:0]
Figure 11.2.1 System Interface Bus
Requests sent via the system interface consist of the following:
11.2.2
•
Address
•
System interface command that strictly specifies the type of request
•
Series of data elements for when the request is a particular write or read process.
Address Cycle and Data Cycle
Cycles during which valid addresses exist on the SysAD bus are referred to as address cycles. Also,
cycles during which valid data exist on the SysAD bus are referred to as data cycles. Validity is
determined depending on the ValidIn signals and ValidOut signals.
The SysCmd bus is used to identify the contents of the SysAD bus for all cycles at which it is to be
valid. The most significant bit of the SysCmd bus is used to indicate whether the current cycle is an
address cycle or a data cycle.
•
In the case of an address cycle [SysCmd[8] = 0], the remaining bits SysCmd[7:0] of the
SysCmd bus contain the system interface commands.
•
In the case of a data cycle [SysCmd[8] = 1], the remaining bits SysCmd[7:0] of the SysCmd bus
contain the data identifier.
11-2
Chapter 11 TX4956 System Interface
11.2.3
Issue Cycle
Two types of processor issue cycles exist with the TX4956.
•
Processor read request issue cycles.
•
Processor write request issue cycles.
The TX4956 judges the issue cycle of the processor read request by sampling the RdRdy* signal. It
also judges the issue cycle of the processor write request by sampling the WrRdy* signal from the
external agent.
As illustrated in Figure 11.2.2, RdRdy* must be asserted two cycles before the processor read request
address cycle in order to define the address cycle as an issue cycle.
Cycle
1
2
3
Issue
Cycle
5
4
6
MasterClock
SysAD Bus
Address
RdRdy*
ValidOut*
Figure 11.2.2 RdRdy* Signal Status in case of Read Request
As illustrated in Figure 11.2.3, WrRdy* is asserted two cycles before the initial address cycle of the
processor write request, and the address cycle must be defined as the issue cycle.
Issue
Cycle
Cycle
1
2
3
4
5
6
MasterClock
SysAD Bus
Address
Data
WrRdy*
ValidOut*
Figure 11.2.3 WrRdy* Signal Status in case of Write Request
The TX4956 repeats the request address cycle until the conditions of the valid issue cycle are met. If
the processor request is a data transmission, then data transmission starts at the point when the issue cycle
is complete. There is only one issue cycle no matter what the processor request is.
The TX4956 accepts external requests even while trying to issue processor requests. If the external
agent asserts ExtRqst*, the processor responds to the external agent by releasing the system interface and
going into the slave state. Rules relating to the issue cycle of processor requests are strictly applied in
determining the processor run operation as well. The TX4956 performs one of the following:
11-3
Chapter 11 TX4956 System Interface
•
Complete issuing of processor requests before external requests are received.
•
Release the system interface and go into the slave mode without completing issuance of the
processor requests.
In the latter of the above situations, the TX4956 issues processor requests after external requests are
complete. Rules relating to issuing are also provided to processor requests.
11.2.4
Handshake Signal
The processor uses the eight control signals explained below to manage the flow of requests.
11.2.5
•
RdRdy* and WrRdy* are used by the external agent to indicate that it is ready to accept a new
read or write transaction.
•
ExtRqst* and Release* are used to transfer SysAD bus and SysCmd bus control. ExtRqst* is
used by the external agent to indicate the necessity of controlling the interface. Release* is
asserted by the processor when transferring the system interface access privileges.
•
The TX4956 processor uses ValidOut* and the external agent ValidIn* signals to indicate the
valid command/data on the SysCmd/SysAD bus.
System Interface Protocol of R5000 Type
Figure 11.2.4 illustrates the system interface that operates between registers. In other words, processor
output is directly transferred from the output register and changes with the MasterClock rising edge.
Processor input is directly transferred to the input register and the input register latches these input
signals at the rising edge of the MasterClock. In this way, it becomes possible for the system interface to
operate at the fastest clock frequency.
TX4956
Output data
Input data
MasterClock
Figure 11.2.4 Operation of the System Interface Between Registers
11-4
Chapter 11 TX4956 System Interface
11.2.5.1 Master state and slave state
The system interface is placed in the master state when the TX4956 processor is driving the
SysAD bus and SysCmd bus. In contrast, the system interface is in the slave state when the external
agent is driving the SysAD bus and SysCmd bus.
The processor asserts the ValidOut* signal if the SysAD bus and SysCmd bus become valid when
the system interface is in the master state. The external agent asserts the ValidIn* signal if the
SysAD bus and SysCmd bus become valid when the system interface is in the slave state.
11.2.5.2 Shifting from the master state to the slave state
The system interface remains in the master state unless it enters one of the following states:
•
The external agent issues a request, and the external agent is granted permission to use the
system interface (external arbitration).
•
The processor issues a read request and shifts into the slave mode by itself.
11.2.5.3 External arbitration
The external agent cannot issue external requests via the system interface unless the system
interface goes into the slave state. Shifts from the master state to the slave state are arbitrated by the
processor using the system interface handshake signals ExtRqst* and Release*. This shift is
performed as follows below.
1)
The external agent sends notification that it would like to issue an external request by asserting
the ExtRqst* signal.
2)
The processor releases the system interface and changes its state from the master state to the
slave state by asserting the Release* signal for 1 cycle.
3)
The system interface returns to the master state when issuing of the external request is
complete.
11.2.5.4 Shifting to the slave state on its own
Shifting to the slave state on its own means that the shift from the master state to the slave state is
started by the processor when the processor read request is still on hold. The Release* signal is
automatically asserted after the read transaction. Self-invoked shifting to the slave state occurs in
one cycle after the issue cycle of the read request.
After shifting to the slave state on its own, the processor returns to the master state at the end of
the next external request. This is made possible by a read response or other type of external request.
The SysAD bus and SysCmd bus drives must start after the external agent confirms that the
processor autonomously shifted to the slave state. While the system interface is in the slave state, the
external agent can start making external requests without requesting access to the system interface
(without asserting the ExtRqst* signal).
The system interface returns to the master state when the external request ends. If a processor read
request is on hold after a read request is issued, the processor automatically changes the system
interface into the slave state even if the external agent has not requested the permission necessary
for issuing of the external request to use the system interface. By shifting to the slave state in this
manner, the external agent becomes able to return read response data.
11-5
Chapter 11 TX4956 System Interface
11.2.6
Processor Requests and External Requests
Requests are broadly categorized as processor requests and external requests. This section will describe
these two categories.
When a system event is generated, either a single request or a series of requests (referred to as processor
requests) are issued via the system interface so the processor can access an external resource and invoke
the service for the event. In order for this operation to be performed properly, the processor system
interface must be connected to a system agent that meets the two following conditions:
1)
It is in compliance to the system interface protocol.
2)
It can regulate access to system resources.
An external agent that requests access to the processor cache or the status registers generates an
external request. This access request is transferred via the system interface. Figure 11.2.5 illustrates the
system event and request cycles.
TX4956
External agent
Processor Request
• Read
• Write
Processor Request
• Read
• Write
• Null
System Events
• Load miss
• Store miss
• Store bit
• Uncached load/store
• Cache operation
Figure 11.2.5 Requests and System Event
11.2.6.1 Rules relating to processor requests
The following rules apply to processor requests.
Cycle
1
•
After a processor read request is issued, the processor cannot issue the next read request
until after it receives a read response.
•
When in the R4000 compatible mode, after a write request is issued, at least 4 cycles must
pass from when the write request issue cycle is complete until the processor can issue the
next request. This is because two dummy system cycles are inserted as illustrated in
Figure 11.2.6 by consecutive write requests of single data cycles.
2
3
4
5
6
7
Cycle
1
2
3
4
Addr
Data
Dummy
Dummy
Addr
8
9
10
Data
Dummy
Dummy
MasterClock
SysAD Bus
Write #1
Write #2
WrRdy*
ValidOut*
Figure 11.2.6 Timing of Consecutive Write Cycles
11-6
Chapter 11 TX4956 System Interface
11.2.6.2 Processor requests
The term “processor request” refers to either a single request or a series of requests issued via the
system interface in order to access external resources. As illustrated in Figure 11.2.7, there are two
types of processor request: read and write.
TX4956
External agent
Processor Request
• Read
• Write
Figure 11.2.7 Processor Requests
Read requests are requests that read data from main memory or other memory resources in block,
word, and byte units.
Write requests are requests that write data to main memory or other system resources in block, ,
word, and byte units.
Processor requests are managed by the TX4956 processor in the same manner as the R4000
non-secondary cache mode.
The processor issues requests strictly according to a sequential method. In other words, the
processor cannot issue the next request while a previous request is on hold. For example, after
issuing a read request, the processor waits for a read response before issuing the next request. The
processor only issues write requests when there are no read requests on hold.
When using processor input signals RdRdy* and WrRdy*, the external agent can control the
processor request flow. RdRdy* is the signal that controls the processor read flow, and WrRdy*
controls the processor write request flow. Figure 11.2.8 illustrates the sequence of the processor
request cycle.
External agent
TX4956
1. Processor issues
read/write requests.
2. External system controls
acceptance of requests
by asserting either
RdRdy* or WrRdy*.
Figure 11.2.8 Processor Requests
11.2.6.3 Processor read requests
When the processor issues a read request, the external agent must access the specified resource
and return the requested data.
The external agent returns response data for processor read requests so they can be executed
separately from the requests. In other words, the external agent can start an external request before
returning response data for the processor read request. A processor read request is completed when
the final word of the response data is received from the external agent.
Depending on the data identifier combined with the response data, an error in the response data
may be pointed out. The processor would then treat this error as a bus error.
11-7
Chapter 11 TX4956 System Interface
If data have not been returned to the issued processor read request, the applicable request is said
to be “on hold.” This state continues until the requested read data are returned.
The external agent must be able to accept processor read requests at any time if both of the
following two conditions are met.
•
There is no processor read request that is on hold.
•
The RdRdy* signal is asserted for 1 cycle 2 cycles before the issue cycle.
11.2.6.4 Processor write requests
When the processor issues a write request, the specified resources are accessed, then the data are
written to those resources.
Processor write requests are completed when the final data word is transferred to the external
agent.
The external agent must be able to accept processor write requests at any time if either of the two
following conditions are met.
•
There is no processor read request that is on hold.
•
The WrRdy* signal is asserted for 1 cycle 2 cycles before the issue cycle.
11.2.6.5 External requests
As illustrated in Figure 11.2.9, there are three types of external request: read, write, and null.
TX4956
External agent
External request
• Read
• Write
• Null
Figure 11.2.9 External Requests
Read requests are used to call 1-word data from processor internal resources. Write requests are
used to write 1-word data to the processor internal resources. Null requests are requests that do not
require processor operation.
As illustrated in Figure 11.2.10, the processor uses arbitration signals ExtRqst* and Release* to
control the flow of external requests. The external agent cannot issue external requests unless access
privileges to the system interface are obtained. In order to do so, the external agent asserts the
ExtRqst* signal, then waits until the processor asserts the Release* signal for 1 cycle.
11-8
Chapter 11 TX4956 System Interface
External agent
TX4956
1. External system
requests bus access
privileges by asserting
the ExtRqst* signal
2. Processor grants access
privileges by asserting
the Release* signal
3. External system issues
external request
4. Processor obtains bus
access privileges again
Figure 11.2.10 External Requests
After the external request is issued, the system interface access privileges always return to the
processor. The processor will not accept another external request until the current one is complete.
If there is no processor request that is on hold, the processor decides based on the interior state
whether to accept an external request or to issue a new processor request. The processor can issue a
new processor request even if the external agent requested access to the system interface.
The external agent sends notification that it would like to start an external request by asserting the
ExtRqst* signal. After that, the external agent waits for the processor to assert the Release* signal
and send notification that preparations have been made to accept this request. The processor sends
notification based on the next judgement criterion to be listed that preparations have been made to
accept an external request.
•
The processor ends processor requests that are in progress.
•
The processor can accept an external request while waiting for the RdRdy* signal to be
asserted so a processor read request can be issued. However, this request must be
transferred to the processor at least 1 cycle before the RdRdy* signal is asserted.
•
The processor can accept an external request while waiting for the WrRdy* signal to be
asserted so a processor write request can be issued. However, this request must be
transferred to the processor at least 1 cycle before the WrRdy* signal is asserted.
•
If waiting for a response to a read request after the processor shifted itself to the slave state,
the external agent can issue an external request before sending read response data.
11.2.6.6 External read requests
In contrast to processor read requests, data are directly returned as a response to the request for
external read requests. No other requests can be issued until the processor returns the requested data.
External read requests are complete when the processor returns the requested data word. Depending
on the data identifier combined with the response data, an error in the response data may be pointed
out. The processor would process the error as a bus error.
Note: The TX4956 does not have any resources that can read external read requests. The
processor returns to the external read request undefined data and data identifiers in
which SysCmd[5] of the errant data bit is set.
11-9
Chapter 11 TX4956 System Interface
11.2.6.7 External write requests
External write requests can only use the Interrupt register. When the external agent issues a write
request, the Interrupt register is accessed, then the data are written to this register. External write
requests are completed when the data is written to the processor.
11.2.6.8 Read responses
As illustrated in Figure 11.2.11, read responses return data to processor read requests. Read
responses are external requests, strictly speaking, but there is only one difference with other external
requests: read responses do not request permission to use the system interface. Therefore, read
responses are handled separately from other external requests and are simply referred to as read
responses.
External agent
TX4956
1. Read request
2. Read response
Figure 11.2.11 Read Response
11.2.7
Handling of Requests
This section will describe in detail sequences, protocol, and syntax for both processor and external
requests.
•
Load miss
•
Store miss
•
Store hit
•
Cache operation
•
Load Linked/Store Conditional
11.2.7.1 Load miss
If a processor load miss occurs in the primary cache, the processor cannot proceed to the next
process if the cache line that contains the loaded data elements is not received from the external
agent.
If the current cache line set in which the write back bit (W bit) is set is replaced by a new cache
line, the current cache line must be written back.
The processor checks the coherency properties in the TLB entries for pages including the
requested cache lines. If the coherency properties are non-coherent, then a non-coherent read
request is issued. Table 11.2.1 indicates the measures that can be taken when a load miss occurs in
the primary cache.
11-10
Chapter 11 TX4956 System Interface
Table 11.2.1 Load Miss to the Primary Cache
Page Properties
State of the replaced data cache line
Dirty (W = 0)/Invalid
Dirty (W = 1)
NCR
NCR/W
Non-coherent
NCR: Processor non-coherent, block read request
NCR/W: Processor non-coherent, block write requests continue after the block read request
11.2.7.2 Store miss
When a store miss occurs in the primary cache, the processor cannot proceed to the next process if
it does not receive from the external agent a cache line that includes a store target address. The
processor checks the coherency properties in the TLB entries for pages including the requested
cache line, then confirms whether to invalidate write transactions to that cache line or not.
After that, the processor executes one of the following requests:
•
If the coherency properties are non-coherent write back or non-coherent write through
(write allocate), then a non-coherent block read request is issued.
•
If the coherency properties are non-coherent write through (non-write allocate), then a
non-block write request is issued. Table 11.2.2 indicates the measures taken when there is
a store miss to the primary cache.
Table 11.2.2 Store Miss to Primary Cache
State of the replaced data cache line
Page Properties
Dirty (W = 0)/Invalid
Dirty (W = 1)
Non-coherent write back or non-coherent write through
(write allocate)
NCR
NCR/W
Non-coherent write through (non-write allocate)
NCW
NA
NCR: Processor non-coherent, block read request
NCR/W: Processor non-coherent, block write requests continue after the block read request
NCW: Processor non-coherent write request
11.2.7.3 Store hits
Operation in the system interface is determined by whether a line is write back or write through.
When in the primary cache mode, all lines set to write back are set to the dirty exclusion state (W =
1). In other words, burst transactions do not occur even if a store hit occurs. Lines set to write
through generate processor write requests for store data.
11.2.7.4 Uncached load or store
When performing uncached load operations, the processor issues non-coherent read requests for
double words, partial double words, words, or partial words. Also, when performing uncached store
operations, the processor issues write requests for double words, partial double words, words, or
partial words.
The TX4956 judges that there is valid parity and data in the entire 64-bit SysAD bus even for data
requests of less than double word. Even if there was a partial word request for example, all parity
must be correctly returned for all 64 bits. If not, then parity check must be disabled.
The TX4956 judges that there is valid parity and data in the entire 32-bit SysAD bus even for data
requests of less than a word. Even if there was a partial word request for example, all parity must be
correctly returned for all 32 bits. If not, then parity check must be disabled.
11-11
Chapter 11 TX4956 System Interface
All write transactions by the TX4956 are buffered in the 4-stage write buffer of the system
interface. If there are entries in the write buffer when a block request is required, the write buffer is
flushed before a read request is generated (for cache misses or read transactions to uncached areas).
Data cache misses or uncached data load transactions flush the write buffer.
Note: The TX4956 processes a parity error of the system interface as a bus error
exception.
11.2.7.5 Cache instruction operation
Various operations are made available to the Cache instruction in order to maintain the primary
cache status and contents. When Cache instruction operations are in progress, write requests or
invalidate requests can be issued from the processor.
11.2.8
Processor Request and External Request Protocol
This section explains the bus arbitration protocol for both processor requests and external requests on a
cycle-by-cycle basis. Table 11.2.3 below describes the abbreviations used in the following timing
diagram of the bus.
Table 11.2.3 System Interface Request
Range
Abbreviation
Meaning
Total
Unsd
Unused
SysAD bus
Addr
Physical address
SysCmd bus
Data<n>
Data number n of the data block
Cmd
Undefined system interface command
Read
Processor or external read request command
Write
Processor or external write request command
SINull
External null request command that releases the
system interface
NData
Non-coherent data identifier for datum other than
the final datum
NEOD
Non-coherent data identifier for the final datum
11.2.8.1 Processor request protocol
Processor request protocol is as follows.
•
Read
•
Write
•
Null
11.2.8.2 Processor read request protocol
The processor read request protocol is as described in the following sequence. The next step
numbers correspond to the numbers in Figure 11.2.12.
1.
RdRdy* is asserted to Low by the external agent. This means that the external agent is ready to
accept read requests.
2.
When the system interface is in the master state, the read command is transmitted to the
SysCmd bus, then the processor read request is issued by transmitting the read address to the
SysAD bus.
11-12
Chapter 11 TX4956 System Interface
3.
At the same time, the processor asserts the ValidOut* signal for one cycle. This means that
valid data are being transmitted to the SysCmd bus and SysAD bus.
4.
The processor goes into the slave state by itself either at the issue cycle of a read request or after
the Release* signal is asserted for one cycle and the issue cycle of the read request is complete.
Note: The external agent must not assert the ExtRqst* signal as a means of returning
a read response. It must however wait to shift to the slave state on its own. If an
external request other than a read response is issued, ExtRqst* can be
asserted either before the read response or in the process of the read response.
5.
The SysCmd bus and SysAD bus are released from the processor one cycle after the Release*
signal is asserted.
6.
The SysCmd bus and SysAD bus are driven by the external agent within two cycles after the
Release* signal is asserted.
When shifting to the slave state (from Cycle 5 in Figure 11.2.12), the external agent can return the
requested data as a read response. Notification of an error in the returned data is sent if either the
data requested by a read response were returned or if the requested data could not be fetched. In this
case, the processor handles the result as a bus error exception.
Figure 11.2.12 illustrates a situation in which the slave state is autonomously shifted to after a
processor read request is issued.
Note: The timing of the SysADC bus and SysCmdP bus are the same as the timing of the
SysAD bus and SysCmd bus timing, respectively.
Master
Cycle
1
2
Slave
3
4
5
6
7
8
MasterClock
Addr
SysAD Bus
5
SysCmd Bus
2
6
Read
3
ValidOut*
Validln*
RdRdy*
1
WrRdy*
Release*
4
Figure 11.2.12 Processor Read Request Protocol
11-13
9
10
11
12
Chapter 11 TX4956 System Interface
If the Release* signal is asserted, this means that either there is autonomous shifting to the slave
state or there is a response to the ExtRqst* signal assertion. In this case, the processor can accept
either a read response or an external request other than a read response. If an external request other
than a read response is issued, the processor asserts Release* for 1 cycle, then autonomously shifts
to the slave state again after the external request process.
11.2.8.3 Processor write request protocols
Either of the two following protocols is used in issuing processor write requests.
•
The word write request protocol (see Note below) is used for double word, partial double
word, word or partial word writing.
Note: Words are called to differentiate from the block request protocol. It is
actually possible to transfer data in double word, partial double word, word,
or partial word units.
The block write request protocol is used for block write transactions.
•
The system interface is used in the master state to issue processor double word write requests.
Figure 11.2.13 illustrates processor non-coherent single word write request cycles.
1.
In order to issue a processor single word write request, a write command is sent to the SysCmd
bus, and a write address is sent to the SysAD bus.
2.
The processor asserts the ValidOut* signal
3.
The processor sends the data identifier to the SysCmd bus and transmits data to the SysAD bus.
4.
The data identifier for this data cycle must receive an indication that this is the final data cycle.
ValidOut* is deasserted at the end of the cycle.
Note: The timing of the SysADC bus and SysCmdP bus are the same as the timing of
the SysAD bus and SysCmd bus timing, respectively.
Master
Cycle
1
2
3
4
5
SysAD Bus
Addr
Data 0
SysCmd Bus
Write
NEOD
6
7
8
9
10
MasterClock
3
1
ValidOut*
2
4
Validln*
RdRdy*
WrRdy*
Release*
Figure 11.2.13 Processor Non-coherent Single Word Write Request Protocol
11-14
11
12
Chapter 11 TX4956 System Interface
11.2.8.4 Processor single write requests
There are three processor single write requests as follow below.
With later G2SConfig register, these modes are selected.
1.
R4000 compatible write
2.
Reissue write
3.
Pipeline write
Table 11.2.4 Data Transfer Rate, Data Pattern and Setting at single write requests
Maximum Data Transfer Rate
(64-bit width bus mode)
1 double word/3 MasterClock cycle
Data Pattern Setting Bits 2-1
Write mode
Dxx
00
Reserved
01
Reserved
1 double word/1 MasterClock cycles
D
10
Pipeline write
1 double word/1 MasterClock cycles
D
11
Reissue write
Reserved
Maximum Data Transfer Rate
(32-bit width bus mode)
1 word/3 MasterClock cycle
Data Pattern Setting Bits 2-1
R4000 compatible
Write mode
Wxx
00
R4000 compatible
Reserved
01
Reserved
1 word/1 MasterClock cycles
W
10
Pipeline write
1 word/1 MasterClock cycles
W
11
Reissue write
Reserved
Note:
The setting bits 2-1 is bits 2-1 of the G2Sconfig register (0xF FF10 0000).
Bits 2-1 is set to “00” when initialized.
1.
R4000 compatible write
When in the R4000 compatible write mode, 4 cycles are required for single write operation.
After the address is asserted for 1 cycle, it is followed by 2 cycles of dummy data. Figure
11.2.14 illustrates its basic operation.
In the case of the TX4956, the WrRdy* signal must be asserted for 1 cycle 2 cycles before the
write operation is issued. When in the R4000 compatible signal write mode, the external agent
receives the write data then immediately asserts WrRdy*, making it possible to stop write
operation that continues after 4 cycles. The 2 cycles of dummy data that follow these write data
give the external agent time to stop the next write operation.
11-15
Chapter 11 TX4956 System Interface
Cycle
1
2
3
4
SysAD Bus
Addr
SysCmd Bus
Write
5
6
7
8
9
10
11
Data 0
Addr
Data 1
Addr
NEOD
Write
NEOD
Write
12
MasterClock
ValidOut*
Validln*
RdRdy*
WrRdy*
Release*
Figure 11.2.14 R4000 Compatible Write
2.
Reissue write
When in the reissue write mode, the WrRdy* signal is asserted for 1 cycle 2 cycles before the
address cycle, and the write operation is reissued when the WrRdy* signal is asserted during
the address cycle. Figure 11.2.15 illustrates the reissue write protocol.
•
By asserting (Low) the WrRdy* signal in the first and third cycles, Addr0/Data0 issues a
write operation in the third or fourth cycle.
•
By deasserting (High) the WrRdy* signal in the fifth cycle, Addr1/Data1 does not issue a
write operation in the fifth and sixth cycles.
•
By asserting (Low) the WrRdy* signal again in the eighth and tenth cycles, Addr1/Data
issues a write operation in the tenth and eleventh cycles.
No
Issue
Issue
Cycle
1
2
No
Issue
No
Issue
8
No
Issue
Issue
9
10
3
4
5
6
7
11
SysAD Bus
Addr0
Data0
Addr1
Data1
Addr1
Data 1
SysCmd Bus
Write
NEOD
Write
NEOD
Write
NEOD
MasterClock
WrRdy*
Figure 11.2.15 Reissue Write Protocol
11-16
12
Chapter 11 TX4956 System Interface
3.
Pipeline write
Similar to when in the R4000 compatible write mode, the pipeline write protocol issues a write
operation if the WrRdy* signal is asserted for 1 cycle 2 cycles before the write operation is
issued. However, the 2 cycles of dummy data after the write operation are deleted. The external
agent must be able to accept one write operation or more after WrRdy* is deasserted. Figure
11.2.16 illustrates this protocol.
•
Third, fourth cycle Addr0/Data0 is issued by asserting (Low) the WrRdy* signal in the
first cycle.
•
Fifth, sixth cycle Addr1/Data1 is issued by asserting (Low) the WrRdy* signal in the third
cycle.
•
Addr2 is not issued in the seventh cycle when the WrRdy* signal is deasserted (High) in
the fifth cycle. Addr2/Data2 is issued in the tenth, eleventh cycle by asserting the WrRdy*
signal again in the eighth cycle.
Cycle
1
2
No
Issue
Issue
Issue
No
Issue
8
No
Issue
9
Issue
3
4
5
6
7
10
11
SysAD Bus
Addr0
Data0
Addr1
Data1
Addr2
Data 1
SysCmd Bus
Write
NEOD
Write
NEOD
Write
NEOD
MasterClock
WrRdy*
Figure 11.2.16 Pipeline Write Protocol
11-17
12
Chapter 11 TX4956 System Interface
11.2.8.5 Processor block write request
The master state system interface is used to issue processor block write requests. Figure 11.2.17
illustrates a processor non-coherent block request made for 8-word data with the “D” data pattern.
1.
Processor sends a write command to the SysCmd bus, then sends a write address to the SysAD
bus.
2.
Processor asserts the ValidOut* signal.
3.
Processor sends data identifier to the SysCmd bus and sends data to the SysAD bus.
4.
Processor asserts the ValidOut* signal only for the number of cycles required to transfer the
data block.
5.
Final data cycle directive must be included in data identifiers for the final data cycle.
Note:
There is transmission protocol of Processor block write request three kinds same
as Processor single write requests. With later G2SConfig register, these modes are
selected.
Master
Cycle
1
2
3
4
5
6
7
8
9
10
11
Addr
Data0
Data1
Data2
Data3
Data4
Data5
Data6
Data7
Write
NData
NData
NData
NData
NData
NData
NData
NEOD
12
MasterClock
SysAD Bus
SysCmd Bus
1
ValidOut*
2
3
5
4
Validln*
RdRdy*
WrRdy*
Release*
Figure 11.2.17 Processor non-coherent block request protocol
11.2.8.6 External request protocol
External requests can only be issued when the system interface is in the slave state. The external
agent asserts the ExtRqst* signal, and requests use of the system interface. The processor asserts the
Release* signal, releases the system interface, waits for it to enter the slave state, then the external
agent issues an external request. If the system interface is already in the slave mode, namely, if the
processor has put the system interface in the slave state on its own, then the external agent can
immediately issue an external request.
In the case of the external agent, the system interface must be returned to the master state after
issuing an external request. When the external agent issues a single external request, ExtRqst* must
be deasserted 2 cycles after the cycle at which Release* is asserted. Also, when issuing a series of
external requests, the ExtRqst* signal must be asserted before the last request cycle.
11-18
Chapter 11 TX4956 System Interface
The processor continues processing external requests while ExtRqst* is asserted. However, until
the processor completes a request that is currently being processed, it will not be able to release the
system interface and put it into the slave state in preparation for the next external request. Also, until
ExtRqst* is asserted, a series of external requests cannot be interrupted by a processor request.
11.2.8.7 External arbitration protocol
As previously mentioned, the ExtRqst* signal and Release* signal are used in system interface
arbitration. Figure 11.2.18 illustrates the timing of the arbitration protocol when the slave state
changes to the master state.
The arbitration cycle sequence is as follows.
1.
The external agent asserts ExtRqst* when it becomes necessary to issue external requests.
2.
The processor asserts Release* for 1 cycle when it becomes possible to process an external
request.
3.
The processor sets the SysAD bus and SysCmd bus to tri-state.
4.
The external agent must start transmission to the SysAD bus and SysCmd bus 2 cycles after
Release* is asserted.
5.
The external agent deasserts ExtRqst* 2 cycles after Release* is asserted. This does not apply
however to situations where an attempt is made to issue another external request.
6.
The external agent sets the SysAD bus and SysCmd bus to tri-state when processing of the
external request is complete.
The processor becomes able to issue processor requests 1 cycle after the external agent sets the
busses to tri-state.
Note:
The timing of the SysADC bus and SysCmdP bus are the same as the timing of the
SysAD bus and SysCmd bus timing, respectively.
Master
Cycle
1
2
Slave
3
4
5
6
7
Addr
Data0
Cmd
NEOD
Master
8
9
MasterClock
3
SysAD Bus
6
4
SysCmd Bus
ValidIn*
WxtRqst*
Release*
1
5
2
Figure 11.2.18 Arbitration Protocol Relating to External Requests
11-19
10
11
12
Chapter 11 TX4956 System Interface
11.2.8.8 External read request protocol
External read requests are requests that read 1 word of data from processor-internal resources
such as registers. External read requests cannot be partitioned. Namely, it is not possible to generate
other requests between an external read request and the corresponding read response.
Figure 11.2.19 illustrates the timing of external read requests, which consist of the following
steps.
1.
The external agent requests use of the system interface by asserting ExtRqst*.
2.
The processor asserts Release* for 1 cycle, then releases the system interface by deasserting
Release* and puts the interface into the slave state.
3.
After Release* is deasserted, the SysAD bus and SysCmd bus are set to tri-state for 1 cycle.
4.
The external agent sends a read request command to the SysCmd bus, sends a read request
address to the SysAD bus, and asserts ValidIn* for 1 cycle.
5.
After sending the above address and command, the external agent sets the SysCmd and SysAD
busses to tri-state, makes it possible for the processor to drive them, and then releases them
both. The processor that accessed the data to be read returns the data to the external agent.
Therefore, the processor sends the data identifier to the SysCmd bus, sends the response data to
the SysAD bus, then asserts ValidOut* for 1 cycle. This data identifier indicates that data are
the response data of the final data cycle.
6.
The system interface is in the master state. The processor continues to drive the SysCmd bus
and SysAD bus even after the read response is returned.
Note:
The timing of the SysADC bus and SysCmdP bus are the same as the timing of the
SysAD bus and SysCmd bus timing, respectively.
External read requests can read data from only a single word in the processor. If data elements
other than a word are requested, the processor response is not defined.
Master
Cycle
1
2
Slave
3
4
5
6
7
Master
8
9
10
11
12
MasterClock
SysAD Bus
Addr
Data0
6
Read
Data0
6
3
SysCmd Bus
ValidOut*
4
5
ValidIn*
ExtRqst*
1
2
Release*
Figure 11.2.19 External Read Request when System Interface is in the Master State
Note:
The processor contains no resources that can read by way of external read
requests. The processor returns data identifiers with SysCmd[5] of the error data
bits set along with undefined data when it receives an external read request.
11-20
Chapter 11 TX4956 System Interface
11.2.8.9 External null request protocol
The processor only supports one external null request. The system interface release external null
request returns the system interface from the slave state to the master state. This request does not
affect any other processors.
The only processing the external null request does is to have the processor return the system
interface to the master state.
Figure 11.2.20 illustrates the timing of the external null request, which consists of the following
steps.
1.
The external agent drives the system interface, sends the external null request command to the
SysCmd bus, then asserts the ValidIn* signal for 1 cycle.
2.
The SysAD bus is not available during the external null request address cycle (there are no
valid data in the bus).
3.
The null request ends when the address cycle is issued.
In the case of a system interface release null request, the external agent releases the SysCmd bus
and SysAD bus so the system interface can return to the master state.
Master
Slave
Cycle
1
2
3
4
5
6
7
8
9
10
11
MasterClock
SysAD Bus
2
Unsd
SysCmd Bus
SINull
3
ValidOut*
1
Validln*
Extqst*
Release*
Figure 11.2.20 System Interface Release External Null Request
11-21
12
Chapter 11 TX4956 System Interface
11.2.8.10 External write request protocol
The same protocol as the processor single word write protocol is used for external write requests,
except when the ValidIn* signal is asserted instead of the ValidOut* signal.
Figure 11.2.21 illustrates the timing of the external write request, which consists of the following
steps.
1.
The external agent requests use of the system interface by asserting ExtRqst*.
2.
The processor asserts Release*, then the system interface is released from the processor and
goes into the slave state.
3.
The external agent sends a write command to the SysCmd bus, and sends a write address to the
SysAD bus while asserting ValidIn*.
4.
The external agent sends data identifiers to the SysCmd bus, and sends data to the SysAD bus
while asserting ValidIn*.
5.
Data identifiers for this data cycle must contain an indication of a coherent or non-coherent
final data cycle.
6.
After a data cycle is issued, the write request is complete, the external agent sets the SysCmd
and SysAD busses to tri-state, then the system interface returns to the master state.
Note:
The timing of the SysADC bus and SysCmdP bus are the same as the timing of the
SysAD bus and SysCmd bus timing, respectively.
External write requests can write only 1 word of data to the processor. Operation of processors
that have specified data elements other than a single word of data by an external write request is not
defined.
Slave
Master
Cycle
1
2
3
4
5
6
7
Addr
Data0
Master
8
9
10
11
MasterClock
SysAD Bus
6
SysCmd Bus
Write
NEOD
4
ValidOut*
5
3
Validln*
ExtRqst*
Release*
1
2
Figure 11.2.21 External Write Request when System Interface Starts in the Master State
11-22
12
Chapter 11 TX4956 System Interface
11.2.8.11 Read response protocol
The external agent must use the read response protocol to return data to the processor if a
processor read request has been received. The sequence of the read response protocol is as follows.
1.
The external agent waits for the processor to automatically execute a shift into the slave state.
2.
The external agent uses either a single data cycle or a series of data cycles to return data.
3.
After issuing the final data cycle, the read response ends, then the external agent sets the
SysCmd and SysAD busses to tri-state.
4.
The system interface returns to the master state.
Note:
After issuing a read response, the processor automatically shifts to the slave state.
5.
Data identifiers of a data cycle must indicate that the data are response data.
6.
Final data cycle identifiers must contain an indication that a cycle is the final data cycle.
In the case of read responses to non-coherent block read requests, it is not necessary for the
response data to check the initial cache state. The cache state is automatically set to exclusively
dirty.
Data identifiers of data cycles can send notification of transfer data errors in those cycles. The
external agent must return data blocks with the correct size even when there is an error in the
data. Whether there is a single error or multiple errors in the read response data cycles, the
processor processes them as bus errors.
Read responses must always be returned to the processor when a processor read request is being
held. Processor operation is not defined if a read response was returned in a state where there were
no processor read requests on hold.
Figure 11.2.22 illustrates a processor word read request and the subsequent word read response.
Also, Figure 11.2.23 illustrates the read response to a processor block read request when the system
interface is in the slave state.
11-23
Chapter 11 TX4956 System Interface
Master
Cycle
1
2
Slave
3
4
5
6
7
8
Master
9
10
11
12
MasterClock
Addr
SysAD Bus
Data0
3
Addr
SysCmd Bus
4
NEOD
ValidOut*
2
6
ValidIn*
ExtRqst*
1
Release*
Figure 11.2.22 Processor Word Read Request and Subsequent Word Read Response
Slave
Master
Cycle
1
2
3
4
5
Master
6
7
13
14
15
MasterClock
SysAD Bus
Addr
Data0
Data1
Data7
SysCmd Bus
Addr
NData
NData
NEOD
3
ValidOut*
2
5
4
6
ValidIn*
ExtRqst*
Release*
Figure 11.2.23 Block Read Response when System Interface is in the Slave State
11-24
16
Chapter 11 TX4956 System Interface
11.2.9
Data Transfer
The maximum data transfer rate of the system interface is 1 double word per cycle.
The external agent can select the data transfer rate to the processor. For example, it is possible to
transfer data and assert the ValidIn* signal just once for every n cycles instead of at all cycles. The
external agent can transfer data to the processor at the selected transfer rate.
The processor interprets cycles as being valid when the ValidIn* signal is asserted and the SysCmd bus
includes the data identifier. After a cycle has been interpreted as valid, the processor continues to accept
data until a data word with an indication that it is the final data word appears.
11.2.9.1 Data transfer pattern
The term “data pattern” in the case of block write operations, refers to a string of text that
indicates the “data” cycles repeated so that the appropriate data transfer speed can be obtained and
the “unused” cycles. Dxx data patterns indicate a repetition data transfer rate where there is one
double word in three cycles followed by two unused cycles. The data transfer rate is set by
G2SConfig register(0xF FF10 0000).
Table 11.2.5 indicates the data transfer rate, data pattern, and setting.
Table 11.2.5 Data Transfer Rate, Data Pattern and Setting at Block Write Requests
Maximum Data Transfer Rate
Data Pattern
Setting Bit0
1 double word/3 MasterClock cycle
Dxx
0
1 double word/1 MasterClock cycle
D
1
Data Pattern
Setting Bit0
1 word/3 MasterClock cycle
Wxx
0
1 word/1 MasterClock cycle
W
1
(64-bit width)
Maximum Data Transfer Rate
(32-bit width)
Note:
The setting Bit0 is bit0 of the G2SConfig register (0xF FF10 0000).
Bit0 is set to 0 when initialized.
11.2.9.2 Independent transfer on SysAD bus
A majority of applications connect the processor and external agent interior (both directions), and
register format transceivers together in a point-to-point manner via the SysAD bus. The only two
SysAD bus drives available for such applications are the processor and the external agent.
Depending on the application, it may be necessary to make additional connections on the SysAD
bus for drivers and receivers to transfer data using the SysAD bus without involving the processor.
Such transfers are referred to as independent transfers. In order to perform independent transfers,
the external agent must use arbitration handshake signals and external null requests to properly tune
SysAD bus control.
Independent transfer is performed on the SysAD bus according to the following steps.
1.
The external agent requests access to the SysAD bus in order to issue an external request.
2.
The processor releases the system interface and puts it in the slave state.
3.
The external agent can independently transfer data using the SysAD bus. However, the
ValidIn* signal must not be asserted during that transfer.
4.
When transfer is complete, the external agent must issue a system interface release null request
and return the system interface to the master state.
11-25
Chapter 11 TX4956 System Interface
11.2.10 System Interface Cycle Time
In the case of a processor, there is a response time for each kind of processor transaction and for each
external request. A minimum and maximum cycle count has been prescribed for each response time.
Since processor requests themselves are restrained by system interface request protocols, checking the
protocols makes it possible to determine the cycle count required for requests. The interval for the next
interface operation is variable within the range of the minimum and maximum cycle counts.
•
Stand-by time from when an external request is received and the processor releases the system
interface, until when the interface enters the slave state (release latency).
•
Response time to external request that requires a response (external response latency).
11.2.10.1 Release latency
Broadly defined, release latency is the number of cycles for which it is possible to wait from when
the processor receives an external request until when the system interface is released and shifts to
the slave state. If there are no processor requests currently in progress, the processor must delay
release of the system interface for a few cycles since it is internal operation. Therefore, if release
latency is strictly defined, it becomes the cycle count from when the ExtRqst* signal is asserted until
when the Release* signal is asserted.
There are three types of release latency.
•
Category 1: If external request signal is asserted 2 cycles before the final cycle of the
processor request
•
Category 2: If external request signal is not asserted during processor request or
processor request is the final cycle even if external request signal is asserted
•
Category 3: If processor automatically shifts to the slave state
Table 11.2.6 indicates the minimum and maximum release latency inherent to categories 1, 2, and
3. However, note that these cycle counts may be changed at any time.
Table 11.2.6 Release Latency for External Requests
Category
Minimum Cycle Count
1
3
5
2
1
24
3
0
0
11-26
Maximum Cycle Count
Chapter 11 TX4956 System Interface
11.2.11 System Interface Command and Data Identifiers
System interface commands specify the type of system interface and its properties. This specification is
performed in the request address cycle. The system interface data identifiers specify the properties of the
data transferred during the system interface data cycle.
In the case of external requests, the reserved bits and fields of the system interface commands and data
identifiers should be set to 1. In the case of processor requests, these bits and fields are undefined.
11.2.11.1 Syntax of commands and data identifiers
System interface commands and data identifiers consist of 9 bits. These commands are sent by the
SysCmd bus from the processor to the external agent or from the external agent to the processor
during either the address cycle or the data cycle. Bit 8 (MSB) of the SysCmd bus specifies whether
the SysCmd contents at that time are a command or a data identifier (namely, whether the current
cycle is an address cycle or a data cycle). If the contents are a system interface command, then
SysCmd[8] must be set to 0. If the contents are a system interface data identifier, then SysCmd[8]
must be set to 1.
11.2.11.2 Syntax of system interface commands
Following is an explanation of the SysCmd bus structure in the case of a system interface
command. Figure 11.2.24 illustrates the structure common to all system interface commands.
8
0
7
5
4
0
Request type
Request specific
Figure 11.2.24 Syntax Bit Structure of System Interface Command
SysCmd[8] must always be set to 0 in the case of system interface commands.
SysCmd[7:5] specifies the type of system interface request (read, write, null).
Table 11.2.7 indicates the SysCmd[7:5] specification method.
Table 11.2.7 SysCmd[7:5] Specification Method for System Interface Commands
SysCmd[7:5]
Command
0
Read request
1
Reserved
2
Write request
3
4 to 7
Null request
Reserved
SysCmd[4:0] varies depending on the type of request. Each specification type is indicated below.
11-27
Chapter 11 TX4956 System Interface
11.2.11.3 Read requests
Figure 11.2.25 illustrates the SysCmd format in the case of read requests.
8
7
5
0
4
0
000
Read request specific
Figure 11.2.25 Bit Definition of SysCmd Bus for Read Requests
Table 11.2.8, Table 11.2.9, and Table 11.2.10 indicate the methods for specifying SysCmd[4:0]
for read requests.
Table 11.2.8 Specification Method of SysCmd[4:3] for Read Requests
SysCmd[4:3]
0-1
Read Properties
Reserved
2
Non-coherent block read
3
Word or partial word read
Table 11.2.9 Specification Method of SysCmd[2:0] for Block Read Requests
SysCmd[2]
Reserved
SysCmd[1:0]
Read Block Size
0
1
2-3
Reserved
8 words
Reserved
Table 11.2.10 Data Size Expressed by SysCmd[2:0] for Word or Partial Word Read Requests
SysCmd[2:0]
Read Data Size
0
1 byte valid (byte)
1
2 bytes valid (half-word)
2
3 bytes valid (tri-byte)
3
4 bytes valid (word)
4
Reserved
5
Reserved
6
Reserved
7
Reserved
11-28
Chapter 11 TX4956 System Interface
11.2.11.4 Write requests
Figure 11.2.26 illustrates the SysCmd format for write requests.
Table 11.2.11 indicates the methods of specifying write properties using SysCmd[4:3]. Table
11.2.12 indicates the methods of specifying replacements properties using SysCmd[2:0] for block
write requests. Table 11.2.13 indicates the methods of specifying the data size using SysCmd[2:0]
for write requests.
8
7
5
0
4
0
010
Write request specific
Figure 11.2.26 SysCmd Bus Bit Specification for Write Requests
Table 11.2.11 Methods of Specifying SysCmd[4:3] for Write Requests
SysCmd[4:3]
Write Properties
0-1
Reserved
2
Block write
3
Word or partial word write
Table 11.2.12 Specification Method of SysCmd[2:0] for Block Write Requests
SysCmd[2]
Reserved
SysCmd[1:0]
0
1
2-3
Write Block Size
Reserved
8 words
Reserved
Table 11.2.13 Methods for Specifying SysCmd[2:0] for Word or Partial Word Write Requests
SysCmd[2:0]
Write Data Size
0
1 byte valid (byte)
1
2 bytes valid (half-word)
2
3 bytes valid (tri-byte)
3
4 bytes valid (word)
4
Reserved
5
Reserved
6
Reserved
7
Reserved
11-29
Chapter 11 TX4956 System Interface
11.2.11.5 Null requests
Figure 11.2.27 illustrates the SysCmd format in the case of null requests.
8
7
5
0
4
0
011
Null request specific
Figure 11.2.27 Bit Definition of the SysCmd Bus for Null Requests
Null request commands are always used for system interface release external null requests. Table
11.2.4 indicates methods of specifying SysCmd[4:3] for system interface release external null
requests. SysCmd[2:0] is reserved for null requests.
Table 11.2.14 Method of Specifying SysCmd[4:3] for External Null Requests
SysCmd[4:3]
0
Null Properties
Release system interface
1 to 3
Reserved
11.2.11.6 Syntax of system interface data identifiers
This section defines methods of specifying the SysCmd bus for system interface identifiers. The
bit structure illustrated in Figure 11.2.28 is common to all system interface data identifiers.
8
1
7
6
5
4
Final
Data
Response
Data
Error
Data
Data
Check
3
0
Reserved
Figure 11.2.28 Syntax Bit Structure of System Interface Data Identifiers
SysCmd[8] must always be set to 1 for system interface data identifiers. System interface data
identifiers are in the non-coherent data format.
11.2.11.7 Non-coherent data
Non-coherent data are data such as the following.
•
Data that are the subject of a processor block write request or a processor word/partial
word write request.
•
Data that are returned to a processor non-coherent block read request or a processor
word/partial word read request as a response.
•
Data that are the subject of an external write request.
•
Data that are returned to an external read request as a response.
11-30
Chapter 11 TX4956 System Interface
11.2.11.8 Bit definition of data identifiers
In the case of processor or external coherent data identifiers and processor or external
non-coherent data identifiers, SysCmd[7] indicates that they are the final data element, and
SysCmd[6] indicates whether they are response data. Response data are the data that are returned to
a read request as a response.
SysCmd[5] indicates whether there is an error in a data element. Uncorrectable errors are
included in the error data. When such an error is returned to the processor, a bus error is generated. If
a primary parity error is detected in the data items to be transferred, the processor deasserts the good
data bits and sends data.
SysCmd[4] indicates to the processor whether the data bits and check bits of a data element
should be searched.
SysCmd[3] is reserved in the case of external data identifiers.
SysCmd[4:3] is reserved in the case of non-coherent processor data identifiers.
SysCmd[2:0] is reserved in the case of non-coherent data identifiers.
Table 11.2.5 indicates methods of specifying SysCmd[7:3] for processor data identifiers.
Table 11.2.16 indicates methods of specifying SysCmd[7:3] for external data identifiers.
Table 11.2.15 Methods of Specifying SysCmd[7:3] for Processor Data Identifiers
SysCmd[7]
Final Data Element Indication
0
Final data element
1
Is not final data element
SysCmd[6]
Response Data Indication
0
Response data
1
Is not response data
SysCmd[5]
Good Data Indication
0
No errors
1
Is error data
SysCmd[4:3]
Reserved
Table 11.2.16 Method of Specifying SysCmd[7:3] for External Data Identifiers
SysCmd[7]
Final Data Element Indication
0
Final data element
1
Is not final data element
SysCmd[6]
Response Data Indication
0
Response data
1
Is not response data
SysCmd[5]
Good Data Indication
0
No errors
1
Is error data
SysCmd[4]
Enable Data Check
0
Check data bits and check bits
1
Do not check data bits and check bits
SysCmd[3]
Reserved
11-31
Chapter 11 TX4956 System Interface
11.2.12 System Interface Addresses
11.2.12.1 Addressing rules
Addresses that are to be used in word or partial word transactions are arranged to match the size
of the data element. The following rules are used by this system.
•
Target addresses of the block request are aligned to the word boundaries. In other words,
the lower 2 bits of the address become 0.
•
Word requests set the lower 2 bits of the address to 0.
•
Half-word requests set the least significant bit of the address to 0.
•
Byte requests and 3-byte requests use the byte address.
11.2.13 Mode Register of System Interface (G2SConfig)
The Mode Register of System Interface (G2SConfig) is a read/write register. This register is used to
specify a protocol type of a processor write request etc. This register is only Word-Access.
Table 11.2.17 G2SConfig
Address
Field Name
Description
0xF_FF10_0000
G2SConfig
Mode Register of System Interface
31
20
19
Reserved
Bit(s)
Field Name
4
3
Reserved
2
Reserved
1
Write mode
Description
Cold Reset
Reserved
Read as undefined. Must be written as 0xfff.
19:4
Reserved
Read as undefined. Must be written as 0xffff.
0xffff
Read/Write
3
Reserved
Read as undefined. Must be written as 0.
0
Read/Write
Processor single write protocols set
00: R4000 compatible write
01: Reserved
10: Pipeline write
11: Reissue write
00
Read/Write
Data transfer rate set for the block write
when 64-bit bus width
0: DDDD
1: DxxDxxDxxDxx
when 32-bit bus width
0 : WWWWWWWW
1: WxxWxxWxxWxxWxxWxxWxxWxx
0
Read/Write
0
Note:
Write mode
Data rate
When initialized Single write: when 64-bit bus width
when 32-bit bus width
Block write: when 64-bit bus width
when 32-bit bus width
Read
ADxx,
AWxx (R4000 compatible)
ADDDD,
AWWWWWWWW
Figure 11.2.29 G2SConfig Register Formats(When R5000 protocol (MODE*=1))
11-32
Bit
Read/Write
31:20
2:1
Undefined
0
Data rate
Chapter 11 TX4956 System Interface
11.2.14 Data Error Detection
The TX4956 internal system interface uses the following two methods to detect data errors:
•
Indication of good data by data identifier SysCmd[5]
•
Determination by a check bit
11.2.14.1 Indication of good data by data identifier SysCmd[5]
This bit indicates whether data is good or not for all data. Therefore, in a block refill transfer, for
example, no matter in what number of data SysCmd[5] may have been set, a bus error exception is
always generated.
11.2.14.2 Determination by a check bit
When an error is detected by check bit determination, a bus error exception occurs. Because this
determination also is made for all data, no matter in what number of data in a block refill transfer an
error may have occurred, a bus error exception is always generated.
11.2.14.3 Timing at which a bus error exception occurs
Indication of good data (SysCmd[5]): Two cycles after read response data
Check bit error detection: Three cycles after read response data
11.2.14.4 Precautions
•
There is no means of identifying whether a bus error exception has been generated by
indication of good data or by check bit determination. Nor does the TX49/H4 core have a cache
parity bit, but when a bus error exception occurs during a block refill transfer, the cache line is
referenced INVALID.
•
Regardless of whether a bus error exception has been generated by indication of good data or
by check bit determination during a block refill transfer, a designated block size of data needs
to be transferred.
11-33
Chapter 11 TX4956 System Interface
11.3 System Interface of R4300 Type Protocol Mode
Note: This mode is available for TX4956 with 32-bit bus width
In TX4956, it is built in system interface function corresponding to R4300 type protocol. A selection of
above-mentioned R5000 type protocol mode or R4300 type protocol mode increases by external pin
(MODE43* :Pin No. B15).
The R4300 type protocol mode setting is as follows:
BSIZE64*=0
Note:
11.3.1
MODE43* = 0
In R4300 type protocol mode of TX4956, there is not PReq output signal. Therefore PReq
input signal of an external agent should be always fixed in “Low”. And also there is not a
function to show that protocol errors were detected. Otherwise, TX4956 has a built-in counter,
and when there is no reply detected to read request in a certain time, bus error exception
occurs.
System Interface Description of R4300 Type Protocol Mode
The TX4956 processor has a 32-bit address/data interface. The System interface consists of:
•
32-bit address and data bus, SysAD
•
5-bit command bus, SysCmd
•
five handshake signals:
– EValid*, PValid*
– EReq*
– PMaster*, EOK*
Table 11.3.1 System Interface Signals (When R4300 type protocol mode (MODE43* = 0, BSIZE64*=0))
Pin No.
I/O
SysAD[63:32]
Signal Name
B5, B6, B7,
B8, B9, B10,
B11, B12,
B13, B14,
E14, F14,
G14, H14,
J14, K14,
L14, M14,
N14, P14,
P13, P4, P3,
N2, M2, L2,
K2, J2, E2,
D2, C2, B2
I/O
Reserved
These pins are always driven to 0, then, can be left open on the board
Function
SysAD[31:0]
A10, A11,
A12, A13,
C15, D15,
E15, F15,
G15, H15,
J15, K15,
L15, M15,
N15, P15,
L1, K1, J1,
H2, H1, G2,
G1, F2, F1,
E1, D1, C1,
A6, A7, A8,
A9
I/O
System address/data bus
A 32-bit address and data bus for communication between the processor and an
external agent.
11-34
Chapter 11 TX4956 System Interface
Pin No.
I/O
SysCmd[8:5]
Signal Name
R9, P9, R8,
P8
I/O
Reserved
These pins are always driven to 0, then, can be left open on the board
Function
SysCmd[4:0]
R7, P7, R6,
P6, R5
I/O
System command/data identifier bus
A 5-bit bus for command and data identifier transmission between the processor and
an external agent.
SysADC[7:0]
N5, N4, N6,
N9, C14,
D14, C9,
C13
I/O
Reserved
These pins are always driven to 0, then, can be left open on the board
SysCmdP
N8
I/O
Reserved
This pin is always driven to 0, then, can be left open on the board
Evalid*
R1
I
External agent valid input
During the cycle it is asserted, EValid* indicates an external agent is driving a valid
address or valid data on the SysAD bus, and a valid command or data identifier on the
SysCmd bus.
Pvalid*
R2
O
Processor valid output
During the cycle it is asserted, PValid*, indicates the processor is driving a Valid
address or Valid data on the SysAD bus, and a valid command or data indentifier on
the SysCmd bus.
EReq*
R12
I
External request
Indicates an external agent is requesting System interface bus ownership.
PMaster*
R3
O
Processor Master
This signal indicates that the processor is a bus master.
EOK*
P1
I
External agent Ready
An external agent asserts EOK* when an external agent can now accept a processor
request.
RdRdy*
N1
I
Reserved
There is a pull-down resistor in the circuit. Then you can left it open or set it to 0.
11-35
Chapter 11 TX4956 System Interface
Table 11.3.2 Pin Layout (When R4300 type protocol mode(MODE43* = 0, BSIZE64*=0))
Pin No.
Signal Name
Pin No.
Signal Name
Pin No.
Signal Name
A1
MasterClock
C8
PCST8
E15
SysAD25
A2
DivMode2
C9
Open or set to 0
F1
SysAD7
A3
VccPLL
C10
Vss
F2
SysAD8
A4
VssPLL
C11
VccInt
F3
VccIO
A5
JTDO
C12
VccInt
F4
VccIO
A6
SysAD3
C13
Open or set to 0
F5
VccIO
A7
SysAD2
C14
Open or set to 0
F6
VccIO
A8
SysAD1
C15
SysAD27
F7
VccIO
A9
SysAD0
D1
SysAD5
F8
Vss
A10
SysAD31
D2
Open or set to 0
F9
Vss
A11
SysAD30
D3
VccIO
F10
Vss
A12
SysAD29
D4
VccIO
F11
VccInt
A13
SysAD28
D5
VccIO
F12
VccInt
A14
DivMode0
D6
VccIO
F13
VccInt
A15
DivMode1
D7
VccIO
F14
Open or set to 0
B1
BufSel
D8
Vss
F15
SysAD24
B2
Open or set to 0
D9
Vss
G1
SysAD9
B3
JTCK
D10
Vss
G2
SysAD10
B4
JTDI
D11
VccInt
G3
Vss
B5
Open or set to 0
D12
VccInt
G4
Vss
B6
Open or set to 0
D13
VccInt
G5
Vss
B7
Open or set to 0
D14
Open or set to 0
G6
Vss
B8
Open or set to 0
D15
SysAD26
G7
Vss
B9
Open or set to 0
E1
SysAD6
G10
Vss
B10
Open or set to 0
E2
Open or set to 0
G11
Vss
B11
Open or set to 0
E3
VccIO
G12
Vss
B12
Open or set to 0
E4
VccIO
G13
Vss
B13
Open or set to 0
E5
VccIO
G14
Open or set to 0
B14
Open or set to 0
E6
VccIO
G15
SysAD23
B15
MODE43* (set to 0)
E7
VccIO
H1
SysAD11
C1
SysAD4
E8
Vss
H2
SysAD12
C2
Open or set to 0
E9
Vss
H3
Vss
C3
JTMS
E10
Vss
H4
Vss
C4
PCST4
E11
VccInt
H5
Vss
C5
PCST5
E12
VccInt
H6
Vss
C6
PCST6
E13
VccInt
H10
Vss
C7
PCST7
E14
Open or set to 0
H11
Vss
11-36
Chapter 11 TX4956 System Interface
Pin No.
Signal Name
Pin No.
Signal Name
Pin No.
Signal Name
H12
Vss
L7
Vss
N14
Open or set to 0
H13
Vss
L8
Vss
N15
SysAD17
H14
Open or set to 0
L9
Vss
P1
EOK*
H15
SysAD22
L10
VccIO
P2
PLLReset*
J1
SysAD13
L11
VccIO
P3
Open or set to 0
J2
Open or set to 0
L12
VccIO
P4
Open or set to 0
J3
Vss
L13
TPC1
P5
TintDis
J4
Vss
L14
Open or set to 0
P6
SysCmd1
J5
Vss
L15
SysAD19
P7
SysCmd3
J6
Vss
M1
TRST*
P8
Open or set to 0
J10
Vss
M2
Open or set to 0
P9
Open or set to 0
J11
Vss
M3
PCST1
P10
Int1*
J12
Vss
M4
VccInt
P11
Int2*
J13
Vss
M5
VccInt
P12
DCLK
J14
Open or set to 0
M6
VccInt
P13
Open or set to 0
J15
SysAD21
M7
Vss
P14
Open or set to 0
K1
SysAD14
M8
Vss
P15
SysAD16
K2
Open or set to 0
M9
Vss
R1
Evalid*
K3
PCST3
M10
VccIO
R2
Pvalid*
K4
VccInt
M11
VccIO
R3
PMaster*
K5
VccInt
M12
VccIO
R4
BSIZE64* (set to 1)
K6
VccInt
M13
TPC2
R5
SysCmd0
K7
Vss
M14
Open or set to 0
R6
SysCmd2
K8
Vss
M15
SysAD18
R7
SysCmd4
K9
Vss
N1
RdRdy* (Open or set to 0)
R8
Open or set to 0
K10
VccIO
N2
Open or set to 0
R9
Open or set to 0
K11
VccIO
N3
PCST0
R10
Int0*
K12
VccIO
N4
Open or set to 0
R11
NMI*
K13
VccIO
N5
Open or set to 0
R12
EReq*
K14
Open or set to 0
N6
Open or set to 0
R13
Reset*
K15
SysAD20
N7
HALTDOZE
R14
ColdReset*
L1
SysAD15
N8
Open or set to 0
R15
Endian
L2
Open or set to 0
N9
Open or set to 0
L3
PCST2
N10
Int3*
L4
VccInt
N11
Int4*
L5
VccInt
N12
Int5*
L6
VccInt
N13
TPC3
Note:
Active-low signals have a trailing asterisk (*).
11-37
Chapter 11 TX4956 System Interface
11.3.2
System Events
System events include:
•
Fetch miss in the instruction cache
•
Load miss in the data cache
•
Store miss in the data cache
•
an uncached load or store
•
actions resulting from the execution of cache instructions
When a system event occurs, the processor issues a request or a series of requests through the system
interface to access some external resource to service that event. The system interface must be connected
to an external agent that coordinates access to system resources.
Processor requests include both read and write requests:
•
a read request supplies an address to an external agent
•
a write request supplies an address and a word or block of data to be written to an external agent
Processor read requests that have been issued, but for which data has not yet been returned, are said to
be pending. The processor will not issue another request while a read is already pending. A processor read
request is said to be complete after the last transfer of response data has been received from an external
agent. A processor write request is said to be complete after the last word of data has been transmitted.
External requests include both read responses and write requests:
•
a read response supplies a block or single transfer of data from an external agent in response to
a read request
•
a write request supplies an address and a word of data to be written to a processor resource
When an external agent receives a read request, it accesses the specified resource and returns the
requested data through a read response, which may be returned any time after the read request and at any
data rate.
By default, the processor is the master of the system interface. An external agent becomes master of the
system interface either through arbitration, or by default after a processor read request. The external agent
returns mastership to the processor after the external request completes or after the processor read request
has been serviced.
11.3.3
System Event Sequences and the SysAD Bus Protocol
The following sections describe the sequence and timing of processor and external requests in detail.
Note:
The following sections describe the SysAD bus protocol; the TX4956 processor always
meets the conditions of this protocol. The TX4956 processor is capable of receiving
sequences of transactions on the bus at full protocol speed and of receiving data on
every cycle. At a minimum speed, the design of external agents must meet the
requirements of this protocol.
11.3.3.1 Fetch Miss
When the processor misses in the instruction cache on a fetch, it obtains a cache line of
instructions from an external agent. The processor issues a read request for the cache line and waits
for an external agent to provide the data in response to this read request.
11-38
Chapter 11 TX4956 System Interface
11.3.3.2 Load Miss
When the processor misses in the data cache on a load, it obtains a cache line of data from an
external agent. The processor issues a read request for the cache line and waits for an external agent
to provide the data in response to this read request. If the cache data which the incoming line will
replace contains valid dirty data, this data is written to memory. The read request completes before
the write of the dirty cast-out data because TX4956 has the write buffer.
11.3.3.3 Store Miss
When the processor misses in the data cache on a store, it issues a read request to bring a cache line
of data into the cache, where it is then updated with the store data. If the cache data which the
incoming line will replace contains valid dirty data, the data is written to memory. The read request
completes before the write of the dirty cast-out data because TX4956 has the write buffer.
To guarantee that cached data written by a store is consistent with main memory, the
corresponding cache line must be explicitly flushed from the cache using a cache operation.
11.3.3.4 Uncached Load or Store
When the processor performs an uncached load, it issues a read request and waits for a single
transfer of read response data from an external agent.
When the processor performs an uncached store, it issues a write request and provides a single
transfer of data to the external agent.
The processor does not consolidate data on uncached writes. For example, writes of two
contiguous halfwords takes two write cycles, they are never grouped into a single word write.
11.3.3.5 Cache Instructions
The TX4956 processor provides a number of cache instructions for use in maintaining the state
and contents of the caches. Cache operations supported in the TX4956 processor are described in
Chapter 5.
11.3.3.6 Byte Ordering (Endian)
The System interface byte order is set by the Endian of external pin. The byte order is big-endian
when Endian is high, and little-endian when Endian is low. The RE (reverse-endian) bit in the Status
register can be set by software to reverse the byte order available in User mode.
11.3.3.7 Physical Addresses
Physical addresses are driven on SysAD[31:0] during address cycles.
11-39
Chapter 11 TX4956 System Interface
11.3.3.8 Interface Buses
Figure 11.3.1 shows the primary communication paths for the System interface: a 32-bit address
and data bus, SysAD[31:0], and a 5-bit command bus, SysCmd[4:0]. These SysAD and the SysCmd
buses are bidirectional; that is, they are driven by the processor to issue a processor request, and by
the external agent to issue an external request.
A request through the System interface consists of:
•
an address
•
a System interface command
•
a series of data elements if the request is for a write or read response.
TX4956
External Agent
SysAD[31:0]
SysCmd[4:0]
Figure 11.3.1 System Interface Buses
11.3.3.9 Address and Data Cycles
The SysCmd bus identifies the contents of the SysAD bus during any cycle in which it is valid.
Cycles in which the SysAD bus contains a valid address are called address cycles. Cycles in which
the SysAD bus contains valid data are called data cycles. The most significant bit of the SysCmd bus
is always used to indicate whether the current cycle is an address cycle or a data cycle.
When the TX4956 processor is driving the SysAD and SysCmd buses, the System interface is in
master state. When the external agent is driving the SysAD and SysCmd buses, the System interface
is in slave state.
•
When the processor is master, it asserts the PValid* signal when the SysAD and SysCmd
buses are valid.
•
When the processor is slave, an external agent asserts the EValid* signal when the SysAD
and SysCmd buses are valid.
The SysCmd bus identifies the contents of the SysAD bus during valid cycles.
•
During address cycles (SysCmd[4] = 0), the remainder of the SysCmd bus, SysCmd[3:0],
contains a System interface command, described in Section 11.3.18 in detail.
•
During data cycles (SysCmd[4] = 1), the remainder of the SysCmd bus, SysCmd[3:0],
contains a data identifier, described in Section 11.3.18 in detail.
11-40
Chapter 11 TX4956 System Interface
11.3.4
System Interface Protocols
Figure 11.3.2 illustrates the system interface that operates between registers. In other words, processor
output is directly transferred from the output register and changes with at the rising edge of the
MasterClock. Processor input is directly transferred to the input register and the input register latches
these input signals at the rising edge of the MasterClock. In this way, it becomes possible for the system
interface to operate at the fastest clock frequency.
TX4956
Output data
Input data
MasterClock
Figure 11.3.2 System Interface Register-to-Register Operation
11.3.4.1 Master and Slave States
When the TX4956 processor is driving the SysAD and SysCmd buses, the System interface is in
master state. When the external agent is driving the SysAD and SysCmd buses, the System interface
is in slave state.
In master state, the processor asserts the signal PValid* whenever the SysAD and SysCmd buses
are valid.
In slave state, the external agent asserts the signal EValid* whenever the SysAD and SysCmd
buses are valid.
11.3.4.2 Moving from Master to Slave State
The processor is the default master of the system interface. An external agent becomes master of
the system interface through arbitration, or by default after a processor read request. The external
agent returns mastership to the processor after an external request completes.
The System interface remains in master state unless one of the following occurs:
•
The external agent issues a request, and the external agent is granted permission to use the
system interface (external arbitration).
•
The processor issues a read request and shifts into the slave mode by itself.
11-41
Chapter 11 TX4956 System Interface
11.3.4.3 External Arbitration
The System interface must be in slave state for the external agent to issue an external request
through the System interface. The transition from master state to slave state is arbitrated by the
processor using the System interface handshake signals EReq* and PMaster*. This transition is
described by the following procedure:
1.
An external agent signals that it wishes to issue an external request by asserting EReq*.
2.
When the processor is ready to accept an external request, it releases the System interface from
master to slave state by negating PMaster* signal for 1 cycle.
3.
The System interface returns to master state as soon as the issue of the external request is
complete.
11.3.4.4 Uncompelled Change to Slave State
An uncompelled change to slave state is the transition of the System interface from master state to
slave state, initiated by the processor itself when a processor read request is pending. PMaster* is
negated automatically after a read request. An uncompelled change to slave state occurs either
during or some number of cycles after the issue cycle of a read request.
The uncompelled release latency depends on the state of the cache. After an uncompelled change
to slave state, the processor returns to master state at the end of the next external request. This can be
a read response, or some other type of external request.
An external agent must note that the processor has performed an uncompelled change to slave state
and begin driving the SysAD bus along with the SysCmd bus. As long as the System interface is in
slave state, the external agent can begin an external request without arbitrating for the System
interface; that is, without asserting EReq*.
After the external request, the System interface returns to master state.
11.3.4.5 Signal Timing
The System interface protocol describes the cycle-by-cycle signal transitions that occur on the
pins of the system interface to realize requests between the processor and an external agent. Figure
11.3.3 shows the timing relationships between System interface signal edges.
11-42
Chapter 11 TX4956 System Interface
MasterClock
tDO
tDH
tDS
SysAD
SysCmd
Valid output
Valid
Input
tDO
tDO
PValid*
PMaster*
tDS
tDH
EValid*, EReq*,
EOK*,
Int*, NMI*
Valid
Input
Note: These waveforms only describe edge-to-edge timing relationships.
Figure 11.3.3 System Interface Edge Timing Relationships
The Timing Summary section below describes the minimum and maximum timing values of each
signal. The sections that follow describe the timing requirements for various bus cycles.
11.3.5
Timing Summary
In the following timing diagrams, gray-scale signals indicate values that are either Unknown or Don’t
Cares, within the specification limits. They may be any value as long they do not violate any bus value or
timing specification. The timing diagrams illustrate cycles using the following signals:
„
•
PMaster*
•
EValid*
•
PValid*
•
EOK*
•
EReq*
PMaster* (O)
Indicates the processor is the master of the system interface bus.
A
Cycle
B
C
MasterClock
SysAD
SysCmd
Proc Data
ExtAgent Data
Proc Cmd
ExtAgent Cmd
PMaster*
Figure 11.3.4 Sample Cycle with PMaster* Asserted, Then Deasserted
A)
Processor drives SysAD and SysCmd buses (processor is master).
B)
PMaster* is deasserted. SysAD and SysCmd buses are set to a tri-state (no bus master).
C)
External agent drives SysAD and SysCmd buses (external agent is master).
11-43
Chapter 11 TX4956 System Interface
A
Cycle
B
C
MasterClock
SysAD
ExtAgent Data
Proc Data
SysCmd
ExtAgent Cmd
Proc Cmd
PMaster*
Figure 11.3.5 Sample Cycle with PMaster* Asserted
„
A)
External agent drives SysAD and SysCmd buses (external agent is master).
B)
SysAD and SysCmd buses are set to a tri-state (no bus master).
C)
PMaster* is asserted. Processor drives SysAD and SysCmd buses (processor is master).
EValid* (I), PValid* (O)
During a cycle in which either signal is asserted, the signal indicates a new valid address or valid
data is on the SysAD bus, and a new valid command or data identifier is on the SysCmd bus.
EValid* indicates an external agent is driving new SysAD and SysCmd values. PValid* indicates
the processor is driving new SysAD and SysCmd values.
A
Cycle
MasterClock
SysAD
Data
SysCmd
Cmd
EValid or
PValid
Figure 11.3.6 Sample Cycle with PValid* and EValid*
A)
New SysAD and SysCmd values.
Each cycle either of these signals remains asserted indicates there is a new SysAD and SysCmd
value.
Cycle
A
B
Data
Data
Cmd
Cmd
MasterClock
SysAD
SysCmd
EValid* or
PValid*
Figure 11.3.7 Sample Cycles with Multiple PValid* and EValid*
A)
New SysAD and SysCmd value.
B)
Another new SysAd and SysCmd value.
11-44
Chapter 11 TX4956 System Interface
„
EOK* (I)
Indicates an external agent accepts a processor request.
A)
EOK* is active.
B)
The processor asserts PValid* and drives a read or write command. EOK* is asserted and
the external agent accepts the processor command.
Once the external agent has accepted a processor write command, the agent must be able to accept
the entire data size at the programmed data rate immediately following this command.
The external agent may provide read response data to the processor at any rate.
Deasserting EOK* may kill a processor read/write request in progress. If this occurs, the external
agent must ignore command and data from the processor in the following cycle.
A
Cycle
B
C
MasterClcok
SysAD
Proc Address
SysCmd
Pro Cmd (Rd/Wr)
EOK*
PValid*
Figure 11.3.8 Sample Cycle with EOK* Asserted
Cycle
A
B
C
D
MasterClcok
SysAD
Proc Address
Proc Data
SysCmd
Pro Cmd (Wr)
Data Cmd
EOK*
PValid*
Figure 11.3.9 Sample Cycle with EOK* Asserted, Then Deasserted
A)
EOK* is active.
B)
Processor asserts PValid* and drives a read or write command. EOK* is deasserted
(external agent has killed the processor’s command).
C)
The external agent must ignore any SysAD and SysCmd data from the processor.
11-45
Chapter 11 TX4956 System Interface
„
EReq* (I)
Indicates an external agent is requesting bus ownership of the System interface. To gain mastership
of the bus, an external agent must arbitrate with the processor as follows:
A) External agent asserts EReq*
B) Wait for PMaster* to be deasserted (1 to N cycles).
C) External agent drives SysAD and SysCmd buses. The external agent is guaranteed to
maintain mastership of the bus as long as EReq* is asserted.
If at any time EReq* is deasserted, the external agent must go back to step A and re-arbitrate for
the bus.
A
Cycle
B
C
MasterClock
SysAD
ExtAgent Data
SysCmd
ExtAgent Cmd
EReq*
PMaster*
Figure 11.3.10 Sample Cycle with EReq* Asserted
From the time that EReq* is asserted, the external agent is guaranteed to gain mastership of the
bus after at most one processor request. However, if EOK* is being deasserted, the external agent
will gain mastership of the bus without having to accept any processor requests.
The external agent relinquishes bus mastership by deasserting EReq* as shown below:
Cycle
A
B
C
MasterClock
SysAD
ExtAgent Data
Proc Data
SysCmd
ExtAgent Cmd
Data Cmd
EReq*
PMaster*
Figure 11.3.11 Sample Cycle with Deassertion of EReq*
A) External agent deasserts EReq*.
B) Bus is set to a tristate.
C) Processor regains mastership of bus.
11-46
Chapter 11 TX4956 System Interface
11.3.6
Arbitration
The processor is the default master of the bus. It relinquishes ownership of the bus either when an
external agent requests and is granted the system interface, or until the processor issues a read request.
The transition from processor master to processor slave state is arbitrated by the processor, using the
System interface handshake signals EReq* and PMaster*.
When a processor read request is pending, the processor transitions to slave state by deasserting
PMaster*, allowing an external agent to return the read response data. The processor remains in slave
state until the external agent issues an End Of Data read response, whereupon the processor reassumes
mastership, signaled by the assertion of PMaster*. Note that an external agent is able to retain mastership
of the bus after an End Of Data read response if the external agent arbitrates for mastership using EReq*.
When the processor is master, an external agent acquires control of the system interface by asserting
EReq*, and waiting for the processor to deassert PMaster*. The processor is ready to enter slave state
when it deasserts PMaster*. The external agent must go through a three-step arbitration process (see the
EReq* cycle in the Timing Summary) before driving the bus. Once the external agent has become master
through EReq* arbitration, it can remain master as long as it continues to assert EReq*. The System
interface returns to master state (with the processor driving the bus) two cycles after EReq* is deasserted.
Figure 11.3.12 illustrates an arbitration for external requests.
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClcok
External agent data
SysAD
SysCmd
External agent command
EReq*
PMaster*
Figure 11.3.12 External Request Arbitration
When an external agent is master, it may always respond to a read with data. If the external agent has
become master by EReq*, it may issue transactions at will; that is, the processor must always accept any
command or data on the bus at any time. There is no means for the processor to hold off the external agent
once the external agent is master.
If the processor is in slave state and needs the bus, it waits until the external agent EReq* deasserted.
Thereafter, when the processor sees EReq* deasserted, it resumes bus ownership, asserts the PMaster*,
and issues its own command. The processor becomes master and drives the bus two cycles after EReq* is
deasserted.
The relation between processor request for bus mastership and the release of the bus mastership by the
external agent is illustrated in Figure 11.3.13.
11-47
Chapter 11 TX4956 System Interface
1
Cycle
2
3
4
5
6
7
8
9
10
11
12
MasterClcok
SysAD
External
agent data
Processor address/data
SysCmd
External
agent command
Processor command
PMaster*
EReq*
EOK*
Figure 11.3.13 Processor Request For Bus Arbitration And External Agent Release
Upon assertion of Reset* or ColdReset*, the processor becomes bus master and the external agent must
become slave.
This protocol guarantees that either the processor or an external agent is always bus master. The master
should never tristate the bus, except when giving up ownership of the bus under the rules of the protocol.
11.3.7
Issuing Commands
When the processor is master of the bus and wishes to issue a command, it cannot successfully issue the
command until the external agent signals that it is ready to accept it. This readiness is indicated by
assertion of the EOK* signal. Being master, the processor may place the command on the bus and
continually reissue it while waiting for EOK* to be asserted; however, the command is not considered
issued until EOK* has been asserted for two consecutive cycle (see the Timing Summary for EOK*
earlier in this chapter).
If the EOK* signal is asserted in one cycle and then deasserted in the next, during which time a
command is issued, that command is considered killed and must be retried. When a command is killed in
this way, the processor begins to execute the read/write command. This action must be ignored by the
external agent. If a write command is killed, the data cycle following this killed transaction must be
ignored. If a read is killed, the processor releases the bus one cycle after and (assuming no EReq*) regains
mastership two cycles later. This allows the processor to retry the transaction.
11.3.8
Processor Write Request
A processor write request is issued by the following:
•
driving a write command on the SysCmd bus
•
driving a write address on the SysAD bus
•
asserting PValid* for one cycle
•
driving the appropriate number of data identifiers on the SysCmd bus
•
driving data on the SysAD bus
•
asserting PValid*
11-48
Chapter 11 TX4956 System Interface
For 1-to 4-byte writes, a single data cycle is used. 5-, 6- and 7-byte writes are broken up into two
address/data transactions; one 4 bytes in size, the next handling the remaining 1, 2, or 3 bytes.
More than 8 bytes (e.g. 8, 16, 32), 4 bytes are sent on each data cycle until the appropriate number of bytes
has been transferred. The final data cycle is tagged as end of data (EOD) on the command bus.
To be fully compliant with all implementations of this protocol, an external agent should be able to
receive write data over any number of cycles with any number of idle cycles between any two data cycles.
However, for the TX4956 processor implementation, data begins to arrive on the cycle immediately
following the write issue cycle, and continues to arrive at a programmed data rate thereafter. The
processor drives data at the rate specified by the data rate configuration signals (see the section describing
Data Rate Control, later in this chapter).
Writes may be cancelled and retried with the EOK* signal (see the section earlier, Issuing Commands).
Figure 11.3.14 illustrates the bus transactions for a 4-word data cache block store.
1
Cycle
2
3
4
5
6
7
8
9
10
11
12
MasterClock
SysAD
Addr Data 0 Data 1 Data 2 Data 3
SysCmd
Write
Data
Data
Data
EOD
PValid*
PMaster*
EOK*
Figure 11.3.14 Processor Block Write Request With W Data Rate
Figure 11.3.15 illustrates a write request which is cancelled by the deassertion of EOK* during the
address cycle of the second write, and which is retried when EOK* is asserted again.
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClock
SysAD
SysCmd
Addr 0 Data 0 Addr 1 Data 1
Addr 1
Data 1
Write EOD Write EOD
Write
EOD
PValid*
PMaster*
EOK*
Figure 11.3.15 Processor Single Write Request Followed By A Cancelled And Retried Write Request
11-49
Chapter 11 TX4956 System Interface
11.3.9
Processor Read Request
A processor read request is issued by the following:
•
driving a read command on the SysCmd bus
•
driving a read address on the SysAD bus
•
asserting PValid*
Only one processor read request may be pending at a time. The processor must wait for an external read
response before starting a subsequent read.
The processor moves to slave state after the issue cycle of the read request, by deasserting the PMaster*
signal. An external agent may then return the requested data through a read response. The external agent,
which is now bus master, may issue any number of writes before sending the read response data.
An example of a processor read request and an uncompelled change to slave state occurring as the read
request is issued is illustrated in Figure 11.3.16.
Master
1
Cycle
2
Slave
3
4
5
6
7
8
9
10
11
12
MasterClock
Addr
SysAD
SysCmd
Read
Pvalid*
PMaster*
EOK*
Figure 11.3.16 Processor Read Request
The TX4956 support the Read Time Out Function. This function is to detect a time out error when
response data are not returned within a certain time. See chapter 11.3.20 Mode Register of System
Interface (G2SConfig).
11.3.10 External Write Request
External write requests are similar to a processor single write except that the signal EValid* is asserted
instead of the signal PValid*. An external write request consists of the following:
•
an external agent driving a write command on the SysCmd bus and a write address on the
SysAD bus
•
asserting EValid* for one cycle
•
driving a data identifier on the SysCmd bus and data on the SysAD bus
•
asserting EValid* for one cycle.
The data identifier associated with the data cycle must contain a last data cycle indication. Note that the
external agent must gain and maintain bus mastership during these transactions (see EReq* in the Timing
Summary, earlier in this chapter).
An external write request example with the processor initially in master state is illustrated in Figure
11.3.17.
11-50
Chapter 11 TX4956 System Interface
1
Cycle
2
3
4
5
6
7
Addr
Data
8
9
10
11
12
MasterClcok
SysAD
Write EOD
SysCmd
PValid*
PMaster*
EValid*
EReq*
Figure 11.3.17 External Write Request
An example of a read response for a processor single word read request that is interrupted by an
external agent write request is illustrated in Figure 11.3.21. External writes can not occur in the middle of
a data response block; they can, however, occur before the first data response of the data block or after the
last EOD response, but it can not occur between them.
Note:
The only writable resources are processor interrupts. An external write to any address is
treated as a write to the processor interrupts.
11-51
Chapter 11 TX4956 System Interface
11.3.11 External Read Response
An external agent returns data to the processor in response to a processor read request by waiting for
the processor to move to slave state. The external agent then returns the data through either a single data
cycle or a series of data cycles sufficient to transmit the requested data. After the last data cycle is issued,
the read response is complete and the processor becomes master (assuming EReq* was not asserted).
If, at the end of the read response cycles, EReq* has been asserted, the processor remains in slave state
until the external agent relinquishes the bus. When the processor is in slave state and needs access to the
SysAD bus, it waits until EReq* is deasserted.
The data identifier associated with a data cycle may indicate that the data transmitted during that cycle
is erroneous; however, an external agent must return a block of data of the correct size regardless of this
erroneous data cycle indication. If a read response includes one or more erroneous data cycles, the
processor takes a bus error.
Read response data must only be delivered to the processor when a processor read request is pending.
The state of the processor is undefined if a read response is presented to it when no processor read is
pending.
An example of a processor single read request followed by a read response is illustrated in Figure
11.3.18.
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClock
SysAD
Addr
Data
SysCmd
Read
EOD
PValid
PMaster
EOK
EValid
Figure 11.3.18 Single Read Request Followed By Read Response
A read response example for a processor block read with the system interface already in slave state is
illustrated in Figure 11.3.19.
Cycle
1
2
3
4
10
11
12
13
14
15
MasterClcok
SysAD
SysCmd
Data 0 Data 1
Data
Data
Data 7
EOD
PValid*
PMaster*
EValid*
Figure 11.3.19 Block Read Response, System Interface Already In Slave State
11-52
16
Chapter 11 TX4956 System Interface
A read response example for a processor single read request followed by an external agent write request
is illustrated in Figure 11.3.20.
Cycle
1
2
3
4
5
6
7
8
Data
9
10
11
12
MasterClock
SysAD
Addr
Data
Addr
SysCmd
Read
EOD
Write EOD
PValid*
PMaster*
EOK*
EValid*
EReq*
Figure 11.3.20 Single Read Request Followed By External Write Request
(External Agent Keeps Bus)
An example of a read response for a processor single word read request that is interrupted by an
external agent write request is illustrated in Figure 11.3.21. Cycle 5 is the data for the external write
request in cycle 4. Cycle 7 is the read response data.
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClcok
SysAD
Addr
Addr
Data
Data
SysCmd
Read
Write EOD
EOD
PValid*
PMaster*
EOK*
EValid*
Figure 11.3.21 External Write Followed By External Read Response, System Interface In Slave State
11-53
Chapter 11 TX4956 System Interface
11.3.12 Flow Control
EOK* may be used by an external agent to control the flow of processor read and write requests; while
EOK* is deasserted the processor will repeat the current address cycle until an external agent signals it is
ready, by asserting EOK*. There is a one cycle delay from the assertion of EOK* to the state in which the
Read/Write command becomes valid. EOK* must be asserted for two consecutive cycles for the
command issue completion. Examples of EOK* use are given in Figure 11.3.22 and 11.3.24.
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
10
11
12
MasterClcok
SysAD
Addr
SysCmd
Read
PValid*
PMaster*
EOK*
Figure 11.3.22 Delayed Processor Read Request
Cycle
1
2
3
4
5
6
7
8
9
MasterClcok
SysAD
Addr0 Data
Addr1
Data
SysCmd
Write EOD
Write
EOD
PValid*
PMaster*
EOK*
Figure 11.3.23 Two Processor Write Requests, Second Write Delayed
11-54
Chapter 11 TX4956 System Interface
11.3.13 Data Rate Control
The System interface supports a maximum data rate of one word per cycle, and an external agent may
deliver data to the processor at this maximum data rate. The rate at which data is delivered to the
processor can be controlled by the external agent by driving data and asserting EValid* only when it
wants data to be available.
The processor interprets cycles as valid data cycles when EValid* is asserted and the SysCmd bus
contains a data identifier. The processor continues to accept data until the end of data (EOD) indicator is
received.
The rate at which the processor transmits data to an external agent is programmed in the WBRATE
field in G2S Config register. Data patterns are specified using the letters W and x (W indicates a word size
data cycle and x indicates an unused, or idle, cycle). A data pattern is specified as a sequence of data and
unused cycles that will be repeated to provide the appropriate number of data cycles for a given transfer.
For example, a data pattern of WWxx indicates a data rate of two words every four cycles.
The TX4956 supports two data rates, W and Wxx. During a cycle indicated by an x, the processor
continues to hold the same data as the previous cycle.
A processor block write request for two words with Wxx pattern is illustrated in Figure 11.3.24; this
transaction results from a store doubleword instruction.
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClock
SysAD
Addr Data 0 Data 0 Data 0 Data 1 Data 1 Data 1 Data 2 Data 2 Data 2
SysCmd
Write Data
Data
Data
PValid*
PMaster*
EOK*
Figure 11.3.24 Processor Block Write Request With Wxx Data Rate
11-55
Chapter 11 TX4956 System Interface
11.3.14 Consecutive SysAD Bus Transactions
The following figures (Figure 11.3.25 to Figure 11.3.28) illustrate the minimum cycles required
between consecutive bus transactions.
Cycle
1
2
3
4
5
6
7
8
9
10
11
MasterClock
SysAD
Addr0
Data
Addr1 Data 0 Data 1 Data 2 Data 3
SysCmd
Read
EOD
Write Data
Data
Data
EOD
PValid*
PMaster*
EOK*
EValid*
Figure 11.3.25 Processor Single Word Read Followed By Block Write Request
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClock
SysAD
Addr0 Data Addr1 Data Addr2 Data
SysCmd
Write EOD
Write EOD
Write EOD
PValid*
PMaster*
EOK*
Figure 11.3.26 Consecutive Processor Single Word Write Requests With W Data Rate
Cycle
1
2
3
4
5
6
7
8
9
10
Data
Data
11
12
MasterClock
SysAD
Addr0 Data
SysCmd
Write EOD
Data
Data Addr1 Data
Write EOD
PValid*
PMaster*
EOK*
Figure 11.3.27 Consecutive Processor Single Word Write Requests With Wxx Data Rate
11-56
Chapter 11 TX4956 System Interface
Cycle
1
2
3
4
5
6
7
8
9
10
11
MasterClock
SysAD
Addr0 Data Addr1 Data
Addr
Data
SysCmd
Write
Write
EOD
EOD Write
EOD
PValid*
PMaster*
EOK*
EValid*
EReq*
Figure 11.3.28 Consecutive Processor Write Requests Followed By External Write Request
„
Block Read Maximum Rate
Maximum block reads can occur with the following data rate:
AxW...WxAxW...W (1 cycle between W and A)
where A is the address, W is data (four words, or WWWW, in the data cache miss, and 8 words, or
WWWWWWWW, in an instruction cache miss), and x is an idle cycle.
(When 1 bit of the Mode Register of System Interface (G2SConfig[1]) is set to 1, then 8 words or
WWWWWWWW burst read can occur in an data cache miss.)
„
Back-to-Back Instruction Cache Misses
With a CPUCLK to MasterClock ratio of 2:1, back-to-back instruction cache misses can be
refilled with the following data rate:
AxWWWWWWWWxxxxxxAxWWWWWWWW (6 cycles between W and A)
That is, the address is followed by an idle cycle, the instruction is executed, six idle cycles occur,
followed by the next address. This pattern is valid for the case in which two sequential instructions
miss in the instruction cache, each instruction residing on a different cache line.
Running completely in uncached space (every instruction is uncached and a cache miss) results in
a similar data pattern:
AxWxxxxxxAxW (6 cycles between W and A)
„
Back-to-Back Uncached Loads
With a CPUCLK to MasterClock ratio of 2:1, back-to-back uncached doubleword loads have the
following data rate:
AxWWxxxxxxAxWW (6 cycles between W and A)
That is, the address is followed by an idle cycle, a doubleword data (2 words data), six idle cycles,
and the next address.
With a CPUCLK to MasterClock ratio of 2:1, back-to-back uncached word loads have the
following data rate:
AxWxxxxxxAxW
That is, the address is followed by an idle cycle, a word data, six idle cycles, and the next address.
11-57
Chapter 11 TX4956 System Interface
11.3.15 Starvation and Deadlock Avoidance
Careful use of the EReq* signal allows a system to avoid starvation and deadlock situations.
Whenever an external agent needs the bus, it can request the bus by asserting EReq*. The external
agent is guaranteed to gain mastership of the bus after accepting at most one read/write request from the
processor. If the external agent also deasserts EOK*, it is guaranteed to gain mastership of the bus without
accepting any read/write request from the processor.
The external agent can allow the processor to gain bus mastership, perform one read/write request and
then relinquish mastership by the following sequence of actions:
1.
deassert EReq*
2.
assert EReq*
3.
arbitrate for the bus while asserting EOK*
The minimum deassertion of EReq* can be one cycle in length.
Shows an external agent relinquishing the bus to allow a single read/write request from the processor.
The external agent must be ready to accept this request by keeping EOK* asserted, otherwise the
read/write request is held off or killed and the processor relinquishes bus mastership without extending a
request. This could lead to starvation of the processor.
Cycle
1
2
3
4
5
6
7
8
9
10
11
MasterClock
SysAD
Addr
SysCmd
Write
Data 0 Data 1
Data
EOD
PMaster*
EReq*
EOK*
PValid*
Figure 11.3.29 External Agent Gives Up Bus for One Processor Request
11.3.16 Discarding and Re-Executing Read Command
Figure 11.3.30 illustrates how a processor single read request is discarded and reexecuted. The
following sequence describes the protocol.
•
Because the EOK* signal is low in cycle 5, the processor tries to issue an address (cycle 6).
•
If the EOK* signal is high at this point, the processor discards this read request and enters the
slave status in the next cycle.
•
Because the EReq* signal is inactive, the processor returns to the master status again and
reissues a read request. Because the EOK* signal is low in both the cycles 7 and 8, the issuance
cycle of the read request is determined.
•
The external agent outputs data at the requested address.
11-58
Chapter 11 TX4956 System Interface
Cycle
1
2
3
4
5
6
7
8
9
10
11
12
MasterClock
SysAD[31:0]
Addr
SysCmd[4:0]
Read
Hi-Z
Hi-Z
Addr
Data
Hi-Z
Hi-Z
Data
EOD
Hi-Z
Hi-Z
PMaster*
EReq*
EOK*
PValid*
EValid*
Figure 11.3.30 Discarding and Re-executing Processor Single Read Request
11.3.17 Multiple Drivers on the SysAD Bus
In most applications, the SysAD bus is a point-to-point connection between the processor and a
bidirectional, registered transceiver located in an external agent. In this application, the SysAD bus has
two possible drivers: the processor and the external agent.
However, an application may add additional drivers and receivers to the SysAD bus, allowing
transmissions over the SysAD bus that bypass the processor. To accomplish this, the external agent(s)
must coordinate its use of the SysAD bus by using arbitration handshake signals such as EReq* and
PMaster*.
To implement an independent transmission on the SysAD bus that does not involve the processor, the
system executes the following sequence of actions:
1.
The external agent(s) requests the SysAD bus by asserting EReq*.
2.
The processor releases the System interface to slave state.
3.
The external agent(s) allows independent transmission over the SysAD bus, making certain
the EValid* input to the processor is not asserted while the transmission occurs.
4.
When the transmission is complete, the external agent(s) deasserts EReq* to return the
system interface to master state.
To implement multiple drivers, separate Valid lines are required for non-processor chips to
communicate.
11-59
Chapter 11 TX4956 System Interface
11.3.18 Signal Codes
System interface commands and data identifiers are encoded in five bits on the SysCmd bus and
transmitted between the processor and external agent during address and data cycles.
•
When SysCmd[4] is a 0, the current cycle is an address cycle and SysCmd[3:0] contains a
command.
•
When SysCmd[4] is a 1, the current cycle is a data cycle and SysCmd[3:0] identifies data.
For commands and data identifiers associated with external requests, all bits and fields have a value or
a suggested value.
For System interface commands and data identifiers associated with processor requests, reserved bits
and reserved fields in the command or data identifier are undefined, except where noted.
For all System interface commands, the SysCmd bus specifies the system interface request type. The
encoding of SysCmd[4] for system interface commands is Table 11.3.3.
Table 11.3.3 Encoding of System Interface Commands in SysCmd[4]
SysCmd[4]
Command
0
Address Cycle
1
Data Cycle
For address requests, the remainder of the SysCmd bus specifies the attributes of the address request, as
follows:
•
SysCmd[3] encodes the address request type.
•
SysCmd[2:0] indicates the size of the address requests.
The encoding of SysCmd[3:2] for address requests is shown in Table 11.3.4.
Table 11.3.4 Encoding of SysCmd[3] and SysCmd[2] for Address Cycle
SysCmd[3]
Command
SysCmd[2] Request Size
0
Read Request
0
Single data
1
Write Request
1
Block data
Note: TX4956 support only External Single data write request.
The encoding of SysCmd[1:0] for block or single address requests is shown in Table 11.3.5 and Table
11.3.6, respectively.
Table 11.3.5 Encoding of SysCmd[1:0] for Block Address Requests
SysCmd[1:0]
Block Size
0
Reserved
1
Four words (only Data cache)
2
Eight words
3
Reserved
11-60
Chapter 11 TX4956 System Interface
Table 11.3.6 Encoding of SysCmd[1:0] for Single Address Requests
SysCmd[1:0]
Data size
0
One byte valid (byte)
1
Two bytes valid (halfword).
2
Three bytes valid (tribyte).
3
Four bytes valid (single word)
The encoding of SysCmd[3:0] for processor data identifiers is described in Table 11.3.7. The encoding
of SysCmd[3:0] for external data identifiers is illustrated in Table 11.3.8.
Table 11.3.7 Encoding of SysCmd[3:0] for Processor Data Identifiers
SysCmd[3]
Last Data Element Indication
0
Last data element
1
Not the last data element
SysCmd[2]
SysCmd[1]
Reserved
Reserved for: Good Data Indication
Processor drives 0
(Data is error free)
SysCmd[0]
Reserved for: Data Checking Enable
Processor drives 1
(Disable data checking)
Table 11.3.8 Encoding of SysCmd[3:0] for External Data Identifiers
SysCmd[3]
Last Data Element Indication
0
Last data element
1
Not the last data element
SysCmd[2]
Response Data Indication
0
Data is response data
1
Data is not response data
SysCmd[1]
Good Data Indication
0
Data is error free
1
Data is erroneous
SysCmd[0]
Reserved for: Data Checking Enable
Processor ignores this field (Suggested drive of 1,
disable data checking)
Note:
External read requests for processor resources are not supported in the TX4956 processor.
11-61
Chapter 11 TX4956 System Interface
11.3.19 Physical Addresses
Physical addresses are driven on all 32 bits (bits 31 through 0) of the SysAD bus during address cycles.
Addresses associated with single read and write requests are aligned for the size of the data element;
specifically, for single word requests, the low order two bits of the address are zero, for halfword requests,
the low order bit of the address is zero. For byte and tribyte requests, the address provided is a byte
address.
External agents returning read response data must support subblock ordering. Addresses associated
with block read requests are aligned to the word of the desired data. The order in which data is returned in
response to a processor block read request is:
•
the word containing the addressed data word is returned first
•
the remaining word(s) in the block are returned next, sequentially
Block writes are always block aligned.
11.3.20 Mode Register of System Interface (G2SConfig)
The Mode Register of System Interface (G2SConfig) is a read/write register.
This register is used to specify system interface functions and modes of R4300 type protocol.
This register is only WORD-Access.
Table 11.3.9 G2SConfig
Address
Field Name
Description
0xF_FF10_0000
G2SConfig
Mode Register of System Interface
31
20
19
4
Reserved
TOutVal
3
2
1
0
TOutEnable
Reserved=0
BURST8
WBRATE
Figure 11.3.31 G2SConfig Register Format
Table 11.3.10 G2SConfig Register Formats (MODE43* = 0)
Bit(s)
Field Name
31:20
⎯
19:4
TOutVal
3
TOutEnable
Description
Reserved
Set Data of Read Time Out Counter
When the Read Time Out Counter function is used, the
value should be more than {24+(wait cycles of main
memory) × 2}.
When the Read Time Out Counter function is not used,
0xffff must be set
Enable bit of Read Time Out Counter
0: Disable (Please set 0xffff in TOutVal)
1: Enable
Cold Reset
Read/Write
Undefined
Read
0xffff
Read/Write
0
Read/Write
2
⎯
1
BURST8
Data Formats at 8-word burst write
0: Double burst mode(4 words burst write × 2)
1: Single burst mode(8 words burst write × 1)
0
Read/Write
0
WBRATE
Set bit of Data Out Formats
0: Every cycle Data Out(W)
1: 4-word Data Out per 12 cycles(Wxx)
0
Read/Write
Reserved
Undefined
11-62
Chapter 11 TX4956 System Interface
11.3.21 Read Time Out Counter (MODE43* = 0)
This counter is used to detect time-out when data is not returned during read.
The counter normally is set by loading the G2SConfig register’s TOutVal as its initial value.
When one of the conditions below is met, the counter counts down one every bus cycle and upon
reaching the terminal count of 0, generates a time-out signal and asserts a bus error signal for one cycle
before entering an idle state.
If none of the following conditions is met, the value of TOutVal is reloaded into the counter.
•
TOutEnable = 1
•
Waiting for data
11-63
Chapter 11 TX4956 System Interface
11-64
Chapter 12 TX4956 Processor Interrupts
12. TX4956 Processor Interrupts
Five types of interrupt are available on the TX4956. These are:
1.
one non-maskable interrupt, NMI
2.
six external interrupts
3.
seven interrupts by external write through SysAD[6:0]
4.
two software interrupts
5.
one timer interrupt
Figure 12.1.1 shows TX4956 interrupt control circuit.
Software
Interrupts
Nonmaskable
Interrupt
(Buffer)
NMI*
Int0*
Int1*
Int2*
Int3*
Int4*
Int5*
External
Interrupts
NMI
15
SysAD
0
1
2
3
4
5
Interrupts
by external write
through
SysAD[6:0]
6
IP7
H: INT5* /SysAD[5]
L: Timer Interrupt
Interrupt Register
0
1
2
3
4
8
IP6
IP5
IP4
IP3
IP2
IP1
IP0
Cause Register[15:8]
H
L
5
6
8
16
Status Register[15:8]
17
15
18
IM7
1
8
IM6
IM5
IM4
IM3
IM2
IM1
IM0
19
20
TX4956 Interrupt
1
8
21
22
Timer Interrupt
AND-OR
function
Tint Dis
Note:
Status Register[0]
IE
Status Register[1]
EXL
Status Register[2]
ERL
AND
function
Interrupt register can be accessed by external write requeset through system interface.
Please see Chapter 11, “TX4956 System interface” in detail.
Figure 12.1.1 TX4956 Interrupt Control Circuit
12-1
Chapter 12 TX4956 Processor Interrupts
12.1 Nonmaskable Interrupt
The non-maskable interrupt is signaled by asserting the NMI* pin (low), forcing the processor to branch to
the Reset Exception vector. This pin is latched into an internal register by the rising edge of MasterClock, as
shown in Figure 12.1.1. An NMI can also be set by an external write through the SysAD bus. On the data cycle,
SysAD[22] pin acts as the write enable for SysAD[6] pin, which is the value to be written as the interrupt.
NMI only takes effect when the processor pipeline is running. Thus NMI can be used to recover the
processor from a software hang (for example, in an infinite loop) but cannot be used to recover the processor
from a hardware hang (for example, no read response from an external agent). NMI cannot cause drive
contention on the SysAD bus and no reset of external agents is required.
This interrupt cannot be masked. Bit 6 of the Interrupt register (means the interrupt by SysAD[6]) pin is then
ORed with the inverted value of NMI* to form the non-maskable interrupt.
12.2 External Interrupts
External interrupts are set by asserting the external interrupt pins Int[5:0]*.
When external interrupts occur, the bit 15-10 of the Cause register (IP7-IP2) is set to 1, corresponding to
Int[5:0]* pins respectively shown as Figure 12.1.1.
The external interrupt by Int5* pin and Timer Interrupt are selectable by TintDis pin. When TintDis is
asserted (High), then the external interrupt by Int5* is selected. And when TintDis is deasserted (Low), then
Timer Interrupt is selected.
12.3 Interrupts by External Write Through SysAD[6:0]
These interrupts are signaled by driving the SysAD[6:0] pins to Low during the data cycle. And the
SysAD[22:16] pins act as the write enables for the SysAD[6:0] respectively.
External write to the CPU writes to the Interrupt register located in the system interfcace.
During a data cycle, SysAD[22:16] pins acts as the write enables for the seven individual Interrupt register
bits and SysAD[6:0] pins are the values to be written into these bits. This allows any subset of the Interrupt
register to be set or cleared with a single write request.
Bits 4-0 of the Interrupt register are bit-wise ORed with the current value of the interrupt pins Int[4:0]* and
the result is directly set to bits 14-10 of the Cause register (IP6-IP2).
Bit 5 of the Interrupt register (means SysAD[5] pin) is ORed with the current value of the external interrupt
pin Int[5]*. When TintDis is asserted (High), this ORed signal is selected. And when TintDis is deasserted
(Low), then the Timer Interrupt is selected. The result is set to bit 15 of the Cause register (IP7).
The interrupt by SysAD[6] pin is ORed with the inverted value of NMI* pin to form the non-maskable
interrupt.
12.4 Software Interrupt
Software interrupts use bits 1 and 0 of the interrupt pending, IP, field in the Cause register. These may be
written by software, but there is no hardware mechanism to set or clear these bits.
12-2
Chapter 12 TX4956 Processor Interrupts
12.5 Timer Interrupt
When the Timer Interrupt occurs, the bit 15 of Cause register is set to 1, which is bit 7 of the interrupt
pending, IP, filed in the Cause register.
Bit5 of the Interrupt register (means SysAD[5] pin) is ORed with the current value of the external interrupt
pin Int[5]*. When TintDis is asserted (High), this ORed signal is selected. And when TintDis is deasserted
(Low), then the Timer Interrupt is selected. The result is set to bit 15 of the Cause Register (IP7).
12.6 Masking of the TX4956 Interrupts
Figure 12.1.1 also shows the masking of the processor interrupt signals.
Bits 15-8 of the Cause register (IP7-IP0) are AND-ORed with Bits 15-8 of the Status register (IM7-IM0) to
mask individual interrupts.
Bit 0 of the Status register (IE) is a global Interrupt Enable. It is ANDed with the output of the AND-OR
logic to produce the processor interrupt signal. Bit 1 and 2 of the Status register (EXL and ERL) also enable
these interrupts.
12.7 Recognition of the Processor Interrupts
The results of the processor interrupts directly readable as bits 15-8 of the Cause register.
If any interrupts are occurred, the processor software needs to read the Cause register to recognize what type
of interrupts is occurred.
12-3
Chapter 12 TX4956 Processor Interrupts
12-4
Chapter 13 Power-Saving Modes
13. Power-Saving Modes
The TX4956 has these power-saving modes:
•
Halt mode
•
Doze mode
The TX4956 enters neither Halt nor Doze mode by just programming the Config register. The WAIT instruction
puts the TX4956 in Halt or Doze mode.
13.1 Halt Mode
The Halt mode reduces power consumption by halting the TX4956 almost altogether. In Halt mode, the
internal clocks of the TX49/H4 core within the TX4956 are partially stopped. If the HALT bit in the Config
register is cleared, executing the WAIT instruction in Normal Operation mode causes the TX4956 to enter Halt
mode.
When the TX4956 enters Halt mode, the HALTDOZE signal is asserted. Even when an external agent has
ownership of the SysAD bus, executing the WAIT instruction puts the TX4956 in Halt mode, but the
HALTDOZE signal is asserted after the current bus cycle is completed. If the on-chip write buffer has any store
information, the WAIT instruction puts the TX4956 in Halt mode after it is emptied.
Assertion of Int[5:0]* signal, NMI* signal, ColdReset* signal or Reset* signal brings the TX4956 out of
Halt mode. The TX4956 recognizes the Int[5:0]* signal inputs, irrespective of the settings of the IntMask bits
in the Status register. On a return from Halt mode by NMI* signal, ColdReset* signal, Reset* signal or not
masked Int[5:0]* signals, the TX4956 takes a corresponding exception. At this time, the EPC register points to
the address of the instruction following the WAIT instruction. When the TX4956 is taken out of Halt mode as
the result of a masked Int[5:0]* signal, processing resumes from the instruction following the one that was
being executed when the TX4956 went into Halt mode.
13.2 Doze Mode
The Doze mode is also a software-controlled feature that reduces power consumption of the TX4956. In
Doze mode, the CPU pipeline status is retained and the internal clocks of the TX4956 are not stopped. If the
HALT bit in the Config register is set, executing the WAIT instruction causes the TX4956 to enter Doze mode.
When the TX4956 enters Doze mode, the HALTDOZE signal is asserted. Even when an external agent has
ownership of the SysAD bus, executing the WAIT instruction puts the TX4956 in Doze mode, but the
HALTDOZE signal is asserted after the current bus cycle is completed. If the on-chip write buffer has any store
information, the WAIT instruction puts the TX4956 in Doze mode after it is emptied.
Assertion of Int[5:0]* signal, NMI* signal, ColdReset* signal or Reset* signal brings the TX4956 out of
Doze mode. The TX4956 recognizes the Int[5:0]* signal inputs, irrespective of the settings of the IntMask bits
in the Status register. On a return from Doze mode by NMI* signal, ColdReset* signal, Reset* signal or not
masked Int[3:0]* signal, the TX4956 takes a corresponding exception. At this time, the EPC register points to
the address of the instruction following the WAIT instruction. When the TX4956 is taken out of Doze mode as
the result of a masked Int[5:0]* signal, processing resumes from the instruction following the one that was
being executed when the TX4956 went into Doze mode.
13-1
Chapter 13 Power-Saving Modes
13.3 Status Shifts
Figure 13.3.1 shows the status shifts in the operation mode of the TX4956.
Power-On-Reset
HALT bit = 0 & WAIT inst.
HALT bit = 1 & WAIT inst
Norma
Operation
Mode
Halt
Mode
any of Int[5:0]* is set to 0
or
NMI* = 0
or
ColdReset* = 0
or
Reset* = 0
Doze
Mode
any of Int[5:0]* is set to 0
or
NMI* = 0
or
ColdReset* = 0
or
Reset* = 0
Figure 13.3.1 Status Shift Among Normal Operation Mode and Low Power Consumption Modes
When operation status shifts from the normal operation mode to the halt mode, it is returned to the normal
operation mode by an interrupt or a reset. Similarly, when it shifts from the normal operation mode to the doze
mode, it is returned to the normal operation mode by an interrupt or a reset. After a reset, the TX4956 is
initialized to the normal operation mode.
13-2
Chapter 14 JTAG Interface
14. JTAG Interface
The TX4956 processor provides a boundary-scan interface that is compatible with Joint Test Action Group
(JTAG) specifications, using the industry-standard JTAG protocol (IEEE Standard 1149.1/D6).
This chapter describes that interface, including descriptions of boundary scanning, the pins and signals used by
the interface, and the Test Access Port (TAP).
Note:
When performing a JTAG operation, be sure to run the MasterClock before and after a reset
operation to properly release the processor reset.
14.1 What Boundary Scanning Is
With the evolution of ever-denser integrated circuits (ICs), surface-mounted devices, double-sided
component mounting on printed-circuit boards (PCBs), and buried vias, in-circuit tests that depend upon
making physical contact with internal board and chip connections have become more and more difficult to use.
The greater complexity of ICs has also meant that tests to fully exercise these chips have become much larger
and more difficult to write.
One solution to this difficulty has been the development of boundary-scan circuits. A boundary-scan circuit
is a series of shift register cells placed between each pin and the internal circuitry of the IC to which the pin is
connected, as shown in Figure 14.1.1. Normally, these boundary-scan cells are bypassed; when the IC enters
test mode, however, the scan cells can be directed by the test program to pass data along the shift register path
and perform various diagnostic tests. To accomplish this, the tests use the four signals described in the next
section: JTDI, JTDO, JTMS, JTCK, and TRST*.
Integrated Circuit
IC package pin
Boundary-scan cells
Figure 14.1.1 JTAG Boundary-scan Cells
14-1
Chapter 14 JTAG Interface
14.2 Signal Summary
The JTAG interface signals are listed below and shown in Figure 14.2.1.
•
JTDI
JTAG serial data in
•
JTDO
JTAG serial data out
•
JTMS
JTAG test mode select
•
JTCK
JTAG serial clock input
•
TRST*
JTAG test reset input
31
0
Device Identification register
7
0
Instruction register
JTDI pin
0
JTDO pin
TAP Controller
Bypass register
JTMS pin
235
0
JTCK pin
Boundary-scan register
TRST* pin
Figure 14.2.1 JTAG Interface Signals and Registers
The JTAG boundary-scan mechanism (referred to in this chapter as JTAG mechanism) allows testing of the
connections between the processor, the printed circuit board to which it is attached, and the other components
on the circuit board.
The JTAG mechanism does not provide any capability for testing the processor itself.
14-2
Chapter 14 JTAG Interface
14.3 JTAG Controller and Registers
The processor contains the following JTAG controller and registers:
•
Instruction register
•
Boundary-scan register
•
Bypass register
•
Device ID Code register
•
Test Access Port (TAP) controller
The basic operation of JTAG is for the TAP controller state machine to monitor the JTMS input signal.
When it occurs, the TAP controller determines the test functionality to be implemented. This includes either
loading the JTAG instruction register (IR), or beginning a serial data scan through a data register (DR), listed in
Table 14.3.1. As the data is scanned in, the state of the JTMS pin signals each new data word, and indicates the
end of the data stream. The data register to be selected is determined by the contents of the Instruction register.
14.3.1
Instruction Register
The JTAG Instruction register includes eight shift register-based cells; this register is used to select the
test to be performed and/or the test data register to be accessed. As listed in
Table 14.3.1, this encoding selects either the Boundary-scan register or the Bypass register or Device
Identification register.
Table 14.3.1 JTAG Instruction Register Bit Encoding
Instruction Code
(MSB → LSB)
Instruction
Selected Data Register
00000000(0x00)
EXTEST
Boundary-scan register
00000001(0x01)
SAMPLE/PRELOAD
Boundary-scan register
00000010(0x02)
Reserved
Reserved
00000011(0x03)
IDCODE
Device Identification register
00000100 to 01111111
Reserved
Reserved
10000000 to 11111110
Debug Support Unit
Please refer DSU section
11111111(0xFF)
BYPASS
Bypass register
Figure 14.3.1 shows the format of the Instruction register.
7
6
5
4
3
2
1
MSB
0
LSB
Figure 14.3.1 Instruction Register
The instruction code is shifted out to the Instruction register from the LSB.
MSB
LSB
JTDI
JTDO
Figure 14.3.2 Instruction Register Shift Direction
14-3
Chapter 14 JTAG Interface
14.3.2
Bypass Register
The Bypass register is 1 bit wide. When the TAP controller is in the Shift-DR (Bypass) state, the data
on the JTDI pin is shifted into the Bypass register, and the Bypass register output shifts to the JTDO
output pin.
In essence, the Bypass register is a short-circuit which allows bypassing of board-level devices, in the
serial boundary-scan chain, which are not required for a specific test. The logical location of the Bypass
register in the boundary-scan chain is shown in Figure 14.3.3. Use of the Bypass register speeds up access
to boundary-scan registers in those ICs that remain active in the board-level test datapath.
JTDI
Board
input
JTDO
JTDO
Board
output
Bypass
register
JTDI
JTDO
JTDI
JTDI
JTDO
JTDI
JTDO
Boundary-scan register pad cell
IC package
Board
Figure 14.3.3 Bypass Register Operation
14-4
Chapter 14 JTAG Interface
14.3.3
Boundary-Scan Register(BSR)
Table 14.3.2 shows the boundary scan order of the processor signals.
Table 14.3.2 TX4956 JTAG Boundary-Scan Ordering
[JTDI]
1: BufSel
2: SysAD[32] in
3: SysAD[32] out
4: SysAD[33] in
5: SysAD[33] out
6: SysEN1
7: SysAD[34] in
8: SysAD[34] out
9: SysAD[35] in
10: SysAD[35] out
11: SysAD[4] in
12: SysAD[4] out
13: SysAD[5] in
14: SysAD[5] out
15: SysEN2
16: SysAD[6] in
17: SysAD[6] out
18: SysAD[7] in
19: SysAD[7] out
20: SysAD[8] in
21: SysAD[8] out
22: SysAD[9] in
23: SysAD[9] out
24: SysEN3
25: SysAD[10] in
26: SysAD[10] out
27: SysAD[11] in
28: SysAD[11] out
29: SysAD[12] in
30: SysAD[12] out
31: SysAD[13] in
32: SysAD[13] out
33: SysEN4
34: SysAD[14] in
35: SysAD[14] out
36: SysAD[36] in
37: SysAD[36] out
38: SysAD[15] in
39: SysAD[15] out
40: SysAD[37] in
41: SysAD[37] out
42: SysEN5
43: SysAD[38] in
44: SysAD[38] out
45: PCST[3)
46: PCST[2] in
47: PCST[2] out
48: SysAD[39] in
49: SysAD[39] out
50: SysEN6
51: PCST[1] in
52: PCST[1] out
53: PCST[0] in
54: PCST[0] out
55: SysAD[40] in
56: SysAD[40] out
57: SysEN7
58: SysAD[41] in
59: SysAD[41] out
60: SysAD[42] in
61: SysAD[42] out
62: RdRdy*
63: WrRdy*
64: SysADC[6] in
65: SysADC[6] out
66: SysEN8
67: ValidIn*
68: ValidOut*
69: SysADC[7] in
70: SysADC[7] out
71: Release*
72: BSIZE64*
73: PLLReset*
74: TintDis
75: SysCmd[0] in
76: SysCmd[0] out
77: SysEN9
78: SysCmd[1] in
79: SysCmd[1] out
80: SysCmd[2] in
81: SysCmd[2] out
82: SysCmd[3] in
83: SysCmd[3] out
84: SysEN10
85: SysCmd[4] in
86: SysCmd[4] out
87: SysCmd[5] in
88: SysCmd[5] out
89: SysEN11
90: SysCmd[6] in
91: SysCmd[6] out
92: SysCmd[7] in
93: SysCmd[7] out
94: SysEN12
95: SysCmd[8] in
96: SysCmd[8] out
97: SysCmdP in
98: SysCmdP out
99: HALTDOZE
100: Int[0]*
101: Int[1]*
102: Int[2]*
103: Int[3]*
104: Int[4]*
105: Int[5]*
106: SysADC[5] in
107: SysADC[5] out
108: SysADC[4] in
109: SysADC[4] out 110: SysEN13
111: TPC[3] in
112: TPC[3] out
113: SysAD[43] in
114: SysAD[43] out
115: SysEN14
116: TPC[2] in
117: TPC[2] out
118: TPC[1] in
119: TPC[1] out
120: DCLK
121: NMI*
122: SysAD[44] in
123: SysAD[44] out
124: ExtRqst*
125: SysAD[45] in
126: SysAD[45] out
127: SysEN15
128: Reset*
129: SysAD[46] in
130: SysAD[46] out
131: ColdReset*
132: SysAD[47] in
133: SysAD[47] out
134: SysAD[48] in
135: SysAD[48] out
136: SysEN16
137: Endian
138: SysAD[49] in
139: SysAD[49] out
140: SysAD[16] in
141: SysAD[16] out
142: SysAD[17] in
143: SysAD[17] out
144: SysEN17
145: SysAD[18] in
146: SysAD[18] out
147: SysAD[19] in
148: SysAD[19] out
149: SysAD[20] in
150: SysAD[20] out
151: SysAD[21] in
152: SysAD[21] out
153: SysEN18
154: SysAD[22] in
155: SysAD[22] out
156: SysAD[23] in
157: SysAD[23] out
158: SysAD[24] in
159: SysAD[24] out
160: SysAD[25] in
161: SysAD[25] out
162: SysAD[50] in
163: SysAD[50] out
164: SysEN19
165: SysAD[26] in
166: SysAD[26] out
167: SysEN20
168: SysAD[51] in
169: SysAD[51] out
170: SysAD[27] in
171: SysAD[27] out
172: SysAD[52] in
173: SysAD[52] out
174: MODE43*
175: SysAD[53] in
176: SysAD[53] out
177: DivMode[1]
178: SysAD[54] in
179: SysAD[54] out
180: SysEN21
181: DivMode[0]
182: SysAD[55] in
183: SysAD[55] out
184: SysAD[28] in
185: SysAD[28] out
186: SysEN22
187: SysAD[29] in
188: SysAD[29] out
189: SysAD[56] in
190: SysAD[56] out
191: SysAD[57] in
192: SysAD[57] out
193: SysEN23
194: SysAD[58] in
195: SysAD[58] out
196: SysAD[30] in
197: SysAD[30] out
198: SysEN24
199: SysAD[59] in
200: SysAD[59] out
201: SysAD[60] in
202: SysAD[60] out
203: SysEN25
204: SysAD[61] in
205: SysAD[61] out
206: SysAD[31] in
207: SysAD[31] out
208: SysADC[2] in
209: SysADC[2] out
210: SysADC[3] in
211: SysADC[3] out 212: SysEN26
213: SysADC[0] in
214: SysADC[0] out 215: SysADC[1] in
216: SysADC[1] out 217: SysAD[0] in
218: SysAD[0] out
219: SysAD[1] in
220: SysAD[1] out
221: SysEN27
222: SysAD[2] in
224: SysAD[3] in
225: SysAD[3] out
226: PCST[8]
227: PCST[7]
232: SysAD[62] out
233: SysEN28
223: SysAD[2] out
228: PCST[6]
229: PCST[5]
230: PCST[4]
231: SysAD[62] in
234: SysAD[63] in
235: SysAD[63] out
236: DivMode[2]
[JTDO]
Note:
MasterClock does not support scan registers. Bidirectional signals have eahch pair of scan
registers. ColdReset*, Reset* and BuSel signals are handled as internal signals.
Figure 14.3.4 shows the Boundary-scan register. The Boundary-scan register includes all of the inputs
and outputs of the TX4956 processor, except some clock and phase lock loop signals. The pins of the
TX4956 chip can be configured to drive any arbitrary pattern by scanning into the Boundary-scan register
from the Shift-DR state. Incoming data to the processor is examined by shifting while in the Capture-DR
state with the Boundary-scan register enabled.
14-5
Chapter 14 JTAG Interface
The Boundary-scan register is a single, 236-bit-wide, shift register-based path containing cells
connected to all input and output pads on the TX4956 processor.
235
0
See BSDL file in detail attached in the production
Figure 14.3.4 Format of the Boundary-scan Register
28 bits (SysEN) of the BSR are JTAG output enables.
205 bits of the BSR are for 117 external signals of the processor.
3 bits of the BSR are for internal signals of the processor.
At the end of this chapter, Table 14.3.2 lists the scan order of these 236 scan bits, starting from JTDI
and ending with JTDO.
The JTDI input is loaded to the MSB of the Boundary Scan register. The LSB of the Boundary Scan
register is retrieved from the JTDO output.
14.3.4
Device Identification Register
The Device Identification register is a 32-bit shift register. It is used to read serially from the IC the
identification code indicating the IC manufacturer, product number, and version.
The following shows the Device Identification register structure.
31
28 27
12 11
Version
Product number
4 bits
16 bits
1
manufacturer
identification code
11 bits
Figure 14.3.5 Device Identification Register
The TX4956 device identification code is 0x0002c031.
The device identification code is shifted out starting from the LSB.
MSB
LSB
JTDO
Figure 14.3.6 Devide Identification Register shift Direction
14-6
0
1
Chapter 14 JTAG Interface
14.3.5
Test Access Port (TAP)
The Test Access Port (TAP) consists of the five signal pins: TRST* JTDI, JTDO, JTMS, and JTCK.
Serial test data and instructions are communicated over these five signal pins, along with control of the
test to be executed.
As Figure 14.3.7 shows, data is serially scanned into one of the four registers (Instruction register,
Bypass register, Device Identification register, or the Boundary-scan register) from the JTDI pin, or it is
scanned from one of these four registers onto the JTDO pin.
The JTMS input controls the state transitions of the main TAP controller state machine.
The JTCK input is a dedicated test clock that allows serial JTAG data to be shifted synchronously,
independent of any chip-specific or system clocks.
JTCK
JTMS and JTDI sampled on rising
edge of JTCK
JTDO sampled on falling edge of
JTCK
Data scanned in serially
7
Data scanned out serially
0
7
Instruction register
0
Instruction register
0
0
Bypass register
235
Bypass register
JTDI pin
0
Boundary-scan registe
JTMS pin
235
JTDO pin
0 31
Boundary-scan register
0
Device
Identification register
Figure 14.3.7 JTAG Test Access Port
Data on the JTDI and JTMS pins is sampled on the rising edge of the JTCK input clock signal. Data on
the JTDO pin changes on the falling edge of the JTCK clock signal.
14.3.6
TAP Controller
The processor implements the 16-state TAP controller as defined in the IEEE JTAG specification.
14.3.7
Controller Reset
The TAP controller state machine can be put into Reset state the following:
•
assertion of the TRST* signal (Low) resets the TAP controller.
•
keeping the JTMS input signal asserted through five consecutive rising edges of JTCK input.
14-7
Chapter 14 JTAG Interface
14.3.8
TAP Controller
The state transition diagram of the TAP controller is shown in Figure 14.3.8. Each arrow between states
is labeled with a 1 or 0, indicating the logic value of JTMS that must be set up before the rising edge of
JTCK to cause the transition.
1
Test-Logic-Reset
0
0
Run-Test/Idle
1
Select-DR-Scan
1
Select-IR-Scan
0
0
Capture-DR
1
Capture-IR
1
0
0
Shift-DR
Shift-IR
0
1
1
Exit 1-IR
0
1
0
Pause-DR
Pause-IR
0
1
0
1
Exit 2-DR
0
Exit 2-IR
1
1
Update-DR
1
0
1
Exit 1-DR
0
1
0
Update-IR
1
0
Figure 14.3.8 TAP Controller State Diagram
The following paragraphs describe each of the controller state. The left vertical column in Figure
14.3.8 is the data column, and the right vertical column is the instruction column. The data column and
instruction column reference data register (DR) and instruction register (IR), respectively.
14-8
Chapter 14 JTAG Interface
•
Test-Logic-Reset
When the TAP controller is in the Test-Logic-Reset state, the value 0x3 is loaded into the
parallel output latch, selecting the Device Identification register as default. The three most
significant bits of the Boundary-scan register are cleared to 0, disabling the outputs.
The controller remains in this state while JTMS is high. If JTMS is held low while the controller
is in this state, then the controller moves to the Run-Test/Idle state.
•
Run-Test/Idle
In the Run-Test/Idle state, the IC is put in a test mode only when certain instructions such as a
built-in self test (BIST) instruction are present. For instructions that do not cause any activities
in this state, all test data registers selected by the current instruction retain their previous states.
The controller remains in this state while JTMS is held low. When JTMS is high, the controller
moves to the Select-DR-Scan state.
•
Select-DR-Scan
This is a temporary controller state. Here, the IC does not execute any specific functions.
If JTMS is held low when the controller is in this state, then the controller moves to the
Capture-DR state. If JTMS is held high, the controller moves to the Select-IR-Scan state in the
instruction column.
•
Select-IR-Scan
This is a temporary controller state. Here, the IC does not execute any specific functions.
If JTMS is held low when the controller is in this state, then the controller moves to the
Capture-IR state. If JTMS is held high, the controller returns to the Test-Logic-Reset state.
•
Capture-DR
In this controller state, if the test data register selected by the current instruction on the rising
edge of JTCK has parallel inputs, then data can be parallel-loaded into the shift portion of the
data register. If the test data register does not have parallel inputs, or if data need not be loaded
into the selected data register, then the data register retains its previous state.
If JTMS is held low while the controller is in this state, the controller moves to the Shift-DR
state. If JTMS is held high, the controller moves to the Exit1-DR state.
•
Shift-DR
In this controller state, the test data register connected between JTDI and JTDO shifts data one
stage towards its serial output.
When the controller is in this state, then it remains in the Shift-DR state if JTMS is held low, or
moves to the Exit1-DR state if JTMS is held high.
14-9
Chapter 14 JTAG Interface
•
Exit 1-DR
This is a temporary controller state.
If JTMS is held low when the controller is in this state, then the controller moves to the
Pause-DR state. If JTMS is held high, the controller moves to the Update-DR state.
•
Pause-DR
This state allows the shifting of the data register selected by the instruction register to be
temporarily suspended. Both the instruction register and the data register retain their current
states.
When the controller is in this state, then it remains in the Pause-DR state if JTMS is held low, or
moves to the Exit2-DR state if JTMS is held high.
•
Exit 2-DR
This is a temporary controller state.
When the controller is in this state, then it returns to the Shift-DR state if JTMS is held low, or
moves on to the Update-DR state if JTMS is held high.
•
Update-DR
In this state, data is latched, on the rising edge of JTCK, onto the parallel outputs of the data
registers from the shift register path. The data held at the parallel output does not change while
data is shifted in the associated shift register path.
When the controller is in this state, it moves to either the Run-Test/Idle state if JTMS is held low,
or the Select-DR-Scan state if JTMS is held high.
•
Capture-IR
In this state, data is parallel-loaded into the instruction register. The value of the loaded data is
“00000001”. The Capture-IR state is used for testing the instruction register. Faults in the
instruction register, if any exists, may be detected by shifting out the data loaded in it.
When the controller is in this state, it moves to either the Shift-IR state if JTMS is low, or the
Exit1-IR state if JTMS is high.
•
Shift-IR
In this state, the instruction register is connected between JTDI and JTDO and shifts the
captured data toward its serial output on the rising edge of JTCK.
When the controller is in this state, it remains in the Shift-IR state if JTMS is low, or moves to
the Exit1-IR state if JTMS is high.
14-10
Chapter 14 JTAG Interface
•
Exit 1-IR
This is a temporary controller state.
When the controller is in this state, then it moves to either the Pause-IR state if JTMS is held low,
or the Update-IR state if JTMS is held high.
•
Pause-IR
This state allows the shifting of the instruction register to be temporarily suspended. Both the
instruction register and the data register retain their current states.
When the controller is in this state, it remains in the Pause-IR state if JTMS is held low, or
moves to the Exit2-IR state if JTMS is held high.
•
Exit 2-IR
This is a temporary controller state.
When the controller is in this state, it moves to either the Shift-IR state if JTMS is held low, or
the Update-IR state if JTMS is held high.
•
Update-IR
This state allows the instruction previously shifted into the instruction register to be output in
parallel on the rising edge of JTCK. Then it becomes the current instruction, setting a new
operational mode.
When the controller is in this state, it moves to either the Run-Test/Idle state if JTMS is low, or
the Select-DR-Scan state if JTMS is high.
14-11
Chapter 14 JTAG Interface
14.4 Instructions for JTAG
This section defines the instructions supplied and the operations that occur in response to those instructions.
14.4.1
The EXTEST Instruction
This instruction is used for external interconnect test, and targets the boundary scan register between
JTDI and JTDO. The EXTEST instruction permits BSR cells at output pins to shift out test patterns in the
Update-DR state and those at input pins to capture test results in the Capture-DR state.
Typically, before EXTEST is executed, the Boundary-scan register (BSR) should be initialized by
using the SAMPLE/PRELOAD instruction. If the BSR is not initialized, invalid data is transferred in the
Update-DR state. This eliminates the possibility that bus conflicts damage the IC outputs. The flow of
data through the Boundary-scan register while the EXTEST instruction is selected is shown in Figure
14.4.1, which follows:
Boundary Scan Path
INPUT
Core Logic
OUTPUT
JTDO
JTDI
Figure 14.4.1 Test Data Flow While the EXTEST Instruction is Selected
The following steps describe the basic test algorithm of an external interconnect test.
1.
Initialize the TAP controller to the Test-Logic-Reset state.
2.
Load the instruction register with SAMPLE/PRELOAD. This causes the Boundary-scan register to
be connected between JTDI and JTDO.
3.
Initialize the Boundary-scan register by shifting in determinate data.
4.
Then, load the initial test data into the Boundary-scan register.
5.
Load the Instruction register with EXTEST.
6.
Capture the data applied to the input pin into the Boundary-scan register.
7.
Shift out the captured data while simultaneously shifting in the next test pattern.
8.
Read out the data in the Boundary-scan register onto the output pin.
Steps 6 to 8 are repeated for each test pattern.
14-12
Chapter 14 JTAG Interface
14.4.2
The SAMPLE/PRELOAD Instruction
This instruction targets the Boundary-scan register between JTDI and JTDO. As the instruction's name
implies, two functions are performed through use of the SAMPLE/ PRELOAD instruction.
•
SAMPLE allows the input and output pads of an IC to be monitored. While it does so, it does not
disconnect the system logic from the IC pins. The SAMPLE function occurs in the Capture-DR
controller state. The SAMPLE instruction can read the value of the I/O pins of IC on the rising edge
of JTCK. The flow of data for the SAMPLE phase of the SAMPLE/PRELOAD instruction is shown
in Figure 14.4.2.
Boundary Scan Path
INPUT
Core Logic
JTDI
OUTPUT
JTDO
Figure 14.4.2 Test Data Flow While SAMPLE is Selected
•
PRELOAD allows the Boundary-scan register to be initialized before another instruction is selected.
For example, prior to selection of the EXTEST instruction, initialization data is shifted into the
Boundary-scan register using PRELOAD as described in the previous subsection. PRELOAD
permits shifting of the Boundary-scan register without interfering with the normal operation of the
system logic. The flow of data for the PRELOAD phase of the SAMPLE/PRELOAD instruction is
shown in Figure 14.4.3.
Boundary Scan Path
INPUT
Core Logic
JTDI
OUTPUT
JTDO
Figure 14.4.3 Test Data Flow While PRELOAD is Selected
14-13
Chapter 14 JTAG Interface
14.4.3
The BYPASS Instruction
This instruction targets the bypass register between JTDI and JTDO. The Bypass register provides a
minimum length serial path through the IC (or between JTDI and JTDO) when the IC is not required for
the current test. The BYPASS instruction does not cause interference to the normal operation of the
on-chip system logic. The flow of data through the Bypass register while the BYPASS instruction is
selected is shown in Figure 14.4.4.
Bypass Register
JTDI
JTDO
1-bit
Figure 14.4.4 Test Data Flow While the Bypass Instruction is Selected
14.4.4
The IDCODE Instruction
This instruction targets the device identification register between JTDI and JTDO to identify
manufacturer identity, product number, and version number.
14-14
Chapter 15 CPU Instruction Set Summary
15. CPU Instruction Set Summary
15.1 Introduction
Each instruction is 32 bits long. These instructions are upward compatible with the MIPS I, II and III
instruction set architecture.
15.2 Instruction Format
There are three instruction formats: Immediate (I-type), Jump (J-type) and Register (R-type), as shown in
Figure 15.2.1. Having just three instruction formats simplifies instruction decoding. If more complex functions
or addressing modes are required, they can be produced with the compiler using combinations of the
instructions.
Immediate (I-type)
31
26
25
op
Jump (J-type)
31
21
20
rs
26
16
15
immediate
25
0
op
Register (R-type)
31
target
26
op
0
rt
25
21
20
rs
16
15
rt
op
Operation code (6 bits)
rs
Source register (5 bits)
11
rd
10
6
5
sa
rt
Target (source or destination) register, or branch condition (5 bits)
rd
Destination register (5 bits)
immediate
Immediate, branch displacement, address displacement (16 bits)
target
Branch target address (26 bits)
sa
Shift amount (5 bits)
funct
Function (6 bits)
Figure 15.2.1 Instruction Formats and Subfield Mnemonics
15-1
0
funct
Chapter 15 CPU Instruction Set Summary
15.3 Instruction Set Overview
15.3.1
Load and Store Instructions (Table 15.3.1)
Load and Store instructions move data between memory and general purpose registers, and are all
I-type instructions. The only directly supported addressing mode is “base register plus 16-bit signed
immediate offset”.
Table 15.3.1 CPU Instruction Set: Load and Store Instructions
Instruction
Description
Note
LB
Load Byte
MIPS I
LBU
Load Byte Unsigned
MIPS I
LH
Load Halfword
MIPS I
LHU
Load Halfword Unsigned
MIPS I
LW
Load Word
MIPS I
LWL
Load Word Left
MIPS I
LWR
Load Word Right
MIPS I
SB
Store Byte
MIPS I
SH
Store Halfword
MIPS I
SW
Store Word
MIPS I
SWL
Store Word Left
MIPS I
SWR
Store Word Right
MIPS I
LD
Load Doubleword
MIPS III
LDL
Load Doubleword Left
MIPS III
LDR
Load Doubleword Right
MIPS III
LL
Load Linked
MIPS II
LLD
Load Linked Doubleword
MIPS III
LWU
Load Word Unsigned
MIPS III
SC
Store Conditional
MIPS II
SCD
Store Conditional Doubleword
MIPS III
SD
Store Doubleword
MIPS III
SDL
Store Doubleword Left
MIPS III
SDR
Store Doubleword Right
MIPS III
SYNC
Sync
MIPS II
15-2
Chapter 15 CPU Instruction Set Summary
15.3.2
Computational Instructions (Table 15.3.2)
Computational instructions perform arithmetic, logical or shift operations on values in registers. This
instruction format can be R-type or I-type. With R-type instructions, the one or two source operands are
computed and its result is saved to one destination register. With I-type instructions, one of the operands is
16-bit immediate data. Computational instructions can be classified as follows.
•
ALU immediate
•
Three-operand register-type
•
Shift
•
Multiply/Divide
Table 15.3.2 CPU Instruction Set: Computational Instructions
Instruction
Description
Note
(ALU Immediate)
ADDI
Add Immediate
MIPS I
ADDIU
Add Immediate Unsigned
MIPS I
SLTI
Set on Less Than Immediate
MIPS I
SLTIU
Set on Less Than Immediate Unsigned
MIPS I
ANDI
AND Immediate
MIPS I
ORI
OR Immediate
MIPS I
XORI
Exclusive OR Immediate
MIPS I
LUI
Load Upper Immediate
MIPS I
DADDI
Doubleword Add Immediate
MIPS III
DADDIU
Doubleword Add Immediate Unsigned
MIPS III
(ALU 3-Operand, register type)
ADD
Add
MIPS I
ADDU
Add Unsigned
MIPS I
SUB
Subtract
MIPS I
SUBU
Subtract Unsigned
MIPS I
SLT
Set on Less Than
MIPS I
SLTU
Set on Less Than Unsigned
MIPS I
AND
AND
MIPS I
OR
OR
MIPS I
XOR
Exclusive OR
MIPS I
NOR
NOR
MIPS I
DADD
Doubleword Add
MIPS III
DADDU
Doubleword Add Unsigned
MIPS III
DSUB
Doubleword Subtract
MIPS III
DSUBU
Doubleword Subtract Unsigned
MIPS III
(Shift)
SLL
Shift Left Logical
MIPS I
SRL
Shift Right Logical
MIPS I
SRA
Shift Right Arithmetic
MIPS I
SLLV
Shift Left Logical Variable
MIPS I
SRLV
Shift Right Logical Variable
MIPS I
SRAV
Shift Right Arithmetic Variable
MIPS I
DSLL
Doubleword Shift Left Logical
MIPS III
DSRL
Doubleword Shift Right Logical
MIPS III
DSRA
Doubleword Shift Right Arithmetic
MIPS III
DSLLV
Doubleword Shift Left Logical Variable
MIPS III
DSRLV
Doubleword Shift Right Logical Variable
MIPS III
15-3
Chapter 15 CPU Instruction Set Summary
Instruction
Description
Note
DSRAV
Doubleword Shift Right Arithmetic Variable
MIPS III
DSLL32
Doubleword Shift Left Logical +32
MIPS III
DSRL32
Doubleword Shift Right Logical +32
MIPS III
DSRA32
Doubleword Shift Right Arithmetic +32
MIPS III
(Multiply and Divide)
MULT
Multiply
MIPS I
MULTU
Multiply Unsigned
MIPS I
DIV
Divide
MIPS I
DIVU
Divide Unsigned
MIPS I
MFHI
Move From HI
MIPS I
MTHI
Move To HI
MIPS I
MFLO
Move From LO
MIPS I
MTLO
Move To LO
MIPS I
DMULT
Doubleword Multiply
MIPS III
DMULTU
Doubleword Multiply Unsigned
MIPS III
DDIV
Doubleword Divide
MIPS III
DDIVU
Doubleword Divide Unsigned
MIPS III
15.3.3
Jump and Branch Instructions (Table 15.3.3)
Jump and branch instructions change the control flow of a program. All jump and branch instructions
occur with a delay of one instruction: that is, the instruction immediately following the jump or branch
(this is known as the instruction in the delay slot) always executes while the target instruction is being
fetched from storage. Branch-likely instructions are used for static branch prediction. The instruction in
the delay slot is executed only when the branch is taken; the instruction in the delay slot is nullified if the
branch is not taken.
Table 15.3.3 CPU Instruction Set: Jump and Branch Instructions
Instruction
Description
Note
J
Jump
MIPS I
JAL
Jump And Link
MIPS I
JR
Jump Register
MIPS I
JALR
Jump And Link Register
MIPS I
BEQ
Branch on Equal
MIPS I
BNE
Branch on Not Equal
MIPS I
BLEZ
Branch on Less Than or Equal to Zero
MIPS I
BGTZ
Branch on Greater Than Zero
MIPS I
BLTZ
Branch on Less Than Zero
MIPS I
BGEZ
Branch on Greater than or Equal to Zero
MIPS I
BLTZAL
Branch on Less Than Zero And Link
MIPS I
BGEZAL
Branch on Greater than or Equal to Zero And Link
MIPS I
BEQL
Branch on Equal Likely
MIPS II
BNEL
Branch on Not Equal Likely
MIPS II
BLEZL
Branch on Less Than or Equal to Zero Likely
MIPS II
BGTZL
Branch on Greater Than Zero Likely
MIPS II
BLTZL
Branch on Less Than Zero Likely
MIPS II
BGEZL
Branch on Greater Than or Equal to Zero Likely
MIPS II
BLTZALL
Branch on Less Than Zero And Link Likely
MIPS II
BGEZALL
Branch on Greater Than or Equal to Zero And Link Likely
MIPS II
15-4
Chapter 15 CPU Instruction Set Summary
15.3.4
Special Instructions (Table 15.3.4)
There are special instructions used for software trap. The instruction format is R-type for all two.
Table 15.3.4 CPU Instruction Set: Special Instructions
Instruction
Description
Note
SYSCALL
System Call
MIPS I
BREAK
Break
MIPS I
15.3.5
Exception Instructions (Table 15.3.5)
These instructions are R-type or I-type. When the condition of the following instructions is true,
theTrap Exception occurres.
Table 15.3.5 CPU Instruction Set: Exception Instructions
Instruction
Description
Note
TGE
Trap if Greater Than or Equal
MIPS II
TGEU
Trap if Greater Than or Equal Unsigned
MIPS II
TLT
Trap if Less Than
MIPS II
TLTU
Trap if Less Than Unsigned
MIPS II
TEQ
Trap if Equal
MIPS II
TNE
Trap if Not Equal
MIPS II
TGEI
Trap if Greater Than or Equal Immediate
MIPS II
TGEIU
Trap if Greater Than or Equal Immediate Unsigned
MIPS II
TLTI
Trap if Less Than Immediate
MIPS II
TLTIU
Trap if Less Than Immediate Unsigned
MIPS II
TEQI
Trap if Equal Immediate
MIPS II
TNEI
Trap if Not Equal Immediate
MIPS II
15-5
Chapter 15 CPU Instruction Set Summary
15.3.6
Coprocessor Instructions (Table 15.3.6)
Coprocessor instructions invoke coprocessor operations. The format of these instructions depends on
which coprocessor is used.
Table 15.3.6 CPU Instruction Set: Coprocessor Instructions
Instruction
Description
Note
LWCz
Load Word to Coprocessor z (z = 1, 2)
SWCz
Store Word from Coprocessor z (z = 1, 2)
MIPS I
MTCz
Move To Coprocessor z (z = 1, 2)
MIPS I
MFCz
Move From Coprocessor z (z = 1, 2)
MIPS I
CTCz
Move Control To Coprocessor z (z = 1, 2)
MIPS I
CFCz
Move Control From Coprocessor z (z = 1, 2)
MIPS I
MIPS I
COPz
Coprocessor Operation z (z = 1, 2)
MIPS I
BCzT
Branch on Coprocessor z True (z = 0, 1, 2)
MIPS I
BCzF
Branch on Coprocessor z False (z = 0, 1, 2)
MIPS I
BCzTL
Branch on Coprocessor z True Likely (z = 0, 1, 2)
MIPS II
BCzFL
Branch on Coprocessor z False Likely (z = 0, 1, 2)
MIPS II
LDCz
Load Double Coprocessor z (z = 1, 2)
MIPS III
SDCz
Store Double Coprocessor z (z = 1, 2)
MIPS III
DMTCz
Doubleword Move To Coprocessor z (z = 1, 2)
MIPS III
DMFCz
Doubleword Move From Coprocessor z (z = 1, 2)
MIPS III
15.3.7
CP0 Instructions (Table 15.3.7)
Coprocessor 0 instructions are used for operations involving the system control coprocessor (CP0)
registers, processor memory management and exception handling.
Table 15.3.7 Instruction Set: CP0 Instructions
Instruction
Description
Note
MTC0
Move To CP0
MFC0
Move From CP0
MIPS I
DMTC0
Doubleword Move To CP0
MIPS III
DMFC0
Doubleword Move From CP0
MIPS III
TLBR
Read Indexed TLB Entry
TLBWI
Write Indexed TLB Entry
TLBWR
Write Random TLB Entry
MIPS I
TLBP
Probe TLB for Matching Entry
CACHE
Cache
MIPS III
ERET
Exception Return
MIPS III
WAIT
Enter power management mode
15-6
Chapter 15 CPU Instruction Set Summary
15.3.8
Multiply and Divide Instructions (Table 15.3.8)
Table 15.3.8 Extensions to the ISA: Multiply and Divide Instructions
Instruction
Description
MULT
Multiply (3-operand)
MULTU
Multiply Unsigned (3-operand)
Note
DMULT
Doubleword Multiply (3-operand)
DMULTU
Doubleword Multiply Unsigned (3-operand)
MADD
Multiply and ADD (3-operand)
extended
MADDU
Multiply and ADD Unsigned (3-operand)
extended
15.3.9
Debug Instructions (Table 15.3.9)
Table 15.3.9 Extensions to the ISA: Debug Instructions
Instruction
CTC0
Description
Note
Move Control To Coprocessor 0
CFC0
Move Control From Coprocessor 0
SDBBP
Software Debug Breakpoint
extended
DERET
Debug Exception Return
extended
15.3.10 Other Instructions (Table 15.3.10)
Table 15.3.10 Other Instructions
Instruction
PREF
Description
Note
Prefetch
15.4 Instruction Execution Cycles
Because the TX49/H4 Core employs the high-speed Multiply and Add Calculator (MAC), multiply
instructions, such as MULT, MULTU, DMULT and DMULTU are executed faster. And, TX49/H4 Core is
improved the execution of divide instructions, too.
Instruction
Latency
Repeat (2op/3op)
MULT 2/3 operand
4/4
1/3
MADD 2/3 operand
4/4
1/3
DMULT 2/3 operand
7/7
6/6
DIV
37
36
DDIV
69
68
15-7
Chapter 15 CPU Instruction Set Summary
15.5 Defining Access Types
Access type indicates the size of a TX49 data item to be loaded or stored, set by the load or store instruction
opcode.
Regardless of access type or byte ordering (endianness), the address given specifies the low-order byte in the
addressed field. For a big-endian configuration, the low-order byte is the most-significant byte; for a
little-endian configuration, the low-order byte is the least-significant byte.
The access type, together with the three low-order bits of the address, determines which byte is accessed
within the addressed doubleword (shown in Figure 15.5.1). Only the combinations shown in Figure 15.5.1 are
permissible; other combinations cause the Address Error exception.
Access Type
Mnemonic
(Value)
Doubleword (7)
Septibyte (6)
Sextibyte (5)
Quintibyte (4)
Word (3)
Triplebyte (2)
Halfword (1)
Byte (0)
Low-Order
Address
Bits
Bytes Accessed
Big Endian
(63-----------------31-----------------0)
Byte
Little Endian
(63-----------------31-----------------0)
Byte
7
2
1
0
0
0
0
0
1
2
3
4
5
6
0
0
0
0
1
2
3
4
5
6
0
0
1
1
2
3
4
5
6
7
1
2
3
4
5
2
3
4
5
6
2
3
4
3
4
5
4
5
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
2
1
2
1
2
6
5
4
3
2
1
0
6
5
4
3
2
1
0
7
6
5
4
3
2
1
5
4
3
2
1
0
7
7
6
5
4
3
2
4
3
2
1
0
6
7
7
6
5
4
3
3
2
1
0
6
7
7
6
5
4
2
1
0
3
2
1
3
2
3
3
4
0
7
5
6
5
6
7
7
6
5
6
5
4
1
1
2
3
4
5
5
6
7
7
0
4
6
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
Figure 15.5.1 Byte Access within a Doubleword
15-8
Chapter 15 CPU Instruction Set Summary
15.6 Bit Encoding of CPU Instruction OPcodes
The Table 15.6.1 shows the bit codes for all TX4956 CPU instructions (ISA and extended ISA).
Table 15.6.1 CPU Operation Code Bit Encoding
OPcode
31
26
0
OPcode
[31:29]
0
[28:26]
0
1
2
3
4
5
6
7
SPECIA λ
REGIMM λ
J
JAL
BEQ
BNE
BLEZ
BGTZ
1
ADDI
ADDIU
SLTI
SLTIU
ANDI
ORI
XORI
LUI
2
COP0 α
COP1 α
COP2 α
COP3 α θ
BEQL
BNEL
BLEZL
BGTZL
3
DADDI ε
DADDIU ε
LDL ε
LDR ε
MAC λ
*
*
*
4
LB
LH
LWL
LW
LBU
LHU
LWR
LWU ε
5
SB
SH
SWL
SW
SDL ε
SDR ε
SWR
CACHE
6
LL
LWC1 α
LWC2 α
PREF
LLD ε
LDC1 α
LDC2 α
LD ε
7
SC
SWC1 α
SWC2 α
*
SCD ε
SDC1 α
SDC2 α
SD ε
SPECIAL Function
31
26
5
OPcode =
SPECIAL
0
SPECIAL
Function
[5:3]
[2:0]
0
1
2
3
4
5
6
7
0
SLL
*
SRL
SRA
SLLV
*
SRLV
SRAV
1
JR
JALR
*
*
SYSCALL
BREAK
SDBBP
SYNC
2
MFHI
MTHI
MFLO
MTLO
DSLLV ε
*
DSRLV ε
DSRAV ε
3
MULT
MULTU
DIV
DIVU
DMULT ε
DMULTε
DDIV ε
DDIVU ε
4
ADD
ADDU
SUB
SUBU
AND
OR
XOR
NOR
5
*
*
SLT
SLTU
DADD ε
DADDU ε
DSUB ε
DSUBU ε
6
TGE
TGEU
TLT
TLTU
TEQ
*
TNE
*
7
DSLL ε
*
DSRL ε
DSRA ε
DSLL32 ε
*
DSRL32 ε
DSRA32 ε
15-9
Chapter 15 CPU Instruction Set Summary
REGIMM rt
31
26
20
OPcode =
REGIMM
16
0
REGIMM
rt
[18:16]
0
1
2
3
4
5
6
7
0
BLTZ
BGEZ
BLTZL
BGEZL
*
*
*
*
1
TGEI
TGEIU
TLTI
TLTIU
TEQI
*
TNEI
*
2
BLTZAL
BGEZAL
BLTZALL
BGEZALL
*
*
*
*
3
*
*
*
*
*
*
*
*
[20:19]
COPz rs
31
26
25
OPcode =
COPz
21
0
COPz
rs
[23:21]
0
1
2
3
4
5
6
0
MF
DMF ε
CF
γ
MT
DMT ε
CT
γ
1
BC
γ
γ
γ
γ
γ
γ
γ
[25:24]
2
7
CO
3
COPz rt
31
26
20
OPcode =
COPz
16
0
COPz
rt
[18:16]
0
1
2
3
4
5
6
0
BCF
BCT
BCFL
BCTL
γ
γ
γ
γ
1
γ
γ
γ
γ
γ
γ
γ
γ
2
γ
γ
γ
γ
γ
γ
γ
γ
3
γ
γ
γ
γ
γ
γ
γ
γ
[20:19]
7
COP0 Function
31
26
5
OPcode =
COP0
0
COP0
Function
[2:0]
0
1
2
3
4
5
6
0
φ
TLBR
TLBWI
φ
φ
φ
TLBWR
φ
1
TLBP
φ
φ
φ
φ
φ
φ
φ
2
φ
φ
φ
φ
φ
φ
φ
φ
3
ERET
φ
φ
φ
φ
φ
φ
DERET
4
WAIT
φ
φ
φ
φ
φ
φ
φ
5
φ
φ
φ
φ
φ
φ
φ
φ
6
φ
φ
φ
φ
φ
φ
φ
φ
7
φ
φ
φ
φ
φ
φ
φ
φ
[5:3]
15-10
7
Chapter 15 CPU Instruction Set Summary
MAC Function
31
26
5
OPcode =
MAC
0
MAC
Function
[2:0]
0
1
2
3
4
5
6
0
MADD
MADDU
γ
γ
γ
γ
γ
γ
1
γ
γ
γ
γ
γ
γ
γ
γ
2
γ
γ
γ
γ
γ
γ
γ
γ
3
γ
γ
γ
γ
γ
γ
γ
γ
4
γ
γ
γ
γ
γ
γ
γ
γ
5
γ
γ
γ
γ
γ
γ
γ
γ
6
γ
γ
γ
γ
γ
γ
γ
γ
7
γ
γ
γ
γ
γ
γ
γ
γ
[5:3]
7
Key :
*:
This opcode is reserved for future use. An attempt to execute it causes a Reserved Instruction
exception.
γ:
This opcode is reserved for future use. An attempt to execute it causes a Reserved Instruction
exception.
λ:
This opecode indicates an instruction class. The instruction word must be further decoded by
examining additional tables that show the values for another instruction field.
α:
This opcode is a coprocessor operation, not a CPU operation. If the processor state does not
allow access to the specified coprocessor, the instruction causes a Coprocessor Unusable
exception. It is included in the table because it uses a primary opecode in the instruction
encodeing map.
φ:
This opcode is reserved for future use, but does not cause a Reserved Instruction exception in
TX4956 implementations. It is treated as “NOP”.
θ:
This opcode is valid when BC is only selected in COPz rs; In other case, it causes a Reserved
Instruction exception.
ε:
This opcode is valid when the processor is operating either in the Kernel mode or in the 64-bit
non-Kernel (User or Supervisor) mode; In other case, it causes a Reserved Instruction
exception.
15-11
Chapter 15 CPU Instruction Set Summary
15-12
Chapter16 FPU Instruction Set Details
16. FPU Instruction Set Details
16.1 Instruction Formats
There are three basic instruction format types:
•
Immediate instructions (I-Type), which include load and store operations.
•
Register instructions (R-Type), which include the two-and three-register Floating-Point operations.
•
Branch instructions and Move instructions etc.
The instruction description subsections that follow show how the three basic instruction formats above are
used by:
•
Load and store instructions
•
Register transfer instructions
•
Floating-Point Computational instructions
•
Floating-Point branch instructions
Floating-point instructions are mapped onto the coprocessor 1 instructions, defining coprocessor unit
number one (CP1) as the floating-point unit.
Each operation is valid only for certain formats. Implementations may support some of these formats and
operations only through emulation, but only need support combinations that are valid, which are marked with
a V in Table 16.1.1 below.
Table 16.1.1 shows Valid FPU Instruction Formats.
Table 16.1.1 Valid FPU Instruction Formats
Operation
Source Format
Single
Double
Word
Longword
ADD
V
V
R
R
SUB
V
V
R
R
MUL
V
V
R
R
DIV
V
V
R
R
SQRT
V
V
R
R
ABS
V
V
R
R
MOV
V
V
–
–
NEG
V
V
R
R
TRUNC.L
V
V
–
–
ROUND.L
V
V
–
–
CEIL.L
V
V
–
–
LOOR.L
V
V
–
–
TRUNC.W
V
V
–
–
ROUND.W
V
V
–
–
CEIL.W
V
V
–
–
FLOOR.W
V
V
–
–
CVT.S
–
V
V
V
CVT.D
V
–
V
V
CVT.W
V
V
–
–
CVT.L
V
V
–
–
C
V
V
R
R
V: Valid
R: Reserved for future use (if specified, Floating-Point exception (unimplemented instruction exception) occurs.)
–: not supported (if specified, Floating-Point exception (unimplemented instruction exception) occurs.)
16-1
Chapter16 FPU Instruction Set Details
The coprocessor branch on condition true/false instructions can be used to logically negate any predicate.
Thus, the 32 possible conditions require only 16 distinct comparisons, as shown in Table 16.1.2 below.
Table 16.1.2 shows Logical Negation of Predicates by Condition True/False.
Table 16.1.2 Logical Negation of Predicates by Condition True/False
Condition
Mnemonic
True
False
F
UN
EQ
UEQ
OLT
ULT
OLE
ULE
T
OR
NEQ
OGL
UGE
OGE
UGT
OGT
Relations
Code
Greater
Than
Less
Than
Equal
0
1
2
3
4
5
6
7
F
F
F
F
F
F
F
F
F
F
F
F
T
T
T
T
F
F
T
T
F
F
T
T
Invalid Operation
exception if
Unordered
unordered
F
T
F
T
F
T
F
T
No
No
No
No
No
No
No
No
SF
ST
8
F
F
F
F
Yes
NGLE
SEQ
NGL
LT
NGE
LE
NGT
GLE
SNE
GL
NLT
GE
NLE
GT
9
10
11
12
13
14
15
F
F
F
F
F
F
F
F
F
F
T
T
T
T
F
T
T
F
F
T
T
T
F
T
F
T
F
T
Yes
Yes
Yes
Yes
Yes
Yes
Yes
16.2 Instruction Set Summary
16.2.1
Floating-Point Loads, Stores, and Moves
All movement of data between the floating-point coprocessor and memory is accomplished by
coprocessor load and store operations, which reference the floating-point coprocessor’s General-Purpose
Registers. These operations are unformatted; no format conversions are performed and, therefore, no
Floating-Point exceptions occur due to these operations.
Data may also be directly moved between the floating-point coprocessor and the processor by move to
coprocessor and move from coprocessor instructions. Like the floating-point load and store operations,
move to/from operations perform no format conversions and never cause Floating-Point exceptions.
An additional pair of coprocessor registers are available, called Floating-Point Control registers for
which the only data movement operation supported are moves to and from processor General-Purpose
Registers.
16.2.2
Floating-Point Computational Instructions
The floating-point unit’s operation set includes the flowings:
•
floating-point addition
•
floating-point subtraction
•
floating-point multiplication
•
floating-point division
•
floating-point square root
16-2
Chapter16 FPU Instruction Set Details
•
conversion between fixed-point and floating-point format
•
conversion between single-precision and double-precision floating-point formats
•
floating-point comparision.
These operations satisfy IEEE Standard 754’s requirements for accuracy. Specifically, these operations
obtain a result which is identical to performing the result with infinite precision and then rounding to the
specified format, using the current rounding mode.
Instructions must specify the certain format of their operands. Only the format conversion instructions
support mixed format operations.
16.3 Load and Store Instructions
In the TX49, the instruction immediately following a load may use the contents of the register loaded. In
such cases, the hardware will interlock, requiring additional real cycles, so scheduling load delay slots is still
desirable, although not absolutely required for functional code.
When the FR bit in the Status register equals zero, the Floating-Point General Registers (FGR) are 32-bits
wide. When the FR bit in the Status register equals one, the Floating-Point General Registers (FGR) are 64-bits
wide. The behavior of the load/store instructions in dependent on the width of the FGRs.
In the load/store operation descriptions, the functions listed in Table 16.3.1 are used to summarize the
handling of virtual addresses and physical memory.
Table 16.3.1 Load/Store Common Functions
Function
Meaning
AddressTranslation
Uses the TLB to find the physical address given the virtual address. The function fails and an exception
is taken if the required translation is not present in the TLB.
LoadMemory
Uses the cache and main memory to find the contents of the word containing the specified physical
address. The low-order two bits of the address and the access type field indicates which of each of the
four bytes within the data word need to be returned. If the cache is enabled for this access, the entire
wordis returned and loaded into the cache.
StoreMemory
Uses the cache, write buffer and main memory to store the word or part of word specified as data in the
word containing the specified physical address. The low-order two bits of the address and the access
type field indicates which of each of the four bytes within the data word should be stored.
16-3
Chapter16 FPU Instruction Set Details
Figure 16.3.1 shows the I-Type instruction format used by load and store operations.
I-Type (Immediate)
31
where:
op
base
ft
26 25
21 20
16 15
0
op
base
ft
offset
6
5
5
16
is a 6-bit operation code
is the 5-bit base register specifier
is a 5-bit. source (for stores) or destination (for loads)
FPA register specifier
offset is the 16-bit signed immediate offset
Figure 16.3.1 Load and Store Instruction Format
All coprocessor loads and stores reference aligned word data items. Thus, for word loads and stores, the
access type field is always WORD, and the low-order two bits of the address must always be zero.
For double word loads and stores, the access type field is always DOUBLEWORD, and the low-order three
bits of the address must always be zero.
Regardless of byte-numbering order (endianness), the address specifies that byte which has the smallest
byte-address of all of the bytes in the addressed field. For a Big-endian machine, this is the leftmost byte; for a
Little-endian machine, this is the rightmost byte.
16-4
Chapter16 FPU Instruction Set Details
16.4 Computational Instructions
Computational instructions include all of the arithmetic floating-point operations performed by the FPU.
Figure 16.4.1 shows the R-Type instruction format used for computational operations.
R-Type (Register)
31
26 25
where:
COP1
fmt
fs
ft
fd
function
21 20
16 15
11 10
6 5
0
COP1
fmt
ft
fs
fd
function
6
5
5
5
5
6
is a 6-bit major operation code
is a 5-bit format specifier
is a 5-bit source1 register
is a 5-bit source2 register
is a 5-bit destination register
is a 6-bit function field
Figure 16.4.1 Computational Instruction Format
Each floating-point instruction can be applied to a number of operand formats. The operand format for an
instruction is specified by the 5-bit fmt field; decoding for this field is shown in Table 16.4.1.
Table 16.4.1 Format Field Decoding
Code
Mnemonic
Size
Format
16
S
single
Binary floating-point
17
D
double
Binary floating-point
18
Reserved
19
Reserved
20
W
single
32-bit binary fixed-point
21
L
longword
64-bit binary fixed-point
22 to 31
Reserved
The function indicates which floating-point operation is to be performed. Table 16.4.2 lists all floating-point
instructions.
16-5
Chapter16 FPU Instruction Set Details
Table 16.4.2 Floating-Point Instructions and Operations
Function[5:0]
Mnemonic
Operation
0
ADD
Add
1
SUB
Subtract
2
MUL
Multiply
3
DIV
Divide
4
SQRT
Square root
5
ABS
Absolute value
6
MOV
Move
7
NEG
Negate
8
ROUND.L
Convert to single fixed-point, rounded to nearest/even
9
TRUNC.L
Convert to single fixed-point, rounded toward zero
10
CEIL.L
Convert to single fixed-point, rounded to +∞
11
FLOOR.L
Convert to single fixed-point, rounded to −∞
12
ROUND.W
Convert to single fixed-point, rounded to nearest/even
13
TRUNC.W
Convert to single fixed-point, rounded toward zero
14
CEIL.W
Convert to single fixed-point, rounded to +∞
15
FLOOR.W
Convert to single fixed-point, rounded to −∞
16 to 31
–
Reserved
32
CVT.S
Convert to single floating-point
33
CVT.D
Convert to double floating-point
34
–
Reserved
35
–
Reserved
36
CVT.W
Convert to binary fixed-point
37
CVT.L
Convert to 64-bit binary fixed-point
38 to 47
–
Reserved
48 to 63
C
Floating-point compare
16-6
Chapter16 FPU Instruction Set Details
In the following pages, the notation FGR refers to the FPU’s 32 General-Purpose Registers FGRO through
FGR31, and FPR refers to the FPU’s Floating-Point Registers. When the FR bit in the Status register (SR26)
equals zero, only the even Floating-Point Registers are valid and the FPU’s 32 General-Purpose Registers are
32-bits wide. When the FR bit in the Status register (SR26) equals one, both odd and even Floating-Point
Registers may be used and the FPU’s 32 General-Purpose Registers are 64-bits wide.
The following routines are used in the description of the floating-point operations to get the value of an FPR
or to change the value of an FGR:
32 Bit Mode
value < - - ValueFPR (fpr, fmt)
/* undefined for odd fpr */
case fmt of
S, W:
value < - - FGR[fpr + 0]
D:
/* undefined for fpr not even */
value < - - FGR[fpr + 1]⎥ ⎢FGR[fpr + 0]
end
StoreFPR (fpr, fmt, value):
/* undefined for odd fpr */
case fmt of
S, W:
FGR[fpr + 1] < - - undefined
FGR[fpr + 0] < - - value
D:
FGR[fpr + 1] < - - value63:32
FGR[fpr + 0] < - - value31:0
end
64 Bit Mode
value < - - ValueFPR (fpr, fmt)
case fmt of
S:
value < - - FGR[fpr]31:0
D, L:
value < - - FGR[fpr]
W:
value < - - FGR[fpr]
end
StoreFPR (fpr, fmt, value):
case fmt of
S, W:
FGR[fpr] < - - undefined32⎥ ⎢value
D, L:
FGR[fpr] < - - value
end
16-7
Chapter16 FPU Instruction Set Details
16.5 Bit Encoding of FPU Instruction Opcodes
Table 16.5.1 shows the bit codes for all TX49 FPU instructions (ISA and extended ISA).
Table 16.5.1 FPU Operation Code Bit Encoding
Opcode
31
26
0
Opcode
[31:29]
[28:26]
0
1
2
3
4
5
6
7
0
1
2
COP1
3
4
5
6
LWC1
LDC1 θ
7
SWC1
SDC1 θ
Sub
31
26 25
Opcode
21
0
Sub
[23:21]
0
1
2
3
4
5
6
7
0
MF
DMF η θ
CF
δ
MT
DMT η θ
CT
δ
1
BC
δ
δ
δ
δ
δ
δ
δ
2
S
Dθ
δ
δ
W
Lηθ
δ
δ
3
δ
δ
δ
δ
δ
δ
δ
δ
[25:24]
16-8
Chapter16 FPU Instruction Set Details
Br
31
26
20
Opcode
16
0
Br
[18:16]
0
1
2
3
4
5
6
7
0
BCF
BCT
BCFL
BCTL
γ
γ
γ
γ
1
γ
γ
γ
γ
γ
γ
γ
γ
2
γ
γ
γ
γ
γ
γ
γ
γ
3
γ
γ
γ
γ
γ
γ
γ
γ
[20:19]
CP1 Function
31
26
5
0
CP1
Function
Opcode
[5:3]
[2:0]
0
1
2
3
4
5
6
7
0
ADD
SUB
MUL
DIV
SQRT
ABS
MOV
NEG
TRUNC.L η θ
CEIL.L η θ
FLOOR.L η θ
ROUND.W
TRUNC.W
CEIL.W
FLOORW
2
1 ROUND.L η θ
δ
δ
δ
δ
δ
δ
δ
δ
3
δ
δ
δ
δ
δ
δ
δ
δ
4
CVT.S
CVT.D θ
δ
δ
CVT.W
CVT.L η θ
δ
δ
5
δ
δ
δ
δ
δ
δ
δ
δ
6
C.F
C.UN
C.EQ
C.UEQ
C.OLT
C.ULT
C.OLE
C.ULE
7
C.SF
C.NGLE
C.SEQ
C.NGL
C.LT
C.NGE
C.LE
C.NGT
Key:
Note:
γ:
This opcode is reserved for future use. An attempt to execute it causes a Reserved Instruction
exception.
δ:
Thie opcode is reserved for future use. An attempt to execute it causes a Unimplemented
operation exceptions in all current implementations.
η:
This opcode is valid only when MIPS III instructions are enabled. An attempt to execute these
without MIPS III instruction enabled will cause an Unimplemented operation exception.
θ:
This opcode is valid only when the TX49 has a double precision FPU in hardware. An attempt
to execute these without it will cause an Unimplemented operation exception.
FPU Instructions are valid only when TX49 has with FPU(CP1). An attempt to execute these
insturctions causes a Coprocessor Unusable exception, independent of C0_SR(bit 29)’s value.
16-9
Chapter16 FPU Instruction Set Details
16-10
Chapter 17 Electrical Characteristics
17. Electrical Characteristics
ESD Precautions: For handling precautions, see Section 3.1.1, Electrostatic Discharge (ESD), in the chapter on
General Safety Precautions and Usage Considerations.
17.1 TMPR4956C Electrical Characteristics
17.1.1
Absolute Maximum Ratings
VSS = 0 V (GND)
Parameter
Symbol
Ratings
Unit
Supply Voltage (I/O)
VCCIOMax
−0.3 to 3.9
V
Supply Voltage (Core)
VCCIntMax
−0.3 to 2.0
V
VIN
−0.3 to VCCIO + 0.3
V
TSTG
−40 to + 125
°C
Input Voltage (Note 2)
Storage Temperature
Note1: The absolute maximum ratings are rated values that must not be exceeded during operation, even
for an instant. Any one of the ratings must not be exceeded. If any absolute maximum rating is
exceeded, a device may break down or its performance may be degraded, causing it to catch fire
or explode resulting in injury to the user. Thus, when designing products which include this device,
ensure that no absolute maximum rating value will ever be exceeded.
Note 2: Even VCCIO + 0.3 shall not exceed the VCCIOMax rating.
17.1.2
Recommended Operating Conditions
VSS = 0 V (GND)
Parameter
Symbol
Min
Max
I/O = 3.3 V
Conditions
3.1
3.5
Unit
V
I/O = 2.5 V
2.3
2.7
V
Supply Voltage (I/O)
VCCIO
Supply Voltage (Core)
VCCInt
1.188
1.312
V
TC
−20
+85
°C
Operating Case Temperature
Note:
The recommended operating conditions for a device are those under which it can be guaranteed
that the device will operate as specified. If the device is used under operating conditions other than
the recommended operating conditions (supply voltage, operating temperature range, specified
AC and DC values, etc.), malfunction may occur. Thus, when designing products which include
this device, ensure that the recommended operating conditions for the device are always adhered
to.
17-1
Chapter 17 Electrical Characteristics
17.1.3
DC Characteristics
17.1.3.1 DC Characteristics
TC = −20°C to 85°C, VCCInt = 1.25 V ± 5%, VCCIO = 3.3 V ± 0.2V or 2.5 V ± 0.2 V
Parameter
Symbol
Output High Voltage
VOH
Output Low Voltage
VOL
Input High Voltage
IOH = −16 mA (16-mA buffer)
IOL = 8 mA (8-mA buffer)
IOL = 16 mA (16-mA buffer)
Min
Max
Units
VCCIO − 0.6
⎯
V
⎯
0.4
V
VIH
Except for MasterClock
2
VCCIO + 0.3
VIHC
Applies to MasterClock
0.8VCCIO
VCCIO + 0.3
Except for MasterClock input
when I/O = 3.3 V
−0.5
0.8
Except for MasterClock input
when I/O = 2.5 V
−0.5
0.6
−0.5
0.2VCCIO
⎯
±10
µA
VIL
Input Low Voltage
Conditions
IOH = −8 mA (8-mA buffer)
V
V
VILC
Applies to MasterClock
Input Leakage
ILI
Applies to pins except(*2) (*3)
Input Leakage
(Note 1)
(with Pull-up)
ILlu
−70
−10
µA
Input Leakage
(with Pull-down) (Note 2)
ILId
10
70
µA
Output Leakage
ILO
⎯
±20
µA
Input Capacitance
CIN
⎯
10
pF
Note 1: Applies to the following input pins that have an internal pull-up resistor. Int [5:0]*, NMI*, Reset*, JTMS, JTCK,
JTDI, TPC[1] (If they need be pulled down, use a resistor with ≤ 20 kΩ.)
Note 2: Applies to the following input pins that have an internal pull-down resistor. TRST*, RdRdy*, TPC[2], TPC[3]
(If they need be pulled up, use a resistor with ≤ 20 kΩ.)
17.1.3.2 Operating Current
TC = −20°C to 85°C, VCCInt = 1.25 V ± 5%, VCCIO = 3.3 V ± 0.2 V or 2.5 V ± 0.2 V
Parameter
Symbol
Conditions
Typ.
Max
Units
Operating Current 1
(Core Power Supply: when
Normal Operating Mode)
ICCInt1
CPUCLK = 400 MHz
350
640
mA
Operating Current 2
(Core Power Supply: when
Drystone 2.1 running)
ICCInt2
CPUCLK = 400 MHz
280
520
mA
Operating Current 3
(Core Power Supply: when
HALT Mode operating)
ICCInt3
CPUCLK = 400 MHz
130
300
mA
Operating Current 4
(Core Power Supply: when
MasterClock Stopped)
ICCInt4
MasterClock = 0 MHz
CPUCLK = 0 MHz
30
200
mA
MasterClock = 133 MHz
BufSel = 1 50% (8-mA buffer)
Load = 25 pF
130
200
MasterClock = 100 MHz
BufSel = 1 50% (8-mA buffer)
Load = 25 pF
130
180
MasterClock = 133 Hz
BufSel = 0 100% (16-mA buffer)
Load = 25 pF
100
150
MasterClock = 100 MHz
BufSel = 0 100% (16-mA buffer)
Load = 25 pF
80
Operating current
(When 3.3 V Power supply for
I/O pin)
Operating current
(When 2.5 V Power supply for
I/O pin)
ICCIO33
ICCIO25
17-2
mA
mA
130
Chapter 17 Electrical Characteristics
17.1.4
AC Characteristics
17.1.4.1 Clock Timing
TC = −20°C to 85°C, VCCInt = 1.25 V ± 5%, VCCIO = 3.3 V ± 0.2 V or 2.5 V ± 0.2 V
Min
Max
Units
MasterClock High Width
Parameter
Symbol
tMCH
Transition ≤ 2 ns
Conditions
2
⎯
ns
MasterClock Low Width
tMCL
Transition ≤ 2 ns
2
⎯
ns
MasterClock Frequency (Note 1)
fMCK
33
133
MHz
Internal Operation Frequency
⎯
133
400
MHz
Products for
400 MHz
MasterClock Period
tMCP
⎯
7.5
30
ns
MasterClock Rise Time
tMCR
⎯
⎯
2
ns
MasterClock Fall Time
tMCF
⎯
⎯
2
ns
Note 1: Operation of the TX4956C is only guaranteed with the Phase Lock Loop enabled.
Note 2: All output timings assume a 25-pF capacitive load.
17.1.4.2 System Interface
TC = −20°C to 85°C, VCCInt = 1.25 V ± 5%, VCCIO = 3.3 V ± 0.2 V
Parameter
Symbol
Data Output (Note 1, 2, 3)
tDO
Conditions
Min
Max
BufSel = 0 100%
(16-mA buffer)
1.0
(Note 4)
4.0
BufSel = 1 50%
(8-mA buffer)
1.0 (Note 4)
4.5
Units
ns
Data Setup (Note 3)
tDS
⎯
2.3
⎯
ns
Data Hold (Note 3)
tDH
⎯
0.5
⎯
ns
TC = −20°C to 85°C, VCCInt = 1.25 V ± 5%, VCCIO = 2.5 V ± 0.2 V
Parameter
Data Output
(Note 1, 2, 3)
tDO
Conditions
Min
Max
BufSel = 0 100%
(16-mA buffer)
1.0 (Note 4)
4.5
BufSel = 1 50%
(8-mA buffer)
1.0 (Note 4)
5.0
Units
ns
Data Setup (Note 3)
tDS
⎯
2.5
⎯
ns
Data Hold (Note 3)
tDH
⎯
0.5
⎯
ns
Note 1:
Note 2:
Note 3:
Note 4:
17.1.5
Symbol
Timings are measured from 1.5 V of MasterClock to 1.5 V of each signal.
Capacitive load for all output timings is 25 pF.
Applies to all system interface signals.
Offers a guarantee of design.
Timing Diagrams
17.1.5.1 Clock Timing
tMCP
tMCL
tMCH
tMCL
MasterClock
tMCM
0.8 *VCCIO
0.2 *VCCIO
1.5 V
tMCR
17-3
tMCF
Chapter 17 Electrical Characteristics
17.1.5.2 Clock Relationships
Cycle
1
2
3
4
MasterClock
CPUCLK
(Internal Signal)
GBUSCLK
(Internal Signal)
SysAD Driven
D
D
D
D
tDO
SysAD
Received
D
D
D
D
tDS
tDH
17.1.5.3 System Interface Timing
MasterClock
GBUSCLK
(Internal Signal)
tDO
tDS
SysAD
SysCmd
Valid Output
tDO
Valid Input
tDH
ValidOut*,
Release*
Validln*,
ExtRqst*,
WrRdy*,
RdRdy*,
Int[5:0]*, NMI*
tDH
tDS tDH
Valid
Input
17-4
Chapter 17 Electrical Characteristics
17.1.5.4 Power-On Reset Timing
VCC IO
VCC Int
VCC PLL
MasterClock
(MClk)
GBUSCLK
(Internal Clock)
PLLReset*
MasterClock & PLL Stabilization Time
≥ 1 ms
≥ 10 ms
ColdReset*
Reset*
17.1.5.5 ColdReset Timing
MasterClock
tDS tDH
DivMode[2:0]
tDS tDH
≥ 16 MasterClock cycles
Reset*
≥ 64,000 MasterClock cycles
ColdReset*
17.1.5.6 Soft Reset Timig
MasterClock
tDS tDH
tDS
Reset*
≥ 16 MasterClock cycles
ColdReset*
17-5
Chapter 17 Electrical Characteristics
17-6
Chapter 18 Package Dimension
18. Package Dimension
18.1 TMPR4956CXBG
18-1
Chapter 18 Package Dimension
18-2
Appendix A PLL Passive Components
Appendix A. PLL Passive Components
The Phase Locked Loop circuit requires several passive components for proper operation, which are connected
to VccPLL, and VssPLL, as illustrated in Figure A.1.
VccInt
TX4956
R
L
VccPLL
C1
C2
C3
VssPLL
R
L
C1, C2, C3, R and L are Board
Components which should be placed
as close as possible to the processor.
VSS
Figure A.1 PLL Recommended Circuit
Values:
•
R = 5.6 Ω (Note 1)
•
L = 2.2 µH
•
C1 = 1 nF (Note 1)
•
C2 = 82 nF (Note 1)
•
C3 = 10 µF (Note 1)
•
VccInt = 1.25 V ± 5%
The inductors (L) can be used as alternatives to the resistors (R) to filter the power supply.
It is essential to isolate the analog power and ground for the PLL circuit (VccPLL/VssPLL) from the regular
power and ground (VccInt/Vss).
Note 1: These value should be changed to suitable value for each board.
A-1
Appendix A PLL Passive Components
A-2
Appendix B Movement parameter setting of a processor
Appendix B. Movement parameter setting of a processor
A table explains movement parameter with a processor.
Item
Writeback protocol
Description
These modes are selected by G2SConfig-Register.
Write mode
Writeback data rate
Endian set
R4000 compatible
64-bit:ADxx
32-bit:AWxx
01
Reserved
reserved
10
Reissue write
64-bit:AD
32-bit:AW
11
Pipeline write
64-bit:AD
32-bit:AW
These modes are selected by G2SConfig-Register.
Date rate
Clock multiplier
(Clock ratio of MasterClock)
00
0
Consecutive
translation
64-bit:ADDDD
32-bit:AWWWWWWW
1
Dummy cycle
64-bit:ADxxDxxDxxDxx
32-bit:AWxxWxxWxxWxx
WxxWxxWxxWxx
These modes are selected by external pin (DivMode[2:0]) which are loaded at
Power-on or deasserting of ColdReset*.
DivMode[2:0]
EC-bit
000
010
ratio
1:4
001
111
1:2.5
010
000
1:2
011
001
1:3
100
100
1:3.5
101
101
1:4.5
110
110
1:5
111
011
1:6
Endian is selected by external pin (Endian) which are loaded at Power-on or
deasserting of ColdReset*.
0: Little Endian
1: Big Endian
Timer Interrupt
Timer-Interrupt is selected by external pin (TintDis).
0: Timer-Interrup is enable
1: Timer-Interrupt is disable
SysAD bus width
SysAD bus width is selected by external pin (BSIZE64*).
0: 64-bit external bus width
1: 32-bit external bus width
SysAD bus protocol type
SysAD bus protocol type is selected by external pin (MODE43*) which are loaded
at Power-on or deasserting of ColdReset*.
0: R4300 type (only support 32-bit external bus width)
1: R5000 type
Note 1: Address (32-bit), D: Double Word (64-bit), W: Word (32-bit), x:Idle cycle
Note 2: Initial set of data rate
Single write: 64-bit width ADxx (R4000 compatible), 32-bit width AWxx
Block write: 64-bit width ADDDD, 32-bit width AWWWWWWWW
B-1
Appendix B Movement parameter setting of a processor
B-2