background image

INSTRUCTION SET REFERENCE

6-96

6.2.57

scanbyte

Mnemonic:

scanbyte

Scan Byte Equal

Format:

scanbyte

src1,

src2

reg/lit

reg/lit

Description:

Performs byte-by-byte comparison of src1 and src2 and sets condition code
to 010

2

 when any two corresponding bytes are equal. When no corresponding

bytes are equal, condition code is set to 000

2

.

Action:

if((src1 & 0x000000FF) == (src2 & 0x000000FF)

|| (src1 & 0x0000FF00) == (src2 & 0x0000FF00)
|| (src1 & 0x00FF0000) == (src2 & 0x00FF0000)
|| (src1 & 0xFF000000) == (src2 & 0xFF000000))

AC.cc = 010

2

;

else

AC.cc = 000

2

;

Faults:

 STANDARD

Refer to 

section 6.1.6, “Faults” (pg. 6-5)

.

Example:

# Assume r9 = 0x11AB1100

scanbyte 0x00AB0011, r9# AC.cc 

=

 010

2

 

Opcode:

scanbyte

5ACH

REG

See Also:

bswap

Side Effects:

Sets the condition code in the arithmetic controls.

Содержание i960 Jx

Страница 1: ...Release Date December 1997 Order Number 272483 002 i960 Jx Microprocessor Developer s Manual ...

Страница 2: ...thout notice Designers must not rely on the absence or characteristics of any features or instructions marked reserved or undefined Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them The i960 Jx Processor may contain design defects or errors known as errata which may cause the product to devi...

Страница 3: ... 8 1 3 1 Reserved and Preserved 1 8 1 3 2 Specifying Bit and Signal Values 1 9 1 3 3 Representing Numbers 1 9 1 3 4 Register Names 1 9 1 4 Related Documents 1 10 CHAPTER 2 DATA TYPES AND MEMORY ADDRESSING MODES 2 1 DATA TYPES 2 1 2 1 1 Integers 2 2 2 1 2 Ordinals 2 2 2 1 3 Bits and Bit Fields 2 3 2 1 4 Triple and Quad Words 2 3 2 1 5 Register Data Alignment 2 3 2 1 6 Literals 2 4 2 2 BIT AND BYTE ...

Страница 4: ...ction Cache 3 16 3 5 6 Data Cache 3 17 3 6 LOCAL REGISTER CACHE 3 17 3 7 PROCESSOR STATE REGISTERS 3 17 3 7 1 Instruction Pointer IP Register 3 17 3 7 2 Arithmetic Controls AC Register 3 18 3 7 2 1 Initializing and Modifying the AC Register 3 18 3 7 2 2 Condition Code AC cc 3 19 3 7 3 Process Controls PC Register 3 21 3 7 3 1 Initializing and Modifying the PC Register 3 22 3 7 4 Trace Controls TC ...

Страница 5: ...ovement 5 5 5 2 1 1 Load and Store Instructions 5 5 5 2 1 2 Move 5 6 5 2 1 3 Load Address 5 6 5 2 2 Select Conditional 5 6 5 2 3 Arithmetic 5 7 5 2 3 1 Add Subtract Multiply Divide Conditional Add Conditional Subtract 5 8 5 2 3 2 Remainder and Modulo 5 8 5 2 3 3 Shift Rotate and Extended Shift 5 9 5 2 3 4 Extended Arithmetic 5 10 5 2 4 Logical 5 10 5 2 5 Bit Bit Field and Byte Operations 5 11 5 2 ...

Страница 6: ...R3 As Destinations for MDU Instructions 5 23 5 3 2 3 Use Global Registers g0 g14 As Destinations for MDU Instructions 5 23 5 3 2 4 Execute in Imprecise Fault Mode 5 24 CHAPTER 6 INSTRUCTION SET REFERENCE 6 1 NOTATION 6 1 6 1 1 Alphabetic Reference 6 2 6 1 2 Mnemonic 6 2 6 1 3 Format 6 2 6 1 4 Description 6 3 6 1 5 Action 6 3 6 1 6 Faults 6 5 6 1 7 Example 6 5 6 1 8 Opcode and Instruction Format 6 ...

Страница 7: ... FAULT cc 6 52 6 2 30 flushreg 6 54 6 2 31 fmark 6 55 6 2 32 halt 6 56 6 2 33 icctl 6 58 6 2 34 intctl 6 66 6 2 35 intdis 6 68 6 2 36 inten 6 69 6 2 37 LOAD 6 70 6 2 38 lda 6 73 6 2 39 mark 6 74 6 2 40 modac 6 75 6 2 41 modi 6 76 6 2 42 modify 6 77 6 2 43 modpc 6 78 6 2 44 modtc 6 80 6 2 45 MOVE 6 81 6 2 46 muli mulo 6 84 6 2 47 nand 6 85 6 2 48 nor 6 86 6 2 49 not notand 6 87 6 2 50 notbit 6 88 6...

Страница 8: ... 2 5 Previous Frame Pointer 7 5 7 1 2 6 Return Type Field 7 5 7 1 2 7 Return Instruction Pointer 7 5 7 1 3 Call and Return Action 7 5 7 1 3 1 Call Operation 7 6 7 1 3 2 Return Operation 7 7 7 1 4 Caching Local Register Sets 7 7 7 1 4 1 Reserving Local Register Sets for High Priority Interrupts 7 8 7 1 5 Mapping Local Registers to the Procedure Stack 7 11 7 2 MODIFYING THE PFP REGISTER 7 11 7 3 PAR...

Страница 9: ...dling Procedure Actions 8 13 8 7 2 Program Resumption Following a Fault 8 13 8 7 2 1 Faults Happening Before Instruction Execution 8 13 8 7 2 2 Faults Happening During Instruction Execution 8 14 8 7 2 3 Faults Happening After Instruction Execution 8 14 8 7 3 Return Instruction Pointer RIP 8 14 8 7 4 Returning to the Point in the Program Where the Fault Occurred 8 15 8 7 5 Returning to a Point in t...

Страница 10: ...egister 9 7 9 2 7 5 Data Address Breakpoint DAB Registers 9 9 9 2 7 6 Instruction Breakpoint IPB Registers 9 10 9 3 GENERATING A TRACE FAULT 9 11 9 4 HANDLING MULTIPLE TRACE EVENTS 9 11 9 5 TRACE FAULT HANDLING PROCEDURE 9 12 9 5 1 Tracing and Interrupt Procedures 9 12 9 5 2 Tracing on Calls and Returns 9 12 9 5 2 1 Tracing on Explicit Call 9 13 9 5 2 2 Tracing on Implicit Call 9 14 9 5 2 3 Tracin...

Страница 11: ... 5 INTERRUPT STACK AND INTERRUPT RECORD 11 7 11 6 MANAGING INTERRUPT REQUESTS 11 8 11 6 1 External Interrupts 11 8 11 6 2 Non Maskable Interrupt NMI 11 8 11 6 3 Timer Interrupts 11 9 11 6 4 Software Interrupts 11 9 11 6 5 Posting Interrupts 11 9 11 6 5 1 Posting Software Interrupts via sysctl 11 9 11 6 5 2 Posting Software Interrupts Directly in the Interrupt Table 11 11 11 6 5 3 Posting External ...

Страница 12: ...11 37 11 9 4 Maximum Interrupt Latency 11 38 11 9 4 1 Avoiding Certain Destinations for MDU Operations 11 42 11 9 4 2 Masking Integer Overflow Faults for syncf 11 42 CHAPTER 12 INITIALIZATION AND SYSTEM REQUIREMENTS 12 1 OVERVIEW 12 1 12 2 INITIALIZATION 12 2 12 2 1 Reset State Operation 12 3 12 2 2 Self Test Function STEST FAIL 12 6 12 2 2 1 The STEST Pin 12 7 12 2 2 2 External Bus Confidence Tes...

Страница 13: ... 3 1 Bus Width 13 5 13 4 Physical Memory Attributes at Initialization 13 5 13 4 1 Bus Control BCON Register 13 6 13 5 Boundary Conditions for Physical Memory Regions 13 7 13 5 1 Internal Memory Locations 13 7 13 5 2 Bus Transactions Across Region Boundaries 13 7 13 5 3 Modifying the PMCON Registers 13 7 13 6 Programming the Logical Memory Attributes 13 8 13 6 1 Defining the Effective Range of a Lo...

Страница 14: ... 14 33 14 3 BUS APPLICATIONS 14 34 14 3 1 System Block Diagrams 14 34 14 3 1 1 Memory Subsystems 14 37 14 3 1 2 I O Subsystems 14 37 CHAPTER 15 TEST FEATURES 15 1 ON CIRCUIT EMULATION ONCE 15 1 15 1 1 Entering Exiting ONCE Mode 15 1 15 2 BOUNDARY SCAN JTAG 15 2 15 2 1 Boundary Scan Architecture 15 2 15 2 1 1 TAP Controller 15 2 15 2 1 2 Instruction Register 15 2 15 2 1 3 Test Data Registers 15 2 1...

Страница 15: ...NSIDERATIONS FOR WRITING PORTABLE CODE A 1 CORE ARCHITECTURE A 1 A 2 ADDRESS SPACE RESTRICTIONS A 2 A 2 1 Reserved Memory A 2 A 2 2 Initialization Boot Record A 2 A 2 3 Internal Data RAM A 2 A 2 4 Instruction Cache A 2 A 3 Data and Data Structure Alignment A 3 A 4 RESERVED LOCATIONS IN REGISTERS AND DATA STRUCTURES A 4 A 5 INSTRUCTION SET A 4 A 5 1 Instruction Timing A 4 A 5 2 Implementation Speci...

Страница 16: ...C 1 GENERAL INSTRUCTION FORMAT C 1 C 2 REG FORMAT C 2 C 3 COBR FORMAT C 3 C 4 CTRL FORMAT C 4 C 5 MEM FORMAT C 4 C 5 1 MEMA Format Addressing C 5 C 5 2 MEMB Format Addressing C 6 APPENDIX D REGISTER AND DATA STRUCTURES D 1 REGISTERS D 3 GLOSSARY INDEX ...

Страница 17: ... Breakpoint Resource Request 6 115 Figure 7 1 Procedure Stack Structure and Local Registers 7 3 Figure 7 2 Frame Spill 7 9 Figure 7 3 Frame Fill 7 10 Figure 7 4 System Procedure Table 7 16 Figure 7 5 Previous Frame Pointer Register PFP r0 7 20 Figure 8 1 Fault Handling Data Structures 8 1 Figure 8 2 Fault Table and Fault Table Entries 8 5 Figure 8 3 Fault Record 8 7 Figure 8 4 Storage of the Fault...

Страница 18: ...es Termination 12 39 Figure 12 12 AC Termination 12 39 Figure 12 13 Avoid Closed Loop Signal Paths 12 41 Figure 13 1 PMCON and LMCON Example 13 2 Figure 13 2 PMCON Register Bit Description 13 5 Figure 13 3 Bus Control Register BCON 13 6 Figure 13 4 Logical Memory Template Starting Address Registers LMADR0 1 13 8 Figure 13 5 Logical Memory Template Mask Registers LMMR0 1 13 9 Figure 13 6 Default Lo...

Страница 19: ...r 15 17 Figure 15 5 Timing diagram illustrating the loading of Data Register 15 18 Figure C 1 Instruction Formats C 1 Figure D 1 AC Arithmetic Controls Register D 3 Figure D 2 PC Process Controls Register D 4 Figure D 3 Procedure Stack Structure and Local Registers D 5 Figure D 4 System Procedure Table D 6 Figure D 5 PFP Previous Frame Pointer Register r0 D 7 Figure D 6 Fault Table and Fault Table...

Страница 20: ...3 Figure D 25 PMCON Register Bit Description D 23 Figure D 26 BCON Bus Control Register D 24 Figure D 27 DLMCON Default Logical Memory Configuration Register D 24 Figure D 28 LMADR0 1 Logical Memory Template Starting Address Registers D 25 Figure D 29 LMMR0 1 Logical Memory Mask Registers D 25 ...

Страница 21: ...ns 5 7 Table 6 1 Pseudo Code Symbol Definitions 6 4 Table 6 2 Faults Applicable to All Instructions 6 4 Table 6 3 Common Faulting Conditions 6 5 Table 6 4 Condition Code Mask Descriptions 6 7 Table 6 5 Condition Code Mask Descriptions 6 21 Table 6 6 Condition Code Settings 6 31 Table 6 7 Condition Code Settings 6 32 Table 6 8 Condition Code Settings 6 33 Table 6 9 Condition Code Mask Descriptions ...

Страница 22: ... RAM 11 36 Table 11 3 Base Interrupt Latency 11 37 Table 11 4 Worst Case Interrupt Latency Controlled by divo to Destination r15 11 38 Table 11 5 Worst Case Interrupt Latency Controlled by divo to Destination r3 11 39 Table 11 6 Worst Case Interrupt Latency Controlled by calls 11 39 Table 11 7 Worst Case Interrupt Latency When Delivering a Software Interrupt 11 40 Table 11 8 Worst Case Interrupt L...

Страница 23: ...odings B 2 Table B 3 COBR Format Instruction Encodings B 6 Table B 4 CTRL Format Instruction Encodings B 7 Table B 5 Cycle Counts for sysctl Operations B 7 Table B 6 Cycle Counts for icctl Operations B 8 Table B 7 Cycle Counts for dcctl Operations B 8 Table B 8 Cycle Counts for intctl Operations B 8 Table B 9 MEM Format Instruction Encodings B 9 Table B 10 Addressing Mode Performance B 10 Table C ...

Страница 24: ......

Страница 25: ...1 INTRODUCTION ...

Страница 26: ......

Страница 27: ...ontrol registers external bus Programmable Bus Control Unit 80960JF JD 4 Kbyte Two way Set Associative Interrupt Controller Control Address Instruction Sequencer Physical Region Configuration Interrupt Port 1 Kbyte Data RAM Instruction Cache Memory Interface Execution Multiply Unit Divide Unit Memory Mapped Register Interface Data Cache JF JD 2 Kbyte Direct Mapped Data Bus Global Local Register Fi...

Страница 28: ...ect mapped data cache The i960 JF and JD processors feature a 2 Kbyte direct mapped data cache that is write through and write allocate i960 JA processors feature a 1 Kbyte direct mapped data cache These processors have a line size of four words and implement a natural fill policy Each line in the cache has a valid bit to reduce fetch latency on cache misses each word within a line also has a vali...

Страница 29: ...ides a flexible low latency means for requesting interrupts It handles the posting of interrupts requested by hardware and software sources Acting indepen dently from the core the interrupt controller compares the priorities of posted interrupts with the current process priority off loading this task from the core The interrupt controller is compatible with i960 CA CF processors The interrupt cont...

Страница 30: ...request to the i960 Jx processor interrupt controller See CHAPTER 10 TIMERS for a complete description 1 1 7 Memory Mapped Control Registers MMR Control registers in the i960 Jx processor are memory mapped to allow for visibility to application software This includes registers for memory configuration internally cached PRCB data breakpoint registers and interrupt control These registers are mapped...

Страница 31: ...electrical specifications such as DC and AC parametrics operating conditions and packaging specifications Such information is found in the product s data sheets 80960JA JF Embedded 32 bit Microprocessor Data Sheet 272504 80960JD Embedded 32 bit Microprocessor Data Sheet 272596 80L960JA JF 3 3 V Embedded 32 bit Microprocessor Data Sheet 272744 80960JA JF 3 3 V Embedded 32 bit Microprocessor Data Sh...

Страница 32: ...ntain unusual values A preserved field is one that the processor does not use Software may use preserved fields for any function Reserved fields in certain data structures should be cleared set to zero when the data structure is created Clear the reserved fields when creating the Interrupt Table Fault Table and System Procedure Table Software should not modify or rely on these reserved field value...

Страница 33: ...that a number is a binary number the 2 subscript may be omitted Hexadecimal numbers are designated in text with the suffix H for example FFFF FF5AH In pseudo code action statements in the instruction reference section and occasionally in text hexadecimal numbers are represented by adding the C language convention 0x as a prefix For example FF7AH appears as 0xFF7A in the pseudo code 1 3 4 Register ...

Страница 34: ...t your local sales representative for more information on obtaining Intel documents including Specification Updates 80960JA JF Embedded 32 bit Microprocessor Data Sheet 272504 80960JD Embedded 32 bit Microprocessor Data Sheet 272596 80L960JA JF 3 3 V Embedded 32 bit Microprocessor Data Sheet 272744 80960JA JF 3 3 V Embedded 32 bit Microprocessor Data Sheet 273146 80960JD 3 3 V Embedded 32 bit Micr...

Страница 35: ...2 DATA TYPES AND MEMORY ADDRESSING MODES ...

Страница 36: ......

Страница 37: ...ong Word 64 bits Triple Word 96 bits Quad Word 128 bits Bit Field Bit Byte Short Word Triple Word Quad Word 8 Bits 16 Bits 32 Bits 64 Bits 96 Bits 128 Bits Numeric Integer Numeric Ordinal Non Numeric Byte Integer Short Integer Integer Byte Ordinal Short Ordinal Ordinal Bit Bit Field Triple Word Quad Word 8 Bits 16 Bits 32 Bits 8 Bits 16 Bits 32 Bits 1 Bit 1 32 Bits 96 Bits 128 Bits 27 to 27 1 215 ...

Страница 38: ...e or short word the value is truncated and the integer overflow condition is signalled When an overflow occurs either an AC register flag is set or the ARITH METIC INTEGER_OVERFLOW fault is generated depending on the Integer Overflow Mask bit AC om in the AC register CHAPTER 8 FAULTS describes the integer overflow fault For instructions ld load word and st store word data is moved directly between...

Страница 39: ...the bit number of its lowest numbered bit 0 31 Loading and storing bit and bit field data is normally performed using the ordinal load ldo and store sto instructions When an ldi instruction loads a bit or bit field value into a 32 bit register the processor appends sign extension bits A byte or short store can signal an integer overflow condition 2 1 4 Triple and Quad Words Triple and quad words r...

Страница 40: ...nd size When a literal is used in an instruction that requires integer operands the processor treats the literal as a positive integer value 2 2 BIT AND BYTE ORDERING IN MEMORY All occurrences of numeric and non numeric data types except bits and bit fields must start on a byte boundary Any data item occupying multiple bytes is stored as big endian or little endian The following sections further d...

Страница 41: ...bit 7 for bytes Byte ordering affects the way the i960 Jx processor handles bus accesses See section 13 6 2 Selecting the Byte Order pg 13 12 for more information Table 2 1 Memory Contents for Little and Big Endian Example ADDRESS DATA 1000H 12H 1001H 34H 1002H 56H 1003H 78H 1004H 9AH 1005H BCH 1006H DEH 1007H F0H Table 2 2 Byte Ordering for Little and Big Endian Accesses Access Example Register C...

Страница 42: ...rger than 4095 exp MEMB Register Indirect abase reg MEMB with offset abase offset exp reg MEMA with displacement abase displacement exp reg MEMB with index abase index scale reg reg scale MEMB with index and displacement abase index scale displacement exp reg reg scale MEMB Index with displacement index scale displacement exp reg scale MEMB instruction pointer IP with displacement IP displacement ...

Страница 43: ...ecified through arithmetic expressions e g x 44 or symbolic labels After evaluating an address specified with the absolute addressing mode the assembler converts the address into an offset or displacement and selects the appropriate instruction encoding format and addressing mode 2 3 2 Register Indirect Register indirect addressing modes use a register s 32 bit value as a base for address calculat...

Страница 44: ...efore displacement is added This mode uses MEMB format 2 3 4 IP with Displacement This addressing mode is used with load and store instructions to make them instruction pointer IP relative IP with displacement addressing mode references the next instruction s address plus the displacement This mode uses MEMB format 2 3 5 Addressing Mode Examples The following examples show how i960 processor addre...

Страница 45: ...d word beginning at memory location r8 r9 scaled by 4 loaded into r4 through r7 st g3 xyz g4 g5 2 Register indirect with index and displacement word in g3 stored to mem location g4 xyz g5 scaled by 2 ldis xyz r12 2 r13 Index with displacement load short integer at memory location xyz r12 into r13 and sign extended st r4 xyz ip ip with displacement store word in r4 at memory location IP xyz 8 array...

Страница 46: ......

Страница 47: ...3 PROGRAMMING ENVIRONMENT ...

Страница 48: ......

Страница 49: ... uses load and store instruc tions to access memory All operations take place at the register level The processor uses 16 global registers 16 local registers and 32 literals constants 0 31 as instruction operands The global register numbers are g0 through g15 local register numbers are r0 through r15 Several of these registers are used for dedicated functions For example register r0 is the previou...

Страница 50: ...heir contents across procedure boundaries They provide a fast and efficient means of passing parameters between procedures Architecturally Defined Data Structures FFFF FFFFH Instruction Stream Instruction Execution Processor State Registers Instruction Pointer Arithmetic Controls Process Controls Trace Controls Address Space Sixteen 32 Bit Global Registers Sixteen 32 Bit Local Registers g0 g15 r0 ...

Страница 51: ...s a new set of local registers and saves the calling procedure s local registers When the application returns from the procedure the local registers are released for the next procedure call The processor performs local register management a program need not explicitly save and restore these registers Local registers r3 through r15 are general purpose registers r0 through r2 are reserved for specia...

Страница 52: ...s Example 3 1 Register Scoreboarding 3 2 4 Literals The architecture defines a set of 32 literals that can be used as operands in many instructions These literals are ordinal unsigned values that range from 0 to 31 5 bits When a literal is used as an operand the processor expands it to 32 bits by adding leading zeros When the instruction requires an operand larger than 32 bits the processor zero e...

Страница 53: ...2 shows an example of correct and incorrect register alignment Example 3 2 Register Alignment Global registers local registers and literals are used directly as instruction operands Table 3 2 lists instruction operands for each machine level instruction format and the positions that can be filled by each register or literal movl g3 g8 Incorrect alignment resulting value in registers g8 and g9 is u...

Страница 54: ...s based on their addresses Addresses FF00 0000H through FF00 7FFFH are allocated to user space memory mapped registers Addresses FF00 8000H to FFFF FFFFH are allocated to supervisor space registers 3 3 1 1 Restrictions on Instructions that Access Memory Mapped Registers The majority of memory mapped registers can be accessed by both load ld and store st instruc tions However some registers have re...

Страница 55: ...lt 2 When the access is a store in user mode to an implemented supervisor location a TYPE MISMATCH fault occurs It is unpredictable whether a store to an unimplemented supervisor location causes a fault 3 When the access is neither of the above the access is attempted Note that an MMR may generate faults based on conditions specific to that MMR Example trying to write the timer registers in user m...

Страница 56: ...section 9 2 7 2 Hardware Breakpoints pg 9 5 for details about getting modification rights to breakpoint registers Sysctl RwG sysctl Read when Granted The value of the register can only be read by executing a sysctl instruction issued with the modify memory mapped register message type Modification rights to the register must be granted first or an OPERATION UNIMPLEMENTED fault occurs when the sysc...

Страница 57: ... 0 FF00 8400H Sysctl RwG WwG IPB1 Instruction Address Breakpoint Register 1 FF00 8404H Sysctl RwG WwG Reserved FF00 8408H to FF00 841FH DAB0 Data Address Breakpoint Register 0 FF00 8420H R W WwG DAB1 Data Address Breakpoint Register 1 FF00 8424H R W WwG Reserved FF00 8428H to FF00 843FH BPCON Breakpoint Control Register FF00 8440H R W WwG Reserved FF00 8444H to FF00 84FFH IPND Interrupt Pending Re...

Страница 58: ...al Memory Control Register 5 FF00 8628H R W Reserved FF00 862CH PMCON12_13 Physical Memory Control Register 6 FF00 8630H R W Reserved FF00 8634H PMCON14_15 Physical Memory Control Register 7 FF00 8638H R W Reserved FF00 863CH to FF00 86F8H BCON Bus Configuration Control Register FF00 86FCH R W PRCB Processor Control Block Pointer FF00 8700H RO ISP Interrupt Stack Pointer FF00 8704H R W SSP Supervi...

Страница 59: ...able interrupt table interrupt stack fault table and control table are specified in the processor control block Supervisor stack location is specified in the system procedure table User stack location is specified in the user s startup code Of these structures only the system procedure table fault table control table and initialization data structures may be in ROM the interrupt table and stacks m...

Страница 60: ...de to supervisor mode When the processor switches modes it also switches to the supervisor stack Interrupt Table section 11 4 INTERRUPT TABLE pg 11 4 The interrupt table contains vectors pointers to interrupt handling procedures When an interrupt is serviced a particular interrupt table entry is specified Fault Table section 8 3 FAULT TABLE pg 8 4 Contains pointers to fault handling procedures Whe...

Страница 61: ...ddress space such as segments For memory management an external memory management unit MMU may subdivide memory into pages or restrict access to certain areas of memory to protect a kernel s code data and stack However the processor views this address space as linear 0000 0000H Address 0000 03FFH 0000 0400H FFFF FFFFH FEFF FF2FH FEFF FF30H FEFF FF60H FEFF FF5FH Reserved Memory Code data Architectu...

Страница 62: ... external agent can read or write the same location The processor requires indivisible access within an aligned 16 byte block of memory atomic access A read modify write operation Here the external memory system must guarantee that once a processor begins a read modify write operation on an aligned 16 byte block of memory it is allowed to complete the operation before another processor or external...

Страница 63: ...fter the access is completed the processor can generate an OPERATION UNALIGNED fault when directed to do so Unaligned fault handling is enabled at initialization based on the value of the Fault Configuration Word in the Process Control Block See section 12 3 1 2 Process Control Block PRCB pg 12 16 3 5 3 Byte Word and Bit Addressing The processor provides instructions for moving data blocks of vari...

Страница 64: ...y higher numbered registers Individual bits can be addressed only in data that resides in a register bit 0 in a register is the least significant bit bit 31 is the most significant bit 3 5 4 Internal Data RAM Internal data RAM is mapped to the lower 1 Kbyte 0000H to 03FFH of the address space Loads and stores with target addresses in internal data RAM operate directly on the internal data RAM no e...

Страница 65: ...ter The IP register contains the address of the instruction currently being executed This address is 32 bits long however since instructions are required to be aligned on word boundaries in memory the IP s two least significant bits are always 0 zero All i960 processor instructions are either one or two words long The IP gives the address of the lowest order byte of the first word of the instructi...

