Flytende punktberegningsenhet

Flytpunktberegningsenheten eller flyttallsenheten ( FPU , fra engelsk " floating - point unit " , bokstavelig talt "floating point unit" [ 1 ] ) er en type prosessor som kjennetegnes ved å være spesialisert i å utføre flyttallsmatematikk beregninger .

De fleste av beregningsoperasjonene utført av FPU er enkel aritmetikk (som addisjon og multiplikasjon ), men noen FPUer er også i stand til å utføre eksponentielle eller trigonometriske beregninger (som rotekstraksjon eller sinusberegning ).

For øyeblikket er FPU-en vanligvis implementert som en monolitisk mikroprosessor , og ofte, når den er en matematisk koprosessor for CPU -en , er den integrert sammen med CPU-en i samme integrerte krets .

Beskrivelse

I mange personlige datamaskinarkitekturer og høyere systemer er FPU og CPU integrert i samme integrerte krets , men mange mikrokontrollere for innebygde applikasjoner implementerer ikke FPU.

Tidligere ble implementeringen av FPU oppnådd gjennom en koprosessor som ble installert på hovedkortet til datamaskinen. I mikrodatamaskiner kan FPU være et helt utvidelseskort og i tidlige datamaskiner kan det bestå av et helt kabinett som skal legges til systemet.

Ikke alle arkitekturer implementerer FPU, men dette forbyr ikke utførelse av flyttalloperasjoner siden disse utføres gjennom emulering. Emuleringen gjør det mulig å forenkle prosessordesignet ved å redusere transistorene og dermed kostnadene for systemet. På den annen side er emulering mye tregere enn maskinvareutførelse og straffer derfor utførelse betraktelig. Emulering kan utføres på mikrokode- , operativsystem- eller programnivå på brukernivå.

Mange prosessormikroarkitekturer skiller fysisk flytende punktkjøring fra heltallskjøring. Denne separasjonen skyldes tilstedeværelsen av spesifikke instruksjoner for flyttallnummer og spesifikke registre for å være vert for flyttallnummer. Dette kommer fra arkitektoniske designvalg. For eksempel har x86 -arkitekturen registre, instruksjoner og potensielt til og med en egen klokke for FPU da dette i utgangspunktet var en ekstern komponent til prosessoren og derfor var dette den mest logiske løsningen.

Flytepunktoperasjoner utføres ofte via rørledning . I de første superskalararkitekturene som ikke var i stand til å utføre instruksjoner som ikke var i orden , ble flytepunktoperasjoner og heltallsoperasjoner lagt inn i samme rørledning og separert bare i den faktiske utførelsesfasen. Moderne prosessorer implementerer ofte flere flyttallsdataenheter for å øke ytelsen.

Ofte er FPU-er spesialiserte, enheter er delt inn i raske eller langsomme operasjoner. Raske operasjoner (som summer og multiplikasjoner) utføres av en spesialisert enhet, mens langsommere operasjoner (som divisjoner, kvadratrøtter osv.) utføres av en annen enhet.

I mange arkitekturer leveres funksjonaliteten til FPU av enheten som også håndterer multimedia SIMD-instruksjonene .

Ytterligere FPUer

Fra begynnelsen av 1980-tallet til midten av 1990- tallet tillot IBM PC og kompatible personlige datamaskiner tillegg av FPU via en valgfri koprosessor. Dette tillot å inneholde kostnadene, men ikke begrense ytelsen til vitenskapelige beregninger.

IBM PC XT og Intel-baserte kompatible 8088 og 8086 hadde en sokkel for 8087 - koprosessoren . AT-ene på Intel 80286 og Intel 80386 hadde sokkelen for 80287- og 80387 -koprosessorene .

Med ankomsten av Intel 80486-prosessorer ble flytpunktdataenheten integrert i sentralprosessoren og derfor forsvant FPU-sokkelen fra hovedkortene . De eneste datamaskinene med FPU-sokler var de som var basert på Intel 80486SX, en liten prosessor og ikke utstyrt med en FPU. Gitt det lille markedet for 80486 FPUer, utviklet Intel faktisk aldri en ekte matematisk koprosessor for 80486. Intel 80487 var faktisk en full 80486-prosessor som en gang installert deaktiverer den andre prosessoren fullstendig.

Foruten Intel utviklet mange andre selskaper FPUer for x86-prosessorer . Selskaper inkluderer Cyrix som utviklet høyytelses FPUer som var fullt kompatible med X86 og Weitek som utviklet FPUer som var veldig kraftige, men ikke fullt ut kompatible med X86 FPUer.

Eksterne FPUer er ikke bare en funksjon av Intel-prosessorer, mange andre familier valgte å lage eksterne FPUer i tidlige prosessormodeller. Den mest kjente familien er Motorola 68000 som ble brukt av maskiner laget av Sun Microsystems , Apple , Commodore , Atari og andre. Ofte var FPU til stede som standard i high-end-maskinene, mens i low-end-maskinene var stikkontakten også fraværende. Motorola produserte ikke en FPU for hver familie, men produserte to generiske FPUer, Motorola 68881 og 68882 som kunne kontrolleres av Motorola 68020- og 68030 -prosessorene . Fra 68040 ble FPU integrert i prosessoren, selv om det var lavprisversjoner uten FPU som kunne håndtere de eksterne.

Merknader

  1. ^ i angelsaksiske land brukes et punktum i stedet for et komma som desimalskilletegn

Relaterte elementer

Andre prosjekter