R Ɪ SK/ CPU Design
R Ɪ SK/ CPU Design
History
The first RISC projects came from IBM, Stanford, and UC-
Berkeley in the late 70s and early 80s. The IBM 801, Stanford
MIPS, and Berkeley RISC 1 and 2 were all designed with a similar
philosophy which has become known as RISC. Certain design
features have been characteristic of most RISC processors:
For any given level of general performance, a RISC chip will typically have far
fewer transistors dedicated to the core logic which originally allowed designers to
increase the size of the register set and increase internal parallelism.Other features,
which are typically found in RISC architectures are:
Uniform instruction format, using a single word with the opcode in the same
bit positions in every instruction, demanding less decoding;
Identical general purpose registers, allowing any register to be used in any
context, simplifying compiler design (although normally there are separate
floating point registers);
Simple addressing modes. Complex addressing performed via sequences of
arithmetic and/or load-store operations;
Few data types in hardware, some CISCs have byte string instructions, or
support complex numbers; this is so far unlikely to be found on a RISC.
RISC designs are also more likely to feature a Harvard memory model, where the
instruction stream and the data stream are conceptually separated; this means that
modifying the memory where code is held might not have any effect on the
instructions executed by the processor (because the CPU has a separate instruction
and data cache), at least until a special synchronization instruction is issued. On the
upside, this allows both caches to be accessed simultaneously, which can often
improve performance.Many early RISC designs also shared the characteristic of
having a branch delay slot. A branch delay slot is an instruction space immediately
following a jump or branch. The instruction in this space is executed, whether or
not the branch is taken (in other words the effect of the branch is delayed). This
instruction keeps the ALU of the CPU busy for the extra time normally needed to
perform a branch. Nowadays the branch delay slot is considered an unfortunate
side effect of a particular strategy for implementing some RISC designs, and
modern RISC designs generally do away with it (such as PowerPC, more recent
versions of SPARC, and MIPS).