Page 151 - A Practical Guide from Design Planning to Manufacturing
P. 151
124 Chapter Four
is no overhead to switch between them. Any application written to use
HT can see some performance improvement by making more efficient
use of the processor’s time.
These recent extensions are examples of AMD and Intel, both trying
to add value to the x86 architecture in ways other than increasing fre-
quency. The enormous established software base written for the x86
architecture gives processors a huge advantage, but without change
any architecture eventually begins to show its age. By continuing to add
new capabilities AMD and Intel hope to keep the x86 architecture the
leading desktop choice for many years to come.
Conclusion
A processor’s architecture is all of the features of a processor that are
visible to the programmer. The processor architect is faced with a great
many important decisions before the implementation can even begin.
Some choices are simply a matter of taste, but most will have a serious
impact on the performance and complexity of any processor supporting
that architecture. Some of the more important decisions are listed in
Table 4-19.
Early architectures made choices to give the most compact code size.
More recent architectures have deliberately sacrificed code size in order
to make it easier to execute instructions in parallel. In the end, there cannot
be a perfect architecture because the technology for processor implemen-
tation is always changing. Any new architecture should be made with a
sense of the likely future technological advances. However, designing an
architecture to be too forward looking can also be fatal. Each architecture
must make trade-offs between the best choices for future implementations
and what is practical and efficient in the near term.
Most of all it is impossible to overstate the importance of software com-
patibility. Elegant code and efficient implementations are worthless if a
processor can not run the software the customer wants to run. Extensions
TABLE 4-19 Architectural Choices
Design decision Possible choices
Operand types for computation Pure register, register/memory, pure memory
Data formats supported Integer, BCD, floating point (single, double,
extended), SIMD
Data Address Modes Absolute, register indirect, displacement, indexed,
scaled
Virtual memory implementation Virtual address size, allowed page sizes, page
properties
Instruction encoding Fixed or variable, number registers, size of
immediates & addresses