|
|
|
|
|
|
|
and perhaps a de-emphasis of older features. Thus, at any moment, a successful architecture includes an instruction set consisting of: |
|
|
|
|
|
|
|
|
A core of frequently used instructions. |
|
|
|
|
|
|
|
|
Some features extending or correcting limitations in the original design. |
|
|
|
|
|
|
|
|
Some instructions no longer expected to be used (either superseded or "out of vogue"), which remain for reasons of compatibility. |
|
|
|
|
|
|
|
|
This book is not intended as a historical retrospective of instruction sets. Rather, our approach is to stress the underlying principles in computer architecture: recognizing various generic instruction set types, similarities, and (essential) differences. Our primary purpose is to study processor design: the realization of efficient implementations given an instruction set and architectural limitations (cache size, etc.); but of necessity we will also study the effect of variations in architecture on the implementation efficiency (cost and performance). There are a number of books which provide a more introductory treatment to processor designsee [271,127,123] and [296]. |
|
|
|
|
|
|
|
|
1.1 Some Definitions and Terms |
|
|
|
|
|
|
|
|
A state is a particular configuration of storage (i.e., registers or memory), and a state transition is a change in that configuration. |
|
|
|
|
|
|
|
|
A cycle is the time between state transitions. If the storage being reconfigured is registers, we have an internal or machine cycle. If the storage is memory, we have a memory cycle. |
|
|
|
|
|
|
|
|
A command is a function that, when applied to a particular state, generates the next state. Command is a generic term used to describe various types of instructions. |
|
|
|
|
|
|
|
|
A process is a sequence of commands and an initial state. In a sense, a process is a macro command, since it applies to an initial state and generates a final state. |
|
|
|
|
|
|
|
|
A machine1 is a set of commands and storage together with an implementation that causes the state transitions determined by the command (Figure 1.1). |
|
|
|
|
|
|
|
|
The storage is the range and domain of the commands. A machine's storage is only that storage referred to by its instruction set. If the instruction set cannot refer to a hidden register, it is not part of the storage, but rather part of the implementation. |
|
|
|
|
|
|
|
|
The implementation that interprets the instruction can itself be a machine (that is, have instruction set, storage, and implementation); if so, the original (outermost) machine is called the image (or the micro-) machine and |
|
|
|
 |
|
 |
|
|
1A computer then is a machine that can modify the sequence of commands being executed, i.e., its control flow. We use the terms machine and computer interchangeably. |
|
|
|
|
|