ChipFind - документация

Электронный компонент: 80960KB

Скачать:  PDF   ZIP

Document Outline

Intel Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in an Intel product. No other circuit patent
licenses are implied. Information contained herein supersedes previously published specifications on these devices from Intel.
May 1993
INTEL CORPORATION, 1993
Order Number: 270565-006
80960KB
EMBEDDED 32-BIT MICROPROCESSOR
WITH INTEGRATED FLOATING-POINT UNIT
The 80960KB is a member of Intel's i960 32-bit processor family, which is designed especially for embedded
applications. It includes a 512-byte instruction cache, an integrated floating-point unit and a built-in interrupt
controller. The 80960KB has a large register set, multiple parallel execution units and a high-bandwidth burst
bus. Using advanced RISC technology, this high performance processor is capable of execution rates in excess
of 9.4 million instructions per second
*
. The 80960KB is well-suited for a wide range of applications including non-
impact printers, I/O control and specialty instrumentation.
Figure 1. The 80960KB Processor's Highly Parallel Architecture
* Relative to Digital Equipment Corporation's VAX-11/780 at 1 MIPS (VAX-11TM is a trademark of Digital Equipment
Corporation)
s
High-Performance Embedded Architecture
-- 25 MIPS Burst Execution at 25 MHz
-- 9.4 MIPS* Sustained Execution at 25 MHz
s
512-Byte On-Chip Instruction Cache
-- Direct Mapped
-- Parallel Load/Decode for Uncached Instruc-
tions
s
Multiple Register Sets
-- Sixteen Global 32-Bit Registers
-- Sixteen Local 32-Bit Registers
-- Four Local Register Sets Stored On-Chip
-- Register Scoreboarding
s
4 Gigabyte, Linear Address Space
s
Pin Compatible with 80960KA
s
Built-in Interrupt Controller
-- 31 Priority Levels, 256 Vectors
-- 3.4 s Latency @ 25 MHz
s
Easy to Use, High Bandwidth 32-Bit Bus
-- 66.7 Mbytes/s Burst
-- Up to 16 Bytes Transferred per Burst
s
132-Lead Packages:
-- Pin Grid Array (PGA)
-- Plastic Quad Flat-Pack (PQFP)
s
On-Chip Floating Point Unit
-- Supports IEEE 754 Floating Point Standard
-- Four 80-Bit Registers
-- 13.6 Million Whetstones/s (Single
Precision) at 25 MHz
SIXTEEN
32-BIT GLOBAL
REGISTERS
64- BY 32-BIT
LOCAL
REGISTER
CACHE
32-BIT
INSTRUCTION
EXECUTION
UNIT
INSTRUCTION
FETCH UNIT
512-BYTE
INSTRUCTION
CACHE
INSTRUCTION
DECODER
MICRO-
INSTRUCTION
SEQUENCER
MICRO-
INSTRUCTION
ROM
32-BIT
BUS
CONTROL
LOGIC
32-BIT
BURST
BUS
FOUR
80-BIT FP
REGISTERS
80-BIT
FPU
80960KB
1
1.0
THE i960 PROCESSOR
The 80960KB is a member of the 32-bit architecture
from Intel known as the i960 processor family. These
were especially designed to serve the needs of
embedded applications. The embedded market
includes applications as diverse as industrial
automation, avionics, image processing, graphics and
networking. These types of applications require high
integration, low power consumption, quick interrupt
response times and high performance. Since time to
market is critical, embedded microprocessors need to
be easy to use in both hardware and software
designs.
All members of the i960 processor family share a
common core architecture which utilizes RISC
technology so that, except for special functions, the
family members are object-code compatible. Each
new processor in the family adds its own special set
of functions to the core to satisfy the needs of a
specific application or range of applications in the
embedded market.
Software written for the 80960KB will run without
modification on any other member of the 80960
Family. It is also pin-compatible with the 80960KA and
the 80960MC which is a military-grade version that
supports multitasking, memory management, multi-
processing and fault tolerance.
Figure 2. 80960KB Programming Environment
INSTRUCTION CACHE
INSTRUCTION
STREAM
FETCH
LOAD
STORE
SIXTEEN 32-BIT GLOBAL REGISTERS
g0
g15
SIXTEEN 32-BIT LOCAL REGISTERS
REGISTER CACHE
FOUR 80-BIT FLOATING POINT REGISTERS
r0
r15
CONTROL REGISTERS
INSTRUCTION
EXECUTION
INSTRUCTION
POINTER
ARITHMETIC
CONTROLS
PROCESS
CONTROLS
TRACE
CONTROLS
ARCHITECTURALLY
DEFINED
DATA STRUCTURES
FFFF FFFFH
0000 0000H
ADDRESS SPACE
PROCESSOR STATE
REGISTERS
80960KB
2
1.1.
Key Performance Features
The 80960 architecture is based on the most recent
advances in microprocessor technology and is
grounded in Intel's long experience in the design and
manufacture of embedded microprocessors. Many
features contribute to the 80960KB's exceptional
performance:
1.
Large Register Set. Having a large number of
registers reduces the number of times that a
processor needs to access memory. Modern
compilers can take advantage of this feature to
optimize execution speed. For maximum flexibility, the
80960KB provides thirty-two 32-bit registers and four
80-bit floating point registers. (See Figure 2.)
2.
Fast Instruction Execution. Simple functions
make up the bulk of instructions in most programs so
that execution speed can be improved by ensuring
that these core instructions are executed as quickly
as possible. The most frequently executed instruc-
tions such as register-register moves, add/subtract,
logical operations and shifts execute in one to two
cycles. (Table 1 contains a list of instructions.)
3.
Load/Store Architecture. One way to improve
execution speed is to reduce the number of times that
the processor must access memory to perform an
operation. As with other processors based on RISC
technology, the 80960KB has a Load/Store archi-
tecture. As such, only the LOAD and STORE instruc-
tions reference memory; all other instructions operate
on registers. This type of architecture simplifies
instruction decoding and is used in combination with
other techniques to increase parallelism.
4.
Simple Instruction Formats. All instructions in
the 80960KB are 32 bits long and must be aligned on
word boundaries. This alignment makes it possible to
eliminate the instruction alignment stage in the
pipeline. To simplify the instruction decoder, there are
only five instruction formats; each instruction uses
only one format. (See Figure 3.)
5.
Overlapped Instruction Execution. Load
operations allow execution of subsequent instructions
to continue before the data has been returned from
memory, so that these instructions can overlap the
load. The 80960KB manages this process transpar-
ently to software through the use of a register score-
board. Conditional instructions also make use of a
scoreboard so that subsequent unrelated instructions
may be executed while the conditional instruction is
pending.
6.
Integer Execution Optimization. When the
result of an arithmetic execution is used as an
operand in a subsequent calculation, the value is sent
immediately to its destination register. Yet at the same
time, the value is put on a bypass path to the ALU,
thereby saving the time that otherwise would be
required to retrieve the value for the next operation.
7.
Bandwidth Optimizations. The 80960KB gets
optimal use of its memory bus bandwidth because the
bus is tuned for use with the on-chip instruction
cache: instruction cache line size matches the
maximum burst size for instruction fetches. The
80960KB automatically fetches four words in a burst
and stores them directly in the cache. Due to the size
of the cache and the fact that it is continually filled in
anticipation of needed instructions in the program
flow, the 80960KB is relatively insensitive to memory
wait states. The benefit is that the 80960KB delivers
outstanding performance even with a low cost
memory system.
8.
Cache Bypass. If a cache miss occurs, the
processor fetches the needed instruction then sends
it on to the instruction decoder at the same time it
updates the cache. Thus, no extra time is spent to
load and read the cache.
80960KB
3
Table 1. 80960KB Instruction Set
Data Movement
Arithmetic
Logical
Bit and Bit Field
Load
Store
Move
Load Address
Add
Subtract
Multiply
Divide
Remainder
Modulo
Shift
And
Not And
And Not
Or
Exclusive Or
Not Or
Or Not
Exclusive Nor
Not
Nand
Rotate
Set Bit
Clear Bit
Not Bit
Check Bit
Alter Bit
Scan For Bit
Scan Over Bit
Extract
Modify
Comparison
Branch
Call/Return
Fault
Compare
Conditional Compare
Compare and Increment
Compare and Decre-
ment
Unconditional Branch
Conditional Branch
Compare and Branch
Call
Call Extended
Call System
Return
Branch and Link
Conditional Fault
Synchronize Faults
Debug
Miscellaneous
Decimal
Floating Point
Modify Trace Controls
Mark
Force Mark
Atomic Add
Atomic Modify
Flush Local Registers
Modify Arithmetic Con-
trols
Scan Byte for Equal
Test Condition Code
Modify Process Controls
Decimal Move
Decimal Add with Carry
Decimal Subtract with
Carry
Move Real
Add
Subtract
Multiply
Divide
Remainder
Scale
Round
Square Root
Sine
Cosine
Tangent
Arctangent
Log
Log Binary
Log Natural
Exponent
Classify
Copy Real Extended
Compare
Synchronous
Conversion
Synchronous Load
Synchronous Move
Convert Real to Integer
Convert Integer to Real
80960KB
4
Figure 3. Instruction Formats
Opcode
Displacement
Opcode
Reg/Lit
Reg
M
Displacement
Opcode
Reg
Reg/Lit
Modes
Ext'd Op
Reg/Lit
Opcode
Reg
Base
M
X
Offset
Opcode
Reg
Base
Mode
Scale
xx
Offset
Displacement
Control
Compare and
Branch
Register to
Register
Memory Access--
Short
Memory Access--
Long
1.1.1.
Memory Space And Addressing Modes
The 80960KB offers a linear programming environ-
ment so that all programs running on the processor
are contained in a single address space. Maximum
address space size is 4 Gigabytes (2
32
bytes).
For ease of use the 80960KB has a small number of
addressing modes, but includes all those necessary
to ensure efficient execution of high-level languages
such as C. Table 2 lists the modes.
Table 2. Memory Addressing Modes
12-Bit Offset
32-Bit Offset
Register-Indirect
Register + 12-Bit Offset
Register + 32-Bit Offset
Register + (Index-Register x Scale-Factor)
Register x Scale Factor + 32-Bit Displacement
Register + (Index-Register x Scale-Factor) +
32-Bit Displacement
Scale-Factor is 1, 2, 4, 8 or 16
1.1.2.
Data Types
The 80960KB recognizes the following data types:
Numeric:
8-, 16-, 32- and 64-bit ordinals
8-, 16-, 32- and 64-bit integers
32-, 64- and 80-bit real numbers
Non-Numeric:
Bit
Bit Field
Triple Word (96 bits)
Quad-Word (128 bits)
1.1.3.
Large Register Set
The 80960KB programming environment includes a
large number of registers. In fact, 32 registers are
available at any time. The availability of this many
registers greatly reduces the number of memory
accesses required to perform algorithms, which leads
to greater instruction processing speed.
There are two types of general-purpose registers:
local and global. The 20 global registers consist of
sixteen 32-bit registers (G0 though G15) and four