Designing Digital Computer Systems with Verilog

3.1: Instruction Set Design

3.1 Instruction Set Design

The design of an instruction set for a new processor is more of an art than a science. The instruction set must be logically complete so that it is capable of executing any arbitrary sequence of operations that may be required by a program written in a high-level language. In fact, it has been shown that an instruction set with only one or two carefully chosen instructions can be logically complete. However, executing programs on such a processor is likely to be rather inefficient since even relatively simple operations could require complex sequences of the one or two instructions available in the instruction set. Furthermore, it may be difficult to implement what are likely to be rather complicated instructions in the hardware.

In developing a new instruction set, then, we want to ensure that we have enough different types of instructions available to allow the compiler to produce code that will efficiently execute the most common operations. We do not want to define too many instructions, though, since each instruction will be translated into some set of logic gates and registers that will ultimately be implemented in silicon. And this silicon will cost real money.

Our choice of specific instructions to include in the instruction set will involve numerous compromises and trade-offs. Our overall goal, however, should be to produce a processor that satisfies the following general criteria:

  • It should be easy to write a compiler that can generate efficient code for...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Microprocessor Chips (MPU)
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.