Structure of Computer Systems
Download
Report
Transcript Structure of Computer Systems
Structure of Computer
Systems
Course 12
RISC architecture
CISC v.s. RISC
CISC – Complex Instruction Set Computer
RISC - Reduced Instruction Set Computer
Historical perspective:
at first computers had a limited instruction set
because of technological limitations (number of
switching elements was limited)
as integration technology improved:
• more instructions were included in the set of a computer
• more complex operations implemented in instructions =>
more complex instructions
consequences:
• CPU became more and more complex
• CPU became slower (relative to the clock frequency)
• higher CPI and limited clock frequency
CISC
Reasons for complex instruction set computers
more powerful instructions
• e.g. floating point arithmetic instructions
assembly language instructions closer to high level language
instructions
• e.g. loops, complex conditional jumps
more complex addressing modes, as support for complex data
structures
• addressing: indexed, based, mixed, scaled, etc.
Benefits:
easier programming in assembly language
less instructions needed to write an application
easier compilation of high level languages
support for complex data structures
CISC
Statistical measurements (during the ’70s)
Surprising results
which instruction types are more often used in different types of
applications ?
does the programmers use the available complex instructions?
programmers prefer simple instructions
complex instructions are used just occasionally, for some very
specific operations (e.g. sine, arc tang. log, exponential, etc.)
most of the time the processor is executing simple instructions
from a limited set
Conclusion:
the speed limitation caused by a complex instruction set is not
justified
let’s do things simpler and faster
RISC
RISC = Reduced Instruction Set Computer
Principle: sacrifice everything for speed
reduce the number of instructions – make CPU
simpler
get rid of complex instructions, which may slow down
the CPU
use simple addressing modes – less time spent to
compute the address of an operand
limit the number of accesses to the memory
if a given operation cannot be executed in one clock
period than do not implement it in an instruction
extensive use of pipeline architecture – in order to
reach CPI=1 (one instruction per clock period)
RISC - Main features
limited number of instructions in the instruction
set:
no complex instructions
every instruction executes only one operation
instructions have fixed format
30-40 instructions v.s 100-200 in case of CISC
fixed length
few combinations of fields inside the instruction code
instructions executed in one clock period (except
Load and Store instructions)
through intensive use of pipeline architecture
every instruction have the same number of pipeline
stages
RISC - Main features
Increased set of general purpose registers
e.g. 32-64 registers
instructions operating with registers are executed in
the shortest time
compensate the lack of instructions operating with the
memory
Use of multiple register sets
fast and easy context switch
use of register set windows
RISC - Main features
Only two instructions operate (have access) to
the memory locations:
Load – read data from the memory into a register
Store – write the data from a register into the memory
Load and Store instructions require two accesses to
the memory:
• one to read the instruction code
• one to read or write the data
Load and store instructions are the only instructions
which are executed in two clock periods
all the other instructions from the set are operating
with registers or a register and a constant
RISC - Main features
Hard to write applications in assembly language
A program on a RISC is more optimized than the
same program written on a CISC
lack of more powerful instructions and addressing
modes
only those operations are used which are strictly
necessary
More effort for programming, less time in
execution
it is worth to have a greater time spent on
programming if at the end the program will be
executed many times in a shorter time !?
RISC - Main features
The
CPU implemented in pure hardware
(no microprogramming)
instructions are decoded and executed using
hardware components
higher speed less execution steps
Compilers
are more difficult to implement
RISC v.s. CISC
Parameter
RISC
CISC
Instruction types
Simple
Complex
Number of instructions
Reduced (30-40)
Extended (100-200)
Duration of an instruction
One cycle
More cycles (4-120)
Instruction format
Fixed
Variable
Instruction execution
In parallel (pipeline)
Sequential
Addressing modes
Simple
Complex
Instructions accessing the
memory
Two: Load and Store
Almost all from the set
Register set
multiple
unique
Complexity
In compiler
In CPU (micro-program)
Performance of RISC v.s. CISC
CISC:
less
4-100
long
execution time = no_instructions*CPI*Tclk
RISC:
more
1
short
Hard to tell which is the best
A combination of CISC and RISC may be the solution:
RISC inside, CISC outside – see Pentium processors
complex instructions translated into simple (RISC)
instructions
Examples of RISC architectures
Academic implementations:
First commercial implementations
RISC I si II – Berkley University (prof. Patterson, 1980)
MIPS – Univ. Stanford (prof. Hennessy, 1982)
IBM 801 – compania IBM (1975)
ALPHA – compania DEC
SPARC – Sun Microsystems (1987)
General purpose processors:
PowerPC – IBM si Motorola
ARM architecture
Applications of RISC architectures
Powerful Workstations
High-end graphical stations
used for control applications and peripheral devices
Digital signal processors
used for simulation, animation, etc.
Microcontrollers
used for engineering purposes (ex. Sun station)
used for signal processing
Mobile devices
iPAD, tablet, support for Android systems
RISC architecture examples
MIPS
MIPS –
Microprocessor without Interlocking Pipe Stages or
Million Instruction per Second processor:
developed by Prof. Hennessy at Stanford University (1982)
a classical pipeline architecture used as reference for
teaching basic concepts about computers
features:
• 32 internal registers
• reduced instruction set
• instructions with fixed length (4 bytes); types: R,J, I
• 3 operands instructions (source, destination, target)
• (see a previous course for details)
RISC architecture examples
Microcontrollers
Microcontroller
all components of a micro-computer system in a
single integrated circuit:
•
•
•
•
•
•
•
•
CPU
program memory
data memory
parallel I/O ports
serial ports
timers, counters
converters: ADC, DAC, PWM
watchdog
used for control applications:
• monitoring
• feedback control
RISC architecture examples
Microcontrollers
Example PIC16Fxx
CPU – simple, RISC architecture
Instruction format – fixed, 14 bits/instruction
only 35 instructions
data format: 8 bits
Internal memory – inside the chip - Harvard architecture – data
separated from instructions
• data memory – 368 bytes SRAM, organized on banks
• instruction memory – 8kinstructions
Data memory
• 256 bytes EEPROM (non-volatile memory)
0
Interfaces:
• serial UART and SPI
• Convertors: 10 bits ADC with 8 channel multiplexer
• 3 timers
• parallel ports
ICD – In Circuit debug functionality
Package: 28,40 or 44 pins
1Fh
Ports
area
Ports
area
General
registers
General
registers
User
data
area
Bank 0
User
data
area
Bank 1 2,
3
RISC architecture examples
PowerPC
PowerPC = Performance Optimization With Enhanced RISC
– Performance Computing
designed as a competitor for the Intel X86 processor family
developed by Apple, IBM and Motorola (1991) as an open
architecture
extension of the IBM’s Power architecture
RISC and superscalar architecture
initially intended for PCs, now used for embedded and high
performance computers
32 and 64 bit processors
many versions: PowerPC 601, 602, 604, 620,740, 74000
computers made with PowerPC:
• Macintosh, Apple
• RS6000, (RISC System 6000), IBM
• embedded computers