Az aritmetikai egységek felépítése II. Flashcards
Fixpontos szorzás
Elemi műveletek:
• összeadás
• invertálás
• léptetés
13*123 lépései algoritmikusan: (a szorzandót a szorzó számjegyeivel külön-külön összeszorozzuk és
az eredményeket összegezzük egy gyűjtőbe)
• 0000 - gyűjtőt definiálunk, amit kinullázunk
• 0039 - 3-mal szorzás
• +260 - 20-szal szorzás hozzáadjuk a gyűjtőhöz
• =0299
• +1300 - 100-zal szorzás
• =1599
Helyi értékek
kép25
Szorzat hossza
Ha összeszorzunk két számot, akkor az eredmény helyiértéke megegyezik, vagy kisebb, mint az
összeszorzott két szám helyiértékeinek összege.
Pl.: 99=81 (1 helyiérték + 1 helyiérték = 2 helyiérték)
999=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
Első szám helyiértéke: m és a második szám helyiértéke: n
HelyiértékekSzámaSzorzásUtán(Szám1,Szám2) <= 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ú is lehet akár.
Szorzás gyorsítása
Bitcsoporttal való szorzás.
A léptetést nem egyesével, hanem csoportosan hajtjuk végre -> gyorsabb
Két bittel szorzunk: 00, 01, 10, 11
00 esetén az értéket léptetjük balra kettővel
01 esetén a gyűjtőhöz hozzáadjuk a szám egyszeresét és léptetjük balra kettővel
10 esetén a gyűjtőhöz hozzáadjuk a szám kétszeresét és léptetjük balra kettővel
11 esetén a gyűjtőhöz hozzáadom a szám háromszorosát és léptetjük balra kettővel
kép26
Az 11-es eset csak ELVBEN létezik, ennek kiváltása a gyakorlatban a Booth algoritmussal történik.
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
A62=A(64-2)
kép27
• 64-gyel szorzunk, mert az van a legközelebb és csak egy db egyes van benne
• megszorozzuk 2-vel az eredeti számot
• a 64-szeres szorzatból kivonjuk az eredeti szám kétszeres szorzatát
A BCD ábrázolás jellemzői
Megjelenésének oka:
• Fixpontos ábrázolással a törtszámok pontatlanok
• Lebegőpontos ábrázolással a mantissza-, karakterisztikaforma nem teljesen pontos, csak
pontosabb
• A kettes komplemens esetében: 10-es számrendszerű számokat átszámítjuk kettesbe, majd
vissza
• BCD esetében decimális számrendszerből átkódoljuk a számokat kettesbe és vissza.
Kódolás=egyértelmű megfeleltetés. -> A BCD pontosabb ábrázolás
Ábrázolás:
4 biten ábrázoljuk (tetrádok) (0000 -> 1001). Maradnak kihasználatlan, érvénytelen bitsorozatok
(tetrádok): 1010 -> 1111, hexadecimálisan A-tól E-ig. (4 bit 1 tetrád)
BCD formátumok
• Zónázott
o Egy byte két részre oszlik
o 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.
kép28
• Pakolt
o Az első byte első bitjei az előjel. (A többi bitet nem használják másra)
o A további kilenc bájt tartalmazza a BCD számokat.
o Intel: 10 byte, 18 helyiérték
kép29
BDC pontosság jellemzői
• Fix/ változó hosszúságú szám • A max hosszúság architektúra függő • Előjel helye (BCD szám végén (számoláskor), és elején (nyomtatásnál) is lehet) o 4 bit (zónázott) o 8 bit (pakolt) • Előjel ábrázolása o A, C, E, F a pozitív, B, D negatív o másik megoldás, ha a + és a – 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
Érvénytelen tetrádok felismerése: az első bit helyiértékén 1-es áll, ÉS a második VAGY a
harmadik bit helyiértéken egyes áll.
A BCD összeadó megvalósítása
a) Összeadó fokozat
b) Érvénytelen tetrád felismerő fokozat
c) Korrelációs fokozat
BCD kód érvénytelen/érvényes tetrádok
kép30
BCD összeadó rajza
kép31
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
kép32