Pentium-F00F-Bug

An error in the types of microprocessors Intel Pentium, Pentium MMX and Pentium Overdrive is called F00F bug or shortly F0 - bug. The name refers to the hexadecimal representation of the assembler instruction that triggers the error. The official name by Intel is invalid operand with locked CMPXCHG8B instruction ( German: "Invalid Operand with Locked 8-byte Exchange compare instruction ").

Description

The eponymous instruction ( hexadecimal: 0xF00FC7C8 ) (in AT & T syntax): "lock cmpxchg8b % eax " (where the operand is a register must be, but not necessarily EAX ). The command " cmpxchg8b " compares the contents of the registers EDX and EAX with an 8 -byte value in memory. In this example, is specified as the target of a 4 - byte register, which is not sufficient to store the 8-byte result value.

Normally, this problem leads to an exception; but the command is called with the prefix " lock" (which is actually intended for the realization of mutual exclusion ), the exception handler is not called, the system does not handle interrupts more and must be restarted.

The command requires no special rights and was at the time because of the widespread use of Intel processors as critical. While he did not lead to permanent damage, but could cause data loss under certain circumstances. Therefore, the OS vendor workarounds built into their products, which prevented the occurrence of the error.

Found in a Linux system in / proc / cpuinfo an entry in the form f00f_bug: yes, the CPU is concerned.

Since the introduction of the Pentium Pro no Intel processor has been more affected by this bug.

641315
de