SzA6. Az aritmetikai egységek felépítése II. Flashcards
Fixpontos szorzás módszerei
Elemi műveletek:
- összeadás (lassú)
- invertálás
- léptetés
Helyi értékek
Szorzat hossza
Ha összeszorzunk két számot, akkor ez eredmény helyi értékének a száma megegyezik, vagy kisebb, mint a két szorzat helyérték számának az összege. Pld.:
9*9 = 81 (1 helyi érték * 1 helyi érték = 2 helyi érték)
99*9 = 891 (1 helyi érték * 2 helyi érték = 3 helyi érték)
99*1 = 99 (1 helyi érték * 2 helyi érték = 2 helyi érték)
helyi értékek száma: m és n
m * n <= m + n
Konklúzió: Mivel a szorzandó és a szorzó is egy-egy regiszterben helyezkedik el, így a szorzatot kettő regiszterben kell tárolni, mert 2n hosszú lehet.
Szorzás gyorsítása
bitcsoporttal való szorzás
2 bittel szorzunk: 00, 01, 10, 11
00: esetén az értéket léptetjük balra kettővel
01: gyűjtőhöz hozzáadjuk a szám egyszeresét és léptetjük balra kettővel
10: gyűjtőhöz hozzáadjuk a szám kétszeresét és léptetjük balra kettővel
11: a gyűjtőhöz hozzáadom a szám négyszeresét, majd kivonom belőle magát a számot, de ez fizikailag nem megoldható
Booth algoritmus
Ha a szorzatban sok 1-es van az sok összeadást jelent.
Pl.: 62-vel szorzunk: 00111110
5 db összeadás -> helyette 3 db összeadás
A*62=A*(64-2)
A BCD ábrázolás jellemzői
Megjelenésének oka: fontos, hogy az eredményeink a lehető legpontosabbak legyenek (pl. bankban, pénzügyi tranzakciók). Kódolunk, nem átszámítunk. A kódolás az egyértelmű megfeleltetés. A BCD számábrázolás nagyon pontos.
Ábrázolás:
4 biten ábrázoljuk (tetrádok) (0000 -> 1001). Maradnak kihasználatlan, érvénytelen bitsorozatok (tetrádok): 1010 -> 1111, decimálisan A-tól E-ig. (4 bit 1 tetrád)
BCD formátumok
- Zónázott
- Egy byte két részre oszlik
- Magas tetrád (a byte első négy bitje) a zóna, kisebb tetrád (a byte utolsó négy bitje) a BCD szám.
- Pakolt
- 1 byte = 2 szám, az első byte az előjel, utána BCD byteok.
- Intel: 10 byte, 18 helyi érték.
BCD pontosság jellemzői
- Fix/változó hosszúság
- Hossz jelzése
- Max hosszúság architektúra függő
- Előjelek kezelése (bcd szám végén, és elején is lehet)
- 4 bit (zónázott)
- 8 bit (pakolt)
- Előjel ábrázolása
- F – 1111, előjel nélküli szám
- Pozitív, ha az első az decimális A, C, E, vagy F, negatív, ha B vagy D
- másik megoldás, ha a + és – ASCII kódját használjuk.
A BCD összeadó
Műveletvégzés:
Összeadás:
- fel kell ismernünk az érvénytelen tetrádokat és ezeknél korrekciót kell végrehajtani
- az érvénytelen tetrádok esetén kivonunk belőle 10D-et (10-et decimálisan) és lépünk egy 10-es átvitelt pl.: 15D = 1111B = (érvénytelen ezért levonunk 10-et, majd léptetjük) = 0001 0101BCD
A BCD összeadó megvalósítása
3 fokozat:
- Összeadó fokozat
- Érvénytelen tetrád felismerő fokozat
- Korrelációs fokozat
BCD kód érvénytelen/érvényes tetrádok
Érvénytelen tetrádok felismerése:
Az első bit helyértékén 1-es áll, ÉS a második vagy a harmadik bit helyértéken egyes áll.
BCD összeadó rajza
Négy db teljes összeadó (összeadja bitenként)
s – kimenetek, c – átvitel kimenet.
Korrekciós részen: fél összeadók is, korrigáljuk az átvitelt BCD összeadó megvalósítása: univerzális/specifikus műveletvégzővel
Előnye: teljesen pontos (hiszen kódolunk és nem átváltunk, mint lebegőpontosnál kerekítünk)
Hátránya: bonyolultabb, komplexebb a hardver, kicsit tovább tart (de ez ma már elhanyagolható), valamint több memóriát foglal