SPARC Processor

advertisement

Chapter Six
Sun SPARC Architecture
SPARC Processor
• The name SPARC stands for Scalable Processor
Architecture
• SPARC architecture follows the RISC design
philosophy by stressing importance of
– Large CPU register file
– Similar register window features
RISC Vs CISC
• The historical background:
– In first 25 years (1945-70) performance came from both
technology and design.
– Design considerations:
o small and slow memories: compact programs are fast.
o small no. of registers: memory operands are used instead
o attempts to bridge the semantic gap: model high level language
features in instructions.
o no need for portability: same vendor application, OS and
hardware.
o backward compatibility: every new ISA must carry the good
and bad of all past ones.
• Result: powerful and complex instructions that are rarely
used.
• Such type of processors were classified as CISC.
CISC
• CISC is an acronym for Complex Instruction Set
Computer.
• These chips are easy to program and make
efficient use of memory.
• CISC philosophy made sense as the earliest
machines were programmed in assembly
language and memory was slow and expensive
• Most common microprocessor designs such as
Intel 80x86 and Motorola 68K series followed the
CISC philosophy.
RISC Vs CISC
• Later it was found as follows:
What is RISC?
• Reduced Instruction Set Computer(RISC) is a type of
microprocessor architecture that utilizes a small,
highly-optimized set of instructions than a more
specialized set of instructions often found in other
types of architectures
• The characteristic of most RISC processors are:
– one cycle execution time: RISC processors have a
CPI (clock per instruction) of one cycle. This is for
the optimization of CPU pipelining
– large number of registers: RISC design generally
incorporates a larger number of registers to
reduce the number of interactions with memory
CISC
RISC
• Extensive instructions.
• Reduced instruction set.
• Complex and efficient
• Less complex, simple
machine instructions.
instructions.
• Hardwired control unit and • Microencoding of the
machine instructions.
machine instructions.
• Few addressing schemes • Extensive addressing
capabilities for memory
for memory operands with
operations.
two basic instructions LOAD and STORE
• Many symmetric registers • Relatively few registers.
which are organised into a
register file.
SPARC Processor
• SPARC Processor was introduced by Sun
Microsystems in 1987 as an architectural
family.
• It is an open architecture : semiconductor
vendors can produce SPARC chips using
various implementation domains: CMOS,ECL
and GaAs
SPARC Features
• A linear 32-bit address space
• Few and simple instruction formats — All
instructions are 32 bits wide.
– Only 3 basic instruction formats
– Uniform placement of opcode and register
address fields in instruction
– Only LOAD and STORE instructions access
memory and I/O.
• Few addressing modes — An address may be
“register + register” or “register+immediate.”
SPARC Features
• Triadic register addresses— Most instructions
operate on two register operands (or one
register and a constant) and place the result in
a third register.
• A large “windowed” register file — At any
one instant, a program sees 8 global integer
registers plus a 24-register window into a
larger register file.
• A separate floating-point register file
SPARC Features
• Delayed control transfer— The processor
always fetches the next instruction after a
delayed control-transfer instruction.
• Fast trap handler
• Tagged instructions
• Multiprocessor synchronization instructions
• Coprocessor— The architecture defines a
straightforward coprocessor instruction set, in
addition to the floating-point instruction set.
SPARC Architecture
• SPARC is an instruction set architecture (ISA)
with 32-bit integer and 32-, 64-,and 128-bit
floating point as its principal data types.
• SPARC processor logically comprises 3 units:
– an Integer Unit (IU)
– a Floating-Point Unit (FPU)
– an optional Coprocessor (CP),
each with its own registers. (32-bits wide).
SPARC Processor
• SPARC processor can be in either of 2 modes:
– Supervisor mode: The processor can execute any
instruction including the privileged instructions.
– User mode: “User Application” programs will be
executed in user mode. An attempt to execute a
privileged instruction will cause a trap to
supervisor software.
THE MODULES
Floating-Point
Unit
(FPU)
CoProcessor
(CP)
Integer Unit
(IU)
THE MODULES
Floating-Point
Unit
(FPU)
CoProcessor
(CP)
Integer Unit
(IU)
INTEGER UNIT (IU)
• Contains the general purpose registers and controls
the overall operation of the processor.
• Executes the integer arithmetic instructions and
computes memory addresses for loads and stores.
• Maintains the program counters and controls
instruction execution for the FPU and the CP.
• May contain from 40 to 520 general-purpose 32-bit
registers
• It corresponds to
– 8 global registers and
– a circular stack of from 2 to 32 sets of 16 registers known
as register windows.
– Thus (2*16=32+8=40) to (32*16+8 =520)
Integer Unit
(IU)
REGISTER WINDOW CONCEPT
• Each instruction can access
the 8-globals and a register
window
• A 24- register window
comprises
– 8 in
– 8 local registers
– 8 out registers( which are
together with the 8 in
registers of an adjacent
register set, addressable
from the current window)
Integer Unit
(IU)
THE MODULES
Floating-Point
Unit
(FPU)
CoProcessor
(CP)
Integer Unit
(IU)
FLOATING-POINT UNIT (FPU)
• The FPU has thirty-two 32-bit-wide registers.
– Double-precision values occupy an even-odd pair
of registers
– Quad-precision values occupy a quad aligned
group of four registers.
• Floating point load/store instructions are used
to move data between the FPU and memory.
• The memory address is calculated by IU
• FPop(Floating Point Operate) instructions
perform the actual Floating Point Arithmetic
THE MODULES
Floating-Point
Unit
(FPU)
CoProcessor
(CP)
Integer Unit
(IU)
Coprocessor Unit
• The instruction set includes support for a
single, implementation-dependent
coprocessor.
• The coprocessor has its own set of 32-bit
registers.
• Coprocessor load/store instructions are used
to move data between the coprocessor
registers and memory.
Data Formats
SPARC Data Formats
• The SPARC architecture recognizes three
fundamental data formats (or types):
– Signed Integer— 8, 16, 32, and 64 bits
– Unsigned Integer— 8, 16, 32, and 64 bits
– Floating-Point — 32, 64, and 128 bits
• The format widths are defined as
– Byte — 8 bits
– Halfword— 16 bits
– Word/Singleword — 32 bits
SPARC Data Formats
– Tagged Word— 32 bits (30-bit value plus 2 tag
bits)
– Doubleword— 64 bits
– Quadword— 128 bits
Signed Integer
• Signed Integer formats encode two’scomplement whole numbers
Signed Integer
Unsigned Integer
• Unsigned Integer formats are general-purpose
and hence they do not encode any particular
data type.
• They can represent a whole number, string,
fraction, boolean value, etc.
Unsigned Integer
Unsigned Integer
Floating Point Numbers
Floating Point Numbers