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 kész értelmezési tartomány integer esetén: -32768 -> +32767
- tört számok pontatlan ábrázolása: pld.: 7/4 = 1
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ág a mantissza bitjeinek számától függ
0,0000009
- nem tudjuk ábrázolni a számot => alulcsordulás!
- alulcsordulási flag jelez és a denormalizált számok ábrázolását engedélyezi
0,999999n-1
- +n= ∞ lesz, mert értelmezettek a végtelennel végzett számítások ∞+3=∞
- végtelen beállítása vagy legmagasabb értéket engedélyezik a karakterisztikától függően
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 bájtot 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 kiírásakor egy értékes bitet tudunk beléptetni (helyreállítás).
- kerekítést segíti a több bit
- normalizálás 0,000
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
Rendszerszintű megoldás.
Fejezetei:
- adattípus formátum
- műveletek
- kerekítések
- kivételek
Kiterjesztett csak processzoron belül.
Egyszeres pontosságú gyorsabb, kis memóriaigényű, de kevésbé ad pontos eredményt. 32 bites formátum. Értelmezési tartománya nagyobb a fixpontoséhoz képest.
Kétszeres pontosság esetén legalább 79 bit. (64 + 15 (őrzőbit))
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