X87

x87  är en speciell instruktionsuppsättning för att arbeta med matematiska beräkningar, som är en delmängd av x86- processorarkitekturen . Den fick detta namn eftersom de ursprungliga individuella matematiska coprocessorerna hade namn som slutade på 87 . Liksom andra tillägg till processorns grundläggande instruktionsuppsättning är dessa instruktioner inte strikt nödvändiga för att bygga ett fungerande program, men när de implementeras i hårdvara tillåter de vanliga matematiska uppgifter att utföras mycket snabbare. Till exempel innehåller x87- instruktionsuppsättningen instruktioner för att beräkna sinus- eller cosinusvärden .

Beskrivning

Alla Intel- och AMD -processorer , som börjar med 486DX respektive Am486DX , har en inbyggd matematisk samprocessor och behöver ingen separat samprocessor (med undantag för Intel486SX ). Termen x87 används dock fortfarande för att beteckna den del av processorns instruktioner som handlar om flyttalsberäkningar; kompilatorer kan använda dessa instruktioner för att producera kod som körs snabbare än en som använder biblioteksanrop för att utföra flyttalsoperationer.

x87 - instruktionerna är kompatibla med IEEE-754- standarden . Men x87 - operationer följer inte strikt IEEE-754- formaten , på grund av användningen av bredare register. Därför kan sekvensen av aritmetiska operationer utföras något annorlunda på en x87 -uppsättning och på en processor som strikt följer IEEE-754- formatet .

x87 organiserar sina register inte som en array, som de flesta andra arkitekturer, utan som en registerstack, som arbetar enligt principen om omvänd polsk notation . Detta innebär att vid ett tillfälle är endast de två översta registren tillgängliga för operationer, och åtkomst till andra register kräver stackmanipulation. Även om den här organisationen är bekväm för programmerare, gör den det svårt att bygga effektiv x87 -kod för kompilatorer.

Från och med Pentium III utförs beräkningar med SSE -instruktioner i enkel precision och i senare versioner i dubbel precision IEEE-754- format . Sedan tillkomsten av SSE2 har x87 -användning till stor del föråldrats i x86-64 64-bitarsarkitekturer och relaterade 64-bitars implementeringar av operativsystem som Microsoft Windows , Mac OS X , Solaris , FreeBSD och Linux , även om det fortfarande är bra bibehålls för full kompatibilitet med äldre applikationer.

Relaterade länkar

Se även