Страница 66: ...image in the PRCB Software can use the modify arithmetic controls modac instruction to examine and or modify any of the register bits This instruction provides a mask operand that lets user software limit access to the register s specific bits or groups of bits such as the reserved bits The processor automatically saves and restores the AC register when it services an interrupt or handles a fault ...

Страница 67: ...tions for the extended arithmetic instructions To show true or false conditions the processor sets the flags as shown in Table 3 8 To show equality and inequalities the processor sets the condition code flags as shown in Table 3 9 The term unordered is used when comparing floating point numbers The i960 Jx processor does not implement on chip floating point processing To show carry out and overflo...

Страница 68: ...ault is masked and integer overflow is encountered the processor sets the integer overflow flag instead of generating a fault When the fault is not masked the fault is allowed to occur and the flag is not set Once the processor sets this flag the flag remains set until the application software clears it Refer to the discussion of the ARITHMETIC INTEGER_OVERFLOW fault in CHAPTER 8 FAULTS for more i...

Страница 69: ...errupts When nested interrupts occur the processor remains in the interrupted state until all interrupts are handled then switches back to the executing state on the return from the initial interrupt procedure The PC register priority field bits 16 through 20 indicates the processor s current executing or interrupted priority The architecture defines a mechanism for prioritizing execution of code ...

Страница 70: ...modpc in user mode with a non zero mask As with modac modpc provides a mask operand that can be used to limit access to specific bits or groups of bits in the register In user mode software can use modpc to read the current PC register In the latter two methods the interrupt or fault handler changes process controls in the interrupt or fault record that is saved on the stack Upon return from the i...

Страница 71: ...or stack Switching to the supervisor stack helps maintain a kernel s integrity For example it allows access to system debugging software or a system monitor even when an application s program destroys its own stack In supervisor mode the processor is allowed access to a set of supervisor only functions and instructions For example the processor uses supervisor mode to handle interrupts and trace f...

Страница 72: ...ns in that mode until a return is performed to the procedure that caused the original mode switch Interrupts and faults can cause the processor to switch from user to supervisor mode When the processor handles an interrupt it automatically switches to supervisor mode However it does not switch to the supervisor stack Instead it switches to the interrupt stack Fault table entries determine when a p...

Страница 73: ...4 CACHE AND ON CHIP DATA RAM ...

Страница 74: ......

Страница 75: ...nal data RAM is controlled by the byte endian control bit in the DLMCON register Some internal data RAM locations are reserved for functions other than general data storage The first 64 bytes of data RAM may be used to cache interrupt vectors which reduces latency for these interrupts The word at location 0000H is always reserved for the cached NMI vector With the exception of the cached NMI vecto...

Страница 76: ...perations by using an internal local register cache also known as a stack frame cache Up to 7 local register sets can be contained in the cache before sets must be saved in external memory The register set is all the local registers i e r0 through r15 The processor uses a 128 bit wide bus to store local register sets quickly to the register cache An integrated procedure call mechanism saves the cu...

Страница 77: ...of free frames within the register cache that can be used by high priority interrupts only Any attempt by non critical code to reduce the number of free frames below this value results in a frame flush to external memory The free frame check is performed only when a frame is pushed which occurs only for an implicit or explicit call The following pseudo code illustrates the operation of the registe...

Страница 78: ...sm to disable the cache The cache is managed through the icctl or sysctl instruction Using icctl is the preferred and more versatile method for controlling the instruction cache on the i960 Jx processor Future i960 processors may not support sysctl instruction Cache misses cause the processor to issue a double word or a quad word fetch based on the location of the Instruction Pointer When the IP i...

Страница 79: ...ock out all normal updates to this one way of the cache This cache load and lock mechanism is provided to minimize latency on program control transfers to key operations such as interrupt service routines The block size that can be loaded and locked on the i960 Jx processor is one way of the cache Any code can be locked into the cache not just interrupt routines An icctl or sysctl instruction is i...

Страница 80: ...ithin a line also has a valid bit Caches are managed through the dcctl instruction User settings in the memory region configuration registers LMCON0 1 and DLMCON determine which data accesses are cacheable or non cacheable based on memory region 4 5 1 Enabling and Disabling the Data Cache To cache data two conditions must be met 1 The data cache must be enabled A dcctl instruction issued with an e...

Страница 81: ... by a ldl ldt or ldq instruction miss the data cache every word accessed by that load instruction is updated in the cache In each case the external bus accesses used to acquire the data may consist of none one or several burst accesses based on the alignment of the data and the bus width of the memory region that contains the data See CHAPTER 14 EXTERNAL BUS for more details A multi word load acce...

Страница 82: ...f a miss for a word or multi word store a tag and cache line are allocated when needed and the appropriate valid bits line and word s are updated 3 In the case of byte or short word data that hits a valid word in the cache both the word in cache and external memory are updated with the data the cache word remains valid 4 In the case of byte or short word data that falls within a valid line but mis...

Страница 83: ... falls into an address range mapped by an enabled LMCON or DLMCON and the data caching enabled bit in the matching LMCON is clear 2 The entire data cache is disabled 3 The access is a read operation of the read modify write sequence performed by an atmod or atadd instruction 4 The access is an implicit read access to the interrupt table to post or deliver a software interrupt When the memory locat...

Страница 84: ...e is to program the LMCON0 1 registers such that I O regions are non cacheable Partitioning the system in this fashion eliminates I O as a source of coherency problems See section 13 6 Programming the Logical Memory Attributes pg 13 8 for more information on this subject 4 5 7 Data Cache Visibility The data cache status can be determined by a dcctl instruction issued with a data cache status messa...

Страница 85: ...5 INSTRUCTION SET OVERVIEW ...

Страница 86: ......

Страница 87: ... For example the add ordinal instruction is referred to as addo The Intel 80960 assembly language syntax consists of the instruction mnemonic followed by zero to three operands separated by commas In the following assembly language statement ordinal operands in global registers g5 and g9 are added together and the result is stored in g7 addo g5 g9 g7 g7 g9 g5 In the assembly language listings in t...

Страница 88: ...REG Most instructions are encoded in this format Used primarily for instructions which perform register to register operations compare and branch COBR An encoding optimization which combines compare and branch operations into one opword Other compare and branch operations are also provided as REG and CTRL format instructions control CTRL Used for branches and calls that do not depend on registers ...

Страница 89: ...1 src2 displacement src1 src2 indicate values to be compared displacement indicates branch target src1 can specify a global register local register or a literal src2 can specify a global or local register MEM src dst efa Specifies source or destination register and an effective address efa formed by using the processor s addressing modes as described in section 2 3 MEMORY ADDRESSING MODES pg 2 6 R...

Страница 90: ...nded Multiply Extended Divide Add with Carry Subtract with Carry Conditional Add Conditional Subtract Rotate And Not And And Not Or Exclusive Or Not Or Or Not Nor Exclusive Nor Not Nand Set Bit Clear Bit Not Bit Alter Bit Scan For Bit Span Over Bit Extract Modify Scan Byte for Equal Byte Swap Comparison Branch Call Return Fault Compare Conditional Compare Compare and Increment Compare and Decremen...

Страница 91: ...pies 8 bytes into 2 successive registers ldt copies 12 bytes into 3 successive registers ldq copies 16 bytes into 4 successive registers st copies 4 bytes from a register into memory stl copies 8 bytes from 2 successive registers stt copies 12 bytes from 3 successive registers stq copies 16 bytes from 4 successive registers For ld ldob ldos ldib and ldis the instruction specifies a memory address ...

Страница 92: ...ve instructions copy data from a local or global register or group of registers to another register or group of registers These instructions use the REG format 5 2 1 3 Load Address The Load Address instruction lda computes an effective address in the address space from an operand presented in one of the addressing modes lda is commonly used to load a constant into a register This instruction uses ...

Страница 93: ...ions which handle specific requirements for in place memory operations All arithmetic instructions use the REG format and can operate on local or global registers The following subsections describe arithmetic instructions for ordinal and integer data types Table 5 3 Arithmetic Operations Arithmetic Operations Data Types Integer Ordinal Add X X Add with Carry X X Conditional Add X X Subtract X X Su...

Страница 94: ... 2 3 2 Remainder and Modulo These instructions divide one operand by another and retain the remainder of the operation The difference between the remainder and modulo instructions lies in the sign of the result For remi and remo the result has the same sign as the dividend for modi the result has the same sign as the divisor addi Add Integer addo Add Ordinal ADD cc conditional add subi Subtract In...

Страница 95: ...scarding the bits shifted out has the effect of rounding the result toward negative shrdi is provided for dividing integers by the power of 2 With this instruction 1 is added to the result when the bits shifted out are non zero and the operand is negative which produces the correct result for negative operands shli and shrdi are equivalent to muli and divi by the power of 2 respectively except in ...

Страница 96: ...0 of the condition codes when the operation would have resulted in an integer overflow condition This facilitates a software implementation of extended integer arithmetic emul multiplies two ordinals each contained in a register producing a long ordinal result stored in two registers ediv divides a long ordinal by an ordinal producing an ordinal quotient and an ordinal remainder stored in two adja...

Страница 97: ...s The two bit field instructions are extract and modify extract converts a specified bit field taken from an ordinal value into an ordinal value In essence this instruction shifts right a bit field in a register and fills in the bits to the left of the bit field with zeros eshro also provides the equivalent of a 64 bit extract of 32 bits modify copies bits from one register into another register O...

Страница 98: ...as with cmpi and cmpo When set no comparison is performed and the condition code flags are not changed The conditional compare instructions are provided specifically to optimize two sided range comparisons to check when A is between B and C i e B A C Here a compare instruction cmpi or cmpo checks one side of the range e g A B and a conditional compare instruction concmpi or concmpo checks the othe...

Страница 99: ...ative loops 5 2 6 3 Test Condition Codes These test instructions allow the state of the condition code flags to be tested When the condition code matches the instruction specified condition a TRUE 0000 0001H is stored in a destination register otherwise a FALSE 0000 0000H is stored All use the COBR format and can operate on local and global registers cmpinci compare and increment integer cmpinco c...

Страница 100: ...two instructions perform the same function however their determination of the target IP differs The target IP of a b instruction is specified at link time as a relative displacement from the current IP The target IP of the bx instruction is the absolute address resulting from the instruction s use of a memory addressing mode during execution bal and balx store the next instruction s address in a s...

Страница 101: ...er compare ordinal and branch on bit be branch if equal true bne branch if not equal bl branch if less ble branch if less or equal bg branch if greater bge branch if greater or equal bo branch if ordered bno branch if unordered false cmpibe compare integer and branch if equal cmpibne compare integer and branch if not equal cmpibl compare integer and branch if less cmpible compare integer and branc...

Страница 102: ...anism for making procedure calls Refer to section 7 1 CALL AND RETURN MECHANISM pg 7 2 The following instructions support this mechanism call and ret use the CTRL machine instruction format callx uses the MEM format and can specify local or global registers calls uses the REG format and can specify local or global registers call and callx make local calls to procedures A local call is a call that ...

Страница 103: ...o return from all calls including local and supervisor calls and from implicit calls to interrupt and fault handlers 5 2 9 Faults Generally the processor generates faults automatically as the result of certain operations Fault handling procedures are then invoked to handle various fault types without explicit intervention by the currently running program These conditional fault instructions permit...

Страница 104: ...e event generation This instruction is used in part to load and control the i960 Jx processor s breakpoint registers 5 2 11 Atomic Instructions Atomic instructions perform an atomic read modify write operation on operands in memory An atomic operation is one in which other memory operations are forced to occur before or after but not during the accesses that comprise the atomic operation These ins...

Страница 105: ...struction however it is implicitly accessed by instructions that use the condition codes or set the integer overflow flag sysctl is used to configure the interrupt controller breakpoint registers and instruction cache It also permits software to signal an interrupt or cause a processor reset and reinitialization sysctl may be executed only by programs operating in supervisor mode halt puts the pro...

Страница 106: ... misses the data cache the processor does not stall the issuing of subsequent instructions other than stores that do not depend on the load Software should avoid following a load with an instruction that depends on the result of the load For a load that hits the data cache there is a one cycle stall when the instruction immediately after the load requires the data When the load fails to hit the da...

Страница 107: ...div Once issued these MDU instructions are executed in parallel with other non MDU instructions that do not depend on the result of the MDU operation Attempting to issue another MDU instruction while a current MDU instruction is executing stalls the processor until the first one completes 5 3 1 5 Multi Cycle Register Operations A few register operations can also take multiple cycles The following ...

Страница 108: ...ycles to execute and one more cycle to fetch the target instruction when the branch is actually taken The instructions are 5 3 1 7 Memory Instructions The i960 Jx processor provides efficient support for naturally aligned byte short and word accesses that use one of 6 optimized addressing modes These accesses require only 1 to 2 cycles to execute additional cycles are needed for a load to return i...

Страница 109: ...for MDU Instructions When performing a call operation or delivering an interrupt the processor typically attempts to push the first four local registers pfp sp rip and r3 onto the local register cache as early as possible Because of register interlock this operation stalls until previous instructions return their results to these registers In most cases this is not a problem however in the case of...

Страница 110: ...as completed This ensures that a fault from the previous instruction is delivered before the next instruction can begin execution Imprecise fault mode allows new instructions to be issued before previous ones have completed thus increasing the instruction issue rate Many applications can tolerate the imprecise fault reporting for the performance gain When necessary a syncf can be used in imprecise...

Страница 111: ...6 INSTRUCTION SET REFERENCE ...

Страница 112: ......

Страница 113: ...nstruction format APPENDIX B OPCODES AND EXECUTION TIMES A quick reference listing of instruction encodings assists debugging with a logic analyzer APPENDIX C MACHINE LEVEL INSTRUCTION FORMATS Describes instruction set opword encodings i960 Jx PROCESSOR INSTRUCTION SET QUICK REFERENCE order number 272597 A pocket sized quick reference to all instructions 6 1 NOTATION In general notation in this ch...

Страница 114: ...s are not typically portable to earlier i960 processor family imple mentations such as the i960 Kx microprocessors 6 1 2 Mnemonic The Mnemonic section gives the mnemonic in boldface type and instruction name for each instruction covered on the page for example subi Subtract Integer This mnemonic is the actual assembly language instruction name recognized by assemblers 6 1 3 Format The Format secti...

Страница 115: ... function and operands It also gives programming hints when appropriate 6 1 5 Action The Action section gives an algorithm written in a C like pseudo code that describes direct effects and possible side effects of executing an instruction Algorithms document the instruction s net effect on the programming environment they do not necessarily describe how the processor actually implements the instru...

Страница 116: ...Addition Subtraction Multiplication Integer or Ordinal Division Integer or Ordinal Comment delimiter Table 6 2 Faults Applicable to All Instructions Fault Type Subtype Description TRACE MARK A Mark Trace Event is signaled after completion of an instruction for which there is a hardware breakpoint condition match A Trace fault is generated when TC mk is set INSTRUCTION An Instruction Trace Event is...

Страница 117: ...ons Fault Type Subtype Description OPERATION UNALIGNED Any instruction that causes an unaligned memory access causes an operation aligned fault when unaligned faults are not masked in the fault configuration word in the Processor Control Block PRCB INVALID_OPCODE This fault is generated when the processor attempts to execute an instruction containing an undefined opcode or addressing mode INVALID_...

Страница 118: ...or more information on the formats 6 1 9 See Also The See Also section gives the mnemonics of related instructions which are also alphabetically listed in this chapter 6 1 10 Side Effects This section indicates whether the instruction causes changes to the condition code bits in the Arithmetic Controls 6 1 11 Notes This section provides additional information about an instruction such as whether i...

Страница 119: ...dd Integer if Ordered Format add src1 src2 dst reg lit reg lit reg Description Conditionally adds src2 and src1 values and stores the result in dst based on the AC register condition code When for Unordered the condition code is 0 or when for all other cases the logical AND of the condition code and the mask part of the opcode is not 0 then the values are added and placed in the destination Otherw...

Страница 120: ...AC om 1 AC of 1 else generate_fault ARITHMETIC OVERFLOW Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW Occurs only with addi cc Example Assume AC cc AND 0012 0 addig r4 r8 r10 r10 r8 r4 Assume AC cc AND 1012 0 addone r4 r8 r10 r10 is not changed addone 1012 Not equal addine addole 1102 Less or equal addile addoo 1112 Ordered addio Table 6 4 Condition Code Mask Description...

Страница 121: ...ddol 7C0H REG addone 7D0H REG addole 7E0H REG addoo 7F0H REG addino 781H REG addig 791H REG addie 7A1H REG addige 7B1H REG addil 7C1H REG addine 7D1H REG addile 7E1H REG addio 7F1H REG See Also addc SUB cc addi addo Notes This class of core instructions is not implemented on 80960Cx Kx and Sx processors ...

Страница 122: ...nd integer source operands Instead the processor evaluates the result for both data types and sets condition code bits 0 and 1 accordingly An integer overflow fault is never signaled with this instruction Action dst src1 src2 AC cc 1 31 0 AC cc 2 0 0002 if src2 31 src1 31 src2 31 dst 31 AC cc 0 1 Set overflow bit AC cc 1 src2 src1 AC cc 1 32 Carry out Faults STANDARD Refer to section 6 1 6 Faults ...

Страница 123: ...ical The only difference is that addi can signal an integer overflow Action addo dst src2 src1 31 0 addi true_result src1 src2 dst true_result 31 0 if true_result 2 31 1 true_result 2 31 Check for overflow if AC om 1 AC of 1 else generate_fault ARITHMETIC OVERFLOW Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW Occurs only with addi Example addi r4 g5 r9 r9 g5 r4 Opcode ad...

Страница 124: ... When condition code is X1X2 bit 1 1 the selected bit is set otherwise it is cleared Typically this instruction is used to set the bitpos bit in the targ register when the result of a compare instruction is the equal condition code 0102 Action if AC cc 0102 0 dst src 2 bitpos 32 else dst src 2 bitpos 32 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example Assume AC cc 0102 alterbit 24 g4 g...

Страница 125: ...sult in dst Note in the action expressions below src2 operand comes first so that with andnot the expression is evaluated as src2 and not src1 rather than src1 and not src2 Action and dst src2 src1 andnot dst src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example and 0x7 g8 g2 Put lower 3 bits of g8 in g2 andnot 0x7 r12 r9 Copy r12 to r9 with lower three bits cleared Opcode and 581...

Страница 126: ...from accessing the word of memory containing the word specified by src dst operand until operation completes See section 3 5 1 Memory Requirements pg 3 14 or more information on atomic accesses Memory location in addr is the word s first byte LSB address Address is automatically aligned to a word boundary Note that addr operand maps to src1 operand of the REG format Action implicit_syncf tempa add...

Страница 127: ... 3 14 or more information on atomic accesses Memory read and write are done atomically i e other bus masters must be prevented from accessing the word of memory containing the word specified with the src dst operand until operation completes Memory location in addr is the modified word s first byte LSB address Address is automatically aligned to a word boundary Action implicit_syncf tempa addr 0xF...

Страница 128: ...ve address which allows the full range of addressing modes to be used to specify target instruction s IP The IP displacement addressing mode allows the instruction to be IP relative Indirect branching can be performed by placing target address in a register then using a register indirect addressing mode Refer to section 2 3 MEMORY ADDRESSING MODES pg 2 6 for information on this subject Action b te...

Страница 129: ...4 bytes from current IP When using the Intel i960 processor assembler targ must be a label which specifies the target instruction s IP balx performs same operation as bal except next instruction address is stored in dst allowing the return IP to be stored in any available register With balx the full address space can be accessed Here the target operand is an effective address which allows full ran...

Страница 130: ...ET REFERENCE 6 18 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example bal xyz g14 IP 4 IP xyz balx g2 g4 g4 IP 4 IP g2 Opcode bal 0BH CTRL balx 85H MEM See Also b bx BRANCH cc COMPARE AND BRANCH cc bbc bbs ...

Страница 131: ...targ otherwise it sets condition code to 0102 and goes to next instruction For bbs when selected bit is set the processor sets condition code to 0102 and branches to targ otherwise it sets condition code to 0002 and goes to next instruction targ can be no farther than 212 to 212 4 bytes from current IP When using the Intel i960 processor assembler targ must be a label which specifies target instru...

Страница 132: ...sume bit 10 of r6 is clear bbc 10 r6 xyz Bit 10 of r6 is checked and found clear AC cc 000 IP xyz Opcode bbc 30H COBR bbs 37H COBR See Also chkbit COMPARE AND BRANCH cc BRANCH cc Side Effects Sets the condition code in the arithmetic controls ...

Страница 133: ... it goes to next instruction For bno the processor branches to instruction specified with targ when the condition code is zero Otherwise it goes to next instruction For instance bno unordered can be used as a branch when false instruction when coupled with chkbit For bno branch is taken when condition code equals 0002 be can be used as branch if true instruction The targ operand value can be no fa...

Страница 134: ... 2 IP 31 2 IP 31 2 temp 31 2 IP 1 0 0 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example Assume AC cc AND 1002 0 bl xyz IP xyz Opcode be 12H CTRL bne 15H CTRL bl 14H CTRL ble 16H CTRL bg 11H CTRL bge 13H CTRL bo 17H CTRL bno 10H CTRL See Also b bx bbc bbs COMPARE AND BRANCH cc bal balx ...

Страница 135: ...ng order of the bytes Byte 0 of src becomes byte 3 of dst byte 1 of src becomes byte 2 of dst etc Action dst rotate_left src 8 0x00FF00FF rotate_left src 24 0xFF00FF00 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example g8 0x89ABCDEF bswap g8 g10 Reverse byte order g10 0xEFCDAB89 Opcode bswap 5ADH REG See Also scanbyte rotate Notes This core instruction is not implemented on Cx Kx and Sx ...

Страница 136: ... stack frame for the called procedure Processor then goes to the instruction specified with targ and begins execution targ can be no farther than 223 to 223 4 bytes from current IP Action Wait for any uncompleted instructions to finish implicit_syncf temp SP SALIGN 16 1 SALIGN 16 1 Round stack pointer to next boundary SALIGN 1 on i960 Jx processors RIP IP if register_set_available allocate_new_fra...

Страница 137: ...essor also allocates a new set of local registers and a new stack frame for the called procedure When the processor switches to supervisor mode the new stack frame is created on the supervisor stack Action Wait for any uncompleted instructions to finish implicit_syncf If targ 259 generate_fault PROTECTION LENGTH temp get_sys_proc_entry sptbase 48 4 targ sptbase is address of supervisor procedure t...

Страница 138: ...P FP PFP rrr temp RRR FP tempa SP tempa 64 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 PROTECTION LENGTH Specifies a procedure number greater than 259 Example calls r12 IP value obtained from procedure table for procedure number given in r12 calls 3 Call procedure 3 Opcode calls 660H REG See Also bal call callx ret ...

Страница 139: ... type which allows the full range of addressing modes to be used to specify the IP of the target instruction The IP displacement addressing mode allows the instruction to be IP relative Indirect calls can be performed by placing the target address in a register and then using one of the register indirect addressing modes Refer to CHAPTER 2 DATA TYPES AND MEMORY ADDRESSING MODES for more informatio...

Страница 140: ...INSTRUCTION SET REFERENCE 6 28 Example callx g5 IP g5 where the address in g5 is the address of the new procedure Opcode callx 86H MEM See Also bal call calls ret ...

Страница 141: ...When bit is set condition code is set to 0102 when bit is clear condition code is set to 0002 Action if src2 2 bitpos 32 0 AC cc 0002 else AC cc 0102 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example chkbit 13 g8 Checks bit 13 in g8 and sets AC cc according to the result Opcode chkbit 5AEH REG See Also alterbit clrbit notbit setbit cmpi cmpo Side Effects Sets the condition code in the a...

Страница 142: ...it reg lit reg Description Copies src value to dst with one bit cleared bitpos operand specifies bit to be cleared Action dst src 2 bitpos 32 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example clrbit 23 g3 g6 g6 g3 with bit 23 cleared Opcode clrbit 58CH REG See Also alterbit chkbit notbit setbit ...

Страница 143: ...e intended for use in ending iterative loops For cmpdeci integer overflow is ignored to allow looping down through the minimum integer values Action if src1 src2 AC cc 1002 else if src1 src2 AC cc 0102 else AC cc 0012 dst src2 1 Overflow suppressed for cmpdeci Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example cmpdeci 12 g7 g1 Compares g7 with 12 and sets AC cc to indicate the result g1 ...

Страница 144: ...d for use in ending iterative loops For cmpinci integer overflow is ignored to allow looping up through the maximum integer values Action if src1 src2 AC cc 1002 else if src1 src2 AC cc 0102 else AC cc 0012 dst src2 1 Overflow suppressed for cmpinci Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example cmpinco r8 g2 g9 Compares the values in g2 and r8 and sets AC cc to indicate the result g...

Страница 145: ...lowed by a branch if instruction is equivalent to a compare integer and branch instruction The latter method of comparing and branching produces more compact code however the former method can execute byte and short compares without masking The same is true for cmpo and the compare ordinal and branch instructions Action For cmpo cmpi N 31 For cmpos cmpis N 15 For cmpob cmpib N 7 if src1 N 0 src2 N...

Страница 146: ...as greater than 0x10 Opcode cmpi 5A1H REG cmpib 595H REG cmpis 597H REG cmpo 5A0H REG cmpob 594H REG cmpos 596H REG See Also COMPARE AND BRANCH cc cmpdeci cmpdeco cmpinci cmpinco concmpi concmpo Side Effects Sets the condition code in the arithmetic controls Notes The core instructions cmpib cmpis compob and compos are not imple mented on 80960Cx Kx and Sx processors ...

Страница 147: ...ch If Less Or Equal cmpobg Compare Ordinal and Branch If Greater cmpobge Compare Ordinal and Branch If Greater Or Equal Format cmpib src1 src2 targ reg lit reg disp cmpob src1 src2 targ reg lit reg disp Description Compares src2 and src1 values and sets AC register condition code according to comparison results When logical AND of condition code and mask part of opcode is not zero the processor br...

Страница 148: ... Assume g3 g9 cmpibl g3 g9 xyz g9 is compared with g3 IP xyz assume 19 r7 cmpobge 19 r7 xyz 19 is compared with r7 IP xyz Table 6 9 Condition Code Mask Descriptions Instruction Mask Branch Condition cmpibno 0002 No Condition cmpibg 0012 src1 src2 cmpibe 0102 src1 src2 cmpibge 0112 src1 src2 cmpibl 1002 src1 src2 cmpibne 1012 src1 src2 cmpible 1102 src1 src2 cmpibo 1112 Any Condition cmpobg 0012 sr...

