The MIPS processor was developed as part of a VLSI research program
at Stanford University in the early 80s. Professor John Hennessy, now
the University's President, started the development of MIPS with a
brainstorming class for graduate students. The readings and idea
sessions helped launch the development of the processor which became
one of the first RISC processors, with IBM and Berkeley developing processors
at around the same time.
The Stanford research group had a strong background in compilers, which
led them to develop a processor whose architecture would represent the
lowering of the compiler to the hardware level, as opposed to the raising
of hardware to the software level, which had been a long running design
philosophy in the hardware industry.
Thus, the MIPS processor implemented a smaller, simpler instruction
set. Each of the instructions included in the chip design ran in a
single clock cycle. The processor used a technique called pipelining
to more efficiently process instructions.
MIPS used 32 registers, each 32 bits wide (a bit pattern of this size is
referred to as a word).
The MIPS instruction set consists of about 111 total instructions, each represented in 32 bits.
An example of a MIPS instruction is below:
Above is the assembly (left) and binary (right) representation of a MIPS
addition instruction. The instruction tells the processor to compute the
sum of the values in registers 7 and 8 and store the result in register 12. The dollar
signs are used to indicate an operation on a register.
The colored binary representation on the right illustrates the 6 fields of a
MIPS instruction. The processor identifies the type of instruction by the
binary digits in the first and last fields. In this case, the processor recogizes
that this instruction is an addition from the zero in its first field and the 20 in
its last field.
add $r12, $r7, $r8
The operands are represented in the blue and yellow fields, and the desired result
location is presented in the fourth (purple) field. The orange field represents
the shift amount, something that is not used in an addition operation.
The instruction set consists of a variety of basic instructions, including:
- 21 arithmetic instructions (+, -, *, /, %)
- 8 logic instructions (&, |, ~)
- 8 bit manipulation instructions
- 12 comparison instructions (>, <, =, >=, <=, ¬)
- 25 branch/jump instructions
- 15 load instructions
- 10 store instructions
- 8 move instructions
- 4 miscellaneous instructions
A list of MIPS core instructions can be found here.
MIPS Computer Systems, Inc. was founded in 1984 upon the Stanford research from
which the first MIPS chip resulted. The company was purchased buy Silicon Graphics, Inc.
in 1992, and was spun off as MIPS Technologies, Inc. in 1998. Today, MIPS powers many consumer
electronics and other devices.