Tartalmi kivonat
ARCHITEKTÚRÁK I. Számítási modellek 70-es évek: Az IBM 370-nel a Neumann architektúrájú gépek korlátjuk széléhez értek, teljesítményüket nem lehetett már jobban növelni. Ezért az újdonságok kerültek előtérbe, mint a RISC architektúra, futószalag elv (pipeline), programnyelvek (konkurens parancsnyelvek, objektum orientált nyelvek). Ezek már a számítási modelljükben különböznek A Számítási modell fogalma: A számításra vonatkozó alapelvek absztrakciója. Jellemzői: 1. Min hajtjuk végre a számítást? 2. Hogyan képezzük le a számítási feladatot? 3. Mi vezérli a végrehajtást? Programnyelv Architektúra Végrehajtás Specifikáció Adatokon hajtjuk végre a számítást. Számítási modell Implementáció Számítási modell Fejlesztési kronológia: Programnyelv Architektúra A számítási modellek osztályozása: - Adatalapú számítási modell - Neumann féle számítási modell - adatfolyam számítási modell piaci
megvalósítás - applikatív - Objektum alapú számítási modell - Predikátum – logikai számítási modell (prolog) - Tudás alapú számítási modell kísérleti stádium - Hibrid számítási modell bonyolultság Adatalapú számítási modell: Az adatokat típusokba soroljuk (elemi és összetett). Az elemi adattípusok meghatározzák az adat értelmezési tartományát, érték készletét, az értelmezett műveletek halmazát. Pl: integer (16 bites) esetén ÉT: –32768 – +32767, ÉK: egész értékek, értelmezett műveletek: +, –, ×, ÷. - - deklarált változók Neumann féle számítási modell: 1. Min hajtjuk végre a számítást: - Adatokon. - Az adatokat a változók képviselik. - Az architektúra biztosítja, hogy a változók korlátlan számban változtathassák értékeiket. 2. Hogyan képezzük le a számítási feladatot: - Adatmanipuláló utasítások sorozatával. 3. Mi vezérli a végrehajtást: - Az adatmanipuláló utasítások implicit
szekvenciája - Az explicit vezérlést átadó utasítás. Programnyelvek: Imperatív (parancs) nyelvek, pl.: Pascal, C, Basic, Fortran Architektúra: Neumann féle architektúra. adatmanipuláció utasítások vezérlést átadó utasítás PC program számláló regiszter Nem számolja, csak egyesével tudja növelni magát. Az adat elejét tudja értelmezni move utasításként. adatfolyam számítási modell: 1. Min hajtjuk végre a számítást: Adatokon 2. Hogyan képezzük le a számítási feladatot: - Bemenő adatok halmaza. - Adatfolyam gráffal: a) Csomópontok: műveletvégzők. b) Élek: input/output lehetőségek, ahol az adat áramlik. Pl.: Z=(X+Y)×(X–Y) X Y bemenő adatok halmaza + – × párhuzamos műveletvégzés időmegtakarítást eredményez (33%) a Neumann féle szekvenciálisan dolgozott Z 3. Mi vezérli a végrehajtást: Adat Stréber modell: 1. Még nincs operandus 2. Az egyik operandus megjelent 3. Összes operandus megérkezése Műveletvégzés
4. Megjelenik az eredmény Az utolsó operandus megjelenése indítja el a műveletet. Lehet akárhány operandus, akár több száz is. Programnyelv: Sisal. Architektúra: The Manchester Dataflow Machine Neumann féle számítási modell 1. Közös memória (adat + program) 1. Változó 2. Adatmanipuláló utasításokkal 3. Implicit szekvencia 3. Explicit vezérlésátadás @ adatfolyam számítási modell Műveletvégzőben „tárolhatóak” az adatok Egyszeri értékadás (a bejött adat elveszik) Adatfolyam gráffal Adatvezérelt Nincs PC, nincs vezérlési szekvencia A Pentium processzorokban a CISC magban van adatfolyam. Architektúra - - - 1964 Amdahl: Azon ismeretek összessége, amelyeket egy alacsony szintű programnyelvben programozónak ismernie kell, hogy hatékony programot írjon, pl.: regiszterek, memória, címzési módok, utasításkészlet. 1970 Bell: szinteket rendelt az architektúrához - P.MS (processor, memory, switches) - Programozási szint: -
Magas színtű programnyelvek - Alacsony szintű programnyelvek - Logikai tervezői szint - Áramköri szint A külső jellemzők, a belső felépítés és a működés összessége. Adott absztrakciós szinten (L) a számítási modell (M), a specifikáció (S) és az implementáció (I) összessége. Számítási modell: {M,S,I}L Logikai architektúra + külső absztrakt ISA (Instruction Set Architecture) Fizikai architektúra belső konkrét MA (Microarchitecture) Logikai architektúra: {M,S}L - Adott absztrakciós szinten a fizikai architektúra elvonatkoztatása. - A fekete doboz külső megjelenése, viselkedése adott absztrakciós szinten. számítógép processzor A processzorszintű logikai architektúra részei: - Adattér. - Adatmanipulációs fa. - Állapottér. - Állapotműveletek. A fizikai architektúra részei: {M,I}L - A logikai architektúra megvalósítása adott absztrakciós szinten. - Adott absztrakciós szinten a fekete doboz belseje. számítógép A
processzorszintű fizikai architektúra részei: - Műveletvégző - Vezérlő - Memória - Sínrendszer - I/O rendszer - Megszakítási rendszer processzor Egy korszerű számítógép szintjei (Tannenbaum, 6 db): Alkalmazások Word, Excel 5. Problémaorientált nyelvek Pascal, C 4. Assembly szintű nyelvek 3. Operációs rendszerek operációs rendszerek 2. Utasításrendszer architektúra (ISA) architektúra 1. Mikroarchitektúra (MA) architektúra 0. Digitális elemek szintje digitális technika Áramköri szint Adattér A processzor által manipulálható tér. Adattér Memóriatér Nagyobb Lassúbb Olcsóbb Processzoron kívül (külön lapkán) Közös az I/O térrel Regisztertér Kisebb Gyorsabb Drágább Processzoron belül Mindig önálló Memóriatér: - A legfontosabb jellemzője a tárolási kapacitása. - Címtér: a) Modell címtere: címsín szélessége határozza meg b) Implementáció címtere: pénztárca - A valós memóriatér fejlődése: a) 40-es évek:
néhány száz szó. b) 1950 IAS: 10 bites címsín, 210=1024 szó. c) 1964 IBM 360: 16 Mbyte. - Virtuális tár a) 1960-ban jelent meg az ötlete s az IBM 370-es gépcsalád vitte sikerre. b) Alap jellemzői: 1. kétféle címet értelmezünk: a. valós cím (ezt látja a processzor) b. virtuális cím (programozó) Virtuális tér Valós címtér Nagyobb Kisebb Lassúbb Gyorsabb Háttértárolón Alaplaphoz illesztve, helyezkedik el félvezető lapkán Programozó látja Processzor látja Várakozik a program Itt fut a program 2. Létezik egy olyan, a programozó számára transzparens mechanizmus, mely: a. Az éppen futó program számára szükséges program- és adatrészeket behozza a virtuális tárból a valós tárba, illetve b. Az éppen futó program számára nem szükséges program- és adatrészeket kiviszi a valós tárból a virtuális tárba. 3. Létezik egy olyan, a felhasználó számára transzparens mechanizmus, mely a programozó által használt virtuális
címeket a végrehajtási (execution) fázisban lefordítja valós címekké. transzparens 2. pont Valós címek Virtuális címek mechanizmus Az Intel processzorok valós és virtuális memóriájának fejlődése: Típus Megjelenés éve Valós memória Virtuális (Mbyte) memória 8086 1978 1 80286 1982 16 1 Gbyte 80386 1985 4096 64 Tbyte 3. pont 20 bit 24 bit 32 bit Regisztertér: Osztályozása: - egyszerű - adattípusonként különböző - többszörös Egyszerű regisztertér: Egyszerű regisztertér 40-es évek 50-es évek 60-as évek egyetlen akkumulátor egyetlen akkumulátor általános célú + dedikált regiszter regiszterkészlet Verem regiszterek + - - - Egyetlen akkumulátor Hátránya: 1. Szűk keresztmetszet 2. Két eredmény esetén csak az egyiket tudta tárolni (pl: osztásnál a hányados és a maradék). Egyetlen akkumulátor + dedikált regiszter Előnye: A hányados regiszter bevezetése felgyorsította az osztást. Hátránya: Igen drágán
valósították meg, mégis gyakran kihasználatlan volt. Általános célú regiszterkészlet Előnye: 1. Minden regiszter kihasználtsága javul 2. Új programozói stílus: a regiszter operandusú műveletek számának maximalizálása. - Verem regiszterek Hátránya: Szűk keresztmetszet, mivel csak a verem tetejét látjuk. Előnye: Gyors. Adattípusonként különböző regiszterkészlet: Megjelenésének oka a lebegőpontos feldolgozás gyorsítása. karakterisztika mantissza előjele mantissza 1964 IBM 360 Lebegőpontos regiszterkészlet, feladata: lebegőpontos műveleti feldolgozás. Általános célú regiszterkészlet, feladata: fixpontos, karakteres, logikai feldolgozás. 1998 Pentium III általános célú regiszterkészlet Megjelenés éve: 1964 1985 1990 1998 lebegőpontos regiszterkészlet Típus IBM 360 Intel 80386 IBM RISC 6000 Pentium III MMX2 (Katmai) Egy utasítással több műveletvégzést ér el. A vektorgrafikánál fontos 12 bites, 3D filmeket ez
tette lehetővé. Általános célú regiszterkészlet 16x32 8x32 32x32 8x32 Lebegőpontos regiszterkészlet 4x64 8x80 32x64 8x80 Katmai (MMX2) 8x128 Többszörös regiszterkészlet: Háttérismeretek: - kontextus: a) regiszterek aktuális értékei b) az állapottér (flag, PC) - Megszakításkor a futó program kontextusát le kell menteni annak érdekében, hogy a megszakítás feldolgozása után azt visszatöltve a program futása folytatódhasson. - Többfeladatos és többfelhasználós környezetben igen sok megszakítás lép fel. A kontextus memóriába való mentése lassú gyorsítás többszörös regiszterkészlet révén. Fajtái: 1. Több, egymástól független regiszterkészlet, pl: 1964 – Sigma7 - Paraméterátadásos eljáráshívásoknál a paraméterátadás csak memórián keresztül történhet, így nem gyorsít. - Ideális egymástól független megszakításoknál, pl.: I/O megszakítások túlcsordulás (%) 2 4 INS regiszterek száma 2.
Átfedő regiszterkészlet, pl: 1980 RISC I - A hívóeljárás OUTS része fizikailag megegyezik a meghívott eljárás INS részével nincs paraméterátadás - Regiszterek száma merev viszonylag üres regiszterkészlet esetén is előfordulhat túlcsordulás. - A túlcsordult paraméterek mentése a memórián keresztül történik lassú. - Konkrét regiszter számok: (ins/locals/outs) RISC I: 6/10/6 SPARC: 8/8/8 - Regiszterkészletek száma: Locals OUTS INS Locals OUTS INS Locals OUTS regiszterkészletek száma A mérési eredmények azt mutatták, hogy 8 db regiszterkészlet esetén már csak 2% körüli a túlcsordulás. 6 8 regiszterkészletek száma - A programozás módszertana sem ajánl nyolcnál több egymásba ágyazott eljárást, mivel az ennél több már nehezen tekinthető át. 3. Stack-cache, pl: 1982 C-Machine - a stack verem szervezését és - a regiszterek közvetlen címzési lehetőségét egyesíti. Működése itt is van átfedő rész az INS
és OUTS-nál : - A compiler minden eljáráshoz hozzárendel előző aktiválási rekord egy változó hosszúságú aktiválási rekordot (regiszterkészlet). - A SP lehetővé teszi az aktiválási rekordok aktuális előző SP közvetlen elérését. aktiválási rekord - A SP és a relatív távolság megadásával aktuális bármely adat közvetlenül elérhető a stackstack pointer cache-ben. (SP) - Az aktiválási rekordok számának csak a stack cache fizikai mérete szabhat határt. Adatmanipulációs fa Legfelső szintjén az adattípusok FX1 FX2 FP4 Műveletek + – × ÷ Operandustípusok rrr rmr mmm Pl.: két regiszteroperandus és az eredmény is regiszter Címzési módok (memória) R+D PC+D RI+D Gépi kód (minden architektúra más és más) Az adatmanipulációs fa megmutatja: - egyrészt a lehetséges adattípusokat, műveleteket, operandustípusokat és címzési módokat. - másrészt egy alfája pedig megmutatja egy adott modell által
megvalósított lehetőségeket. A gyakorlati megvalósítás: általános célú - A nyolcvanas évekig: címszámító - technológiai korlát: a lapkaméret adott, ezért lebegőpontos koprocesszorkészletként alakították ki. - gazdasági korlát (pl.: drága a bővítés, a lebegőpontos rendszer több millió Ft) - Tudományos-műszaki célú konfiguráció: volt benne lebegőpontos aritmetika. - Gazdasági célú konfiguráció: Karakteres műveletek + BCD feldolgozás. Adattípusok: - Elemi - Összetett adattípusok (adatstruktúrák vagy adatszerkezetek): elemi adattípusokból épülnek fel, pl.: tömb, verem, fa, sor Elemi adattípusok: - numerikus - karakteres - logikai - pixel Numerikus: - fixpontos a) egyes komplemens b) kettes komplemens 1. előjeles a. byte 8 bit b. félszó 16 bit c. szó 32 bit d. duplaszó 64 bit e. quadroszó 128 bit 2. előjel nélküli c) többletes - lebegőpontos a) normalizált 1. hexadecimálisan normalizált a. IBM 2. binárisan
normalizált a. IEEE 1. egyszeres pontosságú 32 bit 2. kétszeres pontosságú 64 bit 3. kiterjesztett pontosságú 128 bit b. VAX b) nem normalizált - BCD (Binary Coded Decimal) a) Pakolt 1. ASCII Mikroszámítógépek 2. EBCDIC IBM nagyszámítógépek b) zónázott Karakteres: - ASCII a) Szabványos 7 bit (interneti) b) Kiterjesztett 8 bit (nemzeti karakteres) - EBCDIC a decimális értékeket kiterjesztették karakterre is. - Unicode Logikai: - 1 byte - 2 byte - 4 byte - változó Műveletek: A műveleteket pontosan kell definiálni, beleértve a kivételek kezelését is (pl.: a nullával való osztás). Az utasítás-feldolgozás: - Egy gépi kódú utasítás általános formátuma. MK Címrész - MK: műveleti kód, mit csináljon a processzor Címrész: mivel tegye mindezt Az utasítás-feldolgozás nagyvonalú folyamatábrája: Megszakítás igen megszakítás feldolgozása következik nem I. utasítás lehívás (fetch) II. utasítás végrehajtás (execution)
MAR: Memory Address Register – memória-címregiszter (egyirányú). PC: Program Counter. MDR: Memory Data Register – memória-adatregiszter (kétirányú). IR: Instruction Register – utasításregiszter. DEC: Decoder. ALU: Arithmetical Logical Unit – műveletvégző (utasítást is képes továbbítani). AC: Accumulator – általános célú regiszterkészlet. - Egy hagyományos szekvenciális feldolgozást végző processzor részei: Operatív tár adatsín címsín processzor MAR Vezérlő egység MDR PC ALU IR AC DEC I. Utasítás lehívás A PC tartalmazza a következő végrehajtandó utasítás címét. MAR ← PC MDR ← (MAR) – nem a címét jutatja el, hanem a tartalmát. IR ← MDR – itt már az IR-ben adat van. PC ← PC + 1 – következő feldolgozandó utasításra mutat, a +1 egységre utal, 2, 4 byte lehet. Ez a folyamat minden utasítás esetén megegyezik. II. Utasítás végrehajtás - Betöltés (load): - - DEC ← műveleti kód IR MAR
← DECcímrész MDR ← (MAR) AC ← MDR Aritmetikai-logikai utasítások: DEC ← IR MAR ← DECcímrész MDR ← (MAR) AC ← AC + MDR vagy AC ← AC – MDR vagy AC ← AC és MDR Kiírás (store): DEC ← IR MAR ← DECcímrész IR címrész értelmezi, hogy mi van a címrészben a másik tag elmentése műveletvégzés MDR ← AC (MAR) ← MDR – meghatározott helyre történő visszaírás. - feltétlen vezérlésátadás (ne a soron következő utasítást végezze, hanem amit mi megadunk): DEC ← IR PC ← DECcímrész 8 egységes egy összeadás. A vezérlőegység és a dekóder hangolja össze Az utasítások fajtái (típusai): op – operandus s – source (forrás) d – destination (cél) @ - tetszőleges művelet 4 címes utasítás opd:=ops1@ops2, op4 MK Opd ops1 ops2 op4 Az op4 a következő utasításra mutat, csak néha van nagy ugrás. Neumann szerint PC és címregiszter legyen az op4 helyett. Hátránya: - memóriapazarló - adatrögzítési hibák
lehetősége nő - nehézkes a program karbantartása 3 címes utasítás opd:=ops1@ops2; Az eredmény helyének explicit deklarálása. Előnye: - Az aktuális utasítás eredményének mentésével párhuzamosan betölthetjük a következő utasítás bemenő operandusait. Hátránya: - Neumann szerint: Az aktuális művelet eredménye tipikusan a következő művelet egyik bemeneti operandusa. Pl.: RISC számítógépek (processzorok) 2 címes utasítás ops1:=ops1@ops2; a mai gyakorlat általában ops2:=ops1@ops2; Pl.: ADD[100],[102]; [memóriacímek] Előnye: - Memória- vagy regisztertakarékosabb, kiküszöböli a Neumann által említett hátrányt. Hátránya: - Az a forrásoperandus, ahol az eredmény képződik értékét veszti, ha később szükségünk van rá, a művelet előtt ki kell menteni. Pl.: IBM 360/370, Intel processzorok 1 címes utasítás - Az egyik forrásoperandust betöltjük az AC-ba: LOAD[100] - Az AC aktuális tartalmához hozzáadjuk az
utasításban szereplő operandust: ADD[102] - Végül az AC tartalmát kimentjük az operatív tárba: STORE[100] Előnye: - Rövidebb utasítások. Hátránya: - Több utasítást kell használnunk. Pl.: 1951 IAS (Neumann gépe), csak az 50-es 60-as években készült ilyen processzor 0 címes utasítás Fajtái: - NOP (no operation). - Veremműveletek (csak a verem tetejét látja): POP, PUSH. - A műveleti kód tartalmazza az operandust, pl.: CLEAD (a D flag törlése) Napjaink trendje: - CISC: - kétcímes - az első helyen képződik az eredmény - tipikusan csak a második cím lehet memóriacím - RISC: - aritmetikai-logikai utasítások esetén háromcímes utasítások - mindhárom regisztercím Az operandusok elhelyezkedése Az operandusok elhelyezkedése Akkumulátor Memória Regiszter Verem (stack) A M R S Immediate: A programban adunk értéket bemenő operandus. Az architektúrák fajtái: - szabályos: a) A 1. A-R a. AAR b. ARA 2. A-M a. AAM b. AMA b) M 1. Kétcímes
a. M1M1M2 b. M2M1M2 2. Háromcímes a. M1M2M3 c) R 1. Kétcímes Immediate I a. R1R1R2 b. R2R1R2 2. Háromcímes a. R1R2R3 d) S - 1. SSS Kombinált architektúrák, pl.: M és R (CISC) Akkumulátor: Előny: Gyors, rövid címrész. Hátrány: Szűk keresztmetszet. Napjainkban nem aktuális. Regiszter: Előny: Gyors, rövid címrész. A mai RISC számítógépek mindegyike. Memória: Előny: Nagy címtér. Hátrány: Hosszú címrész, hosszú utasítások, lassú. Napjainkban nem aktuális. Verem: Előny: Gyors, rövid címrész (0 hosszúságú). Hátrány: Szűk keresztmetszet. Pl.: HP3000, VT1005, Napjainkban nem aktuális Gépi kód Minden architektúra esetében különböző. Állapottér - - Felhasználó számára látható a) PC b) Állapot jelzők 1. CC (Condition Code) 2. Állapot indikátorok 3. Adattípusonként különböző állapotindikátorok c) Egyéb, a felhasználó számára látható állapotjelzők 1. Nyomkövetés (debug) 2. Címzés regiszterei
(indexregiszter) Felhasználó számára transzparens a) Megszakítások b) Virtuális tárkezelés c) Veremkezelés d) Condition Code: - 1964 IBM360 - 2 bit 4 értékkel Állapotindikátorok: - Minden bithelyiérték jelentéssel rendelkezik, pl.: 0 negatív, túlcsordulás (flag) Adattípusonként különböző állapotindikátorok: - Minden regiszterkészlethez külön állapotregiszter tartozik (flag) - Általános célú állapotregiszter. - Lebegőpontos feldolgozás állapotregisztere. Megszakításoknál (fejlődés íve): - 1973 IBM 370-es gépcsaládnál bevezetik a PSW-t (Program Status Word): megszakításoknál a PSW-t mentik el. - Kontextus: a) A regiszterek aktuális értékei és b) Az állapottér aktuális értékei (PC, flag) Megszakításnál a kontextust mentik. Állapotműveletek PC Inkrementálás (növelés) Felülírás Flag Set (beállítás) Save (mentés) Load (visszatöltés) Clear (törlés) Reset (kezdeti értékek visszaállítása)
Processzorszintű fizikai architektúra Processzor: műveletvégző + vezérlő. - Szinkron: egy elektronikus óra meghatározott időközönként órajelet t ad. Minden elemi művelet órajelre órajel holtidő művelet befejezése kezdődik. Az elemi műveletek különböző ideig tartanak időveszteség. Megvalósítása egyszerű és olcsó Van olyan jel, ami nem hajtódik végre egy órajel alatt, ezt a gép lekezeli. - Aszinkron: minden elemi művelet befejezése egyben jelzés a következő művelet megkezdéséhez. Az elemi műveletek t befejezésének észlelése bonyolult és elemi művelet befejezése elemi művelet kezdete drágán valósítható meg. Az elemi művelet befejezésének észlelése is időt igényel itt is van holtidő. A ma piacon lévő processzorok szinkron vezérlésűek, ~3 GHz a frekvenciájuk. Műveletvégző (ALU) Részei: - Regiszterek - Adatutak - Kapcsolópontok - A szűk értelemben vett ALU Regiszterek: - Programozó által látható: a
logikai architektúrában tárgyaltuk. - Rejtett regiszterek: az adatfeldolgozási technológiához szükséges puffer regiszterek. Adatutak: - A műveletvégző egységen belül nem értelmezett a címsín, hisz a memória hozzáférést a vezérlő végzi. Egy aritmetikai-logiaki művelet hipotézise (R2 ← R0@R1): Src0 ← R0 Src1 ← R1 Rslt ← Src0@Src1 R2 ← Rslt (Src – source, Rslt – result) Rejtett regiszterek: Src0, Src1, Rslt. Felhasználói regiszterek: R0, R1, R2Rn. Kapcsolópontok: A sín megosztott eszköz, egyidejűleg csak egy adó lehet. sín kapcsolópontok U1 U2 U3 Un A kimenő kapcsolópontok háromállásúak: 0, 1, zárt. A bemenő kapcsolópontok kétállásúak: nyitva, zárva. A kapcsolópontok architekturálisan a regiszter részét képezik. A szűk értelemben vett ALU: Fixpontos Összeadás Kivonás Szorzás Osztás Multimédia A szűk értelemben vett ALU Lebegőpontos Összeadás Kivonás Szorzás Osztás Multimédia BCD Összeadás
Egyéb Logikai Címszámítás Léptetés Fixpontos összeadás Az összeadás alapvető művelet, hiszen erre vezetjük majd vissza a szorzást, a kivonást és az osztást. Tehát a sebessége alapvetően meghatározza a processzor sebességét Egybites félösszeadó A 1 B 1 S 0 A 0 0 1 1 átvitel – carry (C); összeg – sum (S) Logikai függvények felírása: S=A⊕B; C=AB Hátránya: Nem veszi figyelembe a bejövő átvitelt. B 0 1 0 1 S 0 1 1 0 C 0 0 0 1 Egybites teljes összeadó Figyelembe veszi a bejövő átvitelt (megvalósítása két félösszeadóból). Az igazságtáblázat felírása: A B Cin S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 A logikai függvények felírása (Cin jelölése C-vel): S=A⊕B⊕C Cout=ABC+ABC+ABC+ABC Négy és kapu + egy vagy kapu = öt elem. Azonos átalakítások a következő célfüggvényekkel: - Az elemszám minimalizálása. - Végrehajtási idő minimalizálása. Felhasznált
azonosságok: ABC=ABC+ABC+ABC; A+A=1. Cout=ABC+ ABC+ ABC+ ABC+ ABC+ ABC=(A+A)BC+(B+B)AC+(C+C)AB = =BC+AC+AB=AB+(A+B)Cin Megvalósítás összeadó (S): Kimenő átvitel (Cout): 4 db elem 20%-os megtakarítás. d – egy elem késleltetése T=3d T=2d végrehajtási időben 33% a megtakarítás n-bites soros összeadó Megjelenésének oka az, hogy az összeadandók tipikusan n bit hosszúságú regiszterekben helyezkednek el. n fokozatosan növekszik (ma: 32/64) Jellemzői: - A két operandus léptetőregiszterben (shift) helyezkedik el. - Az eredmény az A operandus helyén képződik. - A kimenő átvitelt tárolóba vagy késleltetőbe helyezzük, hogy a következő bitpároshoz (összeadáshoz) megfelelő időben érkezzen. - A Cin csak az első bithelyiérték összeadásakor aktív. Értékelése: - Ha az egybites teljes összeadó műveleti ideje t, akkor az n-bites összeadási ideje: T=n×t. Gyorsítás: - t: A lehető leggyorsabb kialakítást alkalmazzuk. - N: Az
egybites teljes összeadók számát megtöbbszörözzük n-bites párhuzamos összeadóra. n-bites párhuzamos összeadó 4 bites párhuzamos összeadó tesztelése: I. eset: A 0101 Cin=0; T=t B +1010 1111 II. eset: A 0101 B +1010 1. lépés 2. lépés 3. lépés 4. lépés Cin=1; T=n×t 1110 1100 1000 0000 C0=1 C1=1 C2=1 Cout=1 Értékelés: - Igen komoly beruházás árán (egy darab helyett n db egybites teljes összeadó) csupán hullámzó teljesítményt értünk el. Az ok: meg kell várni az átvitel terjedését Az átvitel előrejelzéses összeadó (Carry Look-Ahead – CLA) Cout=AB+(A+B)Cin AB G (Generate) A+B P (Propagate) Az egyes bithelyiértékeken keletkező átvitel függ - a bemenő operandusoktól és - a kívülről beérkező átviteltől, melyek előre ismertek, de nem függ az előző bithelyiértékeken keletkező átviteltől. Az egyes bithelyiértékeken keletkező átvitel: Ci=Gi+Pi×Ci-1 C0=G0+P0×Cin C1=G1+P1×C0=G1+P1×G0+P1×P0×Cin
C2=G2+P2×C1=G2+P2×G1+P2×P1×G0+P2×P1×P0×Cin Értékelése: Szorzatok sorozata: 1 fokozat Összekapcsolásuk egy vagy kapuval: 1 fokozat P és G meghatározásához egy vagy és egy és kapu kell:+1 fokozat 3 fokozat Amennyiben egy fokozat végrehajtási ideje d, akkor egy bithelyiérték átviteli idejének meghatározása: T=3d Megvalósítási alternatívák 1. Katalógus áramkör egy bites teljes összeadók + CLA 2. Az egybites teljes összeadókat kiegészítjük a P és a G meghatározásához szükséges kapukkal (vagy valamint és kapuk) A vagy kapu bemeneteinek száma technológiai korlátba ütközik, ezért max. 8 bithelyiértékre alakítható ki a CLA. 3. 32 bites megoldás: A CLA-k között az átvitel sorosan terjed 4. A CLA-khoz is hozzárendelünk egy CLA-t Fixpontos kivonás Megtervezhető az egybites félkivonó és az egybites teljes kivonó. Alkalmazásuk hátrányai: - A kivonás csak akkor ad helyes eredményt, ha a nagyobb számból vonjuk ki a
kisebbet. Minden kivonást megelőzően komparálnunk kellene, ezért lassúbb - A kivonó áramkörök megvalósításával megduplázódik a műveletvégző helyfoglalása, a lapka mérete pedig korlátozott. Megoldás: - Az operandusok átkódolása és a kivonás visszavezetése összeadásra. Hagyományos kivonás: A 13 –B –(+7) X +6 1011 0111 elvetettük Egyes komplemenses kivonás Meghatározása: - A pozitív szám egyes komplemense maga a szám. - A negatív szám esetén pedig bitenként invertálnunk kell. A –B X 01101 +11000 100101 1 0|0110 Megvalósítás: 13 +(–7) +5 +6 Kettes komplemenses kivonás Meghatározása: - Pozitív szám kettes komplemense megegyezik magával a számmal. - Negatív szám esetén: a) Az egyes komplemenshez hozzáadunk egyet. b) Hátulról az összes nullát és az első egyest leírjuk, a többit invertáljuk: 010010011000-ból 101101101000 lesz. Példa: A 13 01101 –B +(–7) +11001 X +6 00110B = +6D Az ideális az lenne, ha
tudna összeadni is megoldása vezérelhető TRANS egységgel: Igazságtábla: Vezérlés B B’ A transzegység megvalósítása: 0 0 0 0 1 1 változatlan 1 0 1 invertált 1 1 0 Megvalósítás: A –B X 13 +(–7) +6 1101 összeadandó +1000 invertált összeadandó 1 a vezérléstől ide vezetve 0110B = +6D Szorzás, osztás Minden műveletvégzőnek ismernie kell az összeadást, az invertálást és a léptetést, de nem kell tudnia a szorzást és az osztást. Fejlődés: - Régen: a) Olcsó processzor, aminél alacsonyszintű nyelven írt rutin végzi a szorzást és az osztást. b) Középárú processzor, aminél mikroprogram végzi a szorzást és az osztást. c) Drága processzor, aminél áramköri úton megvalósított a szorzás és az osztás. - Napjainkban: a) PowerPC 604 1. Két darab műveltvégző az egyszerű fixpontos műveletekhez (+,–) 2. Egy darab művelet végző az összetett fixpontos műveletekhez (×,÷) b) PentiumPro Fixpontos műveletvégzők: -
általános célú - léptető - egész osztó - összeadó / kivonó - szorzó - osztó Szorzás X=A×B Hagyományos szorzás: 13×123 39 26 13 1599 Algoritmizált változat: 13×123 0000 felveszünk egy gyűjtőt, amit nullázunk 39 0039 260 10-zel szorozzuk 0299 1300 100-zal szorozzuk 1599 10/100-zal való szorzás helyett léptetés: 13×123 0000 Konklúzió (decimális számoknál): 39 Az összeadási ciklus annyiszor fut le, 0039 ahány helyiértékből áll a szorzó. 26 0299 13 1599 A bináris szorzás sajátosságai: - A bináris szám hossza Példa Decimális szám Bináris szám helyiértékeinek száma helyiértékeinek száma 9 1 4 99 2 7 999 3 10 Konklúzió: - A bináris szám hosszabb, mint a decimális, ezért a ciklus többször fut le. - A szorzat hossza A decimális helyiértékek száma Általánosítva A 1 2 2 m B 1 1 2 n Xmax 2 3 4 m+n Példa: 9×9 99×9 99×99 A szorzó és a szorzandó egy-egy regiszterben helyezkedik el, ezért az eredmény két
regiszterben képződik. Példa: 0 0 1 1 9 9 5 2 1 9 9 3 2 1 9 Legyen egy regiszterünk három helyiértékű, a szorzat kisebb helyiértékei keletkeznek a szorzó helyén: eredmény A bináris szorzás gyorsítása: - Bitcsoportokkal való szorzás: A szorzó helyiértékeit nem egyesével, hanem csoportokban kezeljük, így a csoportokat léptethetjük, ami gyorsabb. Pl.: kettes csoportokban: 00 – kettőt léptetünk balra. 01 – a gyűjtőhöz hozzáadjuk a szorzandó egyszeresét és kettőt léptetünk balra. 10 – a gyűjtőhöz hozzáadjuk a szorzandó kétszeresét és kettőt léptetünk balra. 11 – a gyűjtőhöz hozzáadjuk a szorzandó háromszorosát és kettőt léptetünk balra. Példa: Segédszámítás: 7×9 = 0111×10|01 a szorzandó kétszerese: 0111 0000 0111 A: összeadással 0111 1110 0111 1110 01111110 B: léptetéssel 111111 B = 63D - Booth féle algoritmus: - Bináris számok esetén az összeadási ciklus annyiszor fut le, ahány egyes van a
szorzóban (nulla esetén csak léptetünk). - A szorzóban lévő egyesek számának csökkentése a cél. Példa: 62-vel kell szorozni: 62=111110B 5 db összeadás. Helyette: ×64=100000B 1 db összeadás ×2=000010B 1 db összeadás – 1 db kivonás Összesen 3 db művelet, 40%-os időmegtakarítás, pl.: mai processzorok mindegyike. Osztás X=A/B Hagyományos osztás: 150/48 150 I –48 102 II –48 3,1 54 III –48 60 I –48 120 I –48 72 II Konklúzió: Minden kivonás előtt komparálunk (összehasonlítunk), ezért lassú. Visszatérés a nullán át csak az előjel flag-et vizsgálva: 150 –48 102 I –48 54 II –48 6 III –48 –42 kiírja a gyűjtőt (3,) +48 hozzáadja a maradékhoz az osztót (–42+48) 60 tízszerezi (6×10=60) és folytatja –48 12 –48 –36 kiírja a gyűjtőt (,1) +48 Itt minden kivonás automatikus (nincs komparálás, ami lassú). Mivel nem kell minden kivonás előtt komparálni, csak a gyors előjel flag vizsgálatot végezzük, a
két felesleges művelet (hozzáadás +48 és szorzás) ellenére gyorsabb. Visszatérés nélküli osztás: 11/6 11 I –6 5 10. lépés –6 –10 9. lépés +6 –4 8. lépés +6 +20 I –6 14 II –6 8 III –6 2 10. lépés –6 –40 9. lépés 1,8 kiírja a gyűjtőt szorozza 10-zel Fixpontos multimédia feldolgozás A probléma felvetése: A, Hangfeldolgozás: - analóg jel - digitális jelfeldolgozásához digitalizálni kell analóg digitális (A-D) konverter Amplitúdó vagy felbontás: - A leképezendő hanghullám minimális és maximális értékhez hozzárendeljük az értelmezési tartományunk minimális és maximális értéket. - 8 bit 256 pontos felbontás - 16 bit 65536 pontos felbontás (a mai gyakorlat) Mintavétel: - Példán keresztül: Egy 50kHz-es mintavétel azt jelenti, hogy másodpercenként 50000 mintát veszünk az adott hullámból (minden egyes mintánál az amplitúdó értékét tároljuk el). - Mai példák: Alkalmazás kHz a) Telefon 8 b)
Audio CD 44 c) DVD 48 d) DVD (minőségi) 96 Egy másodperc hanganyag tárolási igénye audio CD, 16 bites felbontás, sztereó esetén: - 44000 minta×2 byte felbontás×2 a sztereó miatt = 176000 byte/sec ~ 170 kbyte/sec - Percenként: 60×170 ~ 10Mbyte/min Feladat: Nagy tömegű fixpontos adat - tárolása - továbbítása - feldolgozása B, Pixeles képfeldolgozás: - A fénykép és a festmények analóg formátumúak, hiszen a fények, árnyékok és színek folyamatos átvitelével írhatók le. - A képeket digitalizálnunk kell. Felbontás: - A képeket képpontokra (pixel) bontjuk. Minél sűrűbb a rácsszerkezet, annál jobb minőségű képet kapunk a digitalizálás során. Minél kisebb egy pixel, annál jobb a leképezés. Pl: 800×600; 1280×1024 Pixelek vagy képpontok: - Minden szín leírható három szín összetételeként, tehát minden pixelhez három darab színkódot kellene hozzárendelni, de helyette ezeket egyetlen vektorrá kódolták. Pl.: 000 0,
001 1, 010 2 A pixelek lehetséges értékei: - 1 bit: fekete-fehér, sötét-világos - 1 byte: 256 féle színt írhatunk le - 2 byte: 65536 féle szín (high-color) - 3 byte: 224 féle szín (true-color) (az emberi szem ennyit nem tud megkülönböztetni, azért jó a sok szín, mert a számítógép ezt is tudja értelmezni) - 4 byte: a negyedik byte az úgynevezett alfa csatorna, az effektek jelzésére szolgál (pl.: - átlátszóság mértéke) Egy kép tárolásához szükséges memóriaterület: egy byte két byte 800×600 480000 byte 960000 byte 1280×1024 1,3 Mbyte 2.6 Mbyte A képfeldolgozás feladata: Nagy tömegű fixpontos adat tárolása, továbbítása, feldolgozása. Megoldás: - Tárolás, továbbítás hatékony tömörítéssel. - Feldolgozás: - Probléma: a 3 perces számot 3 perc alatt le kell tudni játszani - Hagyományos feldolgozás: pl.: 2 kép összeadása a 800×600-as felbontás mellett 1. Az 1 kép 1 byte-ját betöltjük az AC-ba 2. A 2 kép 1
byte-ját hozzáadjuk az AC-hoz, az eredmény az AC-ban keletkezik - - 3. Az AC tartalmát lementjük az eredmény memóriaterületre Ez a ciklus 480000-szor fut le. (minden bájtra) Megoldás SIMD módszerrel (single instruction, multiple data): Több adattal ugyanazt az utasítást hajtja végre, ~ 8-szoros gyorsítást eredményez, 60000-szer fut le a ciklus. A + + + + + + + + +B = = = = = = = = X 8 db A gyakorlatban kétféle megoldás: - multimédia segédprocesszor - az általános célú processzorba beleintegrálják a multimédia feldolgozó egységét. - Az Intel MMX kiterjeszés: a) 1997-ben jelent meg b) Matrix Math Extension (Multimedia Extention) c) Logikai architektúra: 1. Pakolt adattípusok bevezetése a. Ezek mindegyike 64 bites, ami megegyezik a processzor belső sínjének szélességével. b. Fajtái: pakolt byte: 8 db 8 bites = 64 bit, pakolt félszó: 4 db 16 bites = 64 bit, pakolt szó: 2 db 32 bites = 64 bit. 2. Új utasítások bevezetése A négy
aritmetikai művelet (+,–,×,÷) és a logikai műveletek mindhárom új adattípushoz. d) Fizikai architektúra: 1. Az Intel nem akart új regisztereket bevezetni az új adattípusokhoz, hanem a 80 bites lebegőpontos regisztereket használja a 64 bites pakolt adattípusok feldolgozására. 2. Egy évre rá az MMX műveletvégzőket 2-re növelték, így a ciklusok száma 30000-re csökkent. Lebegőpontos műveletvégzés A lebegőpontos ábrázolás kialakulásának oka a fixpontos ábrázolás következő hiányosságai: - A szűk értelmezési tartomány, pl.: integer esetén –32768 – +32767-ig - A törtérték ábrázolásának pontatlansága, pl.: 7/4=1 Amennyiben a kettedes pontot a regiszter végére helyezzük, akkor 7/4=1, ami nem elégíti ki a gyakorlati igényeket. Ha több a kettedes pont utáni hely, akkor kevesebb jut az egész számok ábrázolására. Ezen hátrányokat küszöböli ki a sokkal bonyolultabb lebegőpontos ábrázolás, itt a számokat
hatványkitevős formában írjuk fel: ±Mr±k M a mantissza, r a radix (a számrendszer alapja), k a karakterisztika. Története: - 1933-ban Konrad Zuse elkészítette a Zuse-3 nevű jelfogós számítógépet, melyben alkalmazta a lebegőpontos ábrázolást. - Neumann két okból ellenezte: a) Maguk a számok hosszúak sok memóriát igényel b) A számítások bonyolultak bonyolult a műveletvégző és annak vezérlése - 70-es évek főbb formátumirányzatai: a) Vax b) Cray c) IBM 370/390 - 1985: az IEEE szabványosítja Jellemzői: - Radix: a) Architektúránként állandó b) Tipikusan kettes számrendszer c) Az IBM 370/390 esetében 16 - Nem normalizált: 123,456×100=0,123456×103=1234,56×10-1= - Nagy szabadságfok - Napjainkban a piacon nincs ilyen architektúra. - Normalizált: a) Képlettel: 1/r≤M<1; 1/2≤M<1; 1/10≤M<1 b) Szöveggel: A törtpontot mindig az első értékes számjegy elé tesszük a mantisszában: –0,9999×10n-1 túlcsordulási
régió –0,1×10-n felhasználható régió 0,1×10-n alulcsordulási régió 0,9999×10n-1 felh. régió túlcsordulási régió - Alulcsordulás – túlcsordulás: a) Alulcsordulás iránti architektúrális követelmény: 1. Kijelzi 2. Nullát vagy denormalizált számot ábrázol b) Túlcsordulás iránti architektúrális követelmény: 1. Kijelzi 2. Vagy a lehető legnagyobb számot vagy előjeles végtelent ábrázol Azért van a két végén (n–1), mert az n fenn van tartva a végtelen jelzésére. - Denormalizált szám: Szabály szerint nem ábrázolhatom a 0,04-et (0 0,04 0,1), de egy flag helyiértéket hozzárendelek, és azzal jelzem, hogy ez egy denormalizált szám. Verseny van a processzorgyártók között a pontosság miatt, ezért a mai architektúrák alkalmazzák. - Nulla környéki számok: Amennyiben a mantissza nulla, akkor elvárt az architektúrától, hogy a karakterisztika is nulla legyen. - Értelmezési tartomány: A karakterisztika
Példa helyiértékeinek száma: Tízes számrendszer 9 1 9 milliárd 2 999 milliárd Kettes számrendszer 1 1 2 egyesek Konklúzió Függ a karakterisztika helyiértékeinek számától. Függ a számrendszer alapjától. - Pontosság: Három helyiérték áll rendelkezésre a mantissza számára a regiszterben. Ábrázolni kell a 0,1234 mantisszát. Ekkor csak a 0,123 ábrázolható, s ha pl a karakterisztika 106 (0,123400), akkor a pontatlanság 400 veszteséget okoz. Konklúzió: A pontosság függ a mantissza hosszától. - Rejtett bit: - Mantissza esetében a normalizálás szabálya kettes számrendszerben 1/2≤M<1. A kettedes pontot az első értékes jegy elé kell tennünk, annak tehát nincs információtartalma. - Ezért az operatív tárba vagy háttértárba való kiírás előtt a rejtett bitet balra léptetjük és jobbról beléptetünk egy értékes helyiértéket. A mantissza hossza ezáltal 1 bit helyiértékkel nő, így növekszik a pontosság. - Az
operatív tárból vagy háttértárról való beolvasás során a processzoron belül helyreállításra kerül a rejtett bit, így a beolvasott adat feldolgozásra kész formára alakul. - A Zuse-3 (1933) már alkalmazta a rejtett bitet, és napjainkban is valamennyi piacon lévő architektúra alkalmazza. - Őrző bitek: - A lebegőpontos számok mantisszáját a processzoron belül hosszabb formátumban tároljuk, mint az operatív tárban. - Amikor az eredményt normalizáljuk, és jobbról további helyiértékeket beléptetünk, akkor az őrzőbitek lehetővé teszik, hogy ezek értékes helyiértékek legyenek. - A rejtett bit balra kiléptetésekor így jobbról értékes bit kerül beléptetésre. - A legutolsó tárolt bit ily módon kerekített bit lehet. - Napjainkban minden architektúra alkalmazza az őrtő bitet. - Mantissza kódolása: A mantissza a gyakorlatban mindig kettes komplemens formában tárolt. - Karakterisztika kódolása: A karakterisztika többletes
formában tárolt. a) A többletes kód gyorsabban alakítható ki, mint a kettes komplemens. b) A karakterisztikával csak léptetést, összeadást és kivonást lehet végezni, s ez többletes kóddal is helyesen elvégezhető. IEEE 754-es lebegőpontos szabvány - 1977-ben kezdték kidolgozni. Cél: a különböző architektúrák közti adatszintű kompatibilitás megteremtése. Rendszerszintű szemlélet, azaz nem írták elő a gyártóknak, mit valósítsanak meg hardver, és mit szoftver úton. Nem valamelyik gyártó által kialakított megoldást fogadták el, hanem valamennyi architektúra lebegőpontos megoldásából összegyűjtötték a legjobbakat. A szabvány 1985-ben jelent meg, az első gyakorlati megvalósítása 1981-ben jelent meg. A szabvány fejezetei: - Formátumok - Műveltek - Kerekítések - Kivételek kezelése Formátumok: a) Szabványos 1. Egyszeres pontosságú 2. Kétszeres pontosságú b) Kiterjesztett 1. Egyszeres pontosságú 2. Kétszeres
pontosságú - Szabványos – kiterjesztett: a) A szabványos formátum az operatív tárban illetve a háttértárolón alkalmazott formátum ezt pontosan beszabályozták. b) A kiterjesztett formátum a processzoron belül alkalmazott formátum ennek a szabályozása igen laza. Szabványos formátum: - A szabvány csak az egyszeres pontosság megvalósítását írja elő, a kétszeres pontosság megvalósítása opcionális. - Egyszeres pontosság: rövidebb adat, kisebb memóriaigény, gyorsabb feldolgozás, nem nagyon pontos eredmény. - Kétszeres pontosság: hosszabb adat, nagyobb memóriaigény, lassabb feldolgozás, pontosabb eredmény. a) Egyszeres pontosság: 32 bites formátum 1 8 mantissza előjele 23 karakterisztika Az értelmezési tartomány: ~10-38-tól 1038-ig mantissza b) Kétszeres pontosság: 64 bites formátum 1 11 52 Az értelmezési tartomány: ~10-308-tól 10308-ig Kiterjesztett formátum: a) Egyszeres pontosság: min. 43 bit b) Kétszeres
pontosság: min. 79 bit Műveletek: - Minimum: a) Négy aritmetikai alapművelet (+,–,×,÷) b) Maradékképzés c) Négyzetgyökvonás d) Bináris – decimális konverzió - Értelmezze a műveleteket a végtelennel is: a) 3+(+∞)=+∞ b) 3+(–∞)=–∞ Kerekítések: - A legközelebbire való kerekítés (hagyományos kerekítés: 8,3 8; 8,9 9). - Negatív végtelen felé történő kerekítés. - Pozitív végtelen felé történő kerekítés. - Az utóbbi kettőt az intervallum algebrában használjuk. Kétszer hajtjuk végre a számítást: - Egyszer mindig mínusz végtelen felé kerekítve. - Egyszer mindig plusz végtelen felé kerekítve. A helyes eredmény a két kapott eredmény között helyezkedik el. - Amennyiben a két eredmény közötti különbség a számításunk szempontjából kicsi, akkor az eredmény elfogadható. - Amennyiben nagy, elemeznünk kell a programot (pl.: részeredményeket ne írjunk be a memóriába) vagy magát az architektúrát. -
levágás vagy truncate (pl.: 8,4 8; 8,9 8) Kivételek kezelése: - Nullával való osztás - Alulcsordulás - Túlcsordulás - Gyök alatt negatív szám van Esettanulmány: Intel processzorcsalád: - A szabvány első megvalósítása 1981-ben jelent meg: Intel 8087 - Az összes mai processzor ilyen. Logikai architektúra: - Radix: kettes számrendszer. - Alulcsordulás: denormalizált szám. - Túlcsordulás: előjeles végtelen. - Létezik rejtett bit - Léteznek az őrző bitek - Mantissza: kettes komplemens - Karakterisztika: többletes kódolás - Mind az egyszeres, mind pedig a kétszeres pontosság megvalósításra került. - Kiterjesztett formátum: 80 bit hosszú (1, 15, 64), a programozó dönti el, hogy ezt egyszeres vagy kétszeres pontossággal írja ki az operatív tárba vagy a háttértárolóba. Fizikai architektúra: - Az Intel 8087-es társprocesszor formájában került megvalósításra. - Az Intel 80287-es és az Intel 80387-es is. - Az Intel
80486DX-től már közös lapkára integrálták az általános célú és a lebegőpontos processzort. Teljesítmény jellemzők: Relatív MIPS: a mértékegység az 1981-ben megjelent IBM PC teljesítménye. Típus MHz relatív MIPS Intel 80386 25 17 Intel 80486DX 66 ~1700 Pentium I 133 ~6000 A 100-szoros növekedés a hardver úton megvalósított lebegőpontos feldolgozás eredménye. A 3-szoros pedig a futószalagos feldolgozás és a kétszeres órajel eredménye. Lebegőpontos műveletek Összeadás: X=A+B A=±mAr±ka B=±mBr±kb Példa: 0,9×103 +0,95×104 0,09×104 +0,95×104 1,04×104 0,104×105 Közös kitevőre kell hozni, a mantisszában a törtpontot ciklikusan léptetetem jobbra/balra. Mantissza vizsgálata, majd szükség esetén normalizálása. Bonyolultabb, mint a fixpontos Algoritmus: 1. A kitevők megvizsgálása: csak azonos kitevőjű számok mantisszái adhatók össze 2. Amennyiben a kitevő eltérő, akkor a kisebb kitevőjű szám mantisszájában a
törtpontot jobbra léptetjük és a kitevőt inkrementáljuk. Ez a ciklus addig fut, míg a kitevők meg nem egyeznek. 3. Összeadjuk a közös kitevővel rendelkező számok mantisszáit 4. Szükség esetén normalizálunk Szorzás: X=A×B=mA×mBrka+kb Algoritmus: A mantisszákat összeszorozzuk, a karakterisztikákat pedig összeadjuk. Osztás: X=A/B=mA/mBrka-kb Algoritmus: A mantisszákat elosztjuk, a karakterisztikákat pedig kivonjuk egymásból. Megvalósítás: Univerzális műveletvégző - az ALU parciálásával (részekre bontásával) karakterisztika mantissza fixpontos ALU Ez egy kicsit bonyolultabb vezérléssel megoldható. - Szervezési módosítással a) Mind a mantisszát, mind a karakterisztikát külön-külön regiszterekben helyezzük el. b) Egymás után elvégezzük a mantissza és a karakterisztika műveleteket. c) Az eredményt pedig az egyik regiszterben összevonjuk. Dedikált műveletvégző adatsín Karakterisztika egység Mantissza egység
visszacsatolás Vezérlő vezérlés Következtetések: - Míg a mantissza egységnek ismernie kell a szorzást és osztást is, a karakterisztika egységnek elegendő az összeadást és a kivonást ismernie. - Párhuzamosan lehet végezni a karakterisztika és a mantissza műveleteket. - A szűk keresztmetszetet a mantissza egység jelenti (a szorzás, osztás miatt), mivel a karakterisztika egység az összeadást és kivonást gyorsan el tudja végezni. A gyorsítást a mantissza egységnél kell végezni. Lebegőpontos, vektorgrafikus multimédia műveletek: - Az egyenesekkel és görbékkel határolt objektumok geometriai jellemzőikkel leírhatók. - Elegendő a geometriai jellemzők tárolása. Például: a) Egyenes esetén: Két pontjának koordinátáit. b) Kör: A középpont koordinátáját és a sugár hosszát. Jellemzők: - 2D: Egy kép igen sok objektumra (sokszögre, háromszögre) bontható egy átlagos kép objektumainak száma ~20000. - Miután a számítógép
a geometriai jellemzők alapján meghatározza a ~20000 objektumot, a színek valósághűbb átmenete érdekében egy úgynevezett textúrát alkalmaz. A megoldandó feladat: - Viszonylag kevés lebegőpontos adaton - sok műveletet hajtunk végre. - - 3D: - Egy harmadik dimenzió kerül hozzáadásra. a) Biztosítani kell a párhuzamosoknak a végtelenben való találkozását. b) Az atmoszférikus sajátosságok is megvalósításra kerülnek, azaz a közelebb lévő tárgyak élesebbek, a távolabbiak kékesebbek és elmosódottabbak. - Sok 3D film készül, ahol minimum 15 képet kell vetíteni másodpercenként annak érdekében, hogy folyamatosnak láthassuk. - Pl.: képenként 20000 objektummal számolva 20000×15=300000 obj/sec feldolgozási sebesség szükséges. A megoldandó feladat: - Viszonylag kevés lebegőpontos adaton - sok műveletet kell végrehajtanunk - adott időegység alatt. Megoldás az Intel processzoroknál: - 1998: MMX2, azaz a KNI (Katmai New
Instruction) - a megoldás: a SIMD elv (Single Instruction Multiple Data) - 1985 óta először új regisztereket vezetett be az Intel: 8 db 128 bites regisztert. - Formátumok: a) 4 db 1-szeres pontosságú vagy b) 2 db 2-szeres pontosságú számon hajt végre egy időben műveletet: - + + + + = = = = 70 db új utasítást vezettek be. 100%-osan megfelel az IEEE 754-es szabványának. Megszakítás esetén az új regisztereket is menteni kell, ezt először a Win98 operációs rendszer végzi. A lebegőpontos műveletvégzés jelentősége: - A tudományos és multimédia számításokhoz szükséges. - A miniatürizálás és a fajlagos árcsökkenés eredményeként a jelenleg kereskedelmi forgalomban lévő processzorok mindegyike hardver úton megvalósítja. BCD – Binary Coded Decimal - - Megjelenésének oka: A pontosság. - A fixpontos ábrázolásnál a törtek pontatlanok. - A lebegőpontos ábrázolásnál a mantissza, karakterisztika formátuma lényegesen
pontosabb, de nem teljesen. A tízes számrendszerből a kettes számrendszerbe a számokat átszámítjuk, ezzel szemben a tízes számrendszerből a BCD-be a számokat átkódoljuk. A kódolás egyértelmű megfeleltetést jelent. Pl.: 12D=1100B=0001 0010BCD (átszámítás és átkódolás) Jellemzői: - Ábrázolása: a) Zónázott: Minden byte kisebb helyiértékű tetrádjában helyezkedik el a BCD szám, a nagyobb helyiértékűben pedig a zóna: Zóna BCD Zóna BCD előjel BCD A zóna értéke jellemzően nyomtatható karakterre egészíti ki a BCD értékét. Azaz ASCII esetén általában 3 (Intel), EBCDIC esetén általában F (15). Általában nem lehet ezzel a formátummal számítást végezni (pl.: VAX, IBM), kivéve Intel. b) Pakolt: Minden byteban 2 db BCD szám van: előjel - - BCD BCD BCD BCD Az Intel esetében 10 byte hosszú: 1. Az első byte eső bitje az előjel, a többi bitet nem használjuk 2. A további 9 bájtban 18 db BCD szám
helyezkedik el: –99-től +99-ig (18 db 9-es lehet). A szám hossza: a) Fix hosszúságú. b) Változó hosszúságú meg kell adni a szám hosszát is. Az előjel: a) Hossza: 1. 4 bites (tipikusan a zónázott formátumnál) 2. 8 bites (tipikusan a pakolt formátumnál) b) Elhelyezkedése: 1. a szám végén (tipikusan a zónázott formátumnál) 2. a szám elején (tipikusan a pakolt formátumnál) c) Értéke: 1. az érvénytelen tetrádok segítségével: a. ahol pozitív: A, C, E, F b. ahol negatív: B, D 2. a + és a – ASCII kódjával BCD összeadás: Ugyanúgy végezzük, mint a bináris számokkal, csak: - Az összeg esetében fel kell ismernünk az érvénytelen tetrádokat, - Az érvénytelen tetrádok esetében korrekciót kell végrehajtanunk. A, Az érvénytelen tetrádok: A BCD kódkészlete: Dec. szám BCD kódja 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 10 11 12 13 14 15 1010 1011 1100 1101 1110 1111 érvénytelen tetrádok érvénytelen:
az első bithelyiértéken egyes, és vagy a második vagy a harmadik helyen egyes szerepel. 9 1001 B, Korrekció: Az érvénytelen tetrádokból: - kivonunk tizet és - generálunk egy tízes átvitelt pl.: 8+7=15+(–10)=5 1000 +0111 1111 +0110 10101 5D segédszámítás: 10D=1010B=0110kettes komplemens 10-es átvitel Megvalósítás: Megvalósítási alternatívák: - Univerzális műveletvégző, BCD-nek megfelelő vezérléssel. - Dedikált BCD műveletvégző. A BCD jelentősége: - Előnye: Pontos. - Hátránya: a) Komplexebb műveletvégzés, ezért lassabb. b) Nagyobb tárigény: a 16-os értékkészletből csak tizet használ ki, tehát 40% kihasználatlan, pl.: 12D=1100B=0001 0010BCD 8 biten ábrázoljuk Érdekességek a BCD-vel kapcsolatban: - Basic programnyelv a BCD-t használja. - A számológépekben és a digitális órákban BCD-t alkalmaznak. Fixpontos, lebegőpontos, BCD – Melyiket használjam? Fixpontos: - Gyors végrehajtás. - Memóriatakarékos
(8, 16, 32 bites formátumban létezik). - A formátumok között a szükséges értelmezési tartománynak megfelelően válasszunk (a lehető legrövidebb formátumút). - Egész számok esetén teljesen pontos: if a=1 csak fixpontos illetve BCD esetén alkalmazható, lebegőpontosnál nem. Lebegőpontos: - Akkor alkalmazzuk a) Ha a fixpontos értelmezési tartomány nem elegendő. b) Amikor műveletet kell végeznünk a számokkal. - A lehetőségek közül csak indokolt esetben válasszuk a kétszeres pontosságút, mert annak számítása lassabb. BCD: - Tipikusan a lebegőpontos ábrázolás egy alternatívája. Az ALU egyéb műveletei - - Valamennyi Boole művelet (16 művelet: vagy, és, kizáró vagy). Léptetés (szorzáshoz és osztáshoz kell). Invertálás (kivonáshoz és osztáshoz kell). Címszámítás: a) A korai gépekben az általános célú ALU-val. b) Napjainkban célhardverrel. A karakteres műveleteket általában az általános célú műveletvégző
végzi. Vezérlőrész - - Centralizált vagy szekvenciális vezérlés: a) Huzalozott vezérlés. 1. 1947: első elektronikus számítógép b) Mikroprogramozott vezérlés. 1. 1954: Wilkes 2. 1963: CDC6600 Decentralizált vagy párhuzamos vezérlés: a) Szuperskalár. 1. 1966: IBM 360/91 b) Futószalag. Huzalozott vagy áramköri vezérlés Hátrányai: - Az ember számára nehézen áttekinthető. - Nehézkesen módosítható. Előnye: - Gyors. Tervezése: - igazságtábla - logikai függvények - azonos átalakítások a következő célfüggvényekkel: a) az elemek számának minimalizálása b) a végrehajtási idő minimalizálása - megvalósítás Megvalósítás: Elv: - Egy forrásregiszterből - módosító áramkörökön keresztül - egy célregiszterbe juttatjuk az adatot. Regiszterek: - Memória regiszterek (MDR, MAR). - ALU regiszterei (AC, általános célú regiszterkészlet). - I/O regiszterek (vezérlőkártyán). - Vezérlőrész regiszterei (utasítás
regiszter, PC). Módosító áramkörök: - Összeadó - Invertáló - Inkrementáló - Léptető Működése: - A forrásregiszter kimenetét rákapuzzuk a módosító áramkör bemenetére. - Előírjuk a módosító áramkör számára, hogy most éppen milyen módosítást hajtson végre. (Pl: léptetés, összeadás) - A módosító áramkör kimenetét rákapuzzuk a célregiszter bemenetére. A mai processzorokban tipikusan több száz olyan vezérlési pont van, amit vezérelni kell. Mikroprogramozott vezérlés 1954: Maurice Wilkes (University of Cambridge). Cél: - Ember számára áttekinthetővé tenni a vezérlést. a) Mikroutasítások, melyek meghatározott vezérlővonalat, vagy -vonalakat aktiválnak. b) A gépi kódú utasítások végrehajtása mikroutasítások sorozatával érhető el. c) A hagyományos (Neumann-elvű) számítógépet tekinthetjük egy makroszámítógépnek, ezen belül helyezkedik el egy mikroszámítógép mikroutasítássokkal,
mikroprogrammal. - A vezérlést rugalmassá, könnyen módosíthatóvá alakítani. a) A mikroprogramot tároló Control Memory-ban cserélhetjük, változtatjuk magát a mikroprogramot. A Wilkes féle modell: Címrész – a makroszámítógép címe CMAR – Control Memory Address Register S – feltétel – Control Memory (CM) Működése: - A, Mikroutasítás szekvencia a) A gépi kódú utasításoknak a műveletikód része – megfelelően kódolva – beírásra kerül a CMAR-ba. Megfelelő kódolás: Az adott gépi kódú utasítás (pl.: add) végrehajtását elemi műveleti szinten végigvezérlő mikroprogram kezdőcíme. b) Ez a cím beírásra kerül a dekóderbe. Az ily módon kiválasztott mikrotasítás 1. meghatározott ideig aktiválja a megfelelő vezérlővonalat, majd 2. a mikroutasítás címrésze beírásra kerül a CMAR-ba c) Ugrás a b) pontra. Példa: egy elemi művelet szekvenciája az add esetén: MAR←PC MDR←(MAR) IR←MDR DEC←IR
MAR←DECcímrész MDR←(MAR) AC←AC+MDR PC←PC+1 - B, Feltételes ugrás a) Amennyiben ugrási mikroutasítás kerül feldolgozásra, akkor 1. a megfelelő vezérlővonalak meghatározott ideig aktiválásra kerülnek, majd 2. a feltétel igaz vagy hamis voltától függően vagy az első vagy a második cím kerül letöltésre a CMAR-ba. Egy korszerű mikroutasítás felépítése: feltétel-kiválasztó mező - ugrási cím vezérlőrész Feltétel-kiválasztó mező: Tipikusan azt jelenti, hogy melyik flag-et teszteljük. Ugrási cím: Amennyiben a feltételes ugrásnál a feltétel igaz, akkor ez a cím kerül az MPC-be. Vezérlőrész: Ez jelöli ki az aktiválandó vezérlővonalat, -vonalakat. Egy korszerű mikrovezérlő megvalósítása: MPC – Micro Program Counter CM – Control Memory CMDR – Control Memory Data Register MUX – Multiplexer - Működése: - A, Mikroutasítás szekvencia a) Az MPC által kijelölt, következő végrehajtandó
mikroutasítás a CM-ből eljut a CMDR-be. b) Meghatározott ideig aktiválásra kerülnek a mikroutasítás vezérlőrésze által kijelölt vezérlővonalak. c) A MPC inkrementál, majd vissza az a) pontra. B, Feltételes ugrás: a) Meghatározott ideig aktiválásra kerülnek a mikroutasítás vezérlőrésze által kijelölt vezérlővonalak. b) A feltétel kiválasztó mező által meghatározott külső feltétel kiválasztásra kerül, s annak igaz vagy hamis voltától függően 1. vagy a végrehajtás alatt álló mikroutasítás ugrási cím mezőjének tartalma felülírja az MPC tartalmát, 2. vagy a MPC inkrementálva határozza meg a következő végrehajtandó mikroutasítás címét. Megjegyzések: - A huzalozott vezérlő ütemezőjét váltja ki a CM. - Míg a Neumann féle makroszámítógépben együt tároljuk a programot és az adatokat, a mikroszámítógép mikroprogram-tárában nincs adat, csak mikroutasítás. Ezért: a) a Wilkes féle modell move jellegű
felülírása miatt csak a CMAR, b) a korszerű mikrovezérlő inkrementálási képessége miatt MPC alkalmazható. - A mikroutasítás hosszát meghatározó tényezők: a) A CM drága, ezért célszerű takarékoskodnunk vele. b) Feltétel kiválasztó mező: Viszonylag rövid. c) Címmező: 1. A következő végrehajtandó mikroutasítás címe a. A Wilkes-féle modellben a mikroutasítás tartalmazza a következő végrehajtandó mikroutasítás címét. b. A korszerű mikrovezérlő esetén az MPC képes 1. mind move jellegű cím-befogadásra, 2. mind pedig inkrementálásra 2. Ugrási cím a. Az ugrási címtér rövidebb, mint a tár címtere A tár címtere pl: 1024 (10 bit), ugrási címtér 256 (8 bit). b. Külső forrásból töltjük le az ugrási címet c. Az ugrási cím mezőt viszonylag ritkán hasznosítják, ezért nem ugrás esetén vezérlőmezőként is használható lehet. ez a bit mutatja, hogy ugrási mezőt tartalmaz-e ugrási cím d) Kétszintű
mikroutasítás (Motorola): Előnye, hogy több mikroutasításban is szerepelhet ugyanaz a vezérlőrész, viszont csak egyszer tároljuk. Vezérlőrész - Horizontális vagy vízszintes mikroutasítás: a) Hosszú formátum b) Magas fokú párhuzamosság c) Alacsony szintű kódolás d) Pl.: IBM360, PDP8, Motorola e) IBM360: 1. A vezérlőrész hossza 90 bit 2. Ezt 21 változó hosszúságú vezérlőmezőre osztották: - 21 darab egymástól függetlenül is működőképes hardver egységet alakítottak ki, tehát elvben maximum 21 egység működet párhuzamosan. 3. 65-67 bit vezérli az ALU jobb oldali bemenetét, azaz ezek jelölik ki, mely regiszterből kerüljön betöltésre az egyik operandus. 4. 68-71 bit határozza meg, hogy az ALU milyen műveletet hajtson végre. Lehetőségek: fixpontos vagy BCD összeadás a bejövő és a kimenő átvitel különféle kezelésével. f) PDP8 1. A vezérlőrész 128 bit hosszú 2. Hipotézis: 27=128 azaz 7 biten kódolhatjuk az
értékeket ez az elve a vertikális vagy függőleges mikroutasításoknak. Vertikális vagy függőleges mikroutasítás: a) Rövid b) Alacsony szintű párhuzamosítás c) Erős kódolás d) Pl.: IBM370, Intel e) Esettanulmány: IBM370 műveleti kód (opcode) - 1. operandus 2. op CM címzési információ 1. 4 bájt hosszú 2. az operandusok regisztert címeznek 3. a címképzési információ a Wilkes féle modellre emlékeztet Mai gyakorlat: hibrid változat: A gyakran használatos vezérlések horizontálisak, míg a ritkábban használatosak vertikálisak Kódoltak, dekóderen keresztül aktiválják a vezérlővonalakat (időveszteség) A mikroutasítások végrehajtásának ütemezése Fajtái: - Monofázisú mikroutasítások: egy mikroutasítás végrehajtási ciklus megegyezik az óra ciklussal. - Polifázisu mikroutasítások: egy mikroutasítás végrehajtási ciklus több óraciklus alatt hajtódik végre egy mikroutasításon belül elemi műveleti
szekvenciákat írhatunk le. Pl.: r1←f(r0) Végrehajtás menete: a) A mikroutasítás lehívása a CM-ből. b) Az r0 regiszter kimenetét rákapuzzuk az f módosító áramkör bemenetére. c) Meghatározzuk, hogy az f módosító áramkör milyen módosítást hajtson végre. d) Az f módosító áramkör kimenetét rákapuzzuk az r1 regiszter bemenetére. Következtetés: Mivel a huzalozott vezérlés esetében nem értelmezett a mikroutasítás lehívása, ezért a huzalozott vezérlés mindig gyorsabb. Gyorsítási lehetőségek: Amennyiben mikroprogramozott vezérlés mellett döntünk, akkor a gyors vezérlés érdekében - horizontális mikroutasítás formátumot és - igen gyors CM-et választunk, - szervezési átalakítás: prefetch – előlehívás a) Amíg a CMDR0-ból történik a vezérlés, addig a CMDR1-be lehívjuk a következő végrehajtandó mikroutasítást. b) Szerepcsere. Megjegyzés: a maradék vezérlés (residnal control) - A vezérlővonalak
aktiválása tipikusan egy óraütem ideig tart. - Szükség lehet arra, hogy bizonyos vezérlővonalak több, mint egy óraütem alatt legyenek aktívak. (pl: adatátvitel) - Ekkor a vezérlőrészt egy regiszterbe mentik és onnan történik a vezérlés. Mikroprogramozás - A mikroutasítások tipikusan assembly szintű programnyelvre emlékeztetnek (szintén mnemonikus kódok). a) Létezik micro assambler, azaz fordítóprogram, mely a forrásnyelvű mikroprogramokat végrehajtható formátumra alakítja ez tölthető be a CMbe. b) A mikroprogramok írásához igen mély hardver ismeretre van szükségünk, amit a gyártók nem szoktak publikálni. A mikroprogramozás veszélyei: - Hibás mikroprogram esetén működésképtelenné válik a hardver (nem segít a reset gomb), az operációs rendszer sem működik. Huzalozott kontra mikroprogramozott vezérlés sebesség gyors áttekinthetőség ember számára nehezen áttekinthető módosíthatóság merev, nehézkesen
módosítható mindig lassabb ember számára áttekinthető rugalmas Sínrendszer - - Az egységek közötti kommunikációt biztosítja. Fejlődés eredménye, ez bizonyult a legjobbnak. A sínrendszer fogalma alatt a kommunikációs infrastruktúrát értjük, az I/O rendszer a perifériának a processzorral és a memóriával történő kommunikációjának sajátosságaival foglalkozik. Az egységek a sínrendszeren keresztül szabályozott, egységes módon kommunikálnak. A kommunikáció fajtái: - Az egységen belüli kommunikáció (pl.: processzoron belül) a) Kis távolság kis késleltetés b) Az adó és a vevő közös óraütem adótól kapja az órajelet. c) Viszonylag egyszerű megvalósítás - Az egységek közötti kommunikáció (pl.: processzor és a perifériák között) a) Az adónak és a vevőnek tipikusan külön óraütem adója van, mert: 1. Viszonylag nagyok a távolságok nagy a késleltetés 2. A kommunikáló egységek sebesség paraméterei is
igen elérőek Sín: Fogalma: - Műszaki: Olyan vezetékköteg, melynek minden egyes erén vagy csak a logikai 0-nak megfelelő 0 Volt, vagy csak a logikai 1-nek megfelelő +12, +5, +3.3, +28 Volt jelenhet meg. - Funkcionális: Olyan vezetékköteg, mely lehetővé teszi egyszerre n bit továbbítását a forrástól a célig. Ebben a kontextusban a sín fogalmába beleértjük a sín forgalmát vezérlő intelligenciát is. Jellemzői: - A vezetékek száma. - Napjainkban tipikusan megosztott eszköz: a) Minden vezeték egy időpillanatban 1 bitnyi információt továbbíthat b) Mindig csak egyetlen adó lehet, vevőoldalon lehet több eszköz is. - Regiszter tulajdonsággal rendelkezik. Értelmezett: r1←r0 úgy történik, hogy: databus←r0 r1←databus Fajtái: - Átvitel iránya szerint: a) Szimplex: egyirányú. b) Duplex: egy időben egyirányú; kétirányú. c) Full-duplex: egy időben kétirányú (két vezeték van). d) Pl.: Egyirányú: órajel, reset, cím
Kétirányú: adat - Az átvitel jellege szerint: U1 U2 a) Dedikált sín: 1. Jellemzői: Minden egységet minden egységgel összekötünk. Egysínes: n×(n–1) sín. U3 U4 Kétsínes: (n×(n–1))/2 sín. 2. Előnyei: a. Gyors: minden egység minden egységgel párhuzamosan kommunikálhat. b. Megbízhatóság: amennyiben biztosított az infrastruktúra, akkor pl. az U1-U2 közötti szakadás esetén a két egység továbbra is kommunikálhat U3 vagy U4 egységen keresztül. 3. Hátrányai: a. Drága b. Újabb egységek csatlakoztatása bonyolult c. Újabb csatlakozási felületek kialakítása bonyolult d. Újabb csatlakozási felületek kialakítása technológiai nehézséget jelent. b) Közös (shared) sín: 1. Jellemzője: Minden egység egyetlen közös sínen keresztül kommunikálhat. U1 U2 Un 2. Előnyei: a. Olcsóbb (nem sokkal) b. A szabványos közös sín csatlakozási felületek miatt könnyű az újabb egységek csatlakoztatása. 3. Hátrányai: a. Lassúbb, mivel
egyidejűleg csak egyetlen adó lehet a sínen, a többinek várnia kell a sín felszabadulására. b. Érzékeny a közös sínrendszer meghibásodására c. A közös sínrendszer vezérlése bonyolult (nem olcsó) Funkcionális csoportosítás: a) Címsín: 1. Feladata: Az egységek (pl: hálókártya) illetve egységrészek (pl: memóriacím) azonosítása. 2. Fejlődése az Intel esetében: 20 bit v. v 4 bit v. v 20 bit 80386 20 bit vezérlő vezetékek 80286 8088 - v. v 4 bit v. v 8 bit v. v 20 bitnél 1MB-ot tudunk megcímezni, 24 bitnél már 16MB-ot, 32 bitnél 4GB-ot. Napjainkban is 32 bit a címzési lehetőség 3. A kompatibilitás megtartása nem eredményezett tiszta tervet b) Adatsín: 1. Feladata: Adatok továbbítása 2. Fejlődése: a. 8088 – 8 vezetékes volt b. 80286 – 16 vezetékes volt c. 80386– 32 vezetékes 3. A kompatibilitás megtartása nem eredményezett tiszta tervet c) Közös adat- és címvezeték: 1. Akkor alkalmazzák, amikor: a.
vezetéket kívánnak megtakarítani, vagy b. a csatlakozó lábak számát szeretnék csökkenteni 2. Külön vezérlővezetékkel kell jelezni, hogy mi van az adott pillanatban a sínen (cím vagy adat). 3. Akkor érdemes alkalmazni, ha blokkos átvitelt használunk A blokk kezdőcíme átvitele után a többi cím inkrementálással megállapítható. 4. Időbeli multiplexelés elvén alapul 5. Pl: PCI d) Vezérlővezetékek (sín): 1. Számuk tipikusan 10-15 db 2. Fajtái: a. Adatátvitel vezérlése: 1. R/W – read/write: a processzor nézőpontjából mutatja az átvitel irányát. 2. B/W – byte/word: hány bitet kell párhuzamosan átvinni. 3. A/D – address/data: a közös vezetékeken cím vagy adat van-e. 4. AS – address strobe: a címet felhelyeztük a sínre. 5. DS – data strobe: az adatot felhelyeztük a sínre. 6. M/U – memory/unit: a címvezetéken memóriacím van-e vagy egységcím. 7. RDY – ready: kész. M1 CPU - b. A megszakítások vezérlése: A
megszakítások kérése és engedélyezése. c. A sínhasználattal kapcsolatos vezérlővezetékek: A sínhasználat kérése, engedélyezése, a sínfoglaltság jelzése. d. Egyéb: 1. CLCK – órajel 2. Reset – kezdeti értékek visszaállítása Az összekapcsolt területek alapján: Mn bővítősín Sínvezérlő rendszersín I/O1 I/On a) Rendszersín: 1. A rendszersín tipikusan gyorsabb, mint a bővítősín 2. A rendszersín nehezen szabványosítható, mivel CPU közeli sajátosságok kihasználásával teljesítménye növelhető. 3. Elnevezések: a. Rendszersín: A rendszer adatforgalom itt zajlik b. Memóriasín: Memóriablokkok összekapcsolása c. Processzorsín: 1. A winchesteren tárolt adatokat a DMA vezérlő segítségével közvetlenül a memóriába visszük. 2. A processzor pedig a másodszintű gyorsítótárból dolgozik b) Bővítősín: 1. Feladata: az I/O egységek csatlakoztatása a processzor-memória kettőshöz. 2. Fejlődése: a. Kábelekkel
egyedi módon csatlakoztatták a perifériákat b. DEC első gépei sín-orientáltak voltak Aljzatokat alakítottak ki tesztkészülékek csatlakoztatására. Megoldásaikat szerzői jogi védelem alá helyezték. c. 1976: az Altair tervezője kialakította az S-100-as bővítősín architektúrát, mely 100 db érintkező felületet biztosított. Ezt az IEEE szabványként fogadta el. d. 1981: IBM PC 3. Elnevezések: a. bővítősín b. I/O sín c. helyi sín