Страница 149: ...OBR cmpible 3EH COBR cmpibg 39H COBR cmpibge 3BH COBR cmpibo 3FH COBR cmpibno 38H COBR cmpobe 32H COBR cmpobne 35H COBR cmpobl 34H COBR cmpoble 36H COBR cmpobg 31H COBR cmpobge 33H COBR See Also BRANCH cc cmpi cmpo bal balx Side Effects Sets the condition code in the arithmetic controls ...

Страница 150: ...alues The example below illustrates this application by testing whether g3 value is between g5 and g6 values where g5 is assumed to be less than g6 First a comparison cmpo of g3 and g6 is performed When g3 is less than or equal to g6 i e condition code is either 0102 or 0012 a conditional comparison concmpo of g3 and g5 is then performed When g3 is greater than or equal to g5 indicating that g3 is...

Страница 151: ...REG See Also cmpo cmpi cmpdeci cmpdeco cmpinci cmpinco COMPARE AND BRANCH cc Side Effects Sets the condition code in the arithmetic controls Table 6 10 concmpo example register ordering and CC Order CC g5 g6 g3 1002 g5 g6 g3 0102 g5 g3 g6 0102 g5 g3 g6 0102 g3 g5 g6 0012 ...

Страница 152: ...eded by the operation the processor orders the effects of the operation with previous and subsequent operations to ensure correct behavior Table 6 11 dcctl Operand Fields Function src1 src2 src dst Disable D cache 0 NA NA Enable D cache 1 NA NA Global invalidate D cache 2 NA NA Ensure cache coherency1 3 NA NA Get D cache status 4 NA src NA dst Receives D cache status see Figure 6 1 Reserved 5 NA N...

Страница 153: ... src1 Format 28 27 16 15 12 8 4 0 31 src dst Format for Data Cache Status 3 7 11 Enabled 1 Disabled 0 of Ways 1 0 31 src dst Format for Store Data Cache Sets to Memory 16 15 Starting Set Ending Set Function Type Reserved Initialize to 0 log2 of Sets log2 Atoms Line log2 Bytes Atom 2 2 ...

Страница 154: ...1 Direct 1 Direct cache size 1 Kbytes 2 Kbytes full 4 Kbytes Status 0 enable disable 0 or 1 0 or 1 0 or 1 Status 1 3 reserved 0 0 0 Status 7 4 log2 bytes per atom 2 2 2 Status 11 8 log2 atoms per line 2 2 2 Status 15 12 log2 number of sets 6 7 full 8 full Status 27 16 number of ways 1 0 0 0 0 Destination Address DA Tag Starting set DA 4H Valid Bits Starting set DA 8H Word 0 DA CH Word 1 DA 10H Wor...

Страница 155: ...lues 5 Valid Bit for Word 2 of current Set and Way Valid Bit for Word 3 of current Set and Way Valid Bit for Word 1 of current Set and Way Tag Valid Bit for current Set and Way Valid Bit for Word 0 of current Set and Way 0 31 80960JA Cache Tag Format 1 Kbyte Cache 22 21 80960JA Actual Address Bits 31 10 0 31 80960JT Actual Address Bits 31 12 80960JT Cache Tag Format 4 Kbyte Cache 20 19 ...

Страница 156: ...validate_Dcache break case 3 Ensure coherency of data cache with memory Causes data cache to be invalidated on this processor ensure_Dcache_coherency break case 4 Get data cache status into src_dst if Dcache_enabled src_dst 0 1 else src_dst 0 0 Atom is 4 bytes src_dst 7 4 log2 bytes per atom 4 atoms per line src_dst 11 8 log2 atoms per line src_dst 15 12 log2 number of sets src_dst 27 16 number of...

Страница 157: ...way numb_ways way memory memadr tags set way memadr 4 memory memadr valid_bits set way memadr 4 for word 0 word words_in_line word memory memadr Dcache_line set way word memadr 4 break case 8 invalidate the lines that came from LMTs that had DCIIR set at the time the line was allocated NOTE for compatibility with future products that have several independent regions the value of src2 should be one...

Страница 158: ...esponding word valid bit is cleared after function 6 completes to ensure data cache coherency Thus dcctl function 6 can alter the state of the cache after it completes but only the word valid bits In all cases even when the cache sets to store to external memory overlap the cache sets that map the target range in external memory DCCTL function 6 always returns the state of the cache as it existed ...

Страница 159: ... src1 divi if src1 0 dst undefined_value generate_fault ARITHMETIC ZERO_DIVIDE else if src2 2 31 src1 1 dst 2 31 if AC om 1 AC of 1 else generate_fault ARITHMETIC OVERFLOW else dst src2 src1 Faults STANDARD Refer to Section 6 1 6 on page 6 5 ARITHMETIC ZERO_DIVIDE The src1 operand is 0 ARITHMETIC OVERFLOW Result too large for destination register divi only When overflow occurs and AC om 1 fault is...

Страница 160: ...d register dst must be an even numbered register i e g0 g2 r4 r6 r8 This instruction performs ordinal arithmetic When this operation overflows quotient or remainder do not fit in 32 bits no fault is raised and the result is undefined Action if reg_number src2 2 0 reg_number dst 2 0 dst 0 undefined_value dst 1 undefined_value generate_fault OPERATION INVALID_OPERAND else if src1 0 dst 0 undefined_v...

Страница 161: ...lower numbered register which receives the result s least significant bits dst must be an even numbered register i e g0 g2 r4 r6 r8 This instruction performs ordinal arithmetic Action if reg_number dst 2 0 dst 0 undefined_value dst 1 undefined_value generate_fault OPERATION INVALID_OPERAND else dst 0 src1 src2 31 0 dst 1 src1 src2 63 32 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example ...

Страница 162: ...en numbered register i e r4 r6 r8 or g0 g2 src1 operand is a single 32 bit register or literal where the lower 5 bits specify the number of places that the src2 operand is to be shifted The least significant 32 bits of the shift operation result are stored in dst Action if reg_number src2 2 0 dst 0 undefined_value dst 1 undefined_value generate_fault OPERATION INVALID_OPERAND else dst shift_right ...

Страница 163: ...ight and zero fills bits to left of shifted bit field bitpos value specifies the least significant bit of the bit field to be shifted len value specifies bit field length Action src_dst src_dst min bitpos 32 0xFFFFFFFF len Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example extract 5 12 g4 g4 g4 with bits 5 through 16 shifted right Opcode extract 651H REG See Also modify ...

Страница 164: ...ual to 0002 faulto and faultno are provided for use by implementations with a floating point coprocessor They are used for compare and branch or fault operations involving real numbers The following table shows the condition code mask for each instruction The mask is opcode bits 0 2 Action For all except faultno if mask AC cc 0002 generate_fault CONSTRAINT RANGE faultno if AC cc 0002 generate_faul...

Страница 165: ...STRAINT RANGE When condition being tested is true Example Assume AC cc AND 1102 0002 faultle Generate CONSTRAINT_RANGE fault Opcode faulte 1AH CTRL faultne 1DH CTRL faultl 1CH CTRL faultle 1EH CTRL faultg 19H CTRL faultge 1BH CTRL faulto 1FH CTRL faultno 18H CTRL See Also BRANCH cc TEST cc ...

Страница 166: ...hed a flushreg must be executed prior to modifying the PFP to return to a frame other than the one directly below the current frame To reduce interrupt latency flushreg is abortable When an interrupt of higher priority than the current process is detected while flushreg is executing flushreg flushes at least one frame and aborts After executing the interrupt handler the processor returns to the fl...

Страница 167: ... the Process Controls is set For more information on trace fault generation refer to CHAPTER 9 TRACING AND DEBUGGING Action A mark trace event is generated independent of the setting of the mark trace mode flag Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 TRACE MARK A TRACE MARK fault is generated if PC te 1 Example Assume PC te 1 fmark Mark trace event is generated at this point in the in...

Страница 168: ...f Halt mode execution resumes at the instruction immediately after the halt instruction The processor must be in supervisor mode to use this instruction Action implicit_syncf if PC em supervisor generate_fault TYPE MISMATCH switch src1 case 0 Disable interrupts set ICON gie global_interrupt_enable true break case 1 Enable interrupts clear ICON gie global_interrupt_enable false break case 2 Use the...

Страница 169: ...mpt to execute instruction while not in supervisor mode Example ICON gie 1 g0 1 Interrupts disabled halt g0 Enable interrupts and halt Opcode halt 65DH REG Notes This instruction is implemented on the 80960Rx and 80960Jx processor fam ilies only and may or may not be implemented on future i960 processors ...

Страница 170: ...e processor orders the effects of the operation with previous and subsequent operations to ensure correct behavior For specific function setup see the following tables and diagrams Table 6 15 icctl Operand Fields Function src1 src2 src dst Disable I cache 0 NA NA Enable I cache 1 NA NA Invalidate I cache 2 NA NA Load and lock I cache 3 src Starting address of code to lock Number of ways to lock Ge...

Страница 171: ... I cache Status 3 7 11 Enabled 1 Disabled 0 log2 of Sets of Ways 1 8 7 0 31 src dst Format for I cache Locking Status 24 23 of ways that Lock Way Size in Words 0 31 src dst Format for Store I cache Sets to Memory 16 15 Starting Set Ending Set of ways that Reserved Initialize to 0 log2 Atoms Line log2 Bytes Atom are currently locked Constants 0FFFH 04H ...

Страница 172: ...f ways 2 2 2 cache size 2 Kbytes 4 Kbytes 16 Kbytes Status 0 enable disable 0 or 1 0 or 1 0 or 1 Status 1 3 reserved 0 0 0 Status 7 4 log2 bytes per atom 2 2 2 Status 11 8 log2 atoms per line 2 2 2 Status 15 12 log2 number of sets 6 7 9 Status 27 16 number of ways 1 1 1 1 Lock Status 7 0 number of blocks that lock 1 1 1 Lock Status 23 8 block size in words 256 512 2048 Lock Status 31 24 number of ...

Страница 173: ...ss DA Tag Starting set DA 4H Valid Bits Starting set DA 8H Word 0 DA CH Word 1 DA 10H Word 2 DA 14H Word 3 DA 18H Tag Starting set DA 1CH Valid Bits Starting set DA 20H Word 0 DA 24H Word 1 DA 28H Word 2 DA 2CH Word 3 DA 30H Set_Data Starting Set 1 DA 34H Tag Starting set 1 DA 38H Valid Bits Starting set 1 DA 3CH Way 0 Way 1 Way 0 ...

Страница 174: ...its Values 5 I Cache Set Data Value Valid Bit for Word 2 of current Set and Way Valid Bit for Word 3 of current Set and Way Valid Bit for Word 1of current Set and Way Tag Valid bit for current Set and Way Valid Bit for Word 0 of current Set and Way 0 31 80960JA Cache Tag Format 2 Kbyte Cache 22 21 80960JA Actual Address Bits 31 10 1 Way 1 is least recently used 0 31 80960JT Actual Address Bits 31 ...

Страница 175: ...0 Jx src2 is aligned to a quad word boundary aligned_addr src2 0xFFFFFFF0 invalidate I cache unlock I cache for j 0 j src_dst j way way_associated_with_block j start src2 j block_size end start block_size for i start i end i i 4 set set_associated_with i word word_associated_with i Icache_line set way word memory i update_tag_n_valid_bits set way word lock_icache set way word break case 4 Get inst...

Страница 176: ...ate_fault OPERATION INVALID_OPERAND memadr src2 Must be word aligned if 0x3 memadr 0 generate_fault OPERATION INVALID_OPERAND for set start set end set Set_Data is described at end of this code flow memory memadr Set_Data set memadr 4 for way 0 way numb_ways way memory memadr tags set way memadr 4 memory memadr valid_bits set way memadr 4 for word 0 word words_in_line word memory memadr Icache_lin...

Страница 177: ... Load and lock 1 block of cache one way with location of code at starting 0x10000000 Opcode icctl 65BH REG See Also sysctl Notes This instruction is implemented on the 80960Rx 80960Hx and 80960Jx pro cessor families only and may or may not be implemented on future i960 pro cessors ...

Страница 178: ... This instruction is implemented by manip ulating ICON gie Action if PC em supervisor generate_fault TYPE MISMATCH old_interrupt_enable global_interrupt_enable switch src1 case 0 Disable Set ICON gie to one globally_disable_interrupts global_interrupt_enable false order_wrt subsequent_instructions break case 1 Enable Clear ICON gie to zero globally_enable_interrupts global_interrupt_enable true or...

Страница 179: ...ruction while not in supervisor mode Example ICON gie 0 interrupts enabled intctl 0 g4 Disable interrupts ICON gie 1 g4 1 Opcode intctl 658H REG See Also intdis inten Notes This instruction is implemented on the 80960Rx 80960Hx and 80960Jx pro cessor families only and may or may not be implemented on future i960 pro cessors ...

Страница 180: ...lemented by setting ICON gie to one globally_disable_interrupts global_interrupt_enable false order_wrt subsequent_instructions Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 TYPE MISMATCH Attempt to execute instruction while not in supervisor mode Example ICON gie 0 interrupts enabled intdis Disable interrupts ICON gie 1 Opcode intdis 5B4H REG See Also intctl inten Notes This instruction is...

Страница 181: ...lemented by clearing ICON gie to zero globally_enable_interrupts global_interrupt_enable true order_wrt subsequent_instructions Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 TYPE MISMATCH Attempt to execute instruction while not in supervisor mode Example ICON gie 1 interrupts disabled inten Enable interrupts ICON gie 0 Opcode inten 5B5H REG See Also intctl intdis Notes This instruction is ...

Страница 182: ...s ldob and ldib load a byte and ldos and ldis load a half word and convert it to a full 32 bit word Data being loaded is sign extended during integer loads and zero extended during ordinal loads ld ldl ldt and ldq instructions copy 4 8 12 and 16 bytes respectively from memory into successive registers For ldl dst must specify an even numbered register i e g0 g2 For ldt and ldq dst must specify a r...

Страница 183: ...sm See section 2 2 2 Byte Ordering pg 2 4 if dst 15 02 dst 31 16 0x0000 else dst 31 16 0xFFFF if effective_address 0 02 unaligned_fault_enabled generate_fault OPERATION UNALIGNED ldl if reg_number dst 2 0 generate_fault OPERATION INVALID_OPERAND dst not modified else dst read_memory effective_address 31 0 dst_ _1 read_memory effective_address_ _4 31 0 if effective_address 2 0 0002 unaligned_fault_...

Страница 184: ... 2 2 2 Byte Ordering pg 2 4 dst_ _1 read_memory effective_adddress_ _4 31 0 dst_ _2 read_memory effective_adddress_ _8 31 0 dst_ _3 read_memory effective_adddress_ _12 31 0 if effective_address 3 0 00002 unaligned_fault_enabled generate_fault OPERATION UNALIGNED Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 OPERATION UNALIGNED OPERATION INVALID_OPERAND Example ldl 2450 r3 r10 r10 r11 r3 245...

Страница 185: ...or validity Any addressing mode may be used to calculate efa An important application of this instruction is to load a constant longer than 5 bits into a register To load a register with a constant of 5 bits or less mov can be used with a literal as the src operand Action dst effective_address Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example lda 58 g9 g1 g1 g9 58 lda 0x749 r8 r8 0x749 ...

Страница 186: ...de is not enabled mark behaves like a no op For more information on trace fault generation refer to CHAPTER 9 TRACING AND DEBUGGING Action if PC te TC mk generate_fault TRACE MARK Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 TRACE MARK Trace fault is generated if PC te 1 and TC mk 1 Example Assume that the mark trace mode is enabled ld xyz r4 addi r4 r5 r6 mark Mark trace event is generate...

Страница 187: ...er mask specifies bits that may be changed Only bits set in mask are modified Once the AC register is changed its initial state is copied into dst Action temp AC AC src mask AC mask dst temp Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example modac g1 g9 g12 AC g9 masked by g1 g12 initial value of AC Opcode modac 645H REG See Also modpc modtc Side Effects Sets the condition code in the ar...

Страница 188: ... src1 Action if src1 0 dst undefined_value generate_fault ARITHMETIC ZERO_DIVIDE dst src2 src2 src1 src1 if src2 src1 0 dst 0 dst dst src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC ZERO_DIVIDE The src1 operand is zero Example modi r9 r2 r5 r5 modulo r2 r9 Opcode modi 749H REG See Also divi divo remi remo Notes modi generates the correct result 0 when computing 231 mod 1 altho...

Страница 189: ...fies selected bits in src dst with bits from src The mask operand selects the bits to be modified only bits set in the mask operand are modified in src dst Action src_dst src mask src_dst mask Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example modify g8 g10 r4 r4 g10 masked by g8 Opcode modify 650H REG See Also alterbit extract ...

Страница 190: ...sed to read the process controls without the processor being in supervisor mode When the action of this instruction lowers the processor priority the processor checks the interrupt table for pending interrupts When process controls are changed the processor recognizes the changes immediately except in one situation when modpc is used to change the trace enable bit the processor may not recognize t...

Страница 191: ...lso modac modtc Notes Since modpc does not switch stacks it should not be used to switch the mode of execution from supervisor to user the supervisor stack can get corrupted in this case The call and return mechanism should be used instead ...

Страница 192: ...hanged trace controls may take effect immediately or may be delayed When delayed the changed trace controls may not take effect until after the first non branching instruction is fetched from memory or after four non branching instructions are executed For more information on the trace controls refer to CHAPTER 8 FAULTS and CHAPTER 9 TRACING AND DEBUGGING Action mode_bits 0x000000FE event_flags 0X...

Страница 193: ... src1 and dst registers must be even numbered e g g0 g2 or r4 r6 for movl and an integral multiple of four e g g0 g4 or r4 r8 for movt and movq The moved register values are unpredictable when 1 the src and dst operands overlap 2 registers are not properly aligned Action mov if is_reg src1 dst src1 else dst 4 0 src1 src1 is a 5 bit literal dst 31 5 0 movl if reg_num src1 2 0 reg_num dst 2 0 dst un...

Страница 194: ...l dst 31 5 0 dst_ _1 31 0 0 dst_ _2 31 0 0 movq if reg_num src1 4 0 reg_num dst 4 0 dst undefined_value dst_ _1 undefined_value dst_ _2 undefined_value dst_ _3 undefined_value generate_fault OPERATION INVALID_OPERAND else if is_reg src1 dst src1 dst_ _1 src1_ _1 dst_ _2 src1_ _2 dst_ _3 src1_ _3 else dst 4 0 src1 src1 is a 5 bit literal dst 31 5 0 dst_ _1 31 0 0 dst_ _2 31 0 0 dst_ _3 31 0 0 Fault...

Страница 195: ...INSTRUCTION SET REFERENCE 6 83 6 Opcode mov 5CCH REG movl 5DCH REG movt 5ECH REG movq 5FCH REG See Also LOAD STORE lda ...

Страница 196: ... overflow Action mulo dst src2 src1 31 0 muli true_result src1 src2 dst true_result 31 0 if true_result 2 31 1 true_result 2 31 Check for overflow if AC om 1 AC of 1 else generate_fault ARITHMETIC OVERFLOW Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW Result is too large for destination register muli only When a condition of overflow occurs the least significant 32 bits ...

Страница 197: ...reg lit reg Description Performs a bitwise NAND operation on src2 and src1 values and stores the result in dst Action dst src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example nand g5 r3 r7 r7 r3 NAND g5 Opcode nand 58EH REG See Also and andnot nor not notand notor or ornot xnor xor ...

Страница 198: ...lit reg Description Performs a bitwise NOR operation on the src2 and src1 values and stores the result in dst Action dst src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example nor g8 28 r5 r5 28 NOR g8 Opcode nor 588H REG See Also and andnot nand not notand notor or ornot xnor xor ...

Страница 199: ...rms a bitwise NOT not instruction or NOT AND notand instruction operation on the src2 and src1 values and stores the result in dst Action not dst src1 notand dst src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example not g2 g4 g4 NOT g2 notand r5 r6 r7 r7 NOT r6 AND r5 Opcode not 58AH REG notand 584H REG See Also and andnot nand nor notor or ornot xnor xor ...

Страница 200: ...escription Copies the src2 value to dst with one bit toggled The bitpos operand specifies the bit to be toggled Action dst src2 2 src1 32 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example notbit r3 r12 r7 r7 r12 with the bit specified in r3 toggled Opcode notbit 580H REG See Also alterbit chkbit clrbit setbit ...

Страница 201: ... reg lit reg Description Performs a bitwise NOTOR operation on src2 and src1 values and stores result in dst Action dst src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example notor g12 g3 g6 g6 NOT g3 OR g12 Opcode notor 58DH REG See Also and andnot nand nor not notand or ornot xnor xor ...

Страница 202: ...orms a bitwise OR or instruction or ORNOT ornot instruction operation on the src2 and src1 values and stores the result in dst Action or dst src2 src1 ornot dst src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example or 14 g9 g3 g3 g9 OR 14 ornot r3 r8 r11 r11 r8 OR NOT r3 Opcode or 587H REG ornot 58BH REG See Also and andnot nand nor not notand notor xnor xor ...

Страница 203: ...e same as the sign of src2 Action remi remo if src1 0 generate_fault ARITHMETIC ZERO_DIVIDE dst src2 src2 src1 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC ZERO_DIVIDE The src1 operand is 0 Example remo r4 r5 r6 r6 r5 rem r4 Opcode remi 748H REG remo 708H REG See Also modi Notes remi produces the correct result 0 even when computing 231 remi 1 which would cause the correspo...

Страница 204: ... below the return status field and prereturn trace flag determine the action that the processor takes on the return These fields are contained in bits 0 through 3 of register r0 of the called procedure s local registers See CHAPTER 7 PROCEDURE CALLS for more on ret Action implicit_syncf if pfp p PC te TC p pfp p 0 generate_fault TRACE PRERETURN switch return_status_field case 0002 local return get...

Страница 205: ...reak case 1102 reserved unpredictable behavior break case 1112 interrupt return tempa memory FP 16 tempb memory FP 12 get_FP_and_IP AC tempb if execution_mode supervisor PC tempa check_pending_interrupts break get_FP_and_IP FP PFP free current_register_set if not_allocated FP retrieve_from_memory FP IP RIP Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example ret Program control returns to ...

Страница 206: ...end of word The len operand specifies number of bits that the dst operand is rotated This instruction can also be used to rotate bits to the right The number of bits the word is to be rotated right should be subtracted from 32 and the result used as the len operand Action src2 is rotated by len mod 32 This value is stored in dst Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example rotate 1...

Страница 207: ...ndition code is set to 0102 When src value is zero all 1 s are stored in dst and condition code is set to 0002 Action dst 0xFFFFFFFF AC cc 0002 for i 31 i 0 i if src1 2 i 0 dst i AC cc 0102 break Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example assume g8 is nonzero scanbit g8 g10 g10 bit number of most significant set bit in g8 AC cc 0102 Opcode scanbit 641H REG See Also spanbit setbit...

Страница 208: ...qual When no corresponding bytes are equal condition code is set to 0002 Action if src1 0x000000FF src2 0x000000FF src1 0x0000FF00 src2 0x0000FF00 src1 0x00FF0000 src2 0x00FF0000 src1 0xFF000000 src2 0xFF000000 AC cc 0102 else AC cc 0002 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example Assume r9 0x11AB1100 scanbyte 0x00AB0011 r9 AC cc 0102 Opcode scanbyte 5ACH REG See Also bswap Side E...

Страница 209: ...code bits in the arithmetic controls When for Unordered the condition code is 0 or when for the other cases the logical AND of the condition code and the mask part of the opcode is not zero then the value of src2 is stored in the desti nation Else the value of src1 is stored in the destination Action if mask AC cc mask AC cc dst src2 else dst src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6...

Страница 210: ... cc 0012 sell g0 g1 g2 g2 g0 Opcode selno 784H REG selg 794H REG sele 7A4H REG selge 7B4H REG sell 7C4H REG selne 7D4H REG selle 7E4H REG selo 7F4H REG See Also MOVE TEST cc cmpi cmpo SUB cc Notes These core instructions are not implemented on 80960Cx Kx and Sx proces sors ...

Страница 211: ... dst reg lit reg lit reg Description Copies src value to dst with one bit set bitpos specifies bit to be set Action dst src 2 bitpos 32 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example setbit 15 r9 r1 r1 r9 with bit 15 set Opcode setbit 583H REG See Also alterbit chkbit clrbit notbit ...

Страница 212: ... An overflow fault is generated when the bits shifted out are not the same as the most significant bit bit 31 When overflow occurs dst equals src shifted left as much as possible without overflowing shri performs a conventional arithmetic shift right operation by shifting in the most significant bit bit 31 When this instruction is used to divide a negative integer operand by the power of 2 it prod...

Страница 213: ...lse generate_fault ARITHMETIC OVERFLOW shri if len 32 count 32 else count src1 temp src while count 0 temp temp 1 31 0 temp 31 src 31 count count 1 dst temp shrdi dst src 2 len Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW For shli Example shli 13 g4 r6 g6 g4 shifted left 13 bits Opcode shlo 59CH REG shro 598H REG shli 59EH REG shri 59BH REG shrdi 59AH REG ...

Страница 214: ...vi muli rotate eshro Notes shli and shrdi are identical to multiplications and divisions for all positive and negative values of src2 shri is the conventional arithmetic right shift that does not produce a correct quotient when src2 is negative ...

Страница 215: ...dition code is set to 0102 When src value is all 1 s all 1 s are stored in dst and condition code is set to 0002 Action dst 0xFFFFFFFF AC cc 0002 for i 31 i 0 i if src1 2 i 0 dst i AC cc 0102 break Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example Assume r2 is not 0xffffffff spanbit r2 r9 r9 bit number of most significant clear bit in r2 AC cc 0102 Opcode spanbit 640H REG See Also scanb...

Страница 216: ... complete discussion stob and stib store a byte and stos and stis store a half word from the src register s low order bytes Data for ordinal stores is truncated to fit the destination width When the data for integer stores cannot be represented correctly in the destination width an Arithmetic Integer Overflow fault is signaled st stl stt and stq copy 4 8 12 and 16 bytes respectively from successiv...

Страница 217: ... 0 end if stos if illegal_write_to_on_chip_RAM_or_MMR generate_fault TYPE MISMATCH else if effective_address 0 02 unaligned_fault_enabled store_to_memory effective_address 15 0 src1 15 0 generate_fault OPERATION UNALIGNED else store_to_memory effective_address 15 0 src1 15 0 stis if illegal_write_to_on_chip_RAM_or_MMR generate_fault TYPE MISMATCH else if effective_address 0 02 unaligned_fault_enab...

Страница 218: ... reg_number src1 4 0 generate_fault OPERATION INVALID_OPERAND else if effective_address 3 0 00002 unaligned_fault_enabled store_to_memory effective_address 31 0 src1 store_to_memory effective_address 4 31 0 src1_ _1 store_to_memory effective_address 8 31 0 src1_ _2 generate_fault OPERATION UNALIGNED else store_to_memory effective_address 31 0 src1 store_to_memory effective_address 4 31 0 src1_ _1 ...

Страница 219: ...ve_address 12 31 0 src1_ _3 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW For stib stis Example st g2 1254 g6 Word beginning at offset 1254 g6 g2 Opcode st 92H MEM stob 82H MEM stos 8AH MEM stib C2H MEM stis CAH MEM stl 9AH MEM stt A2H MEM stq B2H MEM See Also LOAD MOVE Notes illegal_write_to_on_chip_RAM is an implementation dependent mechanism The mapping of register bi...

Страница 220: ...so be used for integer subtraction Here when integer subtraction results in an overflow condition code bit 0 is set subc does not distinguish between ordinals and integers it sets condition code bits 0 and 1 regardless of data type Action dst src2 src1 1 AC cc 1 31 0 AC cc 2 0 0002 if src2 31 src1 31 src2 31 dst 31 AC cc 0 1 Overflow bit AC cc 1 src2 src1 1 AC cc 1 32 Carry out Faults STANDARD Ref...

Страница 221: ...btract Integer if Not Equal subile Subtract Integer if Less or Equal subio Subtract Integer if Ordered Format sub src1 src2 dst reg lit reg lit reg Description Subtracts src1 from src2 conditionally based on the condition code bits in the arithmetic controls When for Unordered the condition code is 0 or when for the other cases the logical AND of the condition code and the mask part of the opcode ...

Страница 222: ...ault ARITHMETIC OVERFLOW Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW For the SUBI cc class Example AC cc 0102 suboge g0 g1 g2 g2 g1 g0 AC cc 0012 subile g0 g1 g2 g2 not modified Opcode subono 782H REG subog 792H REG suboe 7A2H REG suboge 7B2H REG subol 7C2H REG subone 7D2H REG subole 7E2H REG suboo 7F2H REG subino 783H REG subig 793H REG subie 7A3H REG subige 7B3H REG ...

Страница 223: ...INSTRUCTION SET REFERENCE 6 111 6 See Also subc subi subo SEL cc TEST cc Notes These core instructions are not implemented on 80960Cx Kx and Sx proces sors ...

Страница 224: ...ions are identical The only difference is that subi can signal an integer overflow Action subo dst src2 src1 31 0 subi true_result src2 src1 dst true_result 31 0 if true_result 2 31 1 true_result 2 31 Check for overflow if AC om 1 AC of 1 else generate_fault ARITHMETIC OVERFLOW Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 ARITHMETIC OVERFLOW For subi Example subi g6 g9 g12 g12 g9 g6 Opcode...

Страница 225: ...ntil_all_previous_instructions_in_flow_have_completed This also means that all of the faults on these instructions have been reported Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example ld xyz g6 addi r6 r8 r8 syncf and g6 0x1f g8 The syncf instruction ensures that any faults that may occur during the execution of the ld and addi instructions occur before the and instruction is executed O...

Страница 226: ... src2 and src3 operands are also interpreted depending upon the command Figure 6 7 Src1 Operand Interpretation Table 6 18 sysctl Field Definitions Message src1 src2 src dst Type Field 1 Field 2 Field 3 Field 4 Request Interrupt 0x0 Vector Number N U N U N U Invalidate Cache 0x1 N U N U N U N U Configure Instruction Cache 0x2 Cache Mode Configuration See Table 6 19 N U Cache load address N U Reinit...

Страница 227: ...le_base pend_priority atomic_unlock Update internal software priority with highest priority interrupt from newly adjusted Pending Priorities word The current internal software priority is always replaced by the new computed one If there is no bit set in pending_priorities word for the current internal one then it is discarded by this action if pend_priority 0 SW_Int_Priority 0 else msb_set scan_bi...

Страница 228: ...aligned to a quad word boundary aligned_addr src2 0xfffffff0 invalidate I cache unlock I cache for j 0 j number_of_blocks_that_lock j way block_associated_with_block j start src2 j block_size end start block_size for i start i end i i 4 set set_associated_with i word word_associated_with i Icache_line set way word memory i update_tag_n_valid_bits set way word lock_icache set way word break default...

Страница 229: ...ilable_data_breakpoints dst 7 4 number_of_available_data_breakpoints dst 31 8 0 break default Reserved fault occurs generate_fault OPERATION INVALID_OPERAND break order_wrt subsequent_operations Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example ldconst 0x100 r6 Set up message sysctl r6 r7 r8 Invalidate I cache r7 r8 are not used ldconst 0x204 g0 Set up message type and cache configurati...

Страница 230: ...e condition code and opcode mask part is not zero Otherwise the instruction stores a false 00H in dst For testno Unordered a true is stored when the condition code is 0002 otherwise a false is stored The following table shows the condition code mask for each instruction The mask is in bits 0 2 of the opcode Table 6 20 Condition Code Mask Descriptions Instruction Mask Condition testno 0002 Unordere...

Страница 231: ...lue testno if AC cc 0002 src1 1 true value else src1 0 false value Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example Assume AC cc 1002 testl g9 g9 0x00000001 Opcode teste 22H COBR testne 25H COBR testl 24H COBR testle 26H COBR testg 21H COBR testge 23H COBR testo 27H COBR testno 20H COBR See Also cmpi cmpdeci cmpinci ...

Страница 232: ...rms a bitwise XNOR xnor instruction or XOR xor instruction operation on the src2 and src1 values and stores the result in dst Action xnor dst src2 src1 src2 src1 xor dst src2 src1 src2 src1 Faults STANDARD Refer to section 6 1 6 Faults pg 6 5 Example xnor r3 r9 r12 r12 r9 XNOR r3 xor g1 g7 g4 g4 g7 XOR g1 Opcode xnor 589H REG xor 586H REG See Also and andnot nand nor not notand notor or ornot ...

Страница 233: ...7 PROCEDURE CALLS ...

Страница 234: ......

Страница 235: ...on and saves a return IP Additionally the processor saves the local registers and allocates a new set of local registers and a new stack for the called procedure The saved context is restored when the return instruction ret executes In many RISC architectures a branch and link instruction is used as the base instruction for coding a procedure call The user program then handles register and stack m...

Страница 236: ...to as a supervisor call 7 1 CALL AND RETURN MECHANISM At any point in a program the i960 processor has access to the global registers a local register set and the procedure stack A subset of the stack allocated to the procedure is called the stack frame When a call executes a new stack frame is allocated for the called procedure The processor also saves the current local register set freeing these...

Страница 237: ... local registers often do not have to be written out to the save area in the stack frame in memory Refer to section 7 1 4 Caching Local Register Sets pg 7 7 and section 7 1 4 1 Reserving Local Register Sets for High Priority Interrupts pg 7 8 for more about local registers and procedure stack interrelations Figure 7 1 Procedure Stack Structure and Local Registers register save area Procedure Stack...

Страница 238: ...k Pointer The stack pointer is the byte aligned address of the stack frame s next unused byte The stack pointer value is stored in local register r1 the stack pointer SP register The procedure stack grows upward i e toward higher addresses When a stack frame is created the processor automatically adds 64 to the frame pointer value and stores the result in the SP register This action creates the re...

Страница 239: ...cessor records the call type in the return type field The processor then uses this information to select the proper return mechanism when returning to the calling procedure The use of this information is described in section 7 8 RETURNS pg 7 20 7 1 2 7 Return Instruction Pointer The actual RIP register r2 is reserved by the processor to support the call and return mechanism and must not be used by...

Страница 240: ...s set according to the call type which is performed See section 7 8 RETURNS pg 7 20 4 For a local or system local call a new stack frame is allocated by using the old stack pointer value saved in step 2 This value is first rounded to the next 16 byte boundary to create a new frame pointer then stored in the FP register Next 64 bytes are added to create the new frame s register save area This value...

Страница 241: ...rformed in parallel with this data movement When the number of nested procedures exceeds local register cache size local register sets must at times be saved to and restored from their associated save areas in the procedure stack Because these operations require access to external memory this local cache miss affects call and return performance When a call is made and no frames are available in th...

Страница 242: ...g Local Register Sets for High Priority Interrupts To decrease interrupt latency for high priority interrupts software can limit the number of frames available to all remaining code This includes code that is either in the executing state non inter rupted or code that is in the interrupted state but has a process priority less than 28 For the purposes of discussion here this remaining code is refe...

Страница 243: ...sted procedure level user stack space reserved for local register set n local register set n stored on procedure stack Spill call with no frame spill call with frame spill 1 0 3 2 1 Empty 4 3 2 1 4 3 2 5 1 0 1 0 n 2 3 4 5 6 8 6 5 4 3 2 3 4 5 6 7 8 n Frame with no sets reserved for high priority interrupts 7 8 9 5 6 7 4 5 6 6 7 8 2 1 1 2 3 2 7 7 9 ...

Страница 244: ...dicate nested procedure level Local Register Cache With no sets reserved Current Local Register Set user stack space reserved for local register set n local register set n stored on procedure stack n n for high priority interrupts Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty Empty 4 3 2 ...

Страница 245: ...d procedures flushreg is also used when implementing task switches in multitasking kernels The procedure stack is changed as part of the task switch To change the procedure stack flushreg is executed to update the current procedure stack and invalidate all entries in the local register cache Next the procedure stack is changed by directly modifying the FP and SP registers and executing a call oper...

Страница 246: ...gister cache has already been flushed by the flushreg before only synchronization of the PFP is performed i960 processor implementations may provide other mechanisms to ensure PFP synchronization in addition to flushreg but a flushreg after a PFP modification is ensured to work on all i960 processors 7 3 PARAMETER PASSING Parameters are passed between procedures in two ways value Parameters are pa...

Страница 247: ...g procedure passes a pointer to an argument list on its stack where the remaining return values are placed Example 7 2 illustrates parameter passing by value and by reference Local registers are automatically saved when a call is made Because of the local register cache they are saved quickly and with no external bus traffic The efficiency of the local register mechanism plays an important role in...

Страница 248: ...placement addressing mode allows full 32 bit IP relative addressing When a local call is made with a call or callx the processor performs the same operation as described in section 7 1 3 1 Call Operation pg 7 6 The target IP for the call is derived from the instruction s operands and the new stack frame is allocated on the current stack Example of parameter passing C source int a b 10 a proc1 a 1 ...

Страница 249: ...services By calling these services with a procedure number rather than a specific IP applications software does not need to be changed each time the implementation of the kernel services is modified Only the entries in the system procedure table must be changed Second the ability to switch to a different execution mode and stack with a system supervisor call allows kernel procedures and data to be...

Страница 250: ...alize to 0 000H 008H 00CH 010H 02CH 034H 030H 038H 03CH 438H 43CH Entry Type 00 Local 10 Supervisor Trace Control Bit 0 31 Procedure Entry T supervisor stack pointer base procedure entry 2 procedure entry 1 procedure entry 0 procedure entry 259 Preserved address 0 31 1 2 ...

Страница 251: ...upervisor mode The processor gets a pointer to this stack from the supervisor stack pointer field in the system procedure table Figure 7 4 during the reset initial ization sequence and caches the pointer internally Only the 30 most significant bits of the supervisor stack pointer are given The processor aligns this value to the next 16 byte boundary to determine the first byte of the new stack fra...

Страница 252: ...xceptions When the processor is in user mode it switches to supervisor mode When a mode switch occurs SP is read from the Supervisor Stack Pointer SSP base A new frame for the called procedure is placed at the location pointed to after alignment of SP When no mode switch occurs the new frame is allocated on the current stack When a mode switch occurs the state of the trace enable bit in the PC reg...

Страница 253: ...he previous 16 byte boundary 7 7 INTERRUPT AND FAULT CALLS The architecture defines two types of implicit calls that make use of the call and return mechanism interrupt handling procedure calls and fault handling procedure calls A call to an interrupt procedure is similar to a system supervisor call Here the processor obtains pointers to the interrupt procedures through the interrupt table The pro...

Страница 254: ...as the trace on return flag and then replaced by the trace controls bit in the system procedure table On a return the trace enable bit s original value is restored This mechanism allows instruction tracing to be turned on or off when a supervisor mode switch occurs See section 9 5 2 1 Tracing on Explicit Call pg 9 13 prereturn trace flag PFP p is used in conjunction with call trace and prereturn t...

Страница 255: ...nd link instruction The branch and link method of making procedure calls is recommended for calls to leaf procedures Leaf procedures typically call no other procedures Branch and link is the fastest way to make a call providing the calling procedure does not require its own registers or stack frame Table 7 2 Encoding of Return Status Field Return Status Field Call Type Return Action 000 Local call...

Страница 256: ......

Страница 257: ...8 FAULTS ...

Страница 258: ......

Страница 259: ...r incorrect or inappropriate results or that could cause it to choose an undesirable control path These are called fault conditions For example the architecture defines faults for divide by zero and overflow conditions on integer calculations with an inappropriate operand value As shown in Figure 8 1 the architecture defines a fault table a system procedure table a set of fault handling procedures...

Страница 260: ...ner The current local registers are saved and cached on chip PFP FP and the value 001 is written to the Return Type Field Fault Call Refer to section 7 8 RETURNS pg 7 20 for more information If the fault call is a system supervisor call from user mode the processor switches to the supervisor stack otherwise SP is re aligned on the current stack The processor writes the fault record on the new stac...

Страница 261: ...d subtype Text that follows the table gives column definitions Table 8 1 i960 Jx Processor Fault Types and Subtypes Fault Type Fault Subtype Fault Record Number Name Number or Bit Position Name 0H OVERRIDE NA NA See section 8 10 4 OVERRIDE Faults pg 8 26 0H PARALLEL NA NA see section 8 6 4 Parallel Faults pg 8 9 1H TRACE Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 INSTRUCTION BRANCH CALL RETURN PRER...

Страница 262: ...al fault conditions Fault type and subtype encoding allows all faults to be included in the fault table those that are common to all i960 processors and those that are specific to one or more family members The fault types are used consistently for all family members For example Fault Type 4H is reserved for floating point faults Any i960 processor with floating point operations uses Entry 4H to s...

Страница 263: ...ry ARITHMETIC Fault Entry OPERATION Fault Entry TRACE Fault Entry PARALLEL OVERRIDE Fault Entry Local Call Entry Fault Handler Procedure Address System Call Entry Fault Handler Procedure Number 0000 027FH n n 4 n n 4 0 1 2 0 0 1 00H 08H 10H 18H 20H 28H 30H 38H 40H 48H 50H FCH Reserved Initialize to 0 0 31 31 Fault Table 0 1 2 ...

Страница 264: ...ECORD When a fault occurs the processor records information about the fault in a fault record in memory The fault handling procedure uses the information in the fault record to correct or recover from the fault condition and if possible resume program execution The fault record is stored on the same stack that the fault handling procedure will use to handle the fault local call entry type 002 Prov...

Страница 265: ...ts are stored in their respective fault record fields The processor uses this information to resume program execution after the fault is handled Figure 8 3 Fault Record 0 31 PROCESS CONTROLS ADDRESS OF FAULTING INSTRUCTION n RESERVED NFP 20 NFP 16 NFP 12 NFP 8 NFP 4 OTYPE OSUBTYPE ARITHMETIC CONTROLS FTYPE n FSUBTYPE n OVERRIDE FAULT DATA FAULT DATA NFP n 1 32 NFP 24 n 32 NFP 20 n 32 NFP 12 n 32 N...

Страница 266: ...an be the user stack supervisor stack or interrupt stack The fault record begins at byte address NFP 1 NFP refers to the new frame pointer that is computed by adding the memory size allocated for padding and the fault record to the previous stack pointer SP The processor calculates the new stackpointer NSP by adding 80 bytes to the NFP Figure 8 4 Storage of the Fault Record on the Stack Current Fr...

Страница 267: ...tion 8 9 PRECISE AND IMPRECISE FAULTS pg 8 19 Multiple trace fault conditions on the same instruction are reported in a single trace fault record with the exception of prereturn trace which always happens alone To support multiple fault reporting the trace fault uses bit positions in the fault subtype field to indicate occurrences of multiple faults of the same type see Table 8 1 8 6 3 Multiple Tr...

Страница 268: ...t handler can simply return to the next instruction not yet executed with a ret instruction Consider the following code example where the muli and the addi instructions both have overflow conditions AC om 0 AC nif 0 and both instructions are in the instruction cache at the time of their execution The addi and muli are allowed to execute in parallel when AC nif 0 because they are executed in differ...

Страница 269: ... type fault subtype address of faulting instruction and the optional fault section For example if two parallel faults occur the fault record for the second fault is located from NFP 96 to NFP 65 To calculate byte offsets n indicates the fault number Thus for the second fault recorded n 2 the relationship NFP 4 n 32 reduces to NFP 72 For the i960 Jx processor a maximum of two faults are reported in...

Страница 270: ...e system procedure table the processor enters system error mode Override fault conditions include PROTECTION and OPERATION UNIMPLEMENTED faults An override fault handler must be accessed through a system supervisor call Local and system local override fault handlers are not supported by the architecture and have an unpredictable behavior Tracing is disabled upon entry into the override fault handl...

Страница 271: ...en working with the processor at the development level a common fault handling strategy is to save the fault and processor state information and call a debugging tool such as a monitor 8 7 2 Program Resumption Following a Fault Because of the wide variety of faults they can occur at different times with respect to the faulting instruction Before execution of the faulting instruction e g fetch from...

Страница 272: ...he Return Instruction Pointer RIP is defined and the fault handler can return to the next instruction in the flow TRACE ARITHMETIC INTEGER_OVERFLOW In general resumption of program execution with no changes in the program s control flow is possible with the following fault types or subtypes All TRACE Subtypes The effect of specific fault types on a program is defined in section 8 10 FAULT REFERENC...

Страница 273: ...procedure must alter the RIP To do this reliably the fault handling procedure should perform the following steps 1 Flush the local register sets to the stack with a flushreg instruction 2 Modify the RIP in the previous frame 3 Clear trace fault pending flag in fault record s process controls field before the return optional 4 Execute a return with the ret instruction Use this technique carefully a...

Страница 274: ... when the fault recovery action completes No software other than the fault handling procedures is required to support this activity Three types of implicit procedure calls can be used to invoke the fault handling procedure a local call a system local call and a system supervisor call The following subsections describe actions the processor takes while handling faults It is not necessary to read th...

Страница 275: ...e AC register If the processor is in user mode before execution of the return the process controls field from the fault record is not copied back to the PC register 8 8 2 System Local Fault Call When the fault handler selects an entry for a local procedure in the system procedure table entry type 102 the processor performs the same action as is described in the previous section for a local fault c...

Страница 276: ...rocess controls field is copied into the PC register The mode is then switched back to user if it was in user mode before the call The processor switches back to the stack it was using when the fault occurred If the processor was in user mode when the fault occurred this operation causes a switch from the supervisor stack to the user stack If the trace fault pending flag and trace enable bits are ...

Страница 277: ... and PROTECTION LENGTH faults are always precise Precise faults cannot be found in parallel records with other precise or imprecise faults 8 9 2 Imprecise Faults Faults that do not meet all of the requirements for precise faults are considered imprecise For imprecise faults the state of execution of instructions surrounding the faulting instruction may be unpredictable When instructions are execut...

Страница 278: ...strict the use of pipelining to prevent imprecise faults The AC nif bit should be set if recovery from one or more imprecise faults is required For example the AC nif bit should be set if a program needs to handle and recover from unmasked integer overflow faults The fault handling procedure cannot be closely coupled with the application to perform imprecise fault recovery 8 9 5 Controlling Fault ...

Страница 279: ...nstruction refers to the instruction directly after the faulting instruction or to an instruction to which the processor can logically return when resuming program execution Note that the discussions of many fault types specify that the RIP contains the address of the instruction that would have executed next had the fault not occurred Fault IP Describes the contents of the fault record s fault in...

Страница 280: ...en the divisor operand of an ordinal or integer divide instruction is zero Instructions that generate this fault are RIP IP of the instruction that would have executed next if the fault had not occurred Fault IP IP of the faulting instruction Class Imprecise Program State Changes Faults may be imprecise when executing with the AC nif bit cleared INTEGER_OVERFLOW and ZERO_DIVIDE faults may not be r...

Страница 281: ...egister condition code field matches the condition required by the instruction RIP No defined value Fault IP Faulting instruction Class Imprecise Program State Changes These faults may be imprecise when executing with the AC nif bit cleared No changes in the program s control flow accompany these faults A CONSTRAINT RANGE fault is generated after the FAULT cc instruction executes The program state...

Страница 282: ...ed when the following conditions are present 1 the processor attempts to access an unaligned word or group of words in non MMR memory and 2 the fault is enabled by the unaligned fault mask bit in the PRCB fault configu ration word An INVALID_OPERAND fault is generated when the processor attempts to execute an instruction that has one or more operands having special requirements that are not satisf...

Страница 283: ...dified For the UNALIGNED fault the memory operation completes correctly before the fault is reported In all other cases the destination is undefined Trace Reporting OPERATION UNALIGNED fault the trace is reported upon return from the OPERATION fault handler All other subtypes the trace event is lost Note OPERATION UNALIGNED fault is not implemented on i960 Kx and Sx CPUs ...

Страница 284: ...ype of the additional fault detected while attempting to deliver the program fault Function The override fault handler must be accessed through a system super visor call Local and system local override fault handlers are not supported and have an unpredictable behavior Tracing is disabled upon entry into the override fault handler PC te is cleared It is restored upon return from the handler To pre...

Страница 285: ...of all faults that occurred in parallel The number of parallel faults is indicated in the OSubtype Field NFP 20 See Figure 8 3 The maximum size of the fault record is implementation dependent and depends on the number of parallel and pipeline execution units in the specific implementation The parallel fault handler must be accessed through a system super visor call Local and system local parallel ...

Страница 286: ...itecture protects against A PROTECTION LENGTH fault is generated when the index operand used in a calls instruction points to an entry beyond the extent of the system procedure table RIP IP of the faulting instruction Fault IP PROTECTION LENGTH IP of the faulting instruction Class PROTECTION LENGTH Is precise Program State Changes LENGTH The instruction does not execute Trace Reporting PROTECTION ...

Страница 287: ...r mark It detects these events only if the TC register mode bit is set for the event If the PC register trace enable bit is also set the processor generates a fault when a trace event is detected A TRACE fault is generated following the instruction that causes a trace event or prior to the instruction for the prereturn trace event The following trace modes are available INSTRUCTION Generates a tra...

Страница 288: ... trace fault with the fault subtype bit set for each subtype that occurs The prereturn trace is always reported alone When a fault type other than a TRACE fault is generated during execution of an instruction that causes a trace event the non trace fault is handled before the trace fault An exception is the prereturn trace fault which occurs before the processor detects a non trace fault and is ha...

Страница 289: ...on implicit fault calls for which the fault IP field is undefined Class Precise Program State Changes All trace faults except PRERETURN are serviced after the execution of the faulting instruction The processor returns to the instruction immediately following the instruction traced in instruction issue order For PRERETURN the return is traced before it executes The processor re executes the return...

Страница 290: ...te mode and BCON irp is set See Figure 13 3 Write to the first 64 bytes of on chip data RAM while the processor is in either user or supervisor mode and BCON sirp is set See Figure 13 3 Write to memory mapped registers in supervisor space from user mode Write to timer registers while in user mode when timer registers are protected against user mode writes RIP No defined value Fault IP IP of the fa...

Страница 291: ...9 TRACING AND DEBUGGING ...

Страница 292: ......

Страница 293: ...and fmark instructions can be used to generate trace events explicitly in the instruction stream The i960 Jx processor also provides four hardware breakpoint registers that generate trace events and trace faults Two registers are dedicated to trapping on instruction execution addresses IPB0 1 while the remaining two registers can trap on the addresses of various types of data accesses DAB0 1 9 1 T...

Страница 294: ... Software can access the breakpoint event flags using modtc The processor automatically sets and clears these flags as part of its trace handling mechanism the breakpoint event flag corresponding to the trace being serviced is set in the TC while servicing a breakpoint trace fault the TC event flags are cleared upon return from the trace fault handler When the program is not in a trace fault handl...

Страница 295: ... fault when a trace event is detected at the same time as another event e g non trace fault interrupt The non trace fault event is serviced before the trace fault and depending on the event type and execution mode the trace fault pending flag in the PC field of the fault record may be used to generate a fault upon return from the non trace fault event see section 9 5 2 4 Tracing on Return from Imp...

Страница 296: ...n explicit call trace fault it sets the prereturn trace flag PFP register bit 3 in the new frame created by the call operation or in the current frame if a branch and link operation was performed The processor uses this flag to determine whether or not to signal a prereturn trace event on a ret instruction 9 2 4 Return Trace When the return trace mode is enabled in TC and PC te is set The processo...

Страница 297: ... mark instruction It should be noted that the MARK fault subtype bit in the fault record is used to indicate a match of the instruction address breakpoint registers or the data address breakpoint registers as well as the fmark and mark instructions 9 2 7 1 Software Breakpoints mark and fmark allow breakpoint trace faults to be generated at specific points in the instruction stream When mark trace ...

Страница 298: ...resources before attempting to modify these resources Rights are requested by executing the sysctl instruction as described in the following section 9 2 7 3 Requesting Modification Rights to Hardware Breakpoint Resources Application code must always first request and acquire modification rights to the hardware breakpoint resources before any attempt is made to modify them This mechanism is employe...

Страница 299: ...ta address breakpoint registers If the value returned is zero the application has not gained the rights to the breakpoint resources Because the i960 Jx processor does not initialize the breakpoint registers from the control table during initialization as i960 Cx processors do the application must explicitly initialize the breakpoint registers in order to use them once modification rights have been...

Страница 300: ...X No action With PC te clear breakpoints are globally disabled X 0 0 No action DABx is disabled 1 0 1 Reserved 1 1 0 Reserved 1 1 1 Generate a Trace Fault NOTE X don t care Reserved combinations must not be used Table 9 3 Programming the Data Address Breakpoint DAB Modes DABx m1 DABx m0 Mode 0 0 Break on Data Write Access Only 0 1 Break on Data Read or Data Write Access 1 0 Break on Data Read Acce...

