|
|
|
|
|
|
|
Figure1.1
A two-level view of a computer architecture and its
implementation. |
|
|
|
|
|
|
|
|
a well-designed instruction set ought to allow for multiple machine implementations at various cost-performance points, to accommodate different user budgets and needs. |
|
|
|
|
|
|
|
|
Occasionally, a seemingly well-designed instruction set may become difficult to implement because of unforeseen shifts in technology. The DEC VAX series (late 1970s) was an impressive extension of their earlier PDP-11 series instruction set introduced in 1968. Its instruction set provided an elaborate operational vocabulary that minimized the number of bits needed to represent or execute a program For the technology of the '70s, this was of significant advantage; memory was an expensive part of the machine. Unfortunately, in order to achieve this code density, the instruction size and interpretation were highly variable. This was not a problem for the simple unpipelined machine implementations of the '70s, but became a significant hurdle for complex pipelined implementations 10 or 15 years later. Moreover, the cost of memory and cache has significantly decreased over the years, decreasing the value of code density. The VAX instruction set (and PDP-11) paradigm has also significantly influenced instruction set designers of contemporary (circa 1980) machines such as the Motorola M680x0 series and (to a lesser extent) the Intel 8086. |
|
|
|
|
|
|
|
|
RISC instruction sets of the '80s were developed for microprocessors in part to overcome the complex implementations required by VAX-type instruction sets. RISC instruction sets used simple fixed-size Instructions that facilitated implementation for complex pipelined machines. Code density was regarded as unimportant, since it complicated instruction decoding. With the advent of on-chip caches for microprocessors, optimization of memory usage is now more important, so code density may be the next hurdle for RISC implementations. |
|
|
|
|
|
|
|
|
There are always tradeoffs in instruction set design. A well-designed instruction set allows variability in implementation technology and is less sensitive to technological changes. As time goes by, even a well-designed set must undergo changesadditions to accommodate new functionality |
|
|
|
|
|