|
|
|
ISA stands for Instruction Set Architecture. The term Instruction Set
Architecture is used in many different ways. H&P uses the term to mean
the actual set of instructions that programmers can see; the glue that ties
the hardware and software together. For the purposes of this web page, I will use
a broader definition of Instruction Set Architecture, a definition that includes
the high level design aspects of an IA-64 machine, what H&P consider organization.
|
|
The ISA most prominent in home computers is called x86. If you have a Pentium computer,
your computer has an x86 ISA. x86 has been in use for a long time, since about 1978.
|
Well, what does that mean?
|
Your computer itself is just a bunch of silicon and metal stuck together, the hardware.
What really makes your computer interact with you is the software. The software must
have some way to talk to the hardware; this is where an ISA comes in. When software is
written, it is written in a manner that is easy for humans to understand. We then use a
program, called a compiler, to translate that software into a language that the computer
can understand. The language that the computer can understand is the ISA. So, basically,
your computer speaks x86.
|
|
Yes, there are many different ISA's; most fall into two categories, RISC (Reduced
Instruction Set Architecture) and CISC (Complex Instruction Set Architecture).
x86 falls into the CISC category.
A CISC ISA is characterized by several things. First, a CISC ISA, x86 for example, is
a "language" that is composed of many different words of varying lengths. The computer
must understand these words and be able to process them. A computer with a CISC ISA,
like your home computer, processes these words one by one in the order in which they
are given, and does not start trying to figure out what the next word is before it has
figured out the previous word.
A RISC ISA is characterized by the opposite traits of a CISC. A RISC computer understands
a "language" that is composed of a small number of words of the exact same length.
A computer with a RISC ISA processes words one by one in the order in which they are given,
but starts trying to figure out the next word before it finishes the first word.
This process is known as pipelining, and is commonly associated with RISC processors.
|
|
Well, it is commonly accepted that RISC ISA's should make computers faster. The main
reason why is because RISC computers figure out more words in a shorter amount of time
due to pipelining.
|
|
CISC ISA's were implemented in the first personal computers to enter the market, and
when more and more people started buying computers, CISC ISA's became more prominent.
Software was developed and "translated" so that personal computers speaking x86
would be able to interact with its users. Because there was so much software written
for computers "speaking" x86, people continued to buy those computers. If we tried to
switch to another ISA, we would not have all of the software choices we have now.
|
So why would someone want to develop another ISA?
|
You can only make a computer so fast before you start running into limitations.
x86 was developed a long time ago when computers were much slower than they are now,
and there were certain hardware limitations. x86 (and CISC) make poor use of the faster
hardware we have now. Another problem with x86 is that people have been trying to make
it faster for a long time, at least 20 years, and after a while you have found most of
the ways to speed the computer up significantly.
|
Why don't we just switch to RISC?
|
The same arguement applies to RISC. Although it is not used on your desktop PC, RISC ISA's
are implemented in many mainframe computers. Programmers have been trying to make RISC
faster for a long time, and they have found many of the areas in which it is able to be
sped up significantly.
|
|
We are running into problems when we try to speed up computers in two areas.
One of these areas is known to computer gurus as branch penalties. What that means is
that your computer has a choice to make, whether to go down road A, or to go down road B.
It has to compute its choice, and while you are waiting for the computer to pick which road
to take you are wasting precious time that you could have been starting down the path.
The other major speed problem occurs because not everything in your computer is as fast as
your computer's brain (the CPU). Your computer's brain has to wait long periods of time
for it to be fed information from the rest of the computer. When RISC and CISC were developed,
many of the different parts of the computer were about the same speed. RISC and CISC did
not account for these types of waits in their designs. This slow area is known in the
computer industry as memory latency.
|
So, what are we going to do?
|
Intel, a large computer chip manufacturer, has teamed up with Hewlett-Packard to design
a new type of ISA. They are calling it IA-64 (Intel Architecture 64) and think that it will
be a great solution to our problem of making a computer faster.
|
|
Read on,
and you will find out all that you ever wanted to know.
|