Hardware Reference
In-Depth Information
(e.g., user or kernel), trace bit (used for debugging), CPU priority level, and inter-
rupt enable status. Often the PSW is readable in user mode, but some of the fields
can be written only in kernel mode (e.g., the user/kernel mode bit).
5.1.4 Instructions
The main feature of the ISA level is its set of machine instructions. These con-
trol what the machine can do. There are always LOAD and STORE instructions (in
one form or another) for moving data between memory and registers and MOVE in-
structions for copying data among the registers. Arithmetic instructions are always
present, as are Boolean instructions and instructions for comparing data items and
branching on the results. We have seen some typical ISA instructions already (see
Fig. 4-11) and will study many more in this chapter.
5.1.5 Overview of the Core i7 ISA Level
In this chapter we will discuss three widely different ISAs: Intel's IA-32, as
embodied in the Core i7, the ARM v7 architecture, implemented in the
OMAP4430 system-on-a-chip, and the AVR 8-bit architecture, used by the
ATmega168 microcontroller. The intent is not to provide an exhaustive description
of any of the ISAs, but rather to demonstrate important aspects of an ISA, and to
show how these aspects can vary from one ISA to another. Let us start with the
Core i7.
The Core i7 processor has evolved over many generations, tracing its lineage
back to some of the earliest microprocessors ever built, as we discussed in Chap. 1.
While the basic ISA maintains full support for execution of programs written for
the 8086 and 8088 processors (which had the same ISA), it even contains remnants
of the 8080, an 8-bit processor popular in the 1970s. The 8080, in turn, was
strongly influenced by compatibility constraints with the still-earlier 8008, which
was based on the 4004, a 4-bit chip used back when dinosaurs roamed the earth.
From a pure software standpoint, the 8086 and 8088 were straightforward
16-bit machines (although the 8088 had an 8-bit data bus). Their successor, the
80286, was also a 16-bit machine. Its main advantage was a larger address space,
although few programs ever used it because it consisted of 16,384 64-KB segments
rather than a linear 2 30 -byte memory.
The 80386 was the first 32-bit machine in the Intel family. All the subsequent
machines (80486, Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4,
Celeron, Xeon, Pentium M, Centrino, Core 2 duo, Core i7, etc.) have essentially
the same 32-bit architecture as the 80386, called IA-32 , so it is this architecture
that we will focus on here. The only major architectural change after the 80386
was the introduction of the MMX, SSE, and SSE2 instructions in later versions of
x86 series. These instructions are highly specialized and designed to improve per-
formance on multimedia applications. Another important extension was 64-bit x86
 
 
 
Search WWH ::




Custom Search