Vad är en flytande punktenhet?
En flytande punktenhet är ett funktionsblock i en datorprocessor som utför flytande punkt aritmetiska operationer. Även känd med förkortningen FPU kan en flytande punktenhet också vara en fysiskt separat co-processor. En FPU får vanligtvis åtkomst till data via samma adresseringslägen som resten av processorn och inkluderar vanligtvis sina egna register. En processor använder en FPU för att beräkna trigonometriska, logaritmiska och grundläggande aritmetiska funktioner med flytande punkt. Den använder också en FPU för att ladda, lagra och jämföra siffror i flera heltal och flytande punktdatatyper.
Många processorer inkluderar inte en flytande punktenhet. De flesta av de mikroprocessorer som producerats av Intel Corporation och Motorola Incorporated före slutet av 1980-talet inkluderar till exempel inte en. Många RISC-processorer och inbäddade styrenheter har inte heller en. Dessa chips inkluderar en aritmetisk logik-enhet (ALU) för att utföra grundläggande heltals aritmetiska och bitvisa logikfunktioner. Flytande matematik hanteras emellertid av en extern samprocessor eller ett programbibliotek.
De flesta processorer och mjukvarusystem implementerar standarden Institute of Electrical and Electronics Engineers (IEEE) för flytande punktoperationer. IEEE-754-standarden släpptes först 1985 och utvidgades 2008 till att inkludera ytterligare datatyper. Den definierar flera heltal och flytande punktdatatyper, var och en med sin egen precision, representation och numeriska intervall. Den definierar också många aritmetiska operationer, metoder för avrundning och hantering av undantag som en division med noll. Oavsett om matematiken utförs av en flytande punktenhet eller inte, garanterar IEEE flyttalsstandard identiska resultat.
Förutom tillägg, subtraktion, multiplikation och delning kan en flytande punktenhet utföra många andra operationer. Dessa inkluderar ofta skalning, kvadratrot och logaritmiska beräkningar. Vanligtvis tillhandahålls även sinus-, kosinus- och partiellt tangent trigonometriska funktioner. Heltals- och flytpunktsnummer kan jämföras med FPU och konverteras från en precision till en annan. De kan också rundas i endera riktningen och lagras direkt i processorns huvudminne.
FPU: n för en grafikprocessor kan innehålla ofta upprepade funktioner som är vanliga för tredimensionell objektrotation eller animering. Många inbäddade styrenheter är utformade med processorer optimerade för digital signalbehandling (DSP). Dessa kan användas i ljud- och kommunikationsapplikationer och kan innehålla FPU: er, till exempel bra för snabba Fourier-transformer (FFT). Kryptografiprocessorer inkluderar ofta en FPU för höghastighetsberäkning av matematiska tunga krypteringsalgoritmer. Allmänna processorer med flera kärnor kan också inkludera en flytande punktenhet för varje vanlig processorkärna.