DIGITÁLIS TECHNIK I Dr. Pıdör Bálint BMF KVK Mikroelektronikai és Technológia Intézet. ELİDÁS: BINÁRIS SZÁMRENDSZER. ELİDÁS. elıadás témája a digitális rendszerekben központi szerepet játszó számrendszerek és aritmetikák.. Számrendszerek. Bináris számok. ritmetikai mőveletek bináris számokkal 8/9 tanév. félév BEVEZETİ ÁTTEKINTÉS Áttekintjük a digitális technikában használatos számrendszereket, az aritmetikai mőveletek elvégzésének szabályait és célszerő algoritmusait, valamint az egyes szám-rendszerek közti áttérések algoritmusait is. digitális rendszerekben, célszerőségi okokból a -es (bináris) számrendszer terjedt el. Mindezek sokféle digitális funkcionális egység mőködésének alapjait képezik. SZÁMRENDSZEREK Két fı típus: - addíciós számrendszer (pl. a római számok); - helyi értékes számrendszer. helyi értékes rendszerben a számokat polinom alakban írjuk fel m N = a o + a r + a r +... + a m r m = Σ a i r i i = r (>) egész szám a számrendszer alapszáma (radix), a i ( a i r-) egész számok a számjegyek. z a i helyi értéke r i, az alapszám megfelelı hatványa. Római számok és rendszerük Helyérték 8 = + + 8 8 = + + 8 Szám helyértéke római számok rendszere különleges volt, és egyáltalán nem alkalmazkodott még a legelemibb számításokhoz sem. Tízes számrendszer, amelynek fı szimbólumai az I, X, C és M (,,, ), másodlagos szimbólumai a V, L, D (az többszörösei). Szám alaki értéke Számjegyek:,,,,,,,,8,9 8 = + + 8 Számrendszer alapja: Szám valódi értéke Decimális számrendszer
8 ) q-alapú számrendszer = + + 8 -es ( 8 q ( q) = q + q + 8 x szám q-alapú számrendszerbeli alakja: a a n a a, i < q, i =,, K, n n ha: x = an q + K+ a q + a q Számjegyek:,,...,(q-) alapú q alapú SZÁMRENDSZEREK Számok felírása a különbözı számrendszerekben Valamely N szám (numerus) az R alapú (radixú) számrendszerben definíciószerően N alakban adható meg. Itt N az egész rész, és N = tört R = ± n k k = h R n egész = n R +... + R + n h+ n R +... + h+ R + k h R h tört rész. z N szám z R alapú számrendszerben a következı alakban adható meg: N R = n...,... h h( R) 8 Bináris számrendszer () = + + + + + + + Számjegyek:, számítástechnika és a digitális technika a bináris számrendszerre épül 9 -es számrendszer 9-ban R. Valtat szabadalmaztatta egy -es számrendszerben dolgozó számítógép elvét. Ebben az idıben kezdett hozzá Konrad Zuse is egy -es számrendszert alkalmazó, mechanikus mőködéső, programvezérelt számítógép kifejlesztéséhez. Valtat és Zuse felismerte, hogy a -es számrendszer használata egyszerősíti a számítástechnikát. kettes számrendszert Leibniz dolgozta ki, még 9-ben, majd 8-ben George Boole alakította ki hozzá az algebrát. Boole-féle algebrában nem csupán az összeadás és szorzás mővelete lehetséges, hanem az ún. logikai mőveletek is: és, vagy, negáció. -es számrendszer használatakor az adattárolás lényegesen egyszerőbben oldható meg, mint a -es számrendszerben. Hexadecimális számrendszer FB = + + F + B Számjegyek:,,..., 9,, B, C, D, E, F = 9 + + + = () -ES ÉS -ES SZÁMRENDSZER Pl. 9 tízes számrendszerbeli alakja azért ez, mert 9 = x + x + x + 9x kettes számrendszerbeli alakja, mert 9 = x + x 9 + x 8 + x + x + x + x + x + x + x + x Hexadecimális rendszerben pedig $D9 Megkülönböztetı jelölés $, pl. $FB
TÖRTSZÁMOK Ha nem csak természetes számokról van szó, akkor m - N = Σ a i r i i = -h és az N szám rövidített jelölése az r alapú (r-es) számrendszerben TÖRTSZÁMOK -ES SZÁMRENDSZERBEN Pl., értéke -es számrendszerben: x8 + x + x + x + x(/) + x(/) + x(/8) + x(/) =,8 További példa:,... =? N (r) = a m- a m-...a a,a - a -...a - h (r) SZÁMRENDSZEREK ÉS SZÁMJEGYEIK Megnevezés lap Számjegyek Bináris (duális), Ternális,, Tetrális,,, Kvinális,,,, Oktális 8,,,,,,, Decimális,,,,,,,,8,9 Duodecimális,,,,,,,,8,9,a,b Hexadecimális,,,,,,,,8,9,,B,C,D,E,F SZÁMOK KIFEJEZÉSE KÜLÖN- BÖZİ SZÁMRENDSZEREKBEN Pl. bináris (8 + + + ) ternális (9 + + ) tetrális (x + ) oktális (8 + x) decimális ( + x) duodecimális ( + x) hexadecimális D (D) ÁTSZÁMÍTÁS KÉT SZÁMRENDSZER KÖZÖTT Egy természetes szám átírása egyik számrendszerbıl a másikba: a számot elosztjuk az új rendszer alapszámával,és a maradékokat jobbról balra haladva leírjuk. Pl. = x +, = x +, = x +, = x +, = x +, = x +, = x +, = x +, = x +, = x +, -ESBİL -ESBE VLÓ ÁTLKÍTÁS LGORITMUS -esbıl -esbe való átalakítás algoritmusa így is megfogalmazható (a kapott számjegyeket jobbról balra kell leírni): Ismételd Ha a szám m páratlan, p írj le -et, és s vonj ki a számb mból l -et, különben k írj le -t oszd el a számot -vel amíg g a szám m nem = x +. Tehát 8
BINÁRIS SZÁMRENDSZER JELENTİSÉGE digitális technikában különleges szerepe van a bináris számrendszernek. helyérték neve itt bit (binary digit), ez egyben az információ egysége is. Triád bit Tetrád bit (amerikai angol: nibble) OPTIMÁLIS (?) SZÁMRENDSZER () bináris rendszer alapszáma közel van a megvalósításhoz szükséges szerkezeti elemek száma tekintetében az optimális számrendszer alapszámához. szükséges szerkezeti elemek száma arányos a helyértékek és a számjegyek száma szorzatával. 9 OPTIMÁLIS SZÁMRENDSZER () OPTIMÁLIS SZÁMRENDSZER () R - alap (számjegyek száma is), h - helyértékek száma, N max = R h - Szükséges helyértékek száma h = ln(n max + ) / lnr Szükséges szerkezeti elemek száma (arányosság) S = h R = ln(n max + ) R / lnr Legyen pl. N max = 9 ( milliárd) Szám lap Számjegyek Szerkezeti rendszer R száma h elemek száma Bináris Ternális 9 Tetrális Kvinális Oktális 8 8 Decimális 9 9 Ennek minimum helye R = e, -ES SZÁMRENDSZER ELİNYEI: CSK KÉT STBILIS ÁLLPOT z áramköri megvalósítás szempontjából elınyös, hogy a leképezéséhez csak két stabilis állapot szükséges, így kétállapotú elemekkel: relékkel, tranzisztorokkal, mágnesezhetı elemekkel könnyen leképezhetı. 8-S ÉS -OS SZÁMRENDSZER hexadecimális számrendszert kényelmi szempontból használják, pl. mert a kettes számrendszerrel nagy számokat hosszú leírni. hexadecimálisból könnyő a binárisra átváltani és viszont. hexadecimális rendszert a $ jellel is jelölik. két egymástól távol esı stabilis állapot következtében viszonylag érzéketlen a fellépı zavarokkal szemben, illetve azok könnyen elháríthatók. Bin-hex átváltás: négy bináris számjegy egy hexa számjegyet ad ki, pl = $F. Egy byte két hexa számjeggyel adható meg.
-ES-OS SZÁMRENDSZER digitális technika természetes számrendszere a kétértékő megvalósításból adódóan is a kettes számrendszer. Ehhez jól illeszkedik a hexadecimális számrendszer. tízes számrendszer használata, néhány kivételtıl (pl. decimális számlálók) eltekintve nehézkes, és sok helyen indokolatlan. bináris számrendszer matematikai szempontból is elınyös. z aritmetikai mőveletek igen egyszerően hajthatók végre, és igen egyszerő a logikai ítéletalkotás is. Ugyanazok a számjegyek használhatók fel mind az aritmetikai, mind a logikai mőveletekhez. SZÁMRENDSZEREK: NEGTÍV SÚLYOK m - N = Σ a i R i i = -h az egyes helyértékekhez negatív súlyozás is rendelhetı! Ha csak a legnagyobb helyértékhez rendelünk negatív súlyt, akkor a negatív számok az alábbi módon ábrázolhatók - 89 = 8 BINÁRIS SZÁMRENDSZER: NEGTÍV SÚLYOK Bináris rendszerben az szimbólum nem kell! pozitív és negatív számok leírhatók csupán, szimbólumokkal, ha a legmagasabb helyértékhez mindig negatív súlyozást rendelünk. Pl. -x8 + x + x + x = -x8 + x + x + x = - Mint késıbb majd látjuk, ez a negatív szám ún. PÉLD TÖRTSZÁMR -ES SZÁMRENDSZERBEN z elızı példa megoldása:,... =? z egész rész, a kettedes törtrész pedig / + / + / +... =, +, +,888 +... =,... = π -es komplemens ábrázolása. 8 RITMETIKI MŐVELETEK BINÁRIS SZÁMOKKL digitális rendszerek, digitális számítógépek aritmetikai egységei közvetlenül általában csak a négy alapmővelet elvégzésére alkalmas. Ezek és néhány logikai mővelet segítségével viszont tetszıleges mővelet elvégezhetı. Elıször röviden megtárgyaljuk a négy alapmővelet végrehajtását természetes számokon, utána foglakozunk a negatív számok ábrázolásával és a velük végzett mőveletekkel. 9 BINÁRIS ÖSSZEDÁS Két bináris számjegy + B = C, S alakú bináris összeadása: S - eredeti helyértéken mutatkozó összeg (sum vagy magyarul summa), C - következı helyértékre való átvitel (carry). Igazságtábla és logikai függvények: B S C S = B + B = B C = B Megvalósító elem: félösszeadó
Félösszeadó Félösszeadó Feladata két bit összeadása S FÖ B C S: összeg C: maradék, átvitel, carry Realizálás kapukkal B S = B + B = B S C = B C BINÁRIS ÖSSZEDÁS: FÉLÖSSZEDÓ S = B + B = B BINÁRIS SZÁMOK ÖSSZEDÁS Bináris számok összeadásának és kivonásának algoritmusa hasonló a decimális számokéhoz: C = B Félösszeadó: két bemenet és két kimenet. Két bináris számjegyet tud összeadni, elıállítja az összeget és átvitelt. Nem veszi figyelembe a kisebb helyértékrıl jövı átvitelt. B = & félösszeadó S C = n n-... +B = B n B n-... B B C = C n C n-... C C S = S n S n-... S S (átvitel) (összeg) az összeg i-edik bitje S i = S i (,,C i- ) az i-edik összeadásnál keletkezı átvitel C i = (,,C i- ) és C - = BINÁRIS ÖSSZEDÁS BIN HEX DEC C B + D 8 z összeadás hasonló a -e számrendszerbelihez: két számjegyet és az elızı helyértékrıl származó maradékot kell összeadni. z összeg egyes helyértékén lévı számot le kell írni, a kettes helyértéken lévıt tovább kell vinni. INDEX TELJES ÖSSZEDÓ (FULL DDER) i FÜGGETLEN VÁLTOZÓKHOZ RENDELT "SÚLYOK" () () () C i- C i FÜGGİ VÁLTOZÓK teljes összeadónak három bemenete, a két operandus, és az alacsonyabb helyértékrıl érkezı átvitel (, és C i- ) és két kimenete, az összeg és az átvitel) (S i (a táblázatban jelöli) és C i ) van.
teljes összeadó igazságtáblája független változók kombinációi nem bináris számokat jelentenek. Mégis un. súlyok rendelhetık az egyes változókhoz. Ha megállapodtunk a súlyozásban, akkor bármelyik változókombinációt egyszerőbb az un. indexével jelölni, mint binárisan leírni. Ez csak egy jelölési konvenció. Használhatnánk éppenséggel hexadecimális indexeket is a változók kombinációinak a megadására. Ne tévesszük össze ezt a súlyozási konvenciót a Hamming súllyal! INDEX i FÜGGETLEN VÁLTOZÓKHOZ RENDELT "SÚLYOK" () () () C i- C i FÜGGİ VÁLTOZÓK TELJES ÖSSZEDÓ (FULL DDER) dd two bits and carry-in, produce one-bit sum and carry-out. BC in SC o ut 8 függvény megadása az -es függvényértékekkel () Példa: már tárgyalt teljes összeadó. () () () i C i- C i = (,,,) C i = (,,,) Itt is következetesnek kell lenni a változók súlyozását illetıen. Ez a megadási forma is unikális. 9 i (összeg) függvény ábrázolása. () () () C i- sakktábla Szimmetrikus függvény C i- szimmetrikus függvényekrıl Ha egy függvény változói felcserélhetık, akkor a függvényt szimmetrikusnak mondjuk. Ha pl. n= (,B,C) és és B felcserélhetık egymással, de C-vel egyikük sem, akkor a függvény részlegesen, nevezetesen az,b változópárra szimmetrikus. szimmetria lehet teljes vagy részleges. szimmetrikus függvényeknek speciális tulajdonságai vannak. Jellemzı pl. a legalább részleges sakktábla elrendezés a K táblájukon. i () () () C i- (összeg) függvény algebrai alakja. C i- = m + m + m + m = =. B. C +. B. C +. B. C +. B. C = = = =.( BC + BC) +. ( BC + BC).( B C) + ( B C) =.( B C) +. ( B C) = = B C =
Teljes összeadó Feladata két bit és az elızı helyi értékbıl származó maradék összeadása B TÖ S TELJES ÖSSZEDÓ LOGIKI EGYENLETEI S i = C i- + C i- + C i- + C i- az összeg bit -es, ha a három változó közül egy vagy három -es (kizáró VGY logikai kapcsolat), C i = C i- + C i- + C i- + C i- C in C out = + C i- + C i- az átvitel bit -es, ha két változó egyidejőleg -es (majoritás logikai kapcsolat). B C in S C out Logikai függvények S = BC in + BC in + BC in + BC in C out = BC in + BC in + BC in + BC in (Minimalizálva: C out = B + BC in + C in ) TELJES ÖSSZEDÓ teljes összeadó két félösszeadóból állítható össze. z elsı képezi a két összeadandó bit összegét, a második ehhez adja hozzá az elızı helyértéken keletkezett átvitelt. C i- +/ +/ S i C i TELJES ÖSSZEDÓ EGY LEHETSÉGES MEGVLÓSÍTÁS Két bites szám összeadása i Bi i + Bi ibi i Bi Ci- (i + Bi) Ci- ibi + (i + Bi) Ci- B B C in B B C in B B TÖ TÖ TÖ FÖ C out S C out S C out S C out S Carry flag Q Q C in Q B B Q 8
BINÁRIS KIVONÁS Két bináris számjegy - B = D, (K) alakú bináris kivonása: K - magasabb helyértékrıl vett kölcsön (borrow); D -eredeti helyértéken mutatkozó különbség (difference) K B D 9 BINÁRIS SZÁMOK KIVONÁS Bináris számok kivonásának algoritmusa hasonló a decimális számokéhoz ( > B): = n n-... - B = B n B n-... B B K = K n K n-... K K D = D n D n-... D D (kölcsön) (különbség) a különbség i-edik bitje = (,,K i- ) az i-edik különbségnél szükséges kölcsön K i = K i (,,K i- ) BINÁRIS KIVONÁS LOGIKI EGYENLETEI z összeadóval analóg módon adódik = K i- + K i- + K i- + K i- = K i- a különbség bit -es, ha a három változó közül egy vagy három -es, és TELJES KIVONÓ (FULL SUBTRCTOR) K i- & & & K i kölcsön (K i ) megvalósítása. különbség ( ) megvalósítása ugyanaz mint az összegé a teljes összeadóban (azaz K i- ). K = K + B + B K i i i- i i i i- BINÁRIS SZORZÁS z B = P bináris szorzás szorzótáblája (bináris egyszeregy ) igen egyszerő B P Lényegében azonos a logikai ÉS kapcsolattal BINÁRIS SZÁMOK SZORZÁS bináris számok szorzása ugyanúgy történik, mint a decimális számoké: - ha a szorzó soronkövetkezı számjegye -es, akkor összeadás következik, - ha -as, akkor nincs összeadás. Minden helyértéknél léptetjük a részletszorzatot a megfelelı irányba. (logikai szorzás)
BINÁRIS SZORZÁS ELVÉGZÉSE x x. részletszorzat. részletszorzat összeg. részletszorzat összeg. részletszorzat BINÁRIS SZORZÁS VÉGREHJTÁS p: szorzat pp: rész-szorzat végösszeg 9 x y x y x y x y (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) (xy ) p p p p p p p p szorzandó mult iplicand szorzó mult iplier pp pp pp pp BINÁRIS SZORZÁS LGORITMUS P = x B n- n- = Σ i és B = Σ i i = i = a részletszorzatok n- P k = B k Σ i = ha B k =, és = ha B k = k = a teljes szorzat n- P = Σ P k k BINÁRIS SZÁMOK OSZTÁS szokásos decimális kézi osztáshoz hasonlóan végezhetı. Visszaállító algoritmus illetve visszaállítás nélküli algoritmus. k = 8 BINÁRIS OSZTÁS: VISSZÁLLÍTÓ LGORITMUS Példa: : =,8 : =, - - + visszaállítás - VÉGE 9