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
   146   147   148   149   150   151   152   153   154   155   156