RISC by Don Nichols

Download Report

Transcript RISC by Don Nichols

RISC
By
Don Nichols
Contents

Introduction
 History
 Problems with CISC
 RISC Philosophy
 Early RISC
 Modern RISC
Introduction
What is RISC?
Not a game of world domination
RISC stands for Reduced Instruction
Set Computer
Introduction
RISC is opposite of CISC which stands
for Complex Instruction Set Computer
Introduction
Some Examples of RISC






MIPS: Found in SGI computers and Nintendo 64
IBM’s POWER series used in all of their minis
and mainframes
Sun’s SPARC and UltraSPARC machines
Hewlett-Packard’s PA-RISC HP/PA
DEC Alpha
Palm, Inc. PDAs (originally used CISC)
History: Pre-RISC
Before compiler technology existed, programming was done
in either machine code or Assembly language. Computer
architects, to make some of the programming easier, created
very complex instructions which were direct representations
of high level functions of high level programming languages.
The current attitude was that since hardware design was
simpler than compiler design, it was the hardware that was
made complex.
History: Pre-RISC
Small memory sizes were also a big factor in the
design of complex instructions. With memory being
so small, instructions were designed to carry out
multiple tasks, such as data movement and data
calculation. Not only were instructions designed to
do multiple tasks, but also, different versions were
written for different variations of the tasks i.e. one
version that added two numbers would store the
result in memory and another version would store the
result in a register.
History: Pre-RISC
“The general goal at the time was to provide every
possible addressing mode for every instruction, a
principle known as "orthogonality." This led to some
complexity on the CPU, but in theory each possible
command could be tuned individually, making the
design faster than if the programmer used simpler
commands.”
This concept of overloading each instruction came to
be known as CISC.
Problems with CISC
In the late 1970’s, research showed that
many of the orthogonal addressing modes
were being ignored by most programs
 This was due to the increased use of
compilers and the decrease in use of
assembly language

Problems with CISC

Another problem was that chip designers
didn’t have time to tune every instruction
 Only the most used instructions were tuned
 Resulted in the other instructions running
slower than a series of smaller instructions
performing the same task
Problems with CISC
CPU’s were rapidly becoming faster than
the memory they dealt with
 This lead to a need for more registers (and
later, cache as well)
 The board space needed to accommodate
these additions could be gained by reducing
the complexity of the CPU

RISC Philosophy

Reduce the size of the instruction set (hence
the name)
 Implement code as a series of simple
instructions instead of one complex
instruction
RISC Philosophy

This leaves more room in the instruction
itself to carry data with it
 This reduced the need to use registers or
memory, which meant the memory interface
could be simpler allowing it to be tuned
RISC Philosophy
Example

Andrew Tanenbaum showed that 98% of all
constants in a program could be stored in 13
bits
 By having a smaller instruction, these
constants could be stored right there in the
instruction
RISC Philosophy
Example

By storing numbers right inside the
instruction it increases the speed of
execution by reducing the number of
accesses to registers and memory
RISC Philosophy
Drawbacks

A series of instructions is needed for even
simple tasks
 The total number of instructions that are
read from memory is larger and thusly takes
longer
Early RISC

First computer that would be known as
RISC was the CDC 6600 supercomputer,
designed by Seymour Cray in 1964
 Designed as a number crunching CPU
Early RISC

Only had 74 op-codes as opposed to the 400
op-codes on the 8086
 Had a “load/store” architecture with only
two addressing modes
 Had 11 pipelined functional units for
arithmetic and logic, plus 5 load units and 2
store units
Early RISC
RISC evolved from two projects
1. UC Berkley’s RISC project
2. Stanford’s MIPS project
Early RISC
Berkley’s RISC project

Started in 1980
 Directed by David Patterson
 Idea was to gain performance with
pipelining and the use of register windows
Early RISC
What is a register window?

Normal CPU has small number of registers
that can be used at any time
 A CPU with windows has many registers
but a program can only access a few of
them at a time
 Allows fast procedure calls by letting the
call and return move the window to the set
of registers used by that procedure
Early RISC
RISC - I
The RISC project brought the RISC – I
processor in 1982
 Had only 44,420 transistors (compared to
the average 100,000 in current CISC
designs
 Had only 32 instructions
 Out performed all other single-chip designs

Early RISC
RISC - II
The RISC – II came in 1983
 Had 39 instructions
 40,760 transistors
 Over 3 x as fast as RISC – I

Early RISC
Stanford’s MIPS project

Microprocessor w/o Interlocked Pipeline
Stages
 Started by John Hennessy in 1981
 Main focus was the pipeline, running it as
“full” as possible
 Far faster than other pipeline designs
Early RISC
Stanford’s MIPS project

All instructions in this design must
complete in one cycle
 This requirement unfortunately disqualified
instructions such as multiply and divide
which took more than one cycle to execute
 Accounted for with a special pair of HI/LO
registers that had hardware interlocks
Modern RISC

Almost all modern RISC processors are
copies of the RISC – II design
 Sun’s success with RISC chips in their
SPARC machines showed that the benefits
of RISC were real
Modern RISC

John Hennessy left Stanford and started
MIPS Computer Systems
 Their MIPS chips are one of the most
common among embedded processors used
in high end applications
 The entire mainframe world is now
completely RISC based
Modern RISC
Things to note

Some say RISC is now a meaningless term,
why?
 Current RISC architectures have grown and
some instructions are not all that reduced
(most of which are related to graphics)
 Also, CISC designers have adopted some of
the RISC philosophies in order to
streamline their CPUs
Modern RISC
Things to note

Because of this convergence in design,
some feel that the distinction of RISC vs.
CISC no longer has meaning
 RISC is more accurately described today as
“load-store”
 CISC is more accurately described as
“register-memory”
References

http://en.wikipedia.org/wiki/RISC
 http://www.webopedia.com/TERM/R/RISC.html
 http://www.hyperdictionary.com/dictionary/Micro
processor+without+Interlocked+Pipeline+Stages