Page 379 - A Practical Guide from Design Planning to Manufacturing
P. 379

Silicon Debug and Test  349

        BIOS on flash memory chips allows it to be retained when powered down
        but also to be updated if needed. The BIOS controls the reset flow for the
        entire system and sets values in the control registers on the processor that
        turn on or off different options. If some specific optional modes of opera-
        tion are known to have bugs, these can be disabled by the BIOS on system
        start-up.
          An update to the operating system can also work around some problems.
        OS updates are commonly available to fix software bugs in the OS itself,
        but they are also used to avoid some hardware flaws. Updates to the
        microcode, BIOS, or OS all have the advantage of not requiring changes
        to the silicon, and these fixes are even possible after the processor has
        already begun shipping. Unfortunately, there are many bugs that cannot
        be fixed this way. Some of these bugs are never fixed but are documented
        as unintended behaviors called errata.
          Real processors are never perfect. The actual implementation inevitably
        behaves in some ways differently than the original planned design, and
        as a result all processors have errata. 13,14  It is surprising to learn that
        processors are sold with known design bugs, but in reality this is true for
        all very complex manufactured products. If an automobile manufacturer
        discovered that in its latest model car the headlight high beams did not
        work when the car was in reverse, the manufacturer would probably not
        bother with a recall. There would be no safety issue and in normal driv-
        ing using the high beams while in reverse is not necessary. Even if the
        design flaw caused the car to stall if the high beams were turned on when
        in reverse, this might be corrected on a later model but the original designs
        would probably still be sold. The manufacturer would simply make a note
        in the owner’s manual that this particular model had this unintended
        behavior. Just like with processor errata, most customers would never
        encounter the bug (and most would never read the owner’s manual).
          Processor bugs that are good candidates for being treated as errata are
        those that either have insignificant consequences or are extremely unlikely
        to ever be encountered. Imagine a processor that when trying to execute
        a particular invalid instruction gives a divide by zero error instead the
        expected undefined instruction error. This is a design flaw. The processor
        behavior does not match the original specification. However, this partic-
        ular flaw will have little to no impact on real applications. Properly com-
        piled programs should not contain undefined instructions in any case. If
        a program with software bugs does try to execute an invalid instruction,
        an error will be reported although not the one that would normally be
        expected.



          13   ®       ®                      ®
           “Intel Pentium Extreme Edition and Pentium D Specification Update.”
          14                       TM            TM
           “Revision Guide for AMD Athlon  64 and Opteron  .”
   374   375   376   377   378   379   380   381   382   383   384