Számítógép architektúrák

Hasonló dokumentumok
Adatok ábrázolása, adattípusok. Összefoglalás

Mikrokontrollerek. Tihanyi Attila május 8

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Digitális technika VIMIAA01

Számrendszerek közötti átváltások

MBLK12: Relációk és műveletek (levelező) (előadásvázlat) Maróti Miklós, Kátai-Urbán Kamilla

1. Az utasítás beolvasása a processzorba

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Jelek tanulmányozása

ARM Cortex magú mikrovezérlők

A Számítógépek felépítése, mőködési módjai

Vezérlőegység. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Algebra es sz amelm elet 3 el oad as Rel aci ok Waldhauser Tam as 2014 oszi f el ev

Számítógép sematikus felépítése. Little Man Computer (LMC)

Számítógépek felépítése, alapfogalmak

A MiniRISC processzor

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Számítógép Architektúrák I-II-III.

Digitális hálózatok: Digitális hálózati elemek struktúrális felépítése, CMOS alkalmazástechnika. Somogyi Miklós

Párhuzamos programozás

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

Adattípusok. Szám: pozitív egész, egész, valós, dátum + idő,... Szöveg, Formázott szöveg Kép Hang Mozgókép+Hang

Digitális technika (VIMIAA01) Laboratórium 1

Számoló és számítógépek

A processzor. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

DSP architektúrák Texas Instruments DSP architektúrák

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Programozás I gyakorlat

Programozás. A programkészítés lépései. Program = egy feladat megoldására szolgáló, a számítógép számára értelmezhető utasítássorozat.

Assembly Programozás Rodek Lajos Diós Gábor

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Számítógépek felépítése

A számítógép alapfelépítése

1. Fejezet: Számítógép rendszerek

Analízis elo adások. Vajda István szeptember 24. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Az informatika oktatás téveszméi

Számítógép Architektúrák

HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT

4. Fejezet : Az egész számok (integer) ábrázolása

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK KÖZÉPSZINT Függvények

Az integrált áramkörök kimenetének kialakítása

Input-output vezérlo egység (csatorna, channel, I/O processzor) Input-output vezérlo egység (csatorna, channel, I/O processzor)

Számítógép Architektúrák

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

A mikroszámítógép felépítése.

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

A TMS320C50 és TMS320C24x assembly programozására példák

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

KOVÁCS BÉLA, MATEMATIKA I.

Számítógép Architektúrák (MIKNB113A)

Gépi forgácsoló Gépi forgácsoló

Megszakítás, DMA, fejlett I/O módok Memória típusok, cache, MMU Párhuzamos végrehajtás, pipeline, szuperskalár, vektor proc.

INFORMATIKA MATEMATIKAI ALAPJAI

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

7. fejezet: A CPU és a memória

BOLYAI MATEMATIKA CSAPATVERSENY FŐVÁROSI DÖNTŐ SZÓBELI (2005. NOVEMBER 26.) 5. osztály

Máté: Assembly programozás

Az aktiválódásoknak azonban itt még nincs vége, ugyanis az aktiválódások 30 évenként ismétlődnek!

Fejezetek az Információ-Technológia Kultúrtörténetéből. Kezdeti elektronikus számítógépek kultúrtörténete

Dr. Illés Zoltán

Időzített rendszerek és az UPPAAL

Fordítóprogramok Készítette: Nagy Krisztián

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2006/2007

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.

OmniTouch 8400 Instant Communications Suite 4980 Softphone

AWP TELEPÍTÉSE- WINDOWS7 64 OPERÁCIÓS RENDSZEREN

Bevezetés a számítástechnikába

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

A Számítógépek hardver elemei

A döntő feladatai. valós számok!

Számítógép architektúra kidolgozott tételsor

tetszőleges időpillanatban értelmezhető végtelen sok időpont értéke egy véges tartományban bármilyen értéket felvehet végtelen sok érték

Halmazok és függvények

V. Kétszemélyes játékok

Számítógépes vírusok

Kombinatorika. 9. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Kombinatorika p. 1/

Digitális rendszerek. Utasításarchitektúra szintje

MATEMATIKA ÍRÁSBELI VIZSGA május 3.

Informatikai Rendszerek Alapjai

A tételek. Szóbeli tételsor. Minden hallgató egy A és egy B tételt húz.

Lineáris algebra gyakorlat

Fábián Zoltán Hálózatok elmélet

A Hozzárendelési feladat megoldása Magyar-módszerrel

Programozás alapjai Bevezetés

Operációs rendszerek MINB240. Bevitel-Kivitel. 6. előadás Input és Output. Perifériák csoportosításá, használat szerint

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

A SZÁMFOGALOM KIALAKÍTÁSA

TANMENET. Tantárgy: Informatika Osztály: 9B. Heti óraszám: 2

Architektúra, megszakítási rendszerek

I+K technológiák. Beágyazott rendszerek 1. előadás Aradi Szilárd

Assembly. Iványi Péter

Ablakok használata. 1. ábra Programablak

Vektoros elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Átírás:

Számítógép architektúrák Fazekas Gábor Debreceni Egyetem Károly Róbert Főiskola fazekas.gabor@inf.unideb.hu gfazekas@karolyrobert.hu

Architektúra = szerkezet, felépítés Funkcionális szemlélet Nem vagyunk tekintettel a technikai megvalósításra Funkcionális egység jele: téglalap, beleírva az egység szerepe, pl. printe r Cél: a számítógép működésének megismerése, megértése A gépi nyelv tanulmányozása ehhez fontos segédeszköz Assemblerek szerepe 2016/04/11 2

A számítógép funkcionális felépítése (IBM SYSTEM 360 család, Neumann architektúra) KÖZPONTI EGYSÉG Központi vezérlőegység (CPU, processzor) utasítás vezérlő aritmetikai logikai egység regisztertár belső busz Busz rendszer adatok címek vezérlés Memória (operatív tár, főtár, Input output vezérlő egység (csatorna, channel, I/O processzor) Input output vezérlő egység (csatorna, channel, I/O processzor) Berendezés vezérlő egység (DCU, device control unit) Berendezés vezérlő egység (DCU, device control unit) Berendezés vezérlő egység (DCU, device control unit) Berendezés vezérlő egység (DCU, device control unit) I/O berendezés periféria, (pl. grafikus display) I/O berendezés (pl. grafikus display) I/O berendezés (pl. klaviatúra) I/O berendezés (pl.merevlemez) I/O berendezés (pl. merevlemez) I/O berendezés (pl. mágnesszalag) I/O berendezés (pl. mágnesszalag) Input output RAM, ROM) vezérlő egység I/O berendezés (csatorna, Berendezés (pl. hálózati csatolás) channel, vezérlő egység I/O processzor) 2016/04/11 (DCU, device I/O berendezés 3 control unit) (pl. hálózati csatolás)

Központi vezérlőegység (CPU, processzor) - utasítás vezérlő: felügyel minden eseményt a CPU-n belül, utasítások végrehajtásának vezérlése, órajel szerepe, pipeline, szuperskalár proc. - aritmetikai-logikai egység: implementálja az alapvető aritmetikai és logikai műveleteket (+,-,*,/, shift, and, stb ) - regisztertár: gyors belső tároló (adat, cím, vezérlés) - lebegőpontos egység: törtszámokkal végzett műveletek számára ( kalkulátor ) - kiegészítő egységek (MMX- multimédia támogatás) - SISD, SIMD, MIMD rendszerek (Flynn taxonómia) - XMM, SSE (Streaming SIMD Extensions), SSE2, SSE3 rendszerek - belső busz: belső adat/vezérlőjel -forgalom - CACHE: közbülső (gyorsító) tár cache hit/miss - Memória management egység (MMU): interfész (kapcsolat) az operatív memóriához. - Több magvas (multicore) processzorok, Hyper-Threading technológia 2016/04/11 4

Operatív tár (Main Memory, főtár) - adatok és utasítások tárolására szolgál - elemi tároló egységek lineáris tömbje (funkc. szemlélet!) - elemi tároló egység: bájt (byte): 8 bit (binary digit, Tukey, az információ mérésének alapegysége) - bájt: tekinthető 8 jegyű kettes számrendszerbeli számnak (#) 0 <= # <=255 - helyiértékek, bitpozíciók számozása ( jobbról balra ) - bájtok címzése: Kilo/Mega/Giga,, x 2 10, Kilo ~ KiBi -ROM/RAM - von Neumann elv: a memória homogén, mindenütt tárolható utasítás, vagy adat. - következmény: az utasítás adatként kezelhető (sajnos ez fordítva is megtörténhet!) 2016/04/11 5

Busz rendszer - BUS = Bidirectional Universal Switch - Busz: elektromosan vezető kábelköteg, amely jeleket képes továbbítani a CPU és a memória vagy az I/O vezérlő között - Három típusa van: Vezérlő (control) busz: szinkronizáció Cím (address) busz: memóriahely /készülék azonosítás Adat (data) busz: adatátvitel. - Busz szélessége: vonalak ( kábelek ) száma 2016/04/11 6

I/O vezérlő egység(ek) ~ egy egyszerű processzor (CPU), amely önállóan képes adatokat átvinni egy I/O berendezés és az operatív memória között ~ alternatív elnevezés: channel / csatorna, DMA, I/O adapter ~ párhuzamosan működik a CPU-val! következmény: a CPU és I/O tevékenységek egymást időben átlapolhatják háttér: Moore szabály gyors CPU vs. lassú I/O (berendezés) vö. ENIAC ~ egy I/O processzor akár több I/O készüléket is vezérelhet! 2016/04/11 7

2016/04/11 8

Vissza a CPU-hoz: Regiszterek 1. osztályozás: hardver szoftver 2. osztályozás: rendszer felhasználói 3. osztályozás: vezérlő adat cím 4. 5. 2016/04/11 9

Néhány fontos regiszter Utasításcím mutató / Program számláló (Instruction Pointer / Program counter) (IP / PC) : az éppen végrehajtás alatt levő gépi utasítást szekvenciálisan követő utasítás memóriabeli címét tartalmazza. Ha egy utasítás végrehajtása befejeződött, a CPU mindig erről a címről tölti be a következő utasítást. Betöltés után a PC értéke megnő a beolvasott bájtok számával. Utasítás regiszter: ide kerül a beolvasott utasítás (műtőasztal / feldolgozó szalag) Verem mutató (stack pointer): verem (LIFO STACK) tetejére mutat. Verem (STACK) Speciális adatszerkezet, a veremmutató allokálja! Speciális veremműveletek: push, pop Flag regiszterek: a CPU állapotait tükrözik, vagy indikálják Pl.: carry, zero, parity, overflow, direction, stb Szerepük: Feltételes vezérlésátadás feltételei 2016/04/11 10

Az Intel (IA32) regiszterkészlete (példa) 2016/04/11 11

Az Intel (IA32) címtere 2016/04/11 12

Az Intel (IA32) regiszterkészlete (példa) 2016/04/11 13

Az Intel (IA32) regiszterkészlete (példa) Adattárolás a memóriában: LITTLE- / BIG-endian ábrázolások 2016/04/11 14

Az Intel (IA32) flag-regiszterkészlete 2016/04/11 15

Hogyan működik a CPU? Példa 2016/04/11 16

A gépi utasítások ábrázolása, szerkezete Egy gépi utasítás által tartalmazott információ: Mit kell tenni (milyen gépi műveletet/lépést kell végrehajtani)? operáció Mivel kell tenni (milyen adatokkal kell a műveletet végrehajtani)? operandusok Pl.: összeadás 34 453 A gépi ábrázolás meglehetősen bonyolult (IA32 példa): 2016/04/11 17

2016/04/11 18

Megszakítások & int CPU Megszakítási jel / vonal = bejövő / Input jel Alacsony / Magas állapotok A megszakítások maszkolhatók (a jel nem éri el a CPU-t (disabled) Van kivétel: NMI 2016/04/11 19

Megszakítás források KÜLSŐ BELSŐ I/O MÉRŐKÉSZÜLÉK MÁS CPU ÓRA PROGRAM HIBA PROGRAMOZOTT Véletlen SW_INT Jelentősége: Lehetővé válik olyan események kezelése, amelyek nem a CPU belső órájának megfelelően ütemeződnek, történnek. 2016/04/11 20

Megszakítás kezelés HELYZET: Megszakítási jel (INT) érkezik, a megszakítás megengedett (enabled) 1. A folyamatban levő gépi utasítás befejeződik. (Egy folyamatban, végrehajtás alatt álló utasítást nem lehet megszakítani!) 2. A PC/IP regiszter tartalma tárolódik, mentődik. (Pl.: a memóriába, vagy erre a célra szolgáló regiszterbe, azaz a CPU megjegyzi a következő utasítás címét.) 3. A PC/IP-be betöltődik egy, a megszakítás forrásától függő érték (cím). Pl.: a memóriából (interrupt vector). 4. A CPU kernel/szupervizor módba vált. Megjegyzés: A megszakítás nyomhagyó ugró (vezérlésátadó) utasítás CPU állapotváltással. 2016/04/11 21

CPU működési módok: Megszakítás kezelés 1. Szupervizor (kernel) mód: A gépi utasításkészlet minden utasítása végrehajtható. 2. User (felhaszáló / program) mód: A gépi utasításkészlet egy részhalmaza nem hajtható végre ebben a módban. Ezek a privilegizált utasítások. 3. Duál módú működés: az operációs rendszer magjának (kernel) hardveres támogatása. 4. Privilegizált utasítások: Pl.: az I/O vezérlő, a rendszerórát módosító, a megszakításokat maszkoló utasítások. 2016/04/11 22

Megszakítás kezelés A megszakítási jel elindít egy utasítás sorozatot (programot), amely feldolgozza ezt a jelet, válaszol rá. Amikor a feldolgozás / válaszadás befejeződik, a megszakított program folytatódhat: A PC/IP tartalma visszatöltődik a mentésből, A CPU állapota visszaállítódik az eredeti állapotába. Az interrupt handler (megszakítás kezelő) általános feladatai: Az INT vonalak maszkolása, A regiszterek mentése, Feldolgozás, A maszkolás megszüntetése, 2016/04/11 23

Szoftveres megszakítás Programozott (tervezett) megszakítás. Speciális gépi utasítás létezik, amelynek végrehajtása biztosan kiváltja a megszakítást. Alakja: INT n (alternatív módon pl.: SVC, TRcc) n egy bájtos adat, a gépi kód része. n kiválaszt egy elemet a megszakítási vektorból (szolgáltatást ) Az INT n segítségével egy meghatározott szolgáltatást kérhetünk az operációs rendszertől. System (service) Call : rendszer hívás. 2016/04/11 24

DATA NUMERIC LOGICAL BINARY DECIMAL CHARACTER BIT VECTOR OTHER FIXED POINT FLOATIN G POINT ZONED PACKED ASCII ISO- LATIN I BITMAP PIXEL ANY BUT NUMERIC SIGN + MODULU S SHIFTED TWO S COMPLEMENT IEEE-754 OTHER WINDOW S-1250 UTF, OTHER BAR KOCHBA 2016/04/11 25

Bináris adatok reprezentációi A hexadecimális / oktális számrendszerek szerepe: Egy bináris jelsorozat rövid és tömör ábrázolása. Pl. 00011001 = 19h = 31o (átváltás algoritmusai!) Hexadecimális számrendszer számjegyei : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f. A számítógépek nem végeznek műveleteket hexadecimális / oktális számokkal!! Pl. nincs olyan gépi utasítás, amely két oktális számot összeadna. Egy m bites tárolóban 2 m állapot tárolható! m= 8 (bájt): 2 8 = 256; m=16 (szó) : 2 16 = 65536 ; m=32 (duplaszó) : 2 32 = sok filozófia mentes (előjel nélküli, nemnegatív) egészek: 0 # 2 m -1 2016/04/11 26

Bináris adatok reprezentációi A gyakorlatban szükség van pozitív és negatív egész számokra is! 1. megoldás: Vegyük egészeknek egy 0-ra szimmetrikus tartományát, legyen -2 m-1 + 1 X 2 m-1-1, és legyen x, ha x 0 x' = m 1 2 x, ha x 0 Az x x leképezés lényegében kölcsönösen egyértelmű ( a 0-nak két képe van!) és 0 x 2 m -1. Ábrázoljuk x helyett az x -t! A 2 m-1 helyiérték (legbaloldalibb bit): előjelbit, a többiek a szám abszolút értékét jelentik: előjeles abszolút értékes számábrázolás. Példák: m= 8 (bájt): -127 x 127 = 2 7-1; m=16 (szó) : -32767 x 32767 = 2 15 1; m=32 (duplaszó) : 2016/04/11 27

Bináris adatok reprezentációi 2. megoldás: Vegyük egészeknek egy 0-ra (majdnem) szimmetrikus tartományát, legyen -2 m-1 x 2 m-1-1, és legyen x = x + 2 m-1 Az x x leképezés kölcsönösen egyértelmű ( a 0-nak is egy képe van!) és 0 x 2 m -1. Ábrázoljuk x helyett az x -t! A 2 m-1 helyiérték (legbaloldalibb bit): előjelbit (!), a többiekkel együtt a szám eltoltjának értékét jelenti: eltolásos (shifted/biased) számábrázolás. Példák: m= 8 (bájt): -128 x 127 = 2 7-1; m=16 (szó) : -32768 x 32767 = 2 15 1; m=32 (duplaszó) : 2016/04/11 28

Bináris adatok reprezentációi 3. megoldás: Vegyük egészeknek egy 0-ra majdnem szimmetrikus tartományát, legyen -2 m-1 x 2 m-1-1, és legyen x, ha x 0 x ' = m 2 + x, ha x 0 Az x x leképezés kölcsönösen egyértelmű. (0 x 2 m -1) Ábrázoljuk x helyett az x -t! A 2 m-1 helyiérték (legbaloldalibb bit): előjelbit. Komplemens számábrázolás, x az x kettes komplemense. Példák: m= 8 (bájt): -128 x 127 = 2 7-1; m=16 (szó) : -32768 x 32767 = 2 15 1; m=32 (duplaszó) : 2016/04/11 29

Bináris adatok reprezentációi 3.1. Kérdés: Legyen x egy nemnegatív egész szám az ábrázolási tartományból ( 0 x 2 m-1-1 ). Hogyan tudjuk meghatározni (-x) t? Válasz: Ha x 0, akkor (-x) = 2 m + (-x) = 2 m -x = {(2 m -1) x } +1. Megjegyzés: 2 m -1 bináris alakjában minden jegy (m darab) egyes! 3.2. Kérdés: Legyen x egy tetszőleges egész szám az ábrázolási tartományból (-2 m-1 x 2 m-1-1 ). Hogyan tudjuk meghatározni (-x) t? Válasz: Ha x 0, akkor 3.1. Ha x < 0, akkor x > 0, így (-x) = -x. Azonban ekkor x = 2 m + x -x = 2 m - (x ) = {(2 m -1) (x ) } +1. Következmény: Egy kettes komplemens formában ábrázolt szám negatívjának ábrázoltját úgy határozhatjuk meg, hogy minden bitet negálunk és az eredményt inkrementáljuk. 2016/04/11 30

Bináris adatok reprezentációi 3.3. Kérdés: Legyen x és y egy-egy tetszőleges egész szám az ábrázolási tartományból (-2 m-1 x,y 2 m-1-1 ). Milyen feltételek mellett lesz (x + y) = x + y? Válasz (tétel): Ha x + y is benne van az ábrázolási tartományban, akkor (x + y) = x + y (mod 2 m ). Megjegyzés: a legértékesebb (baloldali) bitpozíción keletkező átvitel ignorálandó! Hasonló módon: (x - y) = x + (-y) (mod 2 m ). Megjegyzés: Az aritmetikai műveleteknél nincs különbség a numerikus bitek és az előjelbit között. 2016/04/11 31

Bináris adatok reprezentációi 3.4. Kérdés: Hogyan detektálható a túlcsordulás az összeadás és kivonás során? Túlcsordulás: az eredmény nincs az ábrázolható tartományban. Feltétel: csak x -t és y -t (az ábrázoltakat) ismerjük! Tétel: Legyen x és y egy-egy tetszőleges egész szám az ábrázolási tartományból (-2 m-1 x,y 2 m-1-1 ) és jelölje c m-1, c m-2 az x + y képzése során a legbaloldalibb, illetve a következő bitpozíción keletkező átvitelt (carry). Az x + y (mod 2 m ) eredmény akkor és csak akkor helyes, ha c m-1 = c m-2. Példák: m = 4, x = - 3, x = 1101, y = 5, y =0101; x + y =0010, c3=c2=1, o.k. m = 4, x = - 3, x = 1101, y = - 6, y =1010; x + y =0111, c3=1,c2=0!! 2016/04/11 32

Bináris adatok reprezentációi 3.5. Kérdés: Hogyan térhetünk át m bites kettes komplemens ábrázolásról m + k bites ábrázolásra? Válasz: egészítsük ki az m bitet az előjelbittel azonos k darab vezető bittel! Fordított irányban is működik! Előjel-kiterjesztés (sign extension) Példák: m = 8, x = - 7, x = 256 + (-7) = 249 = 11111001. m = 16, x = - 7, x = 65636 7 = 11111111 11111001. A -1 ábrázolása: (-1) = 2 m -1 = 1111 11 (m darab 1-es!) 2016/04/11 33

Bináris adatok reprezentációi 3.6. Kérdés: Hogyan szorozhatunk össze egy m bites és egy n bites, kettes komplemens formában ábrázolt számot? Az eredmény biztosan elfér m+n biten (nincs túlcsordulás). Probléma: Legyen x és y egy-egy m bites és n bites kettes komplemens formában ábrázolt szám! Általában nem igaz, hogy (x y) = x y! Megoldás: BOOTH algoritmus (Andrew Donald Booth, 1951.) Legyen x és y egy-egy m bites és n bites, kettes komplemens formában ábrázolt szám! Legyenek A,S,P m+n+1 bites segédváltozók. 2016/04/11 34

Bináris adatok reprezentációi BOOTH algoritmus Legyen x és y egy-egy m bites és n bites kettes komplemens formában ábrázolt szám! Legyenek A,S,P m+n+1 bites segédváltozók. 1. Inicializálás: A: x 0 0 m bit n bit 1b S: P: -x 0 0 m bit n bit 1b 0 y 0 m bit n bit 1b 2016/04/11 35

Bináris adatok reprezentációi BOOTH algoritmus (folytatás) 2. Ha P legjobboldalibb bitpárja 01, akkor legyen P = P + A (átvitel eldobva). 10, akkor legyen P = P + S (átvitel eldobva). 00, vagy 11, akkor legyen P = P! 3. Toljuk el P-t eggyel jobbra aritmetikailag! 4. Ismételjük meg a 2. és 3. lépéseket n-szer! 5, Dobjuk el P legjobboldalibb bitjét: eredmény P-ben! Megjegyzés: Probléma van, ha x = 2 m-1! Megoldás: pótbit. 2016/04/11 36

Bináris adatok reprezentációi BOOTH algoritmus (példa) Legyen x=3, y=-4, (m=n=4)! Akkor A = 0011 0000 0, S = 1101 0000 0, P = 0000 1100 0. 1. iteráció: P = 0000 1100 0 P = 0000 0110 0 (shift) 2. iteráció: P = 0000 0110 0 P = 0000 0011 0 (shift) 3. iteráció: P = 0000 0011 0 P = P + S = 1101 0011 0 P = 1110 1001 1 (shift) 4. iteráció: P = 1110 1001 1 P = 1111 0100 1 (shift) Eredmény: 1111 0100 = -12 2016/04/11 37

Bináris adatok reprezentációi 2016/04/11 38

Bináris adatok reprezentációi Lebegőpontos számok Pontosság bizonyos valós (racionális) számok nem ábrázolhatók véges sok számjegy segítségével, pl.: 1/3 = 0.33, π = 3.141595 ez a tulajdonság függ a választott számrendszertől! pl.: 0.1 dec = 00011 0011 0011. bin Binárisan racionális számok: ha x = p/2 k (p, k egészek) akkor (és csak akkor) x ábrázolható, mint véges bináris tört. pl.: 5/4, 3/8, 7/16, stb. 2016/04/11 39

Bináris adatok reprezentációi Lebegőpontos számok ábrázolása Alapelv: ha x = m e k x normalizált alakja, akkor legyen x (m,k). Rögzített alap (e) esetén a megfeleltetés kölcsönösen egyértelmű! Klasszikus (IBM System360) ábrázolás: Binárisan racionális számok: ha x = p/2 k (p, k egészek) akkor (és csak akkor) x ábrázolható, mint véges bináris tört. pl.: 5/4, 3/8, 7/16, stb. 2016/04/11 40

Bináris adatok reprezentációi Klasszikus (IBM System360) lebegőpontos ábrázolás 32 biten sign(m) k =k+64 m 1 bit 7 bit 24 bit k = k + 64 : a karakterisztika 64-es eltoltja 7 biten m a normalizált mantissza ( m ) legértékesebb (a bináris pont utáni) 24 bitje 1. Példa: e=2 x = 257 dec = 100000001 bin = 0.100000001 10 9 bin ahonnan k = 9 + 64 = 73 = 1001001 ; m = 10000000 10000000 00000000 x = 01001001 10000000 10000000 00000000 = 49808000h 2016/04/11 41

2. Példa: e= 16 Bináris adatok reprezentációi ahonnan x = 257 dec = 101 hex = 0.101 10 3 hex k = 3 + 64 = 67 = 1000111 = 47 hex ; m = 101000 x = 47101000h 3. Példa: e= 16 x = 0.1 dec = 0.199999 hex ~ 0.199999 10 0 hex ahonnan k = 0 + 64 = 64 = 1000000 = 40 hex ; m = 199999 x = 40199999h Megjegyzés: x = 0.1 dec nem ábrázolható pontosan! (relatív pontosság!) 2016/04/11 42

Bináris adatok reprezentációi IEEE 754 lebegőpontos ábrázolás 32 biten sign(m) k =k+127 m 1 bit 8 bit 23 bit e=2; a mantissza normalizált, ha 1 m < 2, azaz m = 1.xxxx. A mantisszának csak a törtrészét ábrázoljuk! k = k + 127 : a karakterisztika 127-es eltoltja 8 biten; -126 k 127. m a normalizált mantissza ( m ) bináris pont utáni 23 bitje. k =0, ill. k = 255 egyéb lehetőségeket kódolnak. Megjegyzés: IEEE 754 64 bites ábrázolás esetén k = k + 2047 : a karakterisztika 2047-es eltoltja 12 biten; -2046 k 2047. m a normalizált mantissza ( m ) bináris pont utáni 51 bitje. Megnövelt ábrázolási tartomány és relatív pontosság 2016/04/11 43

Bináris adatok reprezentációi IEEE 754 lebegőpontos ábrázolás 32 biten 1.Példa: e=2 x = 1 dec = 1.0 bin = 1.0 10 0 bin ahonnan k = 0 + 127 = 127 = 01111111 ; m = 0000000 00000000 00000000 x = 00111111 10000000 00000000 00000000 = 3F800000h 2. Példa: e=2 x = 257 dec = 100000001 bin = 1.00000001 10 8 bin ahonnan k = 8 + 127 = 135 = 10000111 ; m = 0000000 10000000 00000000 x = 01000011 10000000 10000000 00000000 = 43808000h 2016/04/11 44

Bináris adatok reprezentációi IEEE 754 lebegőpontos ábrázolás 32 biten 2016/04/11 45

2016/04/11 46