Microprocessor Design: A Practical Guide from Design Planning to Manufacturing

This chapter discusses the trade-offs in defining an instruction set architecture, including operations, operands types, and instruction encoding.
Upon completion of this chapter, the reader will be able to:
Understand the design choices that define computer architecture.
Describe the different types of operations typically supported.
Describe common operand types and addressing modes.
Understand different methods for encoding data and instructions.
Explain control flow instructions and their types.
Be aware of the operation of virtual memory and its advantages.
Understand the difference between CISC, RISC, and VLIW architectures.
Understand the need for architectural extensions.
In 1964, IBM produced a series of computers beginning with the IBM 360. These computers were noteworthy because they all supported the same instructions encoded in the same way; they shared a common computer architecture. The IBM 360 and its successors were a critical development because they allowed new computers to take advantage of the already existing software base written for older computers. With the advance of the microprocessor, the processor now determines the architecture of a computer.
Every microprocessor is designed to support a finite number of specific instructions. These instructions must be encoded as binary numbers to be read by the processor. This list of instructions, their behavior, and their encoding define the processors' architecture. All any processor can do is run programs, but any program it runs must first be converted to the instructions and encoding specific to that processor architecture. If two processors share the same architecture, any program written...