Opentopia Directory Encyclopedia Tools

F00f

Encyclopedia : F : F0 : F00 : F00f



 

The correct title of this } is }}}. The initial letter is capitalized due to [Naming conventions #Lower case first lettertechnical restrictions].
f00f (pronounced "foof"), an abbreviation of 0xf00fc7c8, is the hexadecimal encoding of an instruction that exhibits a design flaw in the majority of Intel Pentium, Pentium MMX, and Pentium OverDrive processors.

Intel calls this issue the "invalid operand with locked CMPXCHG8B instruction."

Description

In AT&T syntax, the instruction represents

lock cmpxchg8b %eax
Note that the operand must be a register, but technically does not have to be eax.

The cmpxchg8b instruction is used to compare the value in the edx and eax registers with an 8 byte value at some memory location. In this example a 4 byte register is used as the destination operand, which would not be big enough to store the 8 byte result.

In normal circumstances, this would simply result in an exception, however when used with the lock prefix (normally used to prevent two processors from interfering with the same memory location), the exception handler is never called, the processor stops servicing interrupts and the system must be rebooted.

The instruction does not require any special privileges, and due to the proliferation of Intel microprocessors, was considered a serious issue at the time. Operating system vendors responded by implementing workarounds that detected the condition and prevented the crash.

Although technically not an example of either, the f00f is often considered an HCF instruction, or a killer poke. Since the f00f bug has become common knowledge, the term is sometimes used to describe similar hardware design flaws, such as the Cyrix coma bug.

No permanent damage would result from executing the f00f instruction on a vulnerable system, although depending on file system, operating system, and other circumstances, if the disk buffers had not been flushed, any drives were interrupted during a write operation, or some other non-atomic operation was interrupted, it is possible for data loss to occur.

No Intel processors since the introduction of the Pentium Pro have been affected by the bug. Also, as documented in the latest Intel Pentium Processor Specification Update, the myB2 stepping fixed this issue.

See also

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.


Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: