Hardware Reference
In-Depth Information
5
THE INSTRUCTION SET
ARCHITECTURE LEVEL
This chapter discusses the Instruction Set Architecture (ISA) level in detail.
This level, as we saw in Fig. 1-2, is positioned between the microarchitecture level
and the operating system level. Historically, this level was developed before any of
the other levels, and, in fact, was originally the only level. To this day this level is
sometimes referred to simply as ''the architecture'' of a machine or sometimes
(incorrectly) as ''assembly language.''
The ISA level has a special importance for system architects: it is the interface
between the software and the hardware. While it might be possible to have the
hardware directly execute programs written in C, C++, Java, or some other high-
level language, this would not be a good idea. The performance advantage of com-
piling over interpreting would then be lost. Furthermore, to be of much practical
use, most computers have to be able to execute programs written in multiple lan-
guages, not just one.
The approach that essentially all system designers take is to have programs in
various high-level languages be translated to a common intermediate form—the
ISA level—and build hardware that can execute ISA-level programs directly. The
ISA level defines the interface between the compilers and the hardware. It is the
language that both of them have to understand. The relationship among the compi-
lers, the ISA level, and the hardware is shown in Fig. 5-1.
Ideally, when designing a new machine, the architects will spend time talking
to both the compiler writers and the hardware engineers to find out what features
they want in the ISA level. If the compiler writers want some feature that the en-
343
 
 
Search WWH ::




Custom Search