Страница 301: ...data read access and has a value of 100FH Any of the following instructions will cause the DAB0 breakpoint to be triggered ldob 0x100f r8 ldos 0x100e r8 ld 0x100c r8 ld 0x100d r8 even unaligned accesses ldl 0x1008 r8 ldt 0x1004 r8 ldq 0x1000 r8 Note that the instruction ldt 0x1000 r8 does not cause the breakpoint to be triggered because byte 100FH is not referenced by the triple word access Data a...

Страница 302: ...ction to take upon an address match Figure 9 4 Instruction Breakpoint IPB Register Format Programming the instruction breakpoint register modes is shown in Table 9 4 On the i960 Jx processor the instruction breakpoint memory mapped registers can be read by using the sysctl instruction only They can be modified by sysctl or by a word length store instruction 28 24 20 16 12 8 4 0 31 Data Address Har...

Страница 303: ...ory access matching the conditions of an enabled data address breakpoint DAB register 9 4 HANDLING MULTIPLE TRACE EVENTS With the exception of a prereturn trace event which is always reported alone it is possible for a combination of trace events to be reported in the same fault record The processor may not report all events however it will always report a supervisor event and it will always signa...

Страница 304: ...d This is necessary to prevent an endless loop of trace fault handling calls 9 5 1 Tracing and Interrupt Procedures When the processor invokes an interrupt handling procedure to service an interrupt it disables tracing It does this by saving the PC register s current state in the interrupt record then clearing the PC register trace enable bit On returning from the interrupt handling procedure the ...

Страница 305: ...tion The trace enable bit in effect before the calls is stored in the new PFP 0 bit and is restored upon return from the routine see section 9 5 2 3 Tracing on Return from Explicit Call pg 9 15 The calls instruction and all instructions of the procedure called are traced according to the new PC te Table 9 5 summarizes all cases Table 9 5 Tracing on Explicit Call Call Type Calling Procedure Trace E...

Страница 306: ...parallel override fault handler The only type of trace fault handler supported is the system supervisor type Tracing is disabled on the way to the trace fault handler Tracing is disabled by the processor on the way to an interrupt handler so an interrupt call is never traced Note that the Fault IP field of the fault record is not defined when tracing a fault call because there is no instruction po...

Страница 307: ... on the target if in supervisor mode before the return and if the trace enable and trace fault pending flags are set in the PC field of the non trace fault record at FP 16 If the processor is in user mode before the return tracing is not altered The pending trace on the target instruction is lost and the return is traced according to the current PC te Table 9 7 Tracing on Return from Explicit Call...

Страница 308: ...terrupt handler returns directly to the trace fault handler If the interrupt return is executed from user mode the PC register is not restored and tracing of the return occurs according to the PC te and TC modes bit fields Table 9 9 Tracing on Return from Interrupt rrr PC em PC te Tgt PC te Pending Trace on Target When Trace on Return When 111 user w w Pending Trace is Lost w TC ev 111 super w FP ...

Страница 309: ...10 TIMERS ...

Страница 310: ......

Страница 311: ...to the bus clock frequency or the bus clock rate divided by 2 4 or 8 The timers can be programmed to either stop when the count value reaches zero single shot mode or run continuously auto reload mode When a timer s count reaches zero the timer s interrupt unit signals the processor s interrupt controller Figure 10 1 shows a diagram of the timer functions See also Figure 10 5 for the Timer Unit st...

Страница 312: ...egister TCR0 TCR1 pg 10 6 Timer Reload Register contains the timer s reload count See section 10 1 3 Timer Reload Register TRR0 TRR1 pg 10 7 For register memory locations see Table 3 5 pg 3 11 Table 10 1 Timer Performance Ranges Bus Frequency MHz Max Resolution ns Max Range mins 40 25 14 3 33 30 3 17 4 25 40 22 9 20 50 28 6 16 62 5 35 8 Table 10 2 Timer Registers Timer Unit Register Acronym Regist...

Страница 313: ...unt Status TMRx tc 0 No Terminal Count 1 Terminal Count Timer Enable TMRx enable 0 Disabled 1 Enabled Timer Auto Reload Enable TMRx reload 0 Auto Reload Disabled 1 Auto Reload Enabled Timer Register Supervisor Write Control TMRx sup 0 Supervisor and User Mode Write Enabled 1 Supervisor Mode Only Write Enabled Timer Input Clock Selects TMRx csel1 0 00 1 1 Timer Clock Bus Clock 01 2 1 Timer Clock Bu...

Страница 314: ... 12 2 10 1 1 2 Bit 1 Timer Enable TMRx enable The TMRx enable bit allows user software to control the timer s RUN STOP status When TMRx enable 1 The Timer Count Register TCRx value decrements every Timer Clock TCLOCK cycle TCLOCK is determined by the Timer Input Clock Select TMRx csel bits 0 1 See section 10 1 1 5 When TMRx reload 0 the timer automatically clears TMRx enable when the count reaches...

Страница 315: ...uns while the processor is in Halt mode Two events can stop the timer User software explicitly clearing either TMRx enable or TMRx reload Hardware or software reset Refer to section 12 2 INITIALIZATION pg 12 2 The processor clears this bit upon hardware or software reset Refer to section 12 2 INITIALIZATION pg 12 2 10 1 1 4 Bit 3 Timer Register Supervisor Read Write Control TMRx sup The TMRx sup b...

Страница 316: ...load is not set for the timer the status bit in the timer mode register TMRx tc is set and remains set until the TMRx register is accessed Figure 10 3 shows the timer count register Figure 10 3 Timer Count Register TCR0 TCR1 The valid programmable range is from 1H to FFFF FFFFH Avoid programming TCRx to 0 as it has varying results as described in section 10 5 UNCOMMON TCRX AND TRRX CONDITIONS pg 1...

Страница 317: ...er TRR0 TRR1 10 2 TIMER OPERATION This section summarizes timer operation and describes load store access latency for the timer registers 10 2 1 Basic Timer Operation Each timer has a programmable enable bit in its control register TMRx enable to start and stop counting The supervisor TMRx sup bit controls write access to the enable bit This allows the programmer to prevent user mode tasks from en...

Страница 318: ...ls 0 again This process repeats until software clears TMRx reload or TMR enable When TMRx reload 0 the timer stops running and sets the terminal count bit TMRx tc This bit remains set until user software reads or writes the TMRx register Either access type clears the bit The timer ignores any value specified for TMRx tc in a write request Table 10 4 Timer Mode Register Control Bit Summary Bit 3 TM...

Страница 319: ...ruction activity and resource availability of processor functional units The processor ensures that the TMRx tc bit is cleared within one bus clock after a load or store instruction accesses TMRx Table 10 5 Timer Responses to Register Bit Settings Sheet 1 of 2 Name Status Action TMRx tc Terminal Count Bit 0 READ Timer clears this bit when user software accesses TMRx This bit can be set 1 bus clock...

Страница 320: ...in 1 bus clock cycle after executing a read instruction from TCRx When the timer is running the pre decremented value is returned as the current value WRITE The value written to TCRx becomes the active value within 1 bus clock cycle When the timer is running the value written is decremented in the current clock cycle TRRx d31 0 Timer Reload Register READ The current TRRx count value is available w...

Страница 321: ...request is still active the Interrupt Controller latches the request When a timer generates a second interrupt request before the CPU services the first interrupt request the second request may be lost When auto reload is enabled for a timer the timer continues to decrement the value in TCRx even after entry into the timer interrupt handler 10 4 POWERUP RESET INITIALIZATION Upon power up external ...

Страница 322: ...mmon TMRx Control Bit Settings TRRx TCRx Bit 2 TMRx reload Bit 1 TMRx enable Action X 0 0 1 TMRx tc and TINTx set TMR enable cleared 0 0 1 1 Timer and auto reload enabled TINTx not generated and timer enable remains set 0 N 1 1 Timer and auto reload enabled TINT x set when TCRx 0 The timer remains enabled but further TINTx s are not generated N 0 1 1 Timer and auto reload enabled TINTx not set ini...

Страница 323: ...ite TMRx enable 1 TMRx enable 1 TMRx reload user value TMRx sup user value TMRx csel1 0 user value TCRx Decrement Clock Unit Tick SW Write TCRx 0 and TCRx 0 TC 1 IPND tip 1 IPND tip 0 TC Detected Bus Clock SW Read SW Read Write Reload 0 Reload 1 TCRx TRRx TMRx enable 1 TC 0 TMRx enable 0 State TC 0 TMRx reload user value TMRx sup user value TMRx csel1 0 user value TMRx enable 1 TMRx enable 0 SW Wr...

Страница 324: ......

Страница 325: ...11 INTERRUPTS ...

Страница 326: ......

Страница 327: ...or interrupt requests may originate from external hardware sources internal timer unit sources or from software External interrupts are detected with the chip s 8 bit interrupt port and with a dedicated Non Maskable Interrupt NMI input Interrupt requests originate from software by the sysctl instruction To manage and prioritize all possible interrupts the processor integrates an on chip programmab...

Страница 328: ...des a flexible low latency means for requesting and posting interrupts and minimizing the core s interrupt handling burden Acting independently from the core the interrupt controller posts interrupts requested by hardware and software sources and compares the priorities of posted interrupts with the current process priority The interrupt controller provides the following features for managing hard...

Страница 329: ...d never successfully stop execution of a program of any priority In addition vector numbers 244 247 and 249 251 are reserved therefore 240 external interrupt sources and the non maskable interrupt NMI are available to the user The processor compares its current priority with the interrupt request priority to determine whether to service the interrupt immediately or to delay service The interrupt i...

Страница 330: ...ed into two sections vector entries and pending interrupts Each are described in the subsections that follow Figure 11 2 Interrupt Table X X 000H 004H 020H 024H Vector 8 028H Vector 9 02CH Vector 10 3D0H Vector 243 3D4H Vector 244 3E4H Vector 248 3E8H Vector 249 3F0H Vector 251 3F4H Vector 252 400H Vector 255 Entry Type 00 Normal 10 Reserved1 01 Reserved1 Pending Priorities Pending Interrupts Entr...

Страница 331: ...s two least significant bits are 0 Bits 0 and 1 of an entry indicate entry type on the i960 Jx processor only type 00 is valid The other possible entry types are reserved and must not be used 11 4 2 Pending Interrupts The pending interrupts section comprises the interrupt table s first 36 bytes divided into two fields pending priorities byte offset 0 through 3 and pending interrupts 4 through 35 E...

Страница 332: ...out having to make external memory accesses The i960 Jx processor caches the following The value of the highest priority posted in the pending priorities field A predefined subset of interrupt vector numbers entries from the interrupt table Pending interrupts received from external interrupt pins This caching mechanism is non transparent the processor may modify fields in a cached interrupt table ...

Страница 333: ...terrupt record is always stored on the interrupt stack adjacent to the new frame that is created for the interrupt handling procedure It includes the state of the AC and PC registers at the time the interrupt was serviced and the interrupt vector number used Relative to the new frame pointer NFP the saved AC register is located at address NFP 12 the saved PC register is located at address NFP 16 I...

Страница 334: ...ts that the i960 processor family supports 3 Mixed mode five pins operate in expanded mode and can request 32 different interrupts and three pins operate in dedicated mode Dedicated mode requests are posted in the Interrupt Pending Register IPND The processor s ICU does not post expanded mode requests 11 6 2 Non Maskable Interrupt NMI The NMI pin generates an interrupt for implementation of critic...

Страница 335: ...d from the interrupt table not from the internal vector cache 11 6 5 Posting Interrupts Interrupts are posted to the processor by a number of different mechanisms these are described in the following sections Software interrupts interrupts posted through the interrupt table by software running on the i960 Jx processor External Interrupts interrupts posted through the interrupt table by an external...

Страница 336: ...three the following actions occur 1 The interrupt controller signals the core that a software generated interrupt is to be serviced 2 The core checks the interrupt table in memory determines the vector number of the highest priority pending interrupt and clears the pending interrupts and pending priorities bits in the table that correspond to that interrupt 3 The core detects the interrupt with th...

Страница 337: ...ctions 11 6 5 4 Posting Hardware Interrupts Certain interrupts are posted directly to the processor by an implementation dependent mechanism that can bypass the interrupt table This is often done for performance reasons 11 6 6 Resolving Interrupt Priority The interrupt controller continuously compares the processor s priority to the priorities of the highest posted software interrupt and the highe...

Страница 338: ...for pending interrupts in the interrupt table is made when requesting a software interrupt with sysctl or when servicing a software interrupt When a check of the interrupt table is made the algorithm shown in Example 11 4 is used Since the pending interrupts may be cached the check for pending interrupt operation may not involve any memory operations The algorithm uses synchronization because ther...

Страница 339: ...ared interrupt table use sysctl periodically to guarantee recognition of pending interrupts posted in the table by the external agent Example 11 4 Sampling Pending Interrupts Check_For_Pending_Interrupts x read pending_priorities if x 0 return nothing to do y most_significant_bit x if y 31 y current_priority return x atomic_read pending_priorities synchronize if x 0 atomic_write pending_priorities...

Страница 340: ...Single bits in the IPND register correspond to each of the eight dedicated external interrupt inputs or the two timer inputs to the interrupt controller The interrupt mask IMSK register selectively masks each of the dedicated mode interrupts Optionally the IMSK register can be saved and cleared when a dedicated mode interrupt is serviced This allows other hardware generated interrupts to be locked...

Страница 341: ... source must remain asserted until the processor services the interrupt and explicitly clears the source External interrupt pins in expanded mode are always active low and level detect The interrupt controller ignores vector numbers 0 though 7 The output of the external priority encoders in Figure 11 6 can use the 0 vector to indicate that no external interrupts are pending The low order four bits...

Страница 342: ... 1 0 GS A2 A1 A0 E1 E0 Priority Encoder 7 6 5 4 3 2 1 0 GS A2 A1 A0 E1 E0 Priority Encoder 7 6 5 4 3 2 1 0 GS A2 A1 A0 E1 E0 Priority Encoder 7 6 5 4 3 2 1 0 GS A2 A1 A0 E1 E0 Priority Encoder LSB MSB Enable Input NC Interrupt Sources up to 63 lines To i960 Jx processor s INT pins ...

Страница 343: ...k Whenever an interrupt requested by XINT 7 0 or by the internal timers is serviced the IMSK register is automatically saved in register r3 of the new local register set allocated for the interrupt handler After the mask is saved the IMSK register is optionally cleared This allows all interrupts except NMIs to be masked while an interrupt is being serviced Since the IMSK register value is saved th...

Страница 344: ...t inputs The i960 Jx processor provides eight external interrupt pins and one non maskable interrupt pin for detecting external interrupt requests The eight external pins can be configured as dedicated inputs where each pin is capable of requesting a single interrupt The external pins can also be configured in an expanded mode where the value asserted on the external pins represents an interrupt v...

Страница 345: ...sponding pin is removed In this case the active level on the interrupt pin causes the pending bit to remain asserted After the interrupt signal is deasserted the handler then clears the interrupt pending bit for that source before return from handler is executed If the pending bit is not cleared the interrupt is re entered after the return is executed Example 11 5 demonstrates how a level detect i...

Страница 346: ...nterrupt signal that is asserted for at least three CLKIN cycles for the fast sampling mode or seven CLKIN cycles for the debounce sampling mode See section 1 4 Related Documents pg 1 10 These documents have setup and hold specifications that guarantee detection of the interrupt on particular edges of CLKIN These specification are useful in designs that use synchronous logic to generate interrupt ...

Страница 347: ...egister and IPND control register Table 11 1 describes the ICU registers Table 11 1 Interrupt Control Registers Memory Mapped Addresses Register Name Description Address IPND Interrupt Pending Register FF00 8500H IMSK Interrupt Mask Register FF00 8504H ICON Interrupt Control Register FF00 8510H IMAP0 Interrupt Map Register 0 FF00 8520H IMAP1 Interrupt Map Register 1 FF00 8524H IMAP2 Interrupt Map ...

Страница 348: ...ed or falling edge activated Expanded mode inputs are always level detected the NMI input is always edge detected regardless of the bit s value Interrupt Mode ICON im 00 Dedicated 01 Expanded 10 Mixed 11 Reserved Signal Detection Mode ICON sdm 0 Level low activated 1 Falling edge activated Global Interrupts Enable ICON gie 0 Enabled 1 Disabled Mask Operation ICON mo 00 Move to r3 mask unchanged 01...

Страница 349: ...are always detected using debounce mode Bits 15 through 31 are reserved and must be set to 0 at initialization 11 7 5 Interrupt Mapping Registers IMAP0 IMAP2 The IMAP registers Figure 11 9 are three 32 bit registers IMAP0 through IMAP2 These registers are used to program the vector number associated with the interrupt source when the source is connected to a dedicated mode input IMAP0 and IMAP1 co...

Страница 350: ...l Interrupt 2 Field IMAP0 x2 External Interrupt 3 Field IMAP0 x3 28 24 20 16 12 8 4 0 External Interrupt 4 Field IMAP1 x4 x 4 4 x 4 5 x 4 6 x 4 7 x 5 4 x 5 5 x 5 6 x 5 7 x 6 4 x 6 6 x 6 7 x 7 4 x 7 5 x 7 6 x 7 7 Interrupt Map Register 1 IMAP1 External Interrupt 5 Field IMAP1 x5 External Interrupt 6 Field IMAP1 x6 External Interrupt 7 Field IMAP1 x7 28 24 20 16 12 8 4 0 Timer Interrupt 0 Field IMAP...

Страница 351: ...4 0 Timer Interrupt Pending Bits IPND tip 0 No Interrupt x i p 7 x i p 6 x i p 5 x i p 4 x i p 3 x i p 2 x i p 1 x i p 0 t i p 0 t i p 1 1 Pending Interrupt External Interrupt Pending Bits IPND xip 0 No Interrupt 1 Pending Interrupt RESERVED INITIALIZE TO 0 28 24 20 16 12 8 4 0 Timer Interrupt Pending Bits IPND tip 0 No Interrupt t i p 0 t i p 1 1 Pending Interrupt 28 24 20 16 12 8 4 0 Timer Inter...

Страница 352: ...imer Interrupt Mask Bits IMSK tim 0 Masked x i m 7 x i m 6 x i m 5 t i m 0 t i m 1 1 Not Masked Expanded External Interrupts Mask Bits IMSK eim 0 Masked 1 Not Masked Interrupt Mask Register IMSK Expanded Mode x i m 4 x i m 3 x i m 2 x i m 1 e i m 28 24 20 16 12 8 4 0 Timer Interrupt Mask Bits IMSK tim 0 Masked x i m 7 x i m 6 x i m 5 t i m 0 t i m 1 1 Not Masked Expanded External Interrupt Mask Bi...

Страница 353: ...er before or after but not during the read modify write operation on that register This requirement ensures that modifications to IPND and IMSK take effect cleanly completely and at a well defined point Note that the processor does not assert the LOCK pin externally when executing an atomic instruction to IPND and IMSK When the processor core handles a pending interrupt it attempts to clear the bi...

Страница 354: ...nterrupt controller microcode and core resources handle all stages of interrupt service Interrupt service is handled in the following stages Requesting Interrupt In the i960 Jx processor the programmable on chip interrupt controller transparently manages all interrupt requests Interrupts are generated by hardware external events or software the application program Hardware requests are signaled on...

Страница 355: ...st priority posted in this table is also saved in an on chip software priority register this register is continually compared to the current process priority Servicing Interrupts If the process priority falls below that of any posted interrupt the interrupt is serviced The comparator signals the core to begin a microcode sequence to perform the interrupt context switch and branch to the first inst...

Страница 356: ... Vector Processor State Software Interrupt Priority Register Internal Process Priority in PC Ack Core Vector Interrupt Core Core accepts interrupt if Processor not stopped Not executing a fault call OR Interrupt call action AND Between instruction OR At a resumption point Global Interrupt Disable Core Calls interrupt handlers Posts software interrupts Checks for software interrupts Handles all int...

Страница 357: ...dling procedure is called the processor allocates a new frame on the interrupt stack and a set of local registers for the procedure If not already in supervisor mode the processor always switches to supervisor mode while an interrupt is being handled It also saves the states of the AC and PC registers for the interrupted program The interrupt procedure shares the remainder of the execution environ...

Страница 358: ...g an Interrupt from Executing State When the processor receives an interrupt while in the executing state i e executing a program PC s 0 it performs the following actions to service the interrupt This procedure is the same regardless of whether the processor is in user or supervisor mode when the interrupt occurs The processor 1 Switches to the interrupt stack as shown in Figure 11 3 The interrupt...

Страница 359: ... while it is servicing another interrupt and the new interrupt has a higher priority than the interrupt currently being serviced the current interrupt handler routine is interrupted Here the processor performs the same interrupt servicing action as is described in Section 11 8 3 1 to save the state of the interrupted interrupt handler routine The interrupt record is saved on the top of the interru...

Страница 360: ...ins store interrupt record at FP 16 get interrupt vector number SP FP 64 IP interrupt vector number3 pending bits in interrupt table or 31 FP SP aligned to next 16 byte boundary 16 clear trace fault pending bit TC tfp clear trace enable bit TC te vector 248 NO YES continue normal operation Test for external is ICON gie 0 read pending interrupt bits clear pending interrupt bits in interrupt table i...

Страница 361: ...t stack in the data cache 11 9 2 1 Vector Caching Option To reduce interrupt latency the i960 Jx processors allow some interrupt table vector entries to be cached in internal data RAM When the vector cache option is enabled and an interrupt request has a cached vector to be serviced the controller fetches the associated vector from internal RAM rather than from the interrupt table in memory Interr...

Страница 362: ...umber of free frames are available to high priority interrupt service routines See section 4 2 LOCAL REGISTER CACHE pg 4 2 for more details 11 9 2 3 Caching the Interrupt Stack By locating the interrupt stack in cacheable memory the performance of interrupt returns can be improved This is because accesses to the interrupt record by the interrupt return can be satisfied by the data cache See sectio...

Страница 363: ... is approximately 50 less than the 80960JA JF interrupt latency due to its core clock operating at twice the speed of CLKIN The 80960JT is approximately 70 less than the 80960JA JF and approximately 30 less than the 80960JD due to its core clock operating at three times the speed of CLKIN Table 11 3 Base Interrupt Latency Interrupt Type Detection Option Vector Caching Enabled Typical 80960JA JF La...

Страница 364: ... execution of divo r15 destination divo r3 destination calls or flushreg instructions or software interrupt detection The assumptions for these tables are the same as for Table 11 8 except for instruction execution It is also assumed that the instructions are already in the cache and that tracing is disabled Table 11 4 Worst Case Interrupt Latency Controlled by divo to Destination r15 Interrupt Ty...

Страница 365: ...0 N 2 3 where N is the number of bus cycles needed to perform a word load Table 11 6 Worst Case Interrupt Latency Controlled by calls Interrupt Type Detection Option Vector Caching Enabled Worst 80960JA JF Latency Bus Clocks Worst 80960JD Latency Bus Clocks Worst 80960JT 3x Latency Bus Clocks NMI Fast Yes 53 a 27 c 22 6 f Debounced Yes 56 a 32 c 26 7 f Dedicated Mode XINT 7 0 TINT 1 0 Fast Yes 58 ...

Страница 366: ... 80960JT 1x Latency Bus Clocks NMI Fast Yes 96 47 31 7 2c d Debounced Yes 97 47 35 7 2c d Dedicated Mode XINT 7 0 TINT 1 0 Fast Yes 99 48 34 2c d No 107 a 53 b 34 7 3c d Debounced Yes 100 48 38 2c d No 107 a 53 b 38 7 3c d Expanded Mode XINT 7 0 TINT 1 0 Debounced Yes 96 48 38 3 2c d No 105 a 53 b 39 3 2c d NOTES a MAX 0 N 7 b MAX 0 N 3 5 c MAX 0 N 2 3 d N where N is the number of bus cycles neede...

Страница 367: ...INT 1 0 Debounced Yes 88 a b 47 5 d e 34 A No 93 a b c 52 d e f 37 A k Notes a MAX 0 M 15 b MAX 0 M 28 c MAX 0 N 7 d MAX 0 M 7 5 e MAX 0 M 15 f MAX 0 n 3 5 A g h i g MAX 0 M 4 7 h MAX 0 2M 7 3 g i MAX 0 3M 13 7 g h j MAX 0 4M h 53 k MAX 0 N 7 j stq_cycles number of cycles to execute stq instruction g h i account for scoreboarding due to the possibility of long memory access latencies j and k accou...

Страница 368: ... proceed to the next step of interrupt delivery Interrupt latency can be improved by avoiding the first four local registers as the destination for a Multiply Divide Unit operation Registers pfp sp and rip should be avoided for general operations as these are used for procedure linking 11 9 4 2 Masking Integer Overflow Faults for syncf The i960 core architecture requires an implicit syncf before d...

Страница 369: ...12 INITIALIZATION AND SYSTEM REQUIREMENTS ...

Страница 370: ......

Страница 371: ...sor at initialization System data structures the processor caches several data structure pointers internally at initialization Software can reinitialize the processor When a reinitialization takes place a new PRCB and reini tialization instruction pointer are specified Reinitialization is useful for relocating data structures from ROM to RAM after initialization The i960 Jx processor supports seve...

Страница 372: ... 12 1 for a flow chart of i960 Jx processor initialization Figure 12 1 Processor Initialization Flow Executing Program RESET Asserted Hardware Reset Reset State YES Assert FAIL Pin STEST Asserted On Rising Edge Of RESET Perform Internal Internal Self Test Pass NO STOP Deassert FAIL Pin Configure Registers Setup Bus Controller Assert FAIL Pin Bus Confidence Self Checksum 0 NO Deassert FAIL Pin SYSC...

Страница 373: ...s in the reset state This power up reset is referred to as cold reset To ensure that all internal logic has stabilized in the reset state a valid input clock CLKIN and VCC must be present and stable for a specified time before RESET can be deasserted The processor may also be cycled through the reset state after execution has started This is referred to as warm reset For a warm reset the RESET pin...

Страница 374: ...e bus confidence test passes FAIL is deasserted and the processor begins user program execution Idle Note 2 HOLD Valid Input Note 3 Notes 2 If the processor fails built in self test it will initiate one dummy load bus access 3 Since the bus is idle hold requests will be honored during reset and built in self test BE3 0 DEN BLAST Valid Output Note3 HOLDA F_XL028A V 10 000 CLKIN periods for PLL stab...

Страница 375: ...Control Table offset 68H initial image in Control Table offset 68H FP g15 interrupt stack base 0xF interrupt stack base 0xF PFP r0 undefined undefined SP r1 FP 64 FP 64 RIP r2 undefined undefined IPND undefined value before software re init IMSK 00H value before software re init LMAR0 1 undefined value before software re init LMMR0 1 bit 0 0 bits 1 31 undefined bit 0 0 bits 1 31 undefined DLMCON b...

Страница 376: ...le offset 14H initial image in Control Table offset 14H IMAP2 initial image in Control Table offset 18H initial image in Control Table offset 18H ICON initial image in Control Table offset 1CH initial image in Control Table offset 1CH PMCON0_1 initial image in Control Table offset 20H initial image in Control Table offset 20H PMCON2_3 initial image in Control Table offset 28H initial image in Cont...

Страница 377: ...c bus failures such as external address data or control lines that are stuck shorted or open 12 2 2 3 The Fail Pin FAIL The FAIL pin signals errors in either the built in self test or bus confidence self test FAIL is asserted low for each self test Figure 12 3 When any test fails the FAIL pin remains asserted a fail code message is driven onto the address bus and the processor stops execution at t...

Страница 378: ...nto the address bus and the processor stops execution at the point of failure The only way to resume normal operation of the processor is to perform a reset operation Because System Error generation can occur sometime after the BUS confidence test and even after initialization during normal processor operation the FAIL pin will be at a logic one before the detection of a System Error 12 2 2 5 FAIL...

Страница 379: ...ory mapped registers or data structures Therefore to ensure complete object level compatibility portable code must not access or depend on values in this region Table 12 3 Fail Codes For BIST bit 7 1 Bit When set 6 On chip Data RAM failure detected by BIST 5 Internal Microcode ROM failure detected by BIST 4 I cache failure detected by BIST 3 D cache failure detected by BIST 2 Local register cache ...

Страница 380: ... PRCB The IMI performs three functions for the processor Provides initial configuration information for the core and integrated peripherals Provides pointers to the system data structures and the first instruction to be executed after processor initialization Provides checksum words that the processor uses in its self test routine at startup Several data structures are typically included as part o...

Страница 381: ...is loaded from the interrupt table and saved at location 0000 0000H of the internal data RAM The interrupt table is typically programmed in the boot ROM and then relocated to internal RAM by reinitializing the processor The fault table is typically located in boot ROM If it is necessary to locate the fault table in RAM the processor must be reinitialized The remaining data structures that an appli...

Страница 382: ...s Control Table Base Address AC Register Initial Image Fault Configuration Word Interrupt Table Base Address System Procedure Table Base Address Reserved Interrupt Stack Pointer Instruction Cache Configuration Word Register Cache Control Table Interrupt Table System Procedure Table Other Architecturally Defined Data Structures Not Required As Part Of IMI Fixed Data Structures Relocatable Data Stru...

Страница 383: ...orrectly The lowest order byte of each of the IBR s first 4 words are used to form the register values On the i960 Jx processor the bytes at FEFF FF30 and FEFF FF34 are not needed so the processor starts fetching at address FEFF FF38 The loading of these registers is shown in the pseudo code flow in Example 12 1 Table 12 5 Initialization Boot Record Byte Physical Address Description FEFF FF30H PMC...

Страница 384: ..._cache disable D_cache invalidate D_cache BCON ctv 0 Selects PMCON14_15 to control all accesses PMCON14_15 0 Selects 8 bit bus width Exit Reset State Start_Init if STEST_ON_RISING_EDGE_OF_RESET status BIST BIST does not return if it fails FAIL_pin false PC 0x001f2002 PC Priority 31 PC em Supervisor PC te 0 PC State Interrupted ibr_ptr 0xfeffff30 ibr_ptr used to fetch IBR words Read PMCON14_15 imag...

Страница 385: ...which consists of the first instruction pointer the PRCB pointer and six checksum words The PRCB pointer and the first instruction pointer are internally cached The six checksum words along with the PRCB pointer and the first instruction pointer are used in a checksum calculation which implements a confidence test of the external bus The checksum calculation is shown in the pseudo code flow in Exa...

Страница 386: ...ammed in the arithmetic controls AC initial image the fault configuration word the instruction cache configuration word and the register cache configuration word Figure 12 6 shows these configuration words Table 12 6 PRCB Configuration Physical Address Description PRCB POINTER 00H Fault Table Base Address PRCB POINTER 04H Control Table Base Address PRCB POINTER 08H AC Register Initial Image PRCB P...

Страница 387: ...k overflow faults No Imprecise Faults Bit AC nif 0 allow imprecise fault conditions 1 prevent imprecise fault conditions Register Cache Configuration Word Programmed Limit Disable Instruction Cache Instruction Cache Configuration Word 0 enable cache 1 disable cache Mask Non Aligned Bus Request Fault 0 enable the fault 1 mask the fault c c 0 c c 1 c c 2 o f o m n i f Initialize to 0 12 8 4 0 28 24 ...

Страница 388: ...y in Data RAM Reset_block_NMI interrupt_table memory PRCB_mmr 0x10 memory 0 memory interrupt_table 248 4 4 Process System Procedure Table sysproc memory PRCB_mmr 0x14 temp memory sysproc 0xc SSP_mmr 0x3 temp SSP te 1 temp Initialize ISP FP SP and PFP ISP_mmr memory PRCB_mmr 0x1c FP 0xF ISP_mmr SP FP 64 PFP FP Initialize Instruction Cache ICCW memory PRCB_mmr 0x20 if 1 ICCW 16 disable I_cache Confi...

Страница 389: ...st is issued If bit 30 is clear a fault is generated after an unaligned memory request is performed An application may elect to generate a fault to detect unwanted unaligned access Note that unaligned accesses to MMR space are not affected by bit 30 are never performed and always causes an operation unimplemented fault 12 3 2 3 Instruction Cache Configuration Word The instruction cache configurati...

Страница 390: ...ed during initialization and must be completely constructed in the IMI Figure 12 7 shows the Control Table format For register bit definitions of the on chip control table registers see the following IMAP Section 11 7 5 Interrupt Mapping Registers IMAP0 IMAP2 pg 11 23 ICON Section 11 7 4 Interrupt Control Register ICON pg 11 22 PMCON Section 13 5 3 Modifying the PMCON Registers pg 13 7 TC Section ...

Страница 391: ...ion PMCON2_3 Physical Memory Region 4 5 Configuration PMCON4_5 Physical Memory Region 6 7 Configuration PMCON6_7 Physical Memory Region 8 9 Configuration PMCON8_9 Physical Memory Region 10 11 Configuration PMCON10_11 Physical Memory Region 12 13 Configuration PMCON12_13 Physical Memory Region 14 15 Configuration PMCON14_15 Reserved Initialize to 0 Reserved Initialize to 0 Reserved Initialize to 0 ...

Страница 392: ... processor message type See section 6 2 67 sysctl pg 6 114 for a description of sysctl The reinitialization instruction pointer and a new PRCB pointer are specified as operands to the sysctl instruction When the processor is reinitialized the fields in the newly specified PRCB are loaded as described in section 12 3 1 2 Process Control Block PRCB pg 12 16 Reinitialization is useful for relocating ...

Страница 393: ...on is complete user start up code typically copies initialized data structures from ROM to RAM reinitializes the processor sets up the first stack frame changes the execution state to non interrupted and calls the _main routine This section presents an example start up routine and associated header file This simplified start up file can be used as a basis for more complete initialization routines ...

Страница 394: ... char reserved_2 3 unsigned char bus_byte_3 unsigned char reserved_3 3 void first_inst unsigned prcb_ptr int check_sum 6 IBR PMCON Bus Width can be 8 16 or 32 default to 8 PMCON14_15 BOOT_BIG_ENDIAN 0 little endian 1 big endian define BUS_WIDTH bw bw 16 1 22 0 bw 32 2 22 0 define BOOT_BIG_ENDIAN on on 1 31 0 Bus configuration define DEFAULT BUS_WIDTH 8 BOOT_BIG_ENDIAN 0 define I_O BUS_WIDTH 8 BOOT...

Страница 395: ...ion ROM system procedure table equ supervisor_proc 2 text align 6 or align 2 or align 4 rom_sys_proc_table space 12 Reserved word _supervisor_stack Supervisor stack pointer space 32 Preserved word _default_sysproc sysproc 0 word _default_sysproc sysproc 1 word _default_sysproc sysproc 2 word _default_sysproc sysproc 3 word _default_sysproc sysproc 4 word _default_sysproc sysproc 5 word _default_sy...

Страница 396: ...x _intx _intx _intx _intx _intx _intx _intx 48 word _intx _intx _intx _intx _intx _intx _intx _intx 50 word _intx _intx _intx _intx _intx _intx _intx _intx 58 word _intx _intx _intx _intx _intx _intx _intx _intx 60 word _intx _intx _intx _intx _intx _intx _intx _intx 68 word _intx _intx _intx _intx _intx _intx _intx _intx 70 word _intx _intx _intx _intx _intx _intx _intx _intx 78 word _intx _intx ...

Страница 397: ...ot needed RAM based monitor the symbol rom_data can be defined as 0 in the linker directives file lda rom_data g1 load source of copy cmpobe 0 g1 1f lda __Bdata g2 load destination lda __Edata g3 init_data ldq g1 r4 addo 16 g1 g1 stq r4 g2 addo 16 g2 g2 cmpobl g2 g3 init_data 1 Initialize the BSS area of RAM lda __Bbss g2 start of bss lda __Ebss g3 end of bss movq 0 r4 bss_fill stq r4 g2 addo 16 g...

Страница 398: ...k bss _intr_stack 0x0200 6 interrupt stack bss _supervisor_stack 0x0600 6 fault supervis or stack text _fault_handler ldconst F g0 call _co ret _default_sysproc ret _intx ldconst I g0 call _co ret Example 12 5 High Level Startup Code initmain c unsigned componentid 0 main system or board specific code goes here this code is called by init s co system or board specific output routine goes here Exam...

Страница 399: ...tem_init 1 falling edge activated system_init 2 falling edge activated system_init 3 falling edge activated system_init 4 level low activated system_init 5 falling edge activated system_init 6 falling edge activated system_init 7 falling edge activated mask unchanged not cached fast Physical Memory Configuration Registers DEFAULT 0 Region 0_1 DEFAULT 0 Region 2_3 DEFAULT 0 Region 4_5 I_O 0 Region ...

Страница 400: ...uration is always region 14_15 since the IBR must be located there extern void start_ip extern unsigned rom_prcb extern unsigned checksum define CS_6 int checksum value calculated in linker define BOOT_CONFIG ROM const IBR init_boot_record BYTE_N 0 BOOT_CONFIG PMCON14_15 byte 1 0 0 0 reserved set to 0 BYTE_N 1 BOOT_CONFIG PMCON14_15 byte 2 0 0 0 reserved set to 0 BYTE_N 2 BOOT_CONFIG PMCON14_15 by...

Страница 401: ...ile init ld Sheet 1 of 2 init ld MEMORY Enough space must be reserved in ROM after the text section to hold the initial values of the data section rom o 0xfefe0000 l 0x1fc00 rom_dat o 0xfefffc00 l 0x0300 placeholder for data image ibr o 0xfeffff30 l 0x0030 data o 0xa0000000 l 0x0300 bss o 0xa0000300 1 0x7d00 Example 12 7 Initialization Boot Record File rom_ibr c Sheet 2 of 2 ...

Страница 402: ...f data section initial values ROM960 move command places the data section right after the text section _checksum _rom_prcb _start_ip HLL Rommer script embedded here the following creates a ROM image move 0 text 0 move 0 move 0 ibr 0x1ff30 mkimage 0 0 ima ihex 0 ima 0 hex mode16 map 0 quit Example 12 8 Linker Directive File init ld Sheet 2 of 2 ...

Страница 403: ...file makefile LDFILE init FINALOBJ init OBJS init o ctltbl o initmain o IBR rom_ibr o LDFLAGS AJF Fcoff T LDFILE m ASFLAGS AJF V CCFLAGS AJF Fcoff V c init ima FINALOBJ rom960 LDFILE FINALOBJ init OBJS IBR gld960 LDFLAGS o OBJS s o gas960c ASFLAGS c o gcc960 CCFLAGS ...

Страница 404: ...ce overshoot and undershoot 12 6 2 Power and Ground Requirements VCC VSS The large number of VSS and VCC pins effectively reduces the impedance of power and ground connections to the chip and reduces transient noise induced by current surges The i960 Jx processor is implemented in CHMOS IV technology Unlike NMOS processes power dissipation in the CHMOS process is due to capacitive charging and dis...

Страница 405: ...into the VCC5 pin This resistor ensures that current drawn by the VCC5 pin does not exceed the maximum rating for this pin Figure 12 9 VCC5 Current Limiting Resistor This resistor is not necessary in systems that can guarantee the VDIFF specification 12 6 4 Power and Ground Planes Power and ground planes are recommended to be used in i960 Jx processor systems to minimize noise Justification for th...

Страница 406: ... switching Place these capacitors close to the device because connection line inductance negates their effect Also for this reason the capacitors should be low inductance Chip capacitors surface mount exhibit lower inductance 12 6 6 I O Pin Characteristics The i960 Jx processor interfaces to its system through its pins This section describes the general characteristics of the input and output pins...

Страница 407: ...tion to be produced internally resulting in undetermined behavior Refer to section 1 4 Related Documents pg 1 10 Specific information on input valid setup and hold times relatives to CLKIN can be found in the documents i960 Jx processor inputs which are considered asynchronous are internally synchronized to the rising edge of CLKIN Since they are internally synchronized the pins only need to be he...

Страница 408: ...path delay is greater than signal rise or fall time If the line is not terminated the signal reaches its high or low level before reflections have time to dissipate and overshoot or undershoot occurs For the i960 Jx processor two termination methods are attractive AC and series An AC termination matches the impedance of the trace there by eliminating reflections due to the impedance mismatch Serie...

Страница 409: ...mes shorted to VSS Intel s CMOS IV processes are immune to latchup under normal operation conditions Latchup can be triggered when the voltage limits on I O pins are exceeded causing internal PN junctions to become forward biased The following guidelines help prevent latchup Observe the maximum rating for input voltage on I O pins A C Source RS B F_CA080A A C Source B C R F_CA081A ...

Страница 410: ...nce is due to electromagnetic and electrostatic fields whose effects are weaker further from the source Two types of interference must be considered in high frequency circuits electromagnetic inter ference EMI and electrostatic interference ESI EMI is caused by the magnetic field that exists around any current carrying conductor The magnetic flux from one conductor can induce current in another co...

Страница 411: ...ng of two adjacent conductors The conductors act as the plates of a capacitor a charge built up on one induces the opposite charge on the other The following steps reduce ESI Separate signal lines so that capacitive coupling becomes negligible Run a ground line between two lines to cancel the electrostatic fields 1 A C B F_CA082A ...

Страница 412: ......

Страница 413: ...13 MEMORY CONFIGURATION ...

Страница 414: ......

Страница 415: ... BCU how to interpret format and control interaction of on chip data caches The physical and logical attributes for an individual location are independently programmable 13 1 1 Physical Memory Attributes The only programmable physical memory attribute for the i960 Jx microprocessor is the bus width which can be 8 16 or 32 bits wide For the purposes of assigning memory attributes the physical addre...

Страница 416: ...hin a single memory subsystem For example data within one area of DRAM may be non cacheable while data in another area is cacheable Figure 13 1 shows the use of the Control Table PMCON registers with logical memory templates for a single DRAM region in a typical application Figure 13 1 PMCON and LMCON Example PMCON Registers Region 14_15 Region 12_13 Region 10_11 Region 8_9 Region 6_7 Region 4_5 R...

Страница 417: ...cluding on chip data RAM The LMCON registers and their programming are described in Section 13 6 Programming the Logical Memory Attributes 13 2 Differences With Previous i960 Processors The mechanism described in this chapter is not implemented on the i960 Kx or Sx processors Although the i960 Cx processor has a memory configuration mechanism it is different from the 80960Jx s in the following way...

Страница 418: ...shown in Table 13 1 Table 13 1 PMCON Address Mapping Register Control Table Entry Region Controlled PMCON0_1 0000 0000H to 0FFF FFFFH and 1000 0000H to 1FFF FFFFH PMCON2_3 2000 0000H to 2FFF FFFFH and 3000 0000H to 3FFF FFFFH PMCON4_5 4000 0000H to 4FFF FFFFH and 5000 0000H to 5FFF FFFFH PMCON6_7 6000 0000H to 6FFF FFFFH and 7000 0000H to 7FFF FFFFH PMCON8_9 8000 0000H to 8FFF FFFFH and 9000 0000H...

Страница 419: ...Register Bit Description 13 4 Physical Memory Attributes at Initialization All eight PMCON registers are loaded automatically during system initialization The initial values are stored in the Control Table in the Initialization Boot Record see section 12 3 1 Initial Memory Image IMI pg 12 10 28 24 20 16 12 8 4 0 31 B W 1 B W 0 Reserved write to zero Bus Width 00 8 bit 01 16 bit 10 32 bit bus 11 re...

Страница 420: ... each region Figure 13 3 Bus Control Register BCON 28 24 20 16 12 8 4 0 31 S I R Reserved write to zero Configuration Entries in Control Table Valid BCON ctv P I R P C T V 0 PMCON entries not valid default to PMCON14_15 setting 1 PMCON entries valid Internal RAM Protection BCON irp 0 Internal data RAM not protected from user mode writes Supervisor Internal RAM Protection BCON sirp 0 First 64 bytes...

Страница 421: ...boundaries uses the PMCON settings of both regions Accesses that lie in the first region use that region s PMCON parameters and the remaining accesses use the second region s PMCON parameters For example an unaligned quad word load store beginning at address 1FFF FFFEH would cross boundaries from region 0_1 to 2_3 The physical parameters for region 0_1 would be used for the first 2 byte access and...

Страница 422: ...A 1 6 A 1 5 A 1 4 A 1 3 A 1 2 A 3 0 Template Starting Address Data Cache Enable 0 Data caching disabled 1 Data caching enabled Byte Order read only D N Mnemonic Bit Bit Field Name Bit Position s Function A31 12 Template Starting Address 31 12 Defines upper 20 bits for the starting address fo a logical data template The lower 12 bits are fixed at zero The starting address is modulo 4 Kbytes DCEN Da...

Страница 423: ... 8 M A 2 7 M A 2 6 M A 2 5 M A 2 4 M A 2 3 M A 2 2 M A 2 1 M A 2 0 M A 1 9 M A 1 8 M A 1 7 M A 1 6 M A 1 5 M A 1 4 M A 1 3 M A 1 2 Mnemonic Bit Bit Field Name Bit Position s Function MA31 12 Template Address Mask 31 12 Defines upper 20 bits for the address mask for a logical memory template The lower 12 bits are fixed at zero 0 Mask 1 Do not mask LMTE Logical Memory Template Enabled 0 Enables disa...

Страница 424: ...Configuration Register DLMCON Mnemonic Bit Bit Field Name Bit Position s Function DCEN Data Cache Enable 1 Controls data caching for areas not within other logical memory templates 0 Data caching disabled 1 Write through caching enabled Instruction caching is never affected by this bit BE Big Endian Byte Order 0 Controls byte order for all accesses both instruction and data to memory 0 Little endi...

Страница 425: ...match The processor will only use the logical data template when all compared address bits match Two examples help clarify the operation of the address comparators Create a template 64 Kbytes in length beginning at address 0010 0000H and ending at address 0010 FFFFH Determine the form of the candidate address to match and then program the LMADR and LMMR registers Candidate Address is of form 0010 ...

Страница 426: ... Jx microprocessor supports this method by always ensuring that the DLMCON be bit is reflected in bit zero of LMADR0 and LMADR1 also labelled as LMADR be when they are read Any attempts to write bit zero of an LMADR are ignored Great care should be exercised when dynamically changing the processor s homogenous byte order See section 13 6 8 Dynamic Byte Order Changing pg 13 14 for an instruction co...

Страница 427: ... LMT 13 6 6 1 Internal Memory Locations The LMT registers are not used during accesses to memory mapped registers Internal data RAM locations are never cached LMT bits controlling caching are ignored for data RAM accesses However the byte ordering of the internal data RAM is controlled by DLMCON be 13 6 6 2 Overlapping Logical Data Template Ranges Logical data templates that specify overlapping ra...

Страница 428: ... use the new byte order setting This byte swapping usually results in errors because the current instruction stream uses the previous byte order setting Dynamically changing the byte order to perform limited operations is possible if the code sequence is locked in the instruction cache The application must ensure that code executes from within the locked region including faults and interrupts whil...

Страница 429: ...14 EXTERNAL BUS ...

Страница 430: ......

Страница 431: ...rdware system allowing the processor to fetch instructions manipulate data and interact with its I O environment To perform these tasks at high bandwidth the processor features a burst transfer capability allowing up to four successive 32 bit data transfers at a maximum rate of one word every clock cycle The address data path is multiplexed for economy and bus width is programmable to 8 16 and 32 ...

Страница 432: ...r of accesses per request is governed by the requested data length the programmed width of the bus and the alignment of the address 14 2 1 Basic Bus States The bus has five basic bus states idle Ti address Ta wait data Tw Td recovery Tr and hold Th During system operation the processor continuously enters and exits different bus states The bus occupies the idle Ti state when no address data transa...

Страница 433: ... HOLD HOLD REQUEST ASSERTED NO HOLD HOLD REQUEST NOT ASSERTED LOCKED ATOMIC EXECUTION ATADD ATMOD IN PROGRESS NOT LOCKED NO ATOMIC EXECUTION IN PROGRESS RESET RESET ASSERTED ONCE ONCE ASSERTED Tw Td Tr Th Ti Ta READY AND BURST OR NOT READY NOT RECOVERED READY AND NO BURST HOLD AND NOT LOCKED RECOVERED AND HOLD AND NOT LOCKED HOLD NO REQUEST AND NO HOLD OR LOCKED REQUEST PENDING AND NO HOLD REQUEST...

Страница 434: ...32 of these signals multiplex within the processor to serve a dual purpose During Ta the processor drives AD31 2 with the address of the bus access At all other times these lines are defined to contain data A3 2 are demultiplexed address pins providing incrementing word addresses during burst cycles AD1 0 denote burst size during Ta and data during other states The processor routinely performs dat...

Страница 435: ... incrementing burst address bits Driven during Ta and Tw Td WIDTH HLT D1 0 Width and Processor Halted O Physical bus size driven during Ta and Tw Td Can denote Halt Mode D C Data Code O Data access or instruction access driven during Ta and Tw Td W R Write Read O Indication of data direction driven during Ta and Tw Td DT R Data Transmit Receive O Delayed indication of data direction driven during ...

Страница 436: ...indicates whether an access is a data transaction 1 or an instruction transaction 0 The write read pin indicates the direction of data flow relative to the i960 Jx processor WIDTH1 0 D C and W R change state as needed during the Ta state DT R and DEN pins are used to control data transceivers Data transceivers may be used in a system to isolate a memory subsystem or control loading on data lines D...

Страница 437: ...gs Depending on the programmed bus width the byte enable signals provide either data enables or low order address lines 8 bit region BE0 1 provide the byte address A0 A1 see Table 14 2 16 bit region BE1 provides the short word address A1 BE3 is the byte high enable signal BHE BE0 is the byte low enable signal BLE see Table 14 3 32 bit region byte enables are not encoded as address pins Byte enable...

Страница 438: ...it memory they can be permanently defined this way for ease of implementation Table 14 2 8 Bit Bus Width Byte Enable Encodings Byte BE3 Not Used BE2 Not Used BE1 Used as A1 BE0 Used as A0 0 1 1 0 0 1 1 1 0 1 2 1 1 1 0 3 1 1 1 1 Table 14 3 16 Bit Bus Width Byte Enable Encodings Byte BE3 Used as BHE BE2 Not Used BE1 Used as A1 BE0 Used as BLE 0 1 0 1 0 0 2 3 0 1 1 0 0 1 1 0 0 1 0 1 0 1 2 1 1 1 0 3 0...

Страница 439: ... cycle BE3 0 specify which bytes the processor uses to read the data word The processor brings W R low to denote a read operation and drives D C to the proper state For data trans ceivers DT R goes low to define the input direction During the Tw Td state the i960 Jx microprocessor deasserts ADS and asserts DEN to enable any data transceivers Since this is a non burst transaction the processor asse...

Страница 440: ...n Burst Read and Write Transactions Without Wait States 32 Bit Bus CLKIN AD31 0 ALE ADS A3 2 BE3 0 WIDTH1 0 D C W R DT R DEN RDYRCV BLAST ADDR D In Invalid ADDR DATA Out 10 10 Ta Td Tr Ti Ti Ta Td Tr Ti Ti Read Idle Write Idle F_JF030A ...

Страница 441: ... i960 Jx micropro cessor uses burst transactions for instruction fetching and accessing system data structures Therefore a system design incorporating an i960 Jx microprocessor must support burst transac tions Burst accesses can also result from instruction references to data types which exceed the width of the bus Maximum burst size is four data transfers independent of bus width A byte wide bus ...

Страница 442: ...us Bursts Figure 14 5 16 Bit Wide Data Bus Bursts 32 Bit Burst Bus Quad Word Burst Double Word Burst Triple Word Burst Double Word Burst A3 2 00 10 11 01 16 Bit Burst Bus 4 Short Word Burst 2 Short Word Burst 2 Short Word Burst A2 1 A2 BE1 00 10 11 01 ...

Страница 443: ...lways begin on an even byte boundary A0 0 see Figure 14 6 Figure 14 7 illustrates a series of bus accesses resulting from a triple word store request to 16 bit wide memory The top half of the figure shows the initial location of 12 data bytes contained in registers g4 through g6 The instruction s task is to move this data to memory at address 0AH The top half of the figure also shows the final des...

Страница 444: ...th short words contents 0FEEDH and 0BA98H to address 10H 4 Non burst access to transfer the last short word contents 0FEDCH to address 14H The short word at address 16H remains unchanged Figure 14 7 Unaligned Write Transaction 1 2 3 4 5 6 7 8 F E E D F A C E F E D C B A 9 8 Registers 16 Byte Boundary G3 G4 G6 G5 G7 Memory Address A 5 6 7 8 F A C E B A 9 8 F E D C 8 C 10 14 31 0 5 6 7 8 1st Access ...

