SzA5. Az aritmetikai egységek felépítése I. Flashcards
Az aritmetikai (műveletvégző) egység részei
- Regiszterek
- Felhasználó számára látható
- Rejtett(transzparens) csak a rendszer számára látható
- Puffer regiszter (számításba kell venni létezésüket)
- Adat utak
- ALU (szűk értelemben)
- Kapcsolópontok
Adatutak
Adat utak (nem busz, memóriacímek nincsenek érzelmezve):
- Típusai:
- Egy utas
- Két utas
- Három utas
Kétcímes utasítás esetén a két érték bekerül 1-1 regiszterbe, az eredmény pedig egy harmadik regiszterbe kerül. Két adat utasnál a párhuzamos működés is megengedett.
Kapcsolópontok
A regiszterek részei, általában tranzisztorok
Önálló vezérléssel rendelkeznek
Az adatút nem megosztott eszköz → egy időben csak egyetlen adó lehet.
Kimenő kapcsoló: 3 állapot
1 / 0 / zárt (nem folyik rajta adat)
Bemenő kapcsoló: 2 állapot
zárt / nyílt (nyílt esetén 0 vagy 1)
ALU műveletek
Műveletek:
- Fix pontos:
- +, -, *, /
- Lebegőpontos
- +, -, *, /
- BCD
- +
- Egyéb műveletek:
- eltolás
- negálás
- léptetés
- logikai műveletek
Félösszeadó
Mivel a többi aritmetikai műveletet az összeadásra vezetjük vissza, ezért fontos, hogy ez gyors legyen. • Bemenet: A és B bitek
Kimenet: S eredmény és C carry
Hátrány: nem kezeli a bejövő carryt
Teljes összeadó
- Bemenet: A, B és Cin bitek
- Kimenet: S eredmény és Cout
- Előnye: kezeli a bejövő carryt
- Megvalósítás 2 db félösszeadóval, vagy logikai egyszerűsítések után 2 db XOR kapuval
N-bites soros összeadó
Megjelenésének oka: a számítógépben a számokat tipikusan több/változó bit hosszúságú regiszterben tárolják, ezek tartalmát kell összeadni.
Megvalósítása: A és B egy n bites léptető regiszter, és a két összeadandó számot tárolják. Minden órajelre a léptető regiszter 1-1 bitet továbbít az összeadó felé. Először az LSB (least significant bit), utoljára pedig a MSB(most significant bit) kerül az összeadóba. Az aktuális eredmény mindig bekerül az A regiszterbe, így az összeadás végére a végleges eredmény itt lesz. Az első órajel ciklus erejéig a Cin értékét továbbítjuk az összeadóba, a későbbi órajel ciklusok során azonban a Cin mindig 0. Az aktuális carry érték egy tárolóba kerül, és a következő órajel ciklus során bekerül az összeadóba.
Az összeadó n*t idő alatt fut le.
N bites párhuzamos összeadó
N darab teljes összeadót tartalmaz. Az A és B számok bitjeit párhuzamosan adja össze, azonban az átvitel biteket csak sorosan tudja, így az időigénye nem csökken a CARRY bit miatt: n*t.
Előrejelzett átvitellel felépített n-bites összeadó
Működése:
Az összeadás menetét a carry bit lelassítja, ezért kitaláltak egy rekurzív, átvitel előrejelző módszert.
Az i-edik carry bit értéke kiszámítható a következő képpen:
𝐶𝑖=𝐺𝑖+𝐶𝑖−1∗𝑃𝑖, ahol
𝐺𝑖=𝐴𝑖∗𝐵𝑖
𝑃𝑖=𝐴𝑖+𝐵𝑖
Ezáltal a carry bit kiszámolása lényegesen gyorsabb (2t + 1t)