SzA7. Az aritmetikai egységek felépítése III. Flashcards
(a lebegőpontos számok, jellemzőik, formátumok, tárolás, kódolás, kerekítések, kivételek kezelése, algebrai műveletek és megvalósításuk, az IEEE 754 szabvány, az ALU egyéb műveletei)
Lebegőpontos műveletek és számábrázolás kialakulásának okai
A fixpontos ábrázolás hátrányai
- viszonylag kicsi értelmezési tartomány integer esetén: -32768 -> +32767
- tört számok pontatlan ábrázolása: pld.: 7/4 = 1
- FP számokat ábrázolva 16 biten nagyobb számokat tudunk elérni
- A radix egyezzen meg a mantisszánál használt számrendszer alapjával
- az ábrázolás normalizált formátumban történik
Lebegőpontos számábrázolás
1/r ≤M<1 (a törtpontot az első értékes számjegy elé helyezzük)
0/1 <= M < 1
1 / 2 <= M < 1 (rejtett bit)
Mitől függ a lebegőpontos számok értelmezési tartománya?
Értelmezési tartomány függ:
- karakterisztika számára rendelkezésre álló bitek számától
- radixtól -> a számrendszerre jellemző szám (tipikusan a radix = 2 a kettes számrendszer miatt.)
Lebegőpontos számok pontossága
A pontosságot a mantissza bitjeinek száma határozza meg
Tegyük fel, hogy:
10-es számrendszer
M=4 helyiérték
karakterisztika = n (szabadon választott)
Számegyenesen ábrázolva:
FP = M * 10^(+-n)
Legnagyobb szám: 0.9999*10^(+-n)
Legkisebb szám: -0.9999*10^(+-n)
E feletti/alatti értékek a túlcsordulási régióban vannak.
Legkisebb ábrázolható szám: 0.1*10^(-n)
Legnagyobb negatív ábrázolható szám:
-0.1*10^(-n)
A 0-hoz ennél közelebbi számok az alulcsordulási régióba esnek.
Az architektúrának biztosítania kell ezek kezelését.
Előírások:
Túlcsordulásnál:
- kijelzi, majd beállítja a legnagyobb megengedett értéket VAGY előjeles végtelent jelez ki
Alulcsordulásnál:
- KIjelzi, majd 0-ra konvertál VAGY denormalizált számot jelez ki
Ha M=0, akkor a karakterisztika is legyen 0
Rejtett bit használata lebegőpontos számoknál
Pontosság javítás rejtett bit használatával (kettes számrendszerben vagyunk)
½ <= m < 1
A normalizálás miatt a pont után mindig 1-es áll. A memóriában történő tárolás után ezt az egyest nem tároljuk, így eggyel több bitet tudunk tárolni, a pontosság nő. Balra léptetünk, visszaolvasásnál kezelni kell -> vissza kell írni az egyest.
Őrző bitek lebegőpontos számoknál
A pontosságot őrzik. A lebegőpontos regiszterek mind a mantissza része, mind a lebegő pontos műveletvégző hossza 4-15 bittel hosszabb, mint a tárolt formátum (pl.: 32+11).
- rejtett bit balra léptetésekor egy értékes bitet tudunk beléptetni (helyreállítás).
- tároláskor kerekített értéket tárolhatunk
- normalizáláskor értékes biteket tudunk felhasználni
Lebegőpontos számok kódolása
- Mantissza: kettes komplemens formában ábrázolunk ezért minden aritmetikai művelet elvégezhető vele
- karakterisztika kódolása tipikusan többletes kód (csak + és – műveletek és léptetés)
- ma*rka
Műveletek lebegőpontos számokkal
Lebegőpontos műveletvégzés konkrét megvalósítása (Univerzális kombinált műveletvégző segítségével)
Műveletvégző (ALU) parciálása (részekre bontásával), vezérlés bonyolultabb.
Szervezési megoldás: egymás után mantisszát és a karakterisztikát külön regiszterekbe tároljuk, és a végén újra egyesítjük
ez lassú
Dedikált FP műveletvégzés
Míg a mantissza egységnek szorozni/osztani is kell tudni, a karakterisztika egységnek elég összeadni/kivonni, ezért az utóbbi egyszerűbb
A mantissza és a karakterisztika egység párhuzamosan is működhet (ekkor a mantissza egység jelenti a szűk keresztmetszetet a szorzás/osztás miatt, tehát azt kell igen gyors végrehajtásúra tervezni)
Az IEEE 754 szabvány fogalma, fejezetei
Cél megkönnyíteni a különböző CPU-k esetén az adatszintű kompatibilitást és portabilitást.
Elvárás a rendszerszintű megoldás az FP számábrázolásra.
Fejezetei:
- adattípus formátum
- műveletek
- kerekítések
- kivételek ezelése
Kiterjesztett csak processzoron belül.
- Szabványos
- Egyszeres pontosságú
- 32 bites (1 bit előjel, 8 bit kar., 23 bit Mant)
- kisebb, gyorsabb
- pontatlanabb
- Kétszeres pontosságú
- 64 bit (1 bit előjel, 11 bit kar., 52 bit Mant)
- Egyszeres pontosságú
- Kiterjesztett
- Egyszeres pontosságú
- min. 43 bit
- Kétszeres pontossságú
- min. 79 bit (64 + 15 őrzőbit)
- Egyszeres pontosságú
IEEE 754 műveletek
- 4 aritmetikai művelet
- maradékképzés
- négyzetgyökvonás
- bináris, decimális konverzió
- végtelennel való műveletvégzés
- kivételek kezelése
IEEE 754 pontosság
Legkisebb helyiértékű bit értékének felénél nem lehet nagyobb.
IEEE 754 kerekítések
Kerekítés (4 megközelítés):
- legközelebbre való kerekítés
- -végtelen felé kerekítés intervallum algebra
- +végtelen felé kerekítés intervallum algebra
- 0-ra kerekítés (trunc/levágás)
IEEE 754 kivételek
A kivételek felbukkanása megszakítást eredményez.
- Overflow
- Underflow
- 0-val való osztás
- Négyzetgyökvonás negatív számból