Страница 445: ... and Write Transactions w o Wait States 32 bit Bus ADDR D D ADDR DATA DATA DATA DATA 1 0 1 0 CLKIN AD31 0 ALE ADS A3 2 BE3 0 WIDTH1 0 D C W R BLAST DT R DEN RDYRCV Ta Td Td Tr Ta Td Td Td Td Tr In In Out Out Out Out 00 or 01 01 or 11 00 01 10 11 ...

Страница 446: ... w o Wait States 8 bit Bus ADDR D D ADDR DATA DATA DATA DATA CLKIN AD31 0 ALE ADS A3 2 BE1 A1 WIDTH1 0 D C W R BLAST DT R DEN RDYRCV Ta Td Td Tr Ta Td Td Td Td Tr 00 01 10 or 11 00 01 10 or 11 00 01 10 11 00 00 BE0 A0 In In Out Out Out Out F_JF033A 00 or 10 01 or 11 ...

Страница 447: ...mples RDYRCV low on the next rising clock edge completing the transfer the state is a data state If the memory system is too slow to complete the transfer during this clock external logic drives RDYRCV high and the state is an address to data wait state Additional wait states may be inserted in similar fashion If the bus transaction is a burst the processor re enters the Tw Td state after the firs...

Страница 448: ...Burst Write Transactions With 2 1 1 1 Wait States 32 bit Bus ADDR DATA 1 0 DATA DATA DATA CLKIN AD31 0 ALE ADS A3 2 BE3 0 WIDTH1 0 D C W R BLAST DT R DEN RDYRCV Ta Tw Tw Td Tw Td Tw Td Tw Td Tr Out Out Out Out F_XL032A 0 0 0 1 1 0 1 1 ...

Страница 449: ...ften described as normally ready or normally not ready Normally ready logic asserts a microprocessor s input pin during all bus states except when wait states are desired Normally not ready logic deasserts a processor s input pin during all bus states except when the processor is ready The subtle nomenclature distinction is important for i960 Jx microprocessor systems because the active sense of t...

Страница 450: ...ith 1 0 Wait States Extra Tr State on Read 16 Bit Bus ADDR D D ADDR DATA DATA CLKIN AD31 0 ALE ADS A3 2 BE3 BHE WIDTH1 0 D C W R BLAST DT R DEN RDYRCV Tw Td Td Tr Tr Ta Tw Td Td Tr 00 01 10 or 11 00 01 10 or 11 Ta BE0 BLE BE1 A1 01 01 0 1 0 1 Out Out In In F_XL034A ...

Страница 451: ...with 1 0 Wait States Extra Tr State on Read 16 Bit Bus ADDR D D ADDR DATA DATA CLKIN AD31 0 ALE ADS A3 2 BE3 BHE WIDTH1 0 D C W R BLAST DT R DEN RDYRCV Tw Td Td Tr Tr Ta Tw Td Td Tr 00 01 10 or 11 00 01 10 or 11 Ta BE0 BLE BE1 A1 01 01 0 1 0 1 Out Out In In F_XL034A ...

Страница 452: ... from a read cycle or from a Th state AD31 4 will be driven with the upper 28 bits of the read address AD3 2 will be driven identically as A3 2 the word address of the last read transfer The processor will usually drive AD1 0 with the last SIZE infor mation In cases where the core cancels a previously issued bus request AD1 0 are indeterminate 14 2 5 Data Alignment The i960 Jx microprocessor s Bus...

Страница 453: ...Bytes Accesses on 8 Bit Bus WIDTH1 0 00 Accesses on 16 Bit Bus WIDTH1 0 01 Accesses on 32 Bit Bus WIDTH1 0 10 0 aligned byte access byte access byte access Table 14 7 Summary of Short Word Load and Store Accesses Address Offset from Natural Boundary in Bytes Accesses on 8 Bit Bus WIDTH1 0 00 Accesses on 16 Bit Bus WIDTH1 0 01 Accesses on 32 Bit Bus WIDTH1 0 10 0 aligned burst of 2 bytes short word...

Страница 454: ...s n 1 burst s of 4 bytes byte access byte access short word access n 1 burst s of 2 short words byte access byte access short word access n 1 word access es byte access 2 n 1 2 3 4 6 n 2 3 4 10 n 3 4 14 n 3 4 burst of 2 bytes n 1 burst s of 4 bytes burst of 2 bytes short word access n 1 burst s of 2 short words short word access short word access n 1 word access es short word access 3 n 1 2 3 4 7 ...

Страница 455: ...Double Word Load Store Byte Byte Accesses Short Access Aligned Short Access Aligned Byte Byte Accesses Word Access Aligned Byte Short Byte Accesses Short Short Accesses Byte Short Byte Accesses Byte Offset Word Offset F_XL028A One Double Word Burst Aligned Byte Short Word Byte Accesses Short Word Short Accesses Byte Word Short Byte Accesses Word Word Accesses Burst Aligned ...

Страница 456: ...esses Word Word Word Word Word Word Word Accesses Byte Offset Word Offset One Three Word Burst Aligned Byte Short Word Word Byte Accesses Short Accesses Short Word Word Byte Word Word Short Byte Accesses Word Word Word Accesses One Four Word Burst Aligned Byte Short Word Word Word Byte Accesses Short Word Word Word Short Accesses Byte Word Word Word Short Byte Accesses F_XL029A Accesses Word Word ...

Страница 457: ...us Request Misaligned One Byte From Quad Word Boundary 32 Bit Bus Little Endian Ta Td Tr Ta Td Tr Ta Td Tr Ta Td Tr CLKIN AD31 0 ALE ADS A3 2 BE3 0 WIDTH1 0 D C W R BLAST DT R DEN RDYRCV 00 00 01 10 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 0 Valid A A A D A D In In D In D In F_XL027A ...

Страница 458: ...different data lines on a 32 bit bus depending upon whether address line A1 is odd or even In this example the transfer is assumed to be aligned For the word data type assume that a hexadecimal value of 0xAABBCCDD is stored in an internal processor register where 0xAA is the word s most significant byte and 0xDD is the least significant byte Table 14 9 shows how this word is transferred on the bus...

Страница 459: ...bit 00 10 1st 1st CC DD CC DD DD CC DD CC 16 bit X0 1st CC DD DD CC 8 bit X0 X1 1st 2nd DD CC CC DD Table 14 11 Byte Ordering on Bus Transfers Byte Data Type Byte Data Type Bus Pins AD31 0 Bus Width Addr Bits A1 A0 Xfer Little and Big Endian 31 24 23 16 15 8 7 0 32 bit 00 01 10 11 1st 1st 1st 1st DD DD DD DD 16 bit X0 X1 1st 1st DD DD 8 bit XX 1st DD B B A A 9 9 8 8 F F E E D D C C Registers R3 R4...

Страница 460: ... the 80960Jx processor asserts the LOCK pin during the first Ta of the read operation and deasserts LOCK in the last data transfer of the write operation LOCK is deasserted at the same clock edge that BLAST is asserted The i960Jx processor does not assert LOCK except while a read modify write operation is in progress While LOCK is asserted the processor can perform other non atomic accesses such a...

Страница 461: ...ult bus master typically the 80960Jx that controls the bus and another that requests bus control when it performs an operation e g a DMA controller More than two bus masters may exist on the bus but this configuration requires external arbitration logic Three processor signal pins comprise the bus arbitration pin group CLKIN AD31 0 ADS W R BLAST ALE Ta Td Ti Ti Tr Ti Ta Td Tr LOCK RDYRCV Addr Inva...

Страница 462: ... to assert HOLDA and float the bus on the same clock edge in which it recognizes HOLD Similarly the processor deasserts HOLDA on the same edge in which it recognizes the deassertion of HOLD Thus bus latency is no longer than it takes the processor to finish any bus access in progress If the bus is in hold and the 80960Jx needs to regain the bus to perform a transaction the processor does not deass...

Страница 463: ...A protocol with a bus status BSTAT signal In simplest terms assertion of the BSTAT output pin indicates that the CPU may soon stall unless it obtains or retains control of the bus This indication is a useful input to arbitration logic whether or not the 80960 Jx is the primary bus master The processor asserts BSTAT when one or more of the following conditions are true The bus queue in the bus cont...

Страница 464: ...master As described above BSTAT will be activated for all loads and fetches but store requests do not activate BSTAT unless they fill the bus queue If the processor needs priority access to the bus to perform store operations replace store instructions with the atomic modify atmod instruction using a mask operand of all one s atmod is a read modify write instruction so the processor will assert BS...

Страница 465: ...80960Jx s bus to a backplane through bus interface logic as shown in Figure 14 20 The backplane bus or system bus connects to multiple high performance I O devices often with DMA and large buffer memory for caching packets of data from disk drives or LANs Backplane buses can connect to other microprocessor local buses too creating a loosely coupled multiprocessor system for resource sharing Figure...

Страница 466: ...ge interfacing to high end processors such as the Pentium R microprocessor as illustrated in Figure 14 21 In this way the i960Jx can improve the performance of complex systems such as servers by sparing the main system CPU and its local memory the task of buffering low level I O Figure 14 21 80960Jx System with 80960 Local Bus PCI Local Bus and Local Bus for High End Microprocessor i960 Jx Process...

Страница 467: ... Subsystems I O subsystems vary widely according to the needs of specific applications Individual peripheral devices may be as generic as discrete logic I O ports or as specialized as an ISDN controller Typical peripherals for desktop server intelligent I O applications are Small Computer System Interface controllers supporting SCSI 1 8 bit or SCSI 2 8 16 32 bit standards For network applications ...

Страница 468: ......

Страница 469: ...15 TEST FEATURES ...

Страница 470: ......

Страница 471: ...ter such as an In Circuit Emulator ICE system can emulate the mounted processor and execute a test of the i960 Jx processor system 15 1 1 Entering Exiting ONCE Mode The i960 Jx processor uses the dual function LOCK ONCE pin for ONCE The LOCK ONCE pin is an input while RESET is asserted The i960 Jx processor uses this pin as an output when the ONCE mode conditions are not present ONCE mode is enter...

Страница 472: ...g subsections describe the boundary scan test logic elements TAP controller Instruction register Test Data registers and TAP elements 15 2 1 1 TAP Controller The TAP controller is a 16 state machine which provides the internal control signals to the instruction register and the test data registers The state of the TAP controller is determined by the logic present on the Test Mode Select TMS pin on...

Страница 473: ... the TAP pins as shown in the block diagram in Figure 15 1 The TAP is the general purpose port that provides access to the test data registers and instruction registers through the TAP controller Figure 15 1 Test Access Port Block Diagram Boundary Scan Chain ID Reg Runbist Reg TDO I R TRST TDI TMS TCK Tap Controller Bypass Reg Control And Clock Signals ...

Страница 474: ...XIT1 IR PAUSE IR EXIT2 IR UPDATE IR SELECT IR SCAN CAPTURE DR SHIFT DR EXIT1 DR PAUSE DR EXIT2 DR UPDATE DR SELECT DR SCAN 1 1 1 1 1 1 1 1 TEST LOGIC RESET RUN TEST IDLE 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NOTE ALL STATE TRANSITIONS ARE BASED ON THE VALUE OF TMS TRST 1 0 ...

Страница 475: ... bit is connected to TDI and the least significant bit is connected to TDO TDI is shifted into IR on each rising edge of TCK as long as TMS remains asserted When the processor enters Table 15 1 TAP Controller Pin Definitions Pin Name Mnemonic Type Definition Test Clock TCK Input Clock input for the TAP controller the instruction register and the test data registers The JTAG unit will retain its st...

Страница 476: ...wing sections describe each of the test data registers See Figure 15 5 for an example of loading the data register 15 3 2 1 Device Identification Register The Device Identification register is a 32 bit register containing the manufacturer s identification code part number code and version code in the format shown in Figure 12 8 pg 12 22 The format of the register is discussed in Section 12 4 DEVIC...

Страница 477: ...d on chip system logic Pins NOT in the Boundary Scan chain are power ground and JTAG pins The Boundary Scan register cells are dedicated logic and do not have any system function Data may be loaded into the Boundary Scan register master cells from the device input pins and output pin drivers in parallel by the mandatory sample preload and extest instructions Parallel loading takes place on the ris...

Страница 478: ...st is selected all output signal pin values are driven by values shifted into the Boundary Scan register and may change only on the falling edge of TCK in the Update_DR state Also when extest is selected all system input pin states must be loaded into the Boundary Scan register on the rising edge of TCK in the Capture_DR state Values shifted into input latches in the Boundary Scan register are nev...

Страница 479: ...ass register between TDI and TDO pins while in SHIFT_DR state effectively bypassing the processor s test logic 02 is captured in the CAPTURE_DR state This is the only instruction that accesses the Bypass register While this instruction is in effect all other test data registers have no effect on the operation of the system Test data registers with both test and system functionality perform their s...

Страница 480: ...performed the result is reported in the RUNBIST register Instructions that do not call functions generate no activity in the test logic while the controller is in this state The instruction register and all test data registers retain their current state When TMS is high on the rising edge of TCK the controller moves to the Select DR Scan state 15 3 5 3 Select DR Scan State The Select DR Scan state...

Страница 481: ...tes the scanning process If TMS is held low on the rising edge of TCK the controller enters the Pause DR state The instruction does not change while the TAP controller is in this state All test data registers selected by the current instruction retain their previous value during this state 15 3 5 7 Pause DR State The Pause DR state allows the test controller to temporarily halt the shifting of dat...

Страница 482: ...est data registers selected by the current instruction retain their previous state In this state if TMS is held low on the rising edge of TCK the controller moves into the Capture IR state and a scan sequence for the instruction register is initiated If TMS is held high on the rising edge of TCK the controller moves to the Test Logic Reset state The instruction does not change in this state 15 3 5...

Страница 483: ...struction register retains its state The controller remains in this state as long as TMS is held low When TMS goes high on the rising edges of TCK the controller moves to the Exit2 IR state 15 3 5 15 Exit2 IR State This is a temporary state If TMS is held high on the rising edge of TCK the controller enters the Update IR state which terminates the scanning process If TMS is held low on the rising ...

Страница 484: ...I O 2 XINT0 I 26 ALE O 50 AD15 I O 3 XINT1 I 27 LOCK ONCE cell Enable cell1 51 AD14 I O 4 XINT2 I 28 LOCK ONCE I O 52 AD13 I O 5 XINT3 I 29 BSTAT O 53 AD12 I O 6 XINT4 I 30 BE0 O 54 AD cells Enable cell1 7 XINT5 I 31 BE1 O 55 AD11 I O 8 XINT6 I 32 BE2 O 56 AD10 I O 9 XINT7 I 33 BE3 O 57 AD9 I O 10 NMI I 34 AD31 I O 58 AD8 I O 11 FAIL I 35 AD30 I O 59 AD7 I O 12 ALE O 36 AD29 I O 60 AD6 I O 13 WIDT...

Страница 485: ...ed were shifting in the TDI was being read into the Boundary Scan register This could later be written the output pins 2 4 Pass through the Exit1 DR and Update DR to continue This example does not make use of the pause states Those states would be more useful where we do not control the clock directly The pause states let the clock tick without affecting the shift registers The old instruction was...

Страница 486: ...bits long d c b a 0 1 2 3 4 5 6 5 4 3 2 0 0 0 0 0 0 n n n n n P P P P P P P P P P P 1 n P RESET SELECT DR SCAN SELECT IR SCAN CAPTURE IR SHIFT IR SHIFT IR EXIT1 IR SHIFT IR SHIFT IR RESET RUN TEST IDLE c b a d b a 1 c 1 0 0 a a 1 0 b 0 0 0 1 UPDATE IR SELECT DR SCAN CAPTURE DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR SHIFT DR UPDATE DR RUN ...

Страница 487: ...l output of IR Data input to TDR TDR shift register Parallel output of TDR Register selected TDO enable TDO Test Logic Reset Exit1 IR Shift IR Capture IR Select IR Scan Select DR Scan Run Test Idle Pause IR Exit2 IR Shift IR Exit1 IR Update IR Run Rest Idle INACTIVE ACTIVE INACTIVE INACTIVE ACT OLD DATA Don t care or undefined NEW INSTRUCTION IDCODE INSTRUCTION REGISTER ...

Страница 488: ...93 compliant devices TCK TMS Controller State TDI Data input to IR IR shift register Parallel output of IR Data input to TDR TDR shift register Parallel output of TDR Register Selected TDO enable TDO Test Logic Reset Exit1 DR Shift DR Capture DR Select DR Scan Run Test Idle Pause DR Exit2 DR Shift DR Exit1 DR Update DR Run Rest Idle INACTIVE ACTIVE INACTIVE INACTIVE NEW DATA INSTRUCTION ID CODE TE...

Страница 489: ... in bit Reserved in bit LODRVHIDRVBAR out bit FAILBAR out bit ALEBAR out bit TDO out bit WIDTH out bit_vector 1 downto 0 A32 out bit_vector 0 to 1 Reserved out bit Reserved out bit Reserved out bit Reserved out bit BLASTBAR out bit DCBAR out bit ADSBAR out bit WRBAR out bit DTRBAR out bit DENBAR out bit HOLDA out bit ALE out bit LOCKONCEBAR inout bit BSTAT out bit BEBAR out bit_vector 0 to 3 Reser...

Страница 490: ...9 S09 Q09 Q10 Q11 Q12 S14 R14 Q13 S15 R15 Q14 R16 Q15 R17 Q16 P15 Q17 P16 M15 N15 CLKIN J17 RESETBAR G15 STEST F17 VCC S13 S12 S11 S10 S08 S07 S06 S05 N17 M17 M01 L17 L01 K17 K01 J01 H17 H01 G17 G01 F01 E17 A13 A11 A10 A08 A07 A06 A05 VSS R13 R12 R11 R10 R08 R07 R06 R05 N16 N02 M02 L16 L02 K16 K02 J16 J02 H16 H02 G16 G02 F02 E16 B13 B11 B10 B08 B07 B05 AVCC L15 attribute Tap_Scan_In of TDI signal ...

Страница 491: ...rs identity 1 required by the standard attribute Register_Access of JX_Processor entity is Runbist 1 RUNBIST Bypass The first cell cell 0 is closest to TD0 BC_4 Input BC_1 Output3 Bidirectional attribute Boundary_Cells of JX_Processor entity is CBSC_1 BC_1 attribute Boundary_Length of JX_Processor entity is 70 attribute Boundary_Register of JX_Processor entity is 0 BC_1 STEST input X 1 BC_1 RESETB...

Страница 492: ... 42 1 Z 42 BC_1 control 1 43 BC_1 ALE output3 X 51 1 Z 44 BC_1 HOLDA output3 X 52 1 Z 45 BC_1 DENBAR output3 X 51 1 Z 46 BC_1 DTRBAR output3 X 51 1 Z 47 BC_1 WRBAR output3 X 51 1 Z 48 BC_1 ADSBAR output3 X 51 1 Z 49 BC_1 DCBAR output3 X 51 1 Z 50 BC_1 BLASTBAR output3 X 51 1 Z 51 BC_1 control 1 52 BC_1 control 1 53 BC_1 A32 1 output3 X 51 1 Z 54 BC_1 A32 0 output3 X 51 1 Z 55 BC_1 WIDTH 0 output3 ...

Страница 493: ...A CONSIDERATIONS FOR WRITING PORTABLE CODE ...

Страница 494: ......

Страница 495: ...etc Implementation independent instruction set Procedure call mechanism Mechanism for servicing interrupts and the interrupt and process priority structure Mechanism for handling faults and the implementation independent fault types and subtypes Implementation specific features are one or all of Additions to the instruction set beyond the instructions defined by the core architecture Extensions to...

Страница 496: ...of the i960 architecture A 2 3 Internal Data RAM Internal data RAM an i960 Jx processor implementation specific feature is mapped to the first 1 Kbytes of the processor s address space 0000H 03FFH The on chip data RAM may be used to cache interrupt vectors and may be protected against user and supervisor mode writes Code that relies on these special features is not directly portable to all i960 pr...

Страница 497: ... data in a multiprocessor system and cacheable regions local system memory with no external hardware logic To maintain data cache coherency the i960 Jx processor implements a simple single processor coherency mechanism Also by software control the data cache can be globally enabled globally disabled or globally invalidated A data access is either Explicitly defined as cacheable or non cacheable th...

Страница 498: ...ibility code should initialize reserved locations to zero When an implementation uses a reserved location the implementation specific feature is activated by a value of 1 in the reserved field Setting the reserved locations to 0 guarantees that the features are disabled A 5 INSTRUCTION SET The i960 architecture defines a comprehensive instruction set Code that uses only the architecturally defined...

Страница 499: ...R SET The i960 architecture defines a way to address an extended set of 32 registers in addition to the 16 global and 16 local registers Some or all of these registers may be implemented on a specific i960 processor There are no extended registers implemented on the i960 Jx processors A 7 INITIALIZATION The i960 architecture does not define an initialization mechanism The way that an i960 based pr...

Страница 500: ...960 implementations On the i960Jx processors interrupts may also be requested in software with the sysctl instruction This instruction and the software request mechanism are implementation specific Posting interrupts is also implementation specific Different implementations may optimize interrupt posting according to interrupt type and interrupt controller configuration A pending priorities and pe...

Страница 501: ...mers may or may not be directly portable to other i960 processors A 10 3 Fault Implementation The architecture defines a subset of fault types and subtypes that apply to all implementations of the architecture Other fault types and subtypes may be defined by implementations to detect errant conditions that relate to implementation specific features For example the i960 Jx microprocessor provides a...

Страница 502: ......

Страница 503: ...B OPCODES AND EXECUTION TIMES ...

Страница 504: ......

Страница 505: ... Bits M3 M2 M1 S2 S1 T Description REG Format x x 0 x 0 src1 is a global or local register x x 1 x 0 src1 is a literal x x 0 x 1 reserved x x 1 x 1 reserved x 0 x 0 x src2 is a global or local register x 1 x 0 x src2 is a literal x 0 x 1 x reserved x 1 x 1 x reserved 0 x x x x src dst is a global or local register 1 x x x x reserved COBR Format 0 0 x src1 src2 and dst are global or local registers...

Страница 506: ...8 D notor 1 0101 1000 dst src2 M3 M2 M1 1101 S2 S1 src1 58 E nand 1 0101 1000 dst src2 M3 M2 M1 1110 S2 S1 src1 58 F alterbit 1 0101 1000 dst src M3 M2 M1 1111 S2 S1 bitpos 59 0 addo 1 0101 1001 dst src2 M3 M2 M1 0000 S2 S1 src1 59 1 addi 1 0101 1001 dst src2 M3 M2 M1 0001 S2 S1 src1 59 2 subo 1 0101 1001 dst src2 M3 M2 M1 0010 S2 S1 src1 59 3 subi 1 0101 1001 dst src2 M3 M2 M1 0011 S2 S1 src1 59 ...

Страница 507: ...1 1110 dst M3 M2 M1 1100 S2 S1 src 5F C movq 6 0101 1111 dst M3 M2 M1 1100 S2 S1 src 61 0 atmod 24 0110 0010 dst src2 M3 M2 M1 0000 S2 S1 src1 61 2 atadd 24 0110 0010 dst src2 M3 M2 M1 0010 S2 S1 src1 64 0 spanbit 6 0110 0100 dst M3 M2 M1 0000 S2 S1 src 64 1 scanbit 5 0110 0100 dst M3 M2 M1 0001 S2 S1 src 64 5 modac 10 0110 0100 mask dst M3 M2 M1 0101 S2 S1 mask 65 0 modify 6 0110 0101 src dst src...

Страница 508: ...11 1000 dst src2 M3 M2 M1 0001 S2 S1 src1 78 2 subono 1 0111 1000 dst src2 M3 M2 M1 0010 S2 S1 src1 78 3 subino 1 0111 1000 dst src2 M3 M2 M1 0011 S2 S1 src1 78 4 selno 1 0111 1000 dst src2 M3 M2 M1 0100 S2 S1 src1 79 0 addog 1 0111 1001 dst src2 M3 M2 M1 0000 S2 S1 src1 79 1 addig 1 0111 1001 dst src2 M3 M2 M1 0001 S2 S1 src1 79 2 subog 1 0111 1001 dst src2 M3 M2 M1 0010 S2 S1 src1 79 3 subig 1 0...

Страница 509: ...bine 1 0111 1101 dst src2 M3 M2 M1 0011 S2 S1 src1 7D 4 selne 1 0111 1101 dst src2 M3 M2 M1 0100 S2 S1 src1 7E 0 addole 1 0111 1110 dst src2 M3 M2 M1 0000 S2 S1 src1 7E 1 addile 1 0111 1110 dst src2 M3 M2 M1 0001 S2 S1 src1 7E 2 subole 1 0111 1110 dst src2 M3 M2 M1 0010 S2 S1 src1 7E 3 subile 1 0111 1110 dst src2 M3 M2 M1 0011 S2 S1 src1 7E 4 selle 1 0111 1110 dst src2 M3 M2 M1 0100 S2 S1 src1 7F ...

Страница 510: ...2 M1 targ T S2 33 cmpobge 2 1 0011 0011 src1 src2 M1 targ T S2 34 cmpobl 2 1 0011 0100 src1 src2 M1 targ T S2 35 cmpobne 2 1 0011 0101 src1 src2 M1 targ T S2 36 cmpoble 2 1 0011 0110 src1 src2 M1 targ T S2 37 bbs 2 1 0011 0111 bitpos src M1 targ T S2 38 cmpibno 2 1 0011 1000 src1 src2 M1 targ T S2 39 cmpibg 2 1 0011 1001 src1 src2 M1 targ T S2 3A cmpibe 2 1 0011 1010 src1 src2 M1 targ T S2 3B cmpi...

Страница 511: ... 1 1 0001 0110 targ T 0 17 bo 1 1 0001 0111 targ T 0 18 faultno 13 0001 1000 T 0 19 faultg 13 0001 1001 T 0 1A faulte 13 0001 1010 T 0 1B faultge 13 0001 1011 T 0 1C faultl 13 0001 1100 T 0 1D faultne 13 0001 1101 T 0 1E faultle 13 0001 1110 T 0 1F faulto 13 0001 1111 T 0 1 Indicates that it takes 1 cycle to execute the instruction plus an additional cycle to fetch the target instruction if the br...

Страница 512: ...e Status Request 21 I cache Locking Status 20 Table B 7 Cycle Counts for dcctl Operations Operation Cycles to Execute Disable D cache 18 Enable D cache 18 Invalidate D cache 19 Load and Lock D cache 19 D cache Status Request 16 Quick Invalidate D cache 14 Table B 8 Cycle Counts for intctl Operations Operation Cycles to Execute Disable Interrupts 13 Enable Interrupts 13 Interrupt Status Request 8 ...

Страница 513: ... opcode dst reg 1 1 0 1 00 displacement disp reg scale opcode dst 1 1 1 0 scale 00 reg displacement disp reg1 reg2 scale opcode dst reg1 1 1 1 1 scale 00 reg2 displacement Opcode Mnemonic Cycles to Execute Opcode Mnemonic Cycles to Execute 80 ldob See Note 1 9A stl See Note 1 82 stob See Note 1 A0 ldt See Note 1 84 bx 4 7 A2 stt See Note 1 85 balx 5 8 86 callx 9 12 B0 ldq See Note 1 88 ldos See No...

Страница 514: ...bsolute Displacement exp MEMB 2 2 Register Indirect reg MEMB 1 1 Register Indirect with Offset exp reg MEMA 1 1 Register Indirect with Displacement exp reg MEMB 2 2 Index with Displacement exp reg scale MEMB 2 2 Register Indirect with Index reg reg scale MEMB 1 6 Register Indirect with Index Displacement exp reg reg scale MEMB 2 6 Instruction Pointer with Displacement exp IP MEMB 2 6 ...

Страница 515: ...C MACHINE LEVEL INSTRUCTION FORMATS ...

Страница 516: ......

Страница 517: ... begin on word boundaries MEM format instructions are encoded in one of two sub formats MEMA or MEMB MEMB supports an optional second word to hold a displacement value The following sections describe each format s instruction word fields Figure C 1 Instruction Formats 28 24 20 16 12 8 4 0 31 M M M Opcode src dst src2 Opcode src1 28 24 20 16 12 8 4 0 31 S Opcode src2 displacement T src1 28 24 20 16...

Страница 518: ...truction Format pg 6 6 src1 An input to the instruction This field specifies a value or address In one case of the COBR format this field is used to specify a register in which a result is stored src2 An input to the instruction This field specifies a value or address src dst Depending on the instruction this field can be 1 an input value or address 2 the register where the result is stored or 3 b...

Страница 519: ...nstructions The test if instructions also use the COBR format The COBR opcode field is eight bits two hexadecimal digits The src1 and src2 fields specify source operands for the instruction The src1 field can specify either a global or local register or a literal as determined by mode bit M1 The src2 field can only specify a global or local register Table C 4 shows the M1 src1 relationship and Tab...

Страница 520: ...splacement as a signed two s complement number in the range 221 to 221 1 The processor ignores the ret instruction s displacement field C 5 MEM FORMAT The MEM format is used for instructions that require a memory address to be computed These instructions include the LOAD STORE and lda instructions Also the extended versions of the branch branch and link and call instructions bx balx and callx use ...

Страница 521: ... mode along with the lda instruction allows a constant in the range 0 to 4096 to be loaded into a register Table C 6 Addressing Modes for MEM Format Instructions Format MODE Addressing Mode Address Computation of Instr Words MEMA 00 Absolute Offset offset 1 10 Register Indirect with Offset abase offset 1 MEMB 0100 Register Indirect abase 1 0101 IP with Displacement IP displacement 8 2 0110 Reserve...

Страница 522: ...rocessor automati cally scales the index register value by the amount specified in the SCALE field Table C 7 gives the encoding of the scale field The optional displacement field is contained in the word following the instruction word The displacement is a 32 bit signed two s complement value For the IP with displacement mode the value of the displacement field plus eight is added to the address o...

Страница 523: ...D REGISTER AND DATA STRUCTURES ...

Страница 524: ......

Страница 525: ...ol Register pg 9 7 D 10 D 10 DAB Data Address Breakpoint Register Format Section 9 2 7 5 Data Address Breakpoint DAB Registers pg 9 9 D 11 D 11 IPB Instruction Breakpoint Register Format Section 9 2 7 6 Instruction Breakpoint IPB Registers pg 9 10 D 11 D 12 TMR0 1 Timer Mode Register Section 10 1 1 Timer Mode Registers TMR0 TMR1 pg 10 3 D 12 D 13 TCR0 1 Timer Count Register Section 10 1 2 Timer Co...

Страница 526: ... PMCON Registers pg 13 4 D 23 D 26 BCON Bus Control Register Section 13 4 1 Bus Control BCON Register pg 13 6 D 24 D 27 DLMCON Default Logical Memory Configu ration Register Section 13 6 Programming the Logical Memory Attributes pg 13 8 D 24 D 28 LMADR0 1 Logical Memory Template Starting Address Registers Section 13 6 Programming the Logical Memory Attributes pg 13 8 D 25 D 29 LMMR0 1 Logical Memo...

Страница 527: ...ontrols AC Register pg 3 18 28 24 20 16 12 8 4 0 31 Condition Code Bits AC cc Integer Overflow Flag AC of 0 No Overflow 1 Overflow Integer Overflow Mask Bit AC om 0 No Mask 1 Mask No Imprecise Faults Bit AC nif 0 Some Faults are Imprecise 1 All Faults are Precise Reserved Initialize to 0 c c 0 c c 1 c c 2 o m n i f o f ...

Страница 528: ...1 Trace Enable Bit PC te 0 Globally disable trace faults 1 Globally enable trace faults Execution Mode Flag PC em 0 user mode 1 supervisor mode Trace Fault Pending PC tfp 0 no fault pending 1 fault pending State Flag PC s 0 executing 1 interrupted Priority Field PC p 0 31 process priority Reserved t e t s p p p p p 4 3 2 1 0 f m e p Do not modify ...

Страница 529: ...ea Procedure Stack Previous Frame Pointer PFP Stack Pointer SP Return Instruction Pointer RIP user allocated stack unused stack stack growth toward higher addresses padding area user allocated stack Current Register Set Previous Frame Pointer PFP Stack Pointer SP reserved for RIP Frame Pointer FP Previous Stack Frame Current Stack Frame g0 g15 r0 r1 r2 r15 r0 r1 r2 r15 ...

Страница 530: ...Table pg 7 15 Reserved Initialize to 0 000H 008H 00CH 010H 02CH 034H 030H 038H 03CH 438H 43CH Entry Type 00 Local 10 Supervisor Trace Control Bit 0 31 Procedure Entry T supervisor stack pointer base procedure entry 2 procedure entry 1 procedure entry 0 procedure entry 259 Preserved address 0 31 1 2 ...

Страница 531: ... Figure D 5 PFP Previous Frame Pointer Register r0 Section 7 8 RETURNS pg 7 20 28 24 20 16 12 8 4 0 31 Return Status a 4 p r t 2 r t 1 r t 0 Return Type Field PFP rt Pre Return Trace Flag PFP p Previous Frame Pointer Address PFP a a 3 1 ...

Страница 532: ...ntry CONSTRAINT Fault Entry ARITHMETIC Fault Entry OPERATION Fault Entry TRACE Fault Entry PARALLEL OVERRIDE Fault Entry Local Call Entry Fault Handler Procedure Address System Call Entry Fault Handler Procedure Number 0000 027FH n n 4 n n 4 0 1 2 0 0 1 00H 08H 10H 18H 20H 28H 30H 38H 40H 48H 50H FCH Reserved Initialize to 0 0 31 31 Fault Table 0 1 2 ...

Страница 533: ... 16 NFP 12 NFP 8 NFP 4 OTYPE OSUBTYPE ARITHMETIC CONTROLS FTYPE n FSUBTYPE n OVERRIDE FAULT DATA FAULT DATA NFP n 1 32 NFP 24 n 32 NFP 20 n 32 NFP 12 n 32 NFP 8 n 32 NFP 4 n 32 NFP 64 NFP 52 NFP 48 NFP 44 NFP 32 FTYPE 1 FSUBTYPE 1 ADDRESS OF FAULTING INSTRUCTION 1 28 24 20 16 12 8 4 0 31 RESUMPTION INFORMATION FAULT DATA n means number of faults NOTES NFP means New Frame Pointer ...

Страница 534: ... b Call Trace Mode TC c Pre Return Trace Mode TC p Supervisor Trace Mode TC s Mark Trace Mode TC mk Return Trace Mode TC r i b c r p s m k Reserved Hardware Breakpoint Event Flags Instruction Address Breakpoint 0 TC i0f Instruction Address Breakpoint 1 TC i1f Data Address Breakpoint 0 TC d0f Data Address Breakpoint 1 TC d1f i 0 f i 1 f d 0 f d 1 f 28 24 20 16 12 8 4 0 31 DAB0 e e 1 0 m 0 m 1 e 0 e...

Страница 535: ...9 9 Figure D 11 IPB Instruction Breakpoint Register Format Section 9 2 7 6 Instruction Breakpoint IPB Registers pg 9 10 28 24 20 16 12 8 4 0 31 Data Address Hardware Reset Value 0000 0000H Software Re init Value 0000 0000H 28 24 20 16 12 8 4 0 31 IPBx Mode Instruction Address m 1 m 0 Hardware Reset Value 0000 0000H Software Re init Value 0000 0000H ...

Страница 536: ...ed 1 Enabled Timer Auto Reload Enable TMRx reload 0 Auto Reload Disabled 1 Auto Reload Enabled Timer Register Supervisor Write Control TMRx sup 0 Supervisor and User Mode Write Enabled 1 Supervisor Mode Only Write Enabled Timer Input Clock Selects TMRx csel1 0 00 1 1 Timer Clock Bus Clock 01 2 1 Timer Clock Bus Clock 2 10 4 1 Timer Clock Bus Clock 4 16 12 8 11 8 1 Timer Clock Bus Clock 8 Reserved ...

Страница 537: ... DATA STRUCTURES D 13 D Figure D 14 TRR0 1 Timer Reload Register Section 10 1 3 Timer Reload Register TRR0 TRR1 pg 10 7 Timer Reload Register TRR0 TRR1 28 24 20 4 0 16 12 8 Timer Auto Reload Value TRRx d31 0 D31 0 ...

Страница 538: ...ctor 248 3E8H Vector 249 3F0H Vector 251 3F4H Vector 252 400H Vector 255 Entry Type 00 Normal 10 Reserved1 01 Reserved1 Pending Priorities Pending Interrupts Entry 8 Entry 9 NMI Vector Vector Entry Instruction Pointer Reserved Initialize to 0 Preserved 0 0 1 2 7 8 31 Entry 252 Entry 255 Entry 243 Entry 10 3E0H Vector 247 11 Reserved1 1 Vector entries with a reserved type cause unpredictable behavi...

Страница 539: ...TACK AND INTERRUPT RECORD pg 11 7 Padding Area Saved Arithmetic Controls Register New Frame NFP 8 NFP 16 NFP 12 NFP Current Frame FP Saved Process Controls Register Interrupt Stack 0 31 Current Stack 0 31 Local Supervisor or Interrupt Stack Vector Number Reserved Stack Growth Interrupt Record Optional Data not used by 80960Jx ...

Страница 540: ...d Mask Operation ICON mo 00 Move to r3 mask unchanged 01 Move to r3 and clear for dedicated mode interrupts 10 Move to r3 and clear for expanded mode interrupts 11 Move to r3 and clear for dedicated and expanded Vector Cache Enable ICON vce 0 Fetch from external memory 1 Fetch from internal RAM Sampling Mode ICON sm 0 debounce 1 fast Reserved Initialize to 0 Interrupt Control Register ICON 28 24 2...

Страница 541: ...xternal Interrupt 1 Field IMAP0 x1 External Interrupt 2 Field IMAP0 x2 External Interrupt 3 Field IMAP0 x3 28 24 20 16 12 8 4 0 External Interrupt 4 Field IMAP1 x4 x 4 4 x 4 5 x 4 6 x 4 7 x 5 4 x 5 5 x 5 6 x 5 7 x 6 4 x 6 6 x 6 7 x 7 4 x 7 5 x 7 6 x 7 7 Interrupt Map Register 1 IMAP1 External Interrupt 5 Field IMAP1 x5 External Interrupt 6 Field IMAP1 x6 External Interrupt 7 Field IMAP1 x7 28 24 2...

Страница 542: ... i m 1 x i m 0 28 24 20 16 12 8 4 0 Timer Interrupt Mask Bits IMSK tim 0 Masked x i m 7 x i m 6 x i m 5 t i m 0 t i m 1 1 Not Masked Expanded External Interrupts Mask Bits IMSK eim 0 Masked 1 Not Masked Interrupt Mask Register IMSK Expanded Mode x i m 4 x i m 3 x i m 2 x i m 1 e i m 28 24 20 16 12 8 4 0 Timer Interrupt Mask Bits IMSK tim 0 Masked x i m 7 x i m 6 x i m 5 t i m 0 t i m 1 1 Not Maske...

Страница 543: ...xternal Interrupt Pending Bits IPND xip 0 No Interrupt 1 Pending Interrupt RESERVED INITIALIZE TO 0 28 24 20 16 12 8 4 0 Timer Interrupt Pending Bits IPND tip 0 No Interrupt t i p 0 t i p 1 1 Pending Interrupt 28 24 20 16 12 8 4 0 Timer Interrupt Pending Bits IPND tip 0 No Interrupt x i p 7 x i p 6 t i p 0 t i p 1 1 Pending Interrupt External Interrupt Pending Bits IPND xip 0 No Interrupt 1 Pendin...

Страница 544: ...t Table Base Address Control Table Base Address AC Register Initial Image Fault Configuration Word Interrupt Table Base Address System Procedure Table Base Address Reserved Interrupt Stack Pointer Instruction Cache Configuration Word Register Cache Control Table Interrupt Table System Procedure Table Other Architecturally Defined Data Structures Not Required As Part Of IMI Fixed Data Structures Re...

Страница 545: ...verflow faults 1 mask overflow faults No Imprecise Faults Bit AC nif 0 allow imprecise fault conditions 1 prevent imprecise fault conditions Register Cache Configuration Word Programmed Limit Disable Instruction Cache Instruction Cache Configuration Word 0 enable cache 1 disable cache Mask Non Aligned Bus Request Fault 0 enable the fault 1 mask the fault c c 0 c c 1 c c 2 o f o m n i f Initialize ...

Страница 546: ...3 Configuration PMCON2_3 Physical Memory Region 4 5 Configuration PMCON4_5 Physical Memory Region 6 7 Configuration PMCON6_7 Physical Memory Region 8 9 Configuration PMCON8_9 Physical Memory Region 10 11 Configuration PMCON10_11 Physical Memory Region 12 13 Configuration PMCON12_13 Physical Memory Region 14 15 Configuration PMCON14_15 Reserved Initialize to 0 Reserved Initialize to 0 Reserved Init...

Страница 547: ...ET pg 12 22 Figure D 25 PMCON Register Bit Description Section 13 1 1 Physical Memory Attributes pg 13 1 28 24 20 4 0 16 12 8 1 1 0 0 1 0 0 0 0 0 0 0 Manufacturer ID Part Number Version Model Gen Product Type 28 24 20 16 12 8 4 0 31 B W 1 B W 0 Reserved write to zero Bus Width 00 8 bit 01 16 bit 10 32 bit bus 11 reserved do not use ...

Страница 548: ... P I R P C T V 0 PMCON entries not valid use PMCON15 setting 1 PMCON entries valid Internal RAM Protection BCON irp 0 Internal data RAM not protected from user mode writes Supervisor Internal RAM Protection BCON sirp 0 First 64 bytes not protected from supervisor mode writes 1 First 64 bytes protected from supervisor mode writes 1 Internal data RAM protected from user mode writes 28 24 20 16 12 8 ...

Страница 549: ... A 2 8 A 2 7 A 2 6 A 2 5 A 2 4 A 2 3 A 2 2 A 2 1 A 2 0 A 1 9 A 1 8 A 1 7 A 1 6 A 1 5 A 1 4 A 1 3 A 1 2 A 3 0 Template Starting Address Data Cache Enable 0 Data caching disabled 1 Data caching enabled Byte Order read only D N 0 Little endian 1 Big endian Reserved 28 24 20 16 12 8 4 0 31 write to zero Logical Memory Template Enabled 0 LMT disabled 1 LMT enabled Template Address Mask L M T E M A 3 1 ...

Страница 550: ......

Страница 551: ...GLOSSARY ...

Страница 552: ......

Страница 553: ...hronous fault occurs the address of the faulting instruction in the fault record and the saved IP are undefined i960 core architecture does not define any fault types that are asynchronous Big Endian The bus controller reads or writes a data word s least significant byte to the bus eight most significant data lines D31 24 Big endian systems store the least significant byte at the highest byte addr...

Страница 554: ...ccesses to predefined address regions or warn the user program if accesses occur Hardware Reset The assertion of the RESET pin equivalent to powerup IBR See Initialization Boot Record IMI See Initial Memory Image Imprecise Faults Faults that are allowed to be generated out of order from where they occur in the instruction stream When an imprecise fault is generated the processor indicates the addr...

Страница 555: ...en it executes interrupt handling procedures Interrupt Table A data structure that contains vectors to interrupt handling procedures and fields for storing pending interrupts When the processor receives an interrupt it uses the vector number that accompanies the interrupt to locate an interrupt vector in the interrupt table The interrupt table s pending interrupt fields contain bits that indicate ...

Страница 556: ...ord etc on a data cache miss Exceptions are byte and short word accesses which are always promoted to words No Imprecise Faults NIF Bit AC register bit 15 This flag determines whether or not imprecise faults are allowed to occur If set all faults are required to be precise if clear certain faults can be imprecise Non Maskable Interrupt NMI Provides an interrupt that cannot be masked and has a high...

Страница 557: ...cellaneous pieces of information used to control processor activity and show current processor state Flags and fields in this register include the trace enable bit execution mode flag trace fault pending flag state flag priority field and internal state field All unused bits in this register are reserved and must be set to 0 Register Score boarding Internal flags that indicate a particular registe...

Страница 558: ...k A contiguous array of bytes in the address space that grows from low addresses to high addresses It consists of contiguous frames one frame for each active procedure i960 architecture defines three stacks local supervisor and interrupt State Flag PC register bit 10 This flag indicates to software that the processor is currently executing a program 0 or servicing an interrupt 1 State The type of ...

Страница 559: ...ructure as the system procedure table Trace Control Bit Bit 0 of byte 12 of the system procedure table This bit specifies the new value of the trace enable bit when a supervisor call causes a switch from user mode to supervisor mode Setting this bit to 1 enables tracing setting it to 0 disables tracing Trace Controls TC Register A 32 bit register that controls processor tracing facilities This reg...

Страница 560: ...e event and its location in the instruction stream User Mode One of two execution modes user and supervisor that the processor can be in When the processor is in user mode it uses the local stack and is not allowed to use the modpc instruction or any other implementation defined instruction that is designed to be used only in supervisor mode Vector Number The number of an entry in the interrupt ta...

Страница 561: ...INDEX ...

Страница 562: ......

Страница 563: ...ignment registers and literals 3 4 alterbit 6 12 and 6 13 andnot 6 13 architecture reserved memory space 12 9 argument list 7 13 Arithmetic Controls AC Register 3 18 Arithmetic Controls AC register 3 18 condition code flags 3 19 initial image 12 19 initialization 3 18 integer overflow flag 3 20 integer overflow mask bit 3 20 no imprecise faults bit 3 20 arithmetic instructions 5 7 add subtract mul...

Страница 564: ...om 7 21 branch and link instruction 7 1 branch if greater or equal instruction 3 20 breakpoint registers A 7 resource request message 9 7 Breakpoint Control BPCON register 9 8 D 10 programming 9 8 Breakpoint Control Register BPCON 9 8 bswap 6 23 built in self test 12 2 bus confidence self test 12 6 Bus Control BCON register 13 6 BCON irp bit 4 2 BCON sirp bit 4 1 Bus Control Unit BCU 14 22 changin...

Страница 565: ...nd stack management 7 4 frame pointer 7 4 previous frame pointer 7 5 return type field 7 5 stack pointer 7 4 stack frame 7 2 call and return operations 7 5 call operation 7 6 return operation 7 7 calls 3 24 6 25 7 2 7 6 call trace mode 9 3 callx 6 27 7 2 7 6 carry conditions 3 19 check bit instruction 6 29 chkbit 6 29 clear bit instruction 6 30 clock input CLKIN 12 34 clrbit 6 30 cmpdeci 6 31 cmpd...

Страница 566: ...ral units A 7 data movement instructions 5 5 load address instruction 5 6 load instructions 5 5 move instructions 5 6 data RAM 3 16 Data Register timing diagram 15 18 data structures control table 3 1 3 7 3 12 fault table 3 1 3 12 Initialization Boot Record IBR 3 1 3 11 interrupt stack 3 1 3 12 interrupt table 3 1 3 12 literals 3 4 local stack 3 1 Process Control Block PRCB 3 1 3 11 supervisor sta...

Страница 567: ... 9 procedure invocation 8 6 return instruction pointer RIP 8 14 stack usage 8 6 supervisor stack 8 2 system procedure table 8 2 system local calls 8 2 system supervisor calls 8 2 user stack 8 2 fault record 8 6 address of faulting instruction field 8 7 fault subtype field 8 7 location 8 6 8 8 structure 8 7 fault table 3 1 3 12 8 4 alignment 3 15 local call entry 8 6 location 8 4 system call entry ...

Страница 568: ... 12 23 hardware requirements 12 34 MON960 12 23 power and ground 12 34 software 6 114 Initialization Boot Record IBR 3 1 3 11 12 1 12 13 12 15 alignment 3 15 initialization data structures 3 11 initialization mechanism A 5 initialization requirements architecture reserved memory space 12 9 control table 12 21 D 22 data structures 12 10 Process Control Block 12 16 Instruction Breakpoint IBP registe...

Страница 569: ...mpibg 6 35 cmpibge 6 35 cmpibl 6 35 cmpible 6 35 cmpibne 6 35 cmpibno 6 35 cmpibo 6 35 cmpinci 6 32 cmpinco 6 32 cmpis 5 12 cmpo 5 12 6 33 cmpobe 6 35 cmpobg 6 35 cmpobge 6 35 cmpobl 6 35 cmpoble 6 35 cmpobne 6 35 concmpi 6 38 concmpo 6 38 dcctl 3 23 4 6 4 10 6 40 divi 6 47 divo 6 47 ediv 6 48 emul 6 49 eshro 6 50 extract 6 51 faulte 6 52 faultg 6 52 faultge 6 52 faultl 6 52 faultle 6 52 faultne 6...

Страница 570: ...6 100 shrdi 6 100 shri 6 100 shro 6 100 spanbit 6 103 st 2 2 3 15 6 104 stib 2 2 6 104 stis 2 2 6 104 stl 3 15 4 7 6 104 stob 2 2 6 104 stos 2 2 stq 3 16 4 7 6 104 stt 4 7 6 104 subc 6 108 subi 6 112 subie 6 109 subig 6 109 subige 6 109 subil 6 109 subile 6 109 subine 6 109 subino 6 109 subio 6 109 subo 6 112 suboe 6 109 subog 6 109 suboge 6 109 subol 6 109 subole 6 109 subone 6 109 subono 6 109 s...

Страница 571: ...P0 IMAP2 registers 11 23 interrupt mask saving 11 17 Interrupt Mask IMSK register 1 5 11 25 D 18 Interrupt Mask IMSK Registers 11 26 Interrupt Pending IPND Register 11 25 Interrupt Pending IPND register 1 5 11 25 atomic read modify write sequence 3 6 interrupt performance caching of interrupt handling 11 36 interrupt stack 11 36 local register cache 11 36 interrupt pins dedicated mode 11 8 expande...

Страница 572: ... 3 1 3 4 addressing 3 4 little endian byte order 2 4 3 16 LMADR register LMCON registers load address instruction 6 73 load instructions 5 5 6 70 load and lock mechanism 4 5 local calls 7 2 7 14 8 2 call 7 2 callx 7 2 local register cache 7 3 overview 1 5 3 17 4 2 local registers 3 1 7 2 allocation 3 3 7 2 management 3 3 overview 1 9 usage 7 2 local stack 3 1 logical data templates effective range...

Страница 573: ...movt 6 81 muli 6 84 mulo 6 84 multiple fault conditions 8 9 multiply integer instruction 6 84 multiply ordinal instruction 6 84 N nand 6 85 NMI see Non Maskable Interrupt NMI No Imprecise Faults AC nif bit 8 15 8 20 Non Maskable Interrupt NMI 11 3 11 8 signal 11 18 nor 6 86 not 6 87 notand 6 87 notbit 6 88 notor 6 89 O On Circuit Emulation ONCE mode 12 1 15 1 OPERATION UNIMPLEMENTED 4 1 or 6 90 or...

Страница 574: ...region boundaries bus transactions across 13 7 register access 11 27 addressing 3 4 addressing and alignment 3 5 Breakpoint Control BPCON 9 7 cache 3 17 4 2 control 3 7 memory mapped 3 6 DEVICEID memory location 3 3 global 3 2 indirect addressing mode register indirect with displacement 2 7 register indirect with index 2 7 register indirect with index and displacemen t 2 8 register indirect with o...

Страница 575: ...errupt mask 11 17 scanbit 6 95 scanbyte 6 96 sele 5 6 6 97 select based on equal instruction 5 6 select based on less or equal instruction 5 6 select based on not equal instruction 5 6 select based on ordered instruction 5 6 Select Based on Unordered 5 6 select instructions 6 120 self test STEST pin 12 6 selg 5 6 6 97 selge 5 6 6 97 sell 5 6 6 97 selle 5 6 6 97 selne 5 6 6 97 selno 5 6 6 97 selo 5...

Страница 576: ... 15 2 architecture 15 3 Asynchronous Reset Input TRST pin 15 5 block diagram 15 3 Serial Test Data Output TDO pin 15 5 state diagram 15 4 Test Clock TCK pin 15 5 Test Mode Select TMS pin 15 5 test features 15 2 test instructions 6 118 Test Mode Select TMS line 15 2 teste 6 118 testg 6 118 testge 6 118 testl 6 118 testle 6 118 testne 6 118 testno 6 118 testo 6 118 32 bit bus width byte enable encod...

Страница 577: ...rite transaction 14 14 U unordered numbers 3 19 user space family registers and tables 3 11 user stack 3 12 7 19 alignment 3 15 user supervisor protection model 3 23 supervisor mode resources 3 23 usage 3 24 V vector entries 11 5 NMI 11 5 structure 11 5 W warm reset 11 28 12 3 words triple and quad 2 3 X XINT see external interrupt XINT signals 11 18 xnor 6 120 xor 6 120 ...

Страница 578: ......

Отзывы: