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 .”

