Hardware Reference
In-Depth Information
1.3 Defining Computer Architecture
The task the computer designer faces is a complex one: Determine what atributes are import-
ant for a new computer, then design a computer to maximize performance and energy ei-
ciency while staying within cost, power, and availability constraints. This task has many as-
pects, including instruction set design, functional organization, logic design, and implement-
ation. The implementation may encompass integrated circuit design, packaging, power, and
cooling. Optimizing the design requires familiarity with a very wide range of technologies,
from compilers and operating systems to logic design and packaging.
Several years ago, the term computer architecture often referred only to instruction set design.
Other aspects of computer design were called implementation , often insinuating that imple-
mentation is uninteresting or less challenging.
We'll believe this view is incorrect. The architect's or designer's job is much more than instruc-
tion set design, and the technical hurdles in the other aspects of the project are likely more
challenging than those encountered in instruction set design. We'll quickly review instruction
set architecture before describing the larger challenges for the computer architect.
Instruction Set Architecture: The Myopic View Of Computer
Architecture
We use the term instruction set architecture (ISA) to refer to the actual programmer-visible in-
struction set in this topic. The ISA serves as the boundary between the software and hardware.
This quick review of ISA will use examples from 80x86, ARM, and MIPS to illustrate the seven
dimensions of an ISA. Appendices A and K give more details on the three ISAs.
1. Class of ISA —Nearly all ISAs today are classified as general-purpose register architectures,
where the operands are either registers or memory locations. The 80x86 has 16 general-pur-
pose registers and 16 that can hold floating-point data, while MIPS has 32 general-purpose
and 32 floating-point registers (see Figure 1.4 ) . The two popular versions of this class are
register-memory ISAs, such as the 80x86, which can access memory as part of many instruc-
tions, and load-store ISAs, such as ARM and MIPS, which can access memory only with
load or store instructions. All recent ISAs are load-store.
 
Search WWH ::




Custom Search