T5.2/T6.1/T6.2 Aritmetisk-logisk enhet Flashcards
Hva gjør den aritmetisk-logiske enheten?
Utfører aritmetiske og logiske operasjoner
Overflyt
Oppstår når vi ikke kan representere resultatet med det antallet bit vi har tilgjengelig
Fordeler med å representere tall i “fixed-point” format
Vi kan regne som med heltall med desimaltall. Eneste endring er at vi omdefinerer verdien til hver bit
Ulemper med å representere tall i “fixed-point” format
Vi må velge mellom å kunne representere store og små tall
Hvorfor trenger vi flyttall?
For å løse problemet med “fixed-point” tall, altså ha et tallformat der man kan representere både store og små tall
Hva er flyttall?
Tallformat der kommaet flytter seg ved behov (“flyter”)
Hva er formelen til et flyttall?
(-1**s) * brøk * 2^eksponent
Flere “fraction” bits i et flyttal øker
presisjon
Flere “exponent” bits i et flyttall øker
range
Når man har økt presisjon i et flyttal kan man
representere tall med nøyaktig
Når man har flere eksponent bits kan man representere
større og mindre tall
Hva er overflyt for flyttall?
Når tallet er for stort til å kunne representeres med eksponenten
Hva er underflyt for flyttall?
Når tallet er for lite til å kunne representeres med eksponenten
Hvordan kan man unngå overflyt og underflyt med flyttall?
Ved å bruke double
Beskriv prinsippet for utføring av addisjon med flyttall i maskinvare
En 1-bits adderer. Den tar inn
- to bits som skal legges sammen
- carryIn som er mente fra forrige addisjon
Og produserer:
- en-bit summen av de to bitene
- CarryOut som er mente til neste addisjon
Beskriv prinsippet for utføring av subtraksjon med flyttall i maskinvare
- Legger til en inverter for den ene biten
- Legge til en multiplekser som velger biten eller bitens komplement
- Eksponere inngangen til multiplekseren som et kontrollsignal
- Sørge for at CarryIn på bit 0 settes til 1 ved subtraksjon
Beskriv prinsippet for utføring av multiplikasjon med flyttall i maskinvare
Ser på multiplikasjon som en serie av addisjonsoperasjoner - genererer en løkke med add instruksjoner
Hvis man skal gange med toerpotens, bruker man skiftinstruksjoner
Beskriv prinsippet for utføring av divisjon med flyttall i maskinvare
Ser på divisjon som en serie med subtraksjonsoperasjoner - en løkke med subtraksjon
Men man skal bare trekke fra så lange restverdien er større enn 0 og man må håndtere at divisjon med 0 ikke er lov med avbrudd
Hvordan implementerer man SIMD instruksjoner?
Lage en smalere ALU av en bred ALU ved å legge til logikk som deler den opp:
- Lager instruksjoner som gjør flere operasjoner i parallell
Hva brukes SIMD instruksjoner til?
Bruksområder der man ikke trenger 32 bit til å representere verdier - f.eks. lyd og bilde
Hva er fordelen med SIMD instruksjoner?
Bedre ytelse for en liten ekstrakostnad
Hva står SIMD for?
Single-Instruction Multiple Data