SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "SZÁMÍTÓGÉP ARCHITEKTÚRÁK"

Átírás

1 SZÁMÍTÓGÉP ARCHITEKTÚRÁK Bakó László Előadás jegyzet Számítógépek felépítésének és tervezésének alapelvei

2 2

3 Számítógép architektúrák I. BEVEZETŐ I.1 A számítógép története: A fejlődés feltételei mindenkor a tudományos ismeretek, technológiai lehetőségek, társadalmi igény jelenléte volt és lesz. I.1.1 Gyökerek Írásbeliség - rómaiak által használt golyós számológép: abakusz - mechanika fejlődése: Leonardo da Vinci számítógépet készített, de nem valósult meg ben Wilhelm Schickard (Keplernek írta meg) 4 alapműveletet tudó gépet készített (10 bütyök volt egy fogaskeréken) ben Napier a logaritmust feltalálja, ezért a szorzás visszavezethető összeadásra - 10 jegyű számok összeadása másodpercek alatt. Helyi értékes számrendszerek használata. Abakusz: Első automata számolóeszköz. A mechanikus számológép automatizálható 1642, Blaise Pascal: Mechanikai számolóeszköz (+,-) Leibnitz - Pascal gépének továbbfejlesztése - szorzást, osztást tud Leibnitz : ¾//¾,(+,-,*,/) Charles Babbage: Difference Engine: differencia gép matematikai táblázatok készítésére. Analitike Engine auditikus gép, Általános célú, automata, digitális szám terve. I.1.2 Programozás Aritmetikai és döntési műveletek elvégzése emberi beavatkozás nélkül. I.1.3 Vezérlés Jacquard féle lyukkártya; 1847: Boole- A logikai matematika analízise Boole-logikai - algebra; 1890: H. Holletin - lyukkártya, nagytömegű adatfeldolgozás - kódrendszer. I.1.4 A Kezdet : Howard Aiken (alapelv:c.b.); Howard University MARK I. Elektromechanikus számítógép, Input papírszalag, sebesség 200 művelet/perc. Cél: Ballisztikus számítások, matematikai táblázatok G. R Stibitz és E. G. Andrews: Bell Relay Computers. Dorthmounth College Első generációs elektronikus számítógép: o adatok o index o eredmény 3

4 Dr. J. P. Eckert és Dr. J. W. Mouchly Pennsilvany University: ENIAC- Electronic Numerical Integrator & Calculator, I/O lyukkártya, sebessége: 300 szorzás/perc Elektroncső, Forrasztás, Ellenállás, 30t, 100KW fogyasztás. I.2 NEUMANN JÁNOS: A belső programtárolás elve - Egy tár az adatok és utasítások részére, - Utasítások adatként kezelése, - Utasítások numerikusan kódolva, - Gyors elérés, - Bináris számrendszer, - Memóriával és aritmetikai egységgel szemben támasztott követelmények EDVAC: Belső programvezérlés UNIVAC: Mágneses társzerkezet, Mágnesszalag, Sorozatgyártás MTC: Ferritgyűrűs memória. I.3 Számítógép generációk Évjárat CPU mechanikus cső tranzisztor IC VLSI Memória 1K. 8K. 64K. 4M. 32M. Tárolás Egyedi Egyedi Háttértár Multi Hálózat 1. generáció - 30-as évek : jelfogók és elektroncsövek, mágnesdobos tárolás 5-10.ezer műv. /sec, 2. generáció es évek: Tranzisztor feltalálása, tranzisztorok és mágnes gyűrűk, ferrit tár ezer muv/sec, első szoftverek megjelenése, programok, Integrált áramkörök használata 3. generáció as évek: integrált áramkörök 1 millió műv. /sec, floppy, winchester, operációsrendszer, fordító programok: Cobol, Algol, Fortran Több processzoros rendszerek 4. generáció : nagy integráltságú áramkörök microchip-ek, méretcsökkenés, megbízhatóság növekedés, Neumann János - belső programozás; adatok és programok tárolása a számítógépben. Tárolt programozás elve: a programot ugyanúgy tároljuk, mint az adatokat, a mikroprocesszor különbözteti meg őket Cambrige EDSAC - az elso tárolt programozású számítógép. 4

5 II. MI A SZÁMÍTÓGÉP? II.1 Alapelvek Minden számítógép felfogható úgy, mint egy rendszer, melyben kölcsönhatások során állapotváltozások jönnek létre. Meg kell, viszont határozni azt, hogy ennek a rendszernek mik a határai, mit jelentenek a bemenetek és mit a kimenetek. Számítástechnikai szövegekben sokszor előforduló fogalmak az Információ, Adat és Jelek. Nagyon fontos ezeknek az értelmét tisztázni. A bemeneti és kimeneti jelek adatokat hordoznak. A bemeneti adatok állapotváltozást hoznak létre a rendszerben, ez jelenti az információt. A Számítógép architektúrák tantárgy célja az, hogy megértsük, hogy mi is történik a dobozon belül. Az előadás három alapvető fogalomra Adat Adat Utasítások fog építeni, melyek egyben bármely számítógép alapelemeiként is felfoghatóak: processzor (Központi feldolgozó Egység KFE, vagy Central Processing Unit - CPU) memória (tár) perifériák (Ki / Bemeneti Egységek, Input / Output System I/O) E felbontás szerint a fő részegységek szerepe a következőképpen foglalható röviden össze: Feldolgozó egység: utasítások végrehajtása, azok sorrendiségének meghatározása Tárolási egység: utasítások és adatok tárolása Ki / Bementi csatoló: utasítások bevitele a tárolási egységbe, eredmények kivitele. Ezen alegységek összecsatolása többféle rendszerkialakítást eredményezhet: I/O CPU TÁR CPU TÁR I/O I/O adat, cím, kontrolljelek Minden esetben a feldolgozási sebesség sokkal nagyobb, mint az adatátviteli sebesség, ezért ez utóbbi jelenti a rendszerben a szűk keresztmetszet -et. A számítógépek tervezésénél mindig fontos kiindulópont az, hogy mire is szeretnénk azt majd pontosan használni, azaz mit szeretnénk elvégeztetni a számítógéppel. Ugyanakkor, 5

6 figyelembe kell vegyük azt, hogy hogyan is látjuk a számítógépet általában egy felületként, aminek valamilyen formában megmondjuk, hogy mit akarunk. Hogyan szólunk, azonban, egy számítógéphez? Mindenképpen nagy különbség van a között ami az embernek és ami a gépnek a legmegfelelőbb ebből a szempontból. Találni kell, tehát, egy középutat. Ha a gép tud, azaz ismer, egy L0 nyelvet, akkor találni kell egy L1 nyelvet, ami nekünk kényelmesebb. Ebből következik, hogy annak érdekében, hogy elkerüljük a gyakori fordítási / értelmezési ciklusokat, létre kell hozni egy M1 virtuális gépet, amely az L1 nyelvet ismeri. Fizikailag megépíteni az M1 gépet, viszont nagyságrendekkel bonyolultabb lenne, és valószínűleg teljesítmény szinten alulmaradna az M0-hoz viszonyítva, a költségvonzata pedig hangsúlyozottan gazdaságtalanná tenné. Az L1 bármilyen mértékben különbözhet az L0-tól, mivel az M1 és az M0 között több réteg (akár más virtuális gépek) is elhelyezkedhetnek. A nyelvek és a virtuális gépek között szoros kapcsolat van. Minden gépnek van saját gépi nyelve, amely a gép által végrehajtható utasítások együtteséből áll. Azaz egy gép definiál egy nyelvet. Hasonlóan egy nyelv is definiál egy gépet, nevezetesen azt a gépet, amely képes az ezen a nyelven írt bármely program végrehajtására. Természetesen egy nyelv által definiált gép elektronikus áramkörökből való közvetlen megépítése elképesztően bonyolult és drága is lehet, de nem elképzelhetetlen. Egy C++ vagy COBOL gépi nyelvű gép valóban bonyolult, de a mai technológiák mellett könnyen megépíthető lenne. Alapos oka van azonban annak, hogy ilyen gépek nem épülnek: nem lenne költséghatékony más módszerekkel összehasonlítva. Egy 11 szintű számítógépet 11 különböző virtuális gépnek is tekinthetünk, mind egyikük rendelkezik a saját gépi nyelvével. A "szint" és a "virtuális gép" kifejezése ket egymással felcserélhető fogalom akként fogjuk használni. Csak az L0 nyelven írt programokat képesek az elektronikus áramkörök közvetlenül végrehajtani anélkül, hogy fordítást vagy értelmezést kellene közbeiktatnunk. Az L1, L2,..., Ln nyelvű programokat vagy egy alsóbb szinten futó értelmezővel kell végrehajtatnunk, vagy le kell fordítanunk az alsóbb szint nyelvére. Ha valakinek az 11. szintű virtuális gépre kell programokat írnia, akkor nem kell törődnie a szükséges értelmezőkkel és fordítókkal. A gép felépítése valahogyan biztosítani fogja programjainak a végrehajtását. Érdektelen, hogy a programot egy értelmező lépésenként fogja végrehajtani, az értelmezőt magát megint egy másik értelmező, vagy esetleg már az elektronika teljesíti a feladatot. Az eredmény mindkét esetben ugyanaz: a programok végrehajtódtak. Az 11 szintű gépeket használó programozók többségének csak a legfelső szintet kell ismernie, ami a legalsó szint gépi nyelvéhez igen kevéssé hasonlít. Akiket viszont érdekel, hogy hogyan is működik valójában egy számítógép, azoknak minden szintet tanulmányozniuk kell. Új számítógépek vagy új szintek (azaz új virtuális gépek) tervezőinek a legfelső mellett több más szintet is ismerni kell. II.2 Korszerű többszintű számítógépek A legtöbb mai számítógép két- vagy többszintű. Még az alábbi ábra szerinti hatszintű gépek is vannak. Alul a 0. szint a gép valódi hardvere. Ennek az áramkörei hajtják végre az 1. szint gépi nyelvű programjait. A teljesség kedvéért meg kell jegyeznünk, hogy a mi 0. szintünk alatt is van még egy szint. Ez az ún. eszközszint, amelyet az ábra nem tartalmaz, az elektronikai tervezés világához tartozik (és így tantárgyunk tárgyán kívüli). Ezen a szinten találja a tervező az egyes tranzisztorokat, mint a tervezés legalsó szintű építőköveit. 6

7 Probléma orientált nyelvi szint 5. szint Assembly szint 4. szint Operációs rendszer 3. szint Utasítás rendszer architektúra szint - 2. szint Mikroarchitektúra szint 1. szint Digitális logikai szint 0. szint Az általunk 1. ÁBRA - EGY HATSZINTŰ SZÁMÍTÓGÉP Bár a kapuk tranzisztorokhoz hasonló analóg alkatrészekből épülnek fel, szerepük szerint digitális eszközök. Minden kapunak egy vagy több digitális bemenete van (a 0 vagy az 1 értéket reprezentáló jelek), kimenetként pedig ezekből egyszerű függvényértékeket számolnak ki, mint amilyen az AND vagy az OR. Egy kapu legfeljebb néhány tranzisztorból készül. Néhány kapuból összeállítható egy 1 bites memória a 0 vagy az 1 érték tárolására. 1 bites memóriákat 16-os, 32-es vagy 64-es csoportokba rendezve készíthetünk például regisztereket. Bármely regiszterben meghatározott értékhatárig egy bináris számot tárolhatunk. Kapukból építhetjük fel magát az aritmetikai egységet is. A következő felsőbb szint a mikro-architektúra szintje. Ezen a szinten találjuk az (általában) 8-32 elemű, lokális memóriaként használt regiszterkészletet és az ún. Aritmetikai - Logikai egységet (Arithmetic Logic Unit, ALU), amely az egyszerű aritmetikai műveletek elvégzésére képes. A regiszterek az ALU-hoz kapcsolódnak, ez az adatok áramlásának adatútja. Az adatút alapfeladata az, hogy kiválassza azt az egy vagy több regisztert, amelyen az ALU műveletet végez (pl. összeadja tartalmukat, az eredményt pedig valamelyik regiszterben eltárolja). Egyes gépeken az adatút működését az ún. mikroprogram vezérli, míg más gépeken a vezérlés közvetlenül a hardver feladata. Az adatutat manapság már többnyire közvetlenül a hardver vezérli. Azokon a gépeken, amelyeken az adatút szoftvervezérlésű, a mikroprogram egy, az utasításokat értelmező, 2. szintű program. Egyenként betölti, elemzi és végrehajtja az utasításokat, eközben az adatutat megfelelően beállítja. Az ADD utasítás esetében például betölti az utasítást, meghatározza és regiszterekbe helyezi az operandusait, az ALU kiszámolja az összeget, végül az eredményt a megfelelő helyre visszaküldi. Ha a gépen az adatút hardver vezérlésű, akkor is hasonlóak az egyes lépések, de nem tárolt program vezérli a 2. szintű utasítások értelmezését. 7

8 A 2. szintet az utasításrendszer-architektúra szintjének (Instruction Set Architecture, ISAszint) nevezzük. Minden számítógépgyártó vállalat az általa forgalmazott minden gépéhez ad egy "A Gépi Nyelv Referencia Kézikönyve", vagy valami hasonló című dokumentumot. Általában ezek az ISA-szintről szólnak, az alacsonyabb szinteket nem tárgyalják. A dokumentumokban a gépi utasítások rendszerének leírása tulajdonképpen nem más, mint annak leírása, hogy hogyan értelmezi a mikro program, illetve a hardvervégrehajtó áramkör az egyes utasításokat. Ha a gyártó kétféle ISA szintű értelmezőt szállít ugyanahhoz a számítógépéhez, akkor "A Gépi Nyelv Referencia Kézikönyve" egy-egy változatát kell adnia mindegyikhez. A következő szint egy kevert szint. A szint nyelvének utasításai közül számos az ISAszinten is megvan. (Semmi akadálya sincs annak, hogy valamely szint utasításai más szintek utasításai között is szerepeljenek.) A szint új utasításokkal, eltérő memóriaszervezéssel, több program egyidejű futtathatóságának képességévei és egyéb tulajdonságokkal rendelkezik. A 3. szint új szolgáltatásait egy, a 2. szinten futó értelmező teljesíti, amelyet hagyományosan operációs rendszernek szoktunk nevezni. A 2. szintről örökölt 3. szintű utasításokat nem az operációs rendszer, hanem közvetlenül a mikroprogram (vagy a hardver) hajtja végre. Másként fogalmazva a 3. szintű utasítások egy részét az operációs rendszer, más részét közvetlenül a mikroprogram értelmezi. Ezért neveztük "kevert" szintnek, az operációs rendszer gépi szintjének. Jelentős távolság van a 3. és a 4. szint között. Az alsó három szintet nem amatőr programozóknak találták ki. Elsősorban a magasabb szinteken szükséges értelmezők és fordítók futtatására szolgálnak. Ezeket az értelmezőket és fordítókat rendszerprogramozók írják, akik virtuális gépek tervezésére és megvalósítására szakosodtak. A 4. és az e fölötti szinteket az alkalmazási feladatokat megoldó programozóknak szánták. Változás a 4. szinten a magasabb szintek megvalósításának módjában is van. A 2. és a 3. szint mindig értelmező. A 4. szint és az e felettiek majdnem mindig - ha nem is kizárólag - fordítók. Az 1., 2. és 3. szint, illetve a 4., 5. és magasabb szintek nyelveinek természetében találhatjuk a további különbséget. Az 1., 2. és 3. szint gépi nyelvei numerikusak, a rajtuk írt programok hosszú számsorozatok, ami kedvező a gépek, de kedvezőtlen az ember számára. A 4. szinttől kezdődően a nyelvek szavakból, az ember számára is jelentéssel bíró rövidítésekből állnak. A 4., assembly nyelvi szint valójában az alsóbb szintekhez tartozó nyelvek szimbolikus formája. Ezen a szinten lehet az 1., 2. és 3. szinteket a szintek virtuális gépeinek saját nyelveinél kényelmesebb nyelven programozni. Az assembly nyelvű programokat először lefordítjuk az 1., 2. vagy 3. szint nyelvére, majd értelmeztetjük a megfelelő virtuális vagy valódi géppel. A fordítást végző programot assemblernek nevezzük. Az 5. szint nyelveit az alkalmazási feladatokat megoldó programozóknak tervezik. Az ilyen nyelveket magas szintű nyelveknek szokták nevezni, több száz van belőlük. Néhány az ismertebbek közül: BASIC, C, C++, Java, Lisp, Prolog. Az ezeken írt programokat általában a 3. vagy a 4. szint nyelvére transzformálják az ún. fordítóprogramok, de találkozunk esetenként értelmezőkkel is. A Java programokat például értelmezni szokták. Néha az 5. szint egy speciális alkalmazási területre, például a szimbolikus matematikára kidolgozott értelmező. A területen felmerülő problémák megoldására alkalmas sajátos adatformákat és műveleteket nyújt abban a formában, amely a területen jártas szakemberek számára könnyen érthető. Összefoglalásként emlékeztetünk arra, hogy a számítógépeket egymásra épülő szintek sorozataként tervezik. Minden szint egy önálló absztrakció önálló elemek és műveletekkel. A számítógépek ilyen tervezése és tanulmányozása során időlegesen 8

9 eltekinthetünk a lényegtelen részletektől, ezzel a bonyolult tárgyat könnyebben érthetőre szűkíthetjük. Egy-egy szint adattípusainak, műveleteinek és szolgáltatásainak összességét a szint architektúrájának nevezzük. Az architektúra a szint használója által látható tulajdonságokat foglalja egységbe. A programozó által látható tulajdonságok amilyen például a memória használatának módja az architektúrához tartoznak. A megvalósítás részletei például, hogy milyen áramköri technológiára épül a memória nem tartozik az architektúrához. A jelen tantárgy célja a 0, 1, és 2-es szintek tanulmányozása. A programozó által látható számítógépes rendszerelemek tervezésével a SZÁMÍTÓGÉP-ARCHITEKTÚRA foglalkozik. Gyakorlatilag a számítógép-architektúra és a számítógépek felépítése azonos tárgyat takar. 9

10 III. A KÖZPONTI FELDOLGOZÓ EGYSÉG III.1 A KFE tervezése Egy Központi Feldolgozó Egység (KFE vagy CPU) tervezésének első lépése az ISA (Instruction Set Architecture) szint kialakítása. Az ENIAC gép utasításának felépítése a következő volt (egy memórialokáció mérete x+4y): Utasítás kód x 1. Operandus címe y 2. Operandus címe y Eredmény címe y Következő utasítás címe y A Neuman János által kifejlesztett ENVAC gép utasításának felépítése jelentősen egyszerűsödött: Utasítás kód Operandus cím n m Ebben az esetben egy memória lokáció mérete n+m lesz, ami azt jelenti, hogy 2 n utasítás lehet a processzor utasításkészletében és, 2 m memória lokációt tud a KFE megcímezni. III.2 A KFE felépítése: A KFE fő alkotóelemei, ahogy az alábbi tömbvázlat is mutatja, a következő fő részegységeket tartalmazza: AC (n+m bit) Akkumulátor regiszter: általános célú regiszter, aritmetikai/logikai műveletekhez szüksége operandusok egyikét, valamint azok eredményét tárolja AR (n+m bit) Adat regiszter: adatátvitelt biztosít a memória és a KFE belső alkotóelemei között PC (m bit) Programszámláló (counter): mindenkor a következő utasítás címét tárolja CR (m bit) Cím regiszter: a memória fele közvetített (utasítás vagy operandus) címet tárolja UR (n+m bit) Utasítás regiszter: az utasítás dekódolása a feladata, annak felosztása utasítás kódra és operandus címre ALÁ Aritmetikai - Logikai Áramkör: egy vagy kétoperandusos logikai és aritmetikai műveleteket végrehajtó egység VEZ Vezérlő egység: egy többállapotú automata, mely az egész KFE működését összehangolja. Az általa létrehozott kontrolljelek (piros nyilak a tömbvázlatban) vezérlik az összes többi részegység működését. A Vezérlő egység irányítja, tehát az utasítások végrehajtását, annak közös (kiolvasás és dekódolás Fetch and Decode) illetve specifikus (műveletvégzés) fázisait. 10

11 ALU AC eredmény UR AR operandus cím adat TÁR utasítás kód CR VEZ kontroll jelek A központi egység fő feladata végrehajtani a memóriában tárolt utasítás-sorozatot. Egy utasítás-végrehajtási ciklus két fázisból tevődik össze: a. az utasítás előhívása a memóriából és ennek egy belső regiszterbe való betöltése b. az utasítás végrehajtása Az utasítás végrehajtása tartalmazza az utasítás dekódolását, az operandusok betöltését, a művelet végrehajtását, és, ha szükséges, az eredménynek a memóriában való tárolását. Egy utasítás-ciklus meghatározható, mint mikro-lépések vagy mikro-műveletek sorozata, ahol minden egyes mikro-művelet egy regiszterek közötti átvitelt jelent. A központi feldolgozó egység a vezérlősínen felügyeli a rendszer többi komponensét. Direkt vagy indirekt módon vezérli a ki/bemeneti műveleteket (az adatátvitelt a memória és a perifériák között) A ki/bemeneti egységek megszakításon keresztül kezdeményezik az adatátvitelt. A processzornak van egy ilyen megszakítás-kérés vonala, amelyen a periférikus egységek kezdeményezik (kérik) az adatátvitelt. Ha a megszakítás-vonalon érkezik egy megszakítás-kérés, a processzor felfüggeszti a végrehajtandó programot, a jelenleg végrehajtandó utasítás befejezése után, és a megszakítást kiszolgáló rutint (programot) fogja végrehajtani. A megszakítás befejezése után (IRET utasítás) visszatér a futó a megszakított programba, és attól a ponttól folytatja, ahol ez meg volt szakítva. A megszakításvonal ellenőrzése minden utasítás-ciklus befejezése után történik. (Tehát a mikro-utasítások nem megszakíthatók.) A központi feldolgozó egység a rendszerhez (a rendszer többi eleméhez) a három sínrendszeren keresztül kapcsolódik. Adat-sín egy kétirányú sínrendszer, és az adatok és utasítások átvitelére szolgál a processzorból és a processzorba. Cím-sín A processzor ezen a sínrendszeren keresztül küldi ki a memória vagy periféria címét, ahonnan az adatokat beolvassa /ahova az adatokat kiírja. PC 11

12 Vezérlő sín A vezérlősín jelei lehetnek: adatmozgatásra használt vezérlőjelek- vezérli a memória és a ki/bemeneti perifériák elérési műveleteit megszakításkérő vonalak a periférikus ki/bemeneti egységektől a processzor felé a megszakításkérés elfogadása- a processzortól a ki/bemeneti egységek felé a sínrendszer arbitrálása (bírálása) ha egy rendszeren belül több processzor található, ezen vezérlőjelek segítségével bírálják el a processzorok egymás között, hogy ki fogja vezérelni a sínrendszert. A központi feldolgozó egység két részre osztható: adatfeldolgozás (adatprocesszálás) vezérlés Az adatfeldolgozó (adatprocesszáló) egység kombinációs áramkörökkel összekapcsolt regiszter-halmaz. A regiszterek utasításokat és adatokat tárolnak. A belső sínrendszer olyan vezetékek halmaza, amelyek biztosítják az adatok/utasítások mozgatását egyik regiszterből egy másikba, ezáltal egy flexibilis processzor-struktúrát hozva létre. Az aritmetikai és logikai műveletek végrehajtását egy funkcionális kombinaciónális egység, az Aritmetikai Logikai egység végzi. A Vezérlőegységnek kell biztosítania az utasításokból származó mikro-utasítások előállítására szolgáló vezérlőjelek sorozatát. Ezek a vezérlőjelek kijelölik az adat útvonalát és a végrehajtandó műveletet. A vezérlőjelek engedélyezik, vagy lezárják az adat útvonalát a fenti ábrán körökkel jelzett pontokban. Egy adat több útvonalon is átvezethető. Azt, hogy éppen milyen útvonalon halad az adat, az éppen végrehajtandó utasítás határozza meg. A központi feldolgozó egység alapstruktúrája a Neumann János által javasolt architektúra, amely tartalmaz egy minimális számú regisztert, és egyéb kiegészítő áramköröket, amelyek biztosítják egy szűkített számú utasítás végrehajtását, egyetlen címzési módot alkalmazva. Az Akkumulátor nagyon fontos szerepet játszik a Neumann elvű gép felépítésében. Ez az akkumulátornak nevezett regiszter tartalmazza az egyik operandust és a művelet végeredménye is az akkumulátorban van eltárolva. III.2.1 A belső sínrendszer megvalósítása a) kapuk segítségével Clk Clk A B C 1 A C 00 A D 01 B C 10 B D 11 C 0 Clk Clk C D 12

13 b) tri-state kimenettel rendelkező regiszterek segítségével C1 O1 O0 Dekódoló Clk OE A Clk OE B C2 O1 O0 Dekódoló Clk C OE= 0 Clk D OE= 0 III.2.2 Utasítás készlet tervezése 1. Adatmozgató utasítások LOAD - Betölti az operandus mezőben megadott memóriacímről az adatot az Akkumulátorba, STORE - Az Akkumulátorban tárolt értéket elmenti az operandus mezőben megadott címen levő memória lokációba. 2. Aritmetikai/Logikai utasítások AND - Logikai ÉS műveletet végez el az Akkumulátorban tárolt érték és az operandus mezőben megadott memóriacímen lévő adat között, majd az eredményt visszatárolja az Akkumulátorba, NAND - Logikai ÉS - NEM műveletet végez el az Akkumulátorban tárolt érték és az operandus mezőben megadott memóriacímen lévő adat között, majd az eredményt visszatárolja az Akkumulátorba, OR - Logikai VAGY műveletet végez el az Akkumulátorban tárolt érték és az operandus mezőben megadott memóriacímen lévő adat között, majd az eredményt visszatárolja az Akkumulátorba, NOT - Bitenként tagadja az Akkumulátorban tárolt értéket, majd az eredményt visszatárolja az Akkumulátorba, XOR - Logikai KIZÁRLÓLAGOS VAGY műveletet végez el az Akkumulátorban tárolt érték és az operandus mezőben megadott memóriacímen lévő adat között, majd az eredményt visszatárolja az Akkumulátorba, SHL (eltolás balra) - Az Akkumulátor tartalmát eltolja 1 helyi értékkel balra, majd az eredményt visszatárolja az Akkumulátorba, SHR (eltolás jobbra) - Az Akkumulátor tartalmát eltolja 1 helyi értékkel jobbra, majd az eredményt visszatárolja az Akkumulátorba, ADD - Összeadja az Akkumulátor tartalmát az operandus mezőben megadott memóriacímről betöltött adattal, az eredményt az Akkumulátorba tárolja, INC - Az Akkumulátor tartalmát megnöveli 1-el, majd az eredményt visszatárolja az Akkumulátorba, COM (kiszámolja egy szám 2-es komplemensét) - Az Akkumulátor tartalmának 2-es komplemensét számolja ki, majd az eredményt visszatárolja az Akkumulátorba. 13

14 3. Ugrási utasítások JMP - Ugrást hajt végre az operandus mezőben tárolt memória címen található utasításra. JZ - Feltételes ugrást (ha az Akkumulátor tartalma nullával egyenlő) hajt végre az operandus mezőben tárolt memória címen található utasításra, JNZ - Feltételes ugrást (ha az Akkumulátor tartalma nullától különbözik) hajt végre az operandus mezőben tárolt memória címen található utasításra, NOP - No Operation Üres utasítás, művelet végrehajtás nem történik, ezért csak közös fázissal rendelkezik. III.2.3 A Neumann architektúra kibővítésének lehetőségei: a) Több általános célú regiszter beépítése több adatnak és címeknek a tárolására. Ezek a regiszterek több belső sínrendszerre kapcsolhatók (ezáltal nagyobb flexibilitást lehet elérni, a műveletek gyorsabb végrehajtását eredményezi, az operandusoknak a regiszterekben való tárolásából adódóan kevesebb adatot kell a memóriából betölteni, ezáltal jelentősen csökken a memória-hozzáférési idő.) PC SP 0-1 A B C D Cím busz TÁR CR A latch B latch AR MUX Adat busz ALU 2) Az aritmetikai és logikai egység kibővítése fixpontos és lebegőpontos szorzás/ osztás műveletekkel. 3) Egy utasítás - puffer alkalmazása, amely alkalmas több előhívott, de még nem dekódolt utasításnak a tárolására. Ez lehetőséget nyújt arra, hogy párhuzamosan (ugyanabban az időben) több utasítást is feldolgozzunk, előhívjunk egy utasítást a 14

15 memóriából, egy másik utasítás végrehajtása alatt, mikor a végrehajtandó utasításnak nem kell a memóriához férnie). Ez a művelet lényegesen csökkenti a végrehajtási időt. Ezt úgynevezett csővezetékes (pipeline) struktúrának nevezzük. Úgynevezett szegmensekből álló processzálási struktúrát alakítunk ki. Minden egyes szegmensen belül egy úgynevezett parciális (részleges) adatfeldolgozást végzünk. A végleges eredményt azután kapjuk, miután az adat végighaladt a csővezeték összes szegmensén. A központi feldolgozó egység esetében az utasításokkal határozható meg egy csővezeték, melynek a célja párhuzamosítani az utasítás-előhívás és végrehajtás fázisokat. A legegyszerűbb csővezetéknek két szegmense van: az utasítás előhívása és az utasítás végrehajtása. A szegmensek eltérő végrehajtási idejéből adódóan a két szegmens közé még elhelyeznek egy előhívott, de még nem dekódolt utasítások tárolására szolgáló puffert. Az utasítások végrehajtási ideje nagyon változó, emiatt a következő csővezeték sokkal hatékonyabb (a csővezeték kapacitása maximálisan ki van használva). 4) Függvényhívás utasítás-implementálása a visszatérítési cím automatikus verembe való mentésével 5) Párhuzamos SIMD (Singel Instruction Multiple Data) és MIMD (Multiple Instruction Multiple Data) adatfeldolgozás megteremtése A SIMD típusú rendszerekben egyetlen vezérlőegység van és párhuzamosan egy vektor elemeit dolgozza fel, megsokszorosítva az aritmetikai logikai egységeket, mindenik ugyanazt a műveletet végezve. A MIMD különálló programokat képes futtatni. III.3 Aritmetikai Logikai Egység Az utasítások által igényelt logikai és aritmetikai műveleteket elvégzése történik a KFEnek ebben az alkotóelemében. Az ALU, az elvégzendő művelet szerint többféle módon valósítható meg. III.3.1 Logikai függvények A logikai függvények implementálása, mint azt az digitális elektronikai ismereteink is alátámasztják, különböző áramköri elemek alkalmazásával valósíthatók meg, amint azt a következő felsorolás bemutatja. 15

16 1. ÉS-NEM kapukkal való megvalósítás esetén a Boole algebra szabályait követve olyan alakra kell hozzuk a logikai függvényeinket, hogy azokban csak ÉS-NEM műveletek szerepeljenek. Az alábbi kifejezésben az AND, OR, XOR, NOT szavak, a CPU Vezérlő Egységétől származó kontrolljelek nevei, melyek az illető művelet elvégzésnek (az egy vagy két regiszterben [AC - akkumulátor, AR adat regiszter] tárolt érték között) végrehajtására utasítja az ALU-t. 2. Multiplexerekkel is megvalósíthatóak a logikai függvények, ha megfelelően választjuk meg az adat és a szelekciós bementekre helyezett változókat és logikai értékeket, amint az alábbi példa is mutatja. MUX 4:2:1 X 0 X X f Y Z 3. ROM memóriákat igen hatékonyan alkalmazhatunk logikai függvények értékeinek tárolására. Ebben az esetben a memória címvonalaira helyezhetjük a függvényünk változóit, az így megcímzett lokációban tárolt érték minden bitje egy-egy logikai függvény értékét fogja adni. Az alábbi példa egy ilyen implementációt mutat be. A0 D0 A1 D1.. A7 D7 OE ROM A2 A1 A0 x y z f0=d0 f1=d III.3.2 Aritmetikai műveletek megvalósítása Összeadó áramkörök Az összeadó áramkörök az alábbi képlet alapján megadott 1 bites összeadókból vannak kiépítve: z i = x i y i c i+1 c i = x i y i + x i c i+1 + y i c i+1 ahol a kimenetek az összeg (zi) és az átvitel (ci), a bemenetek a két összeadandó bit (xi, yi), és az alacsonyabb helyértékről az átvitel (ci-1). zi=xi yi ci+1 16

17 AND A OR B C f Ahhoz, hogy összeadjunk két számot (a bitek számától függetlenül), alkalmazhatunk soros összeadókat. Minden egyes órajelre meghatározzuk a bemeneti biteket (kezdve a legkisebb helyértékű bitekkel). Az átvitelt tároljuk egy bistabilban, és a következő órajelnél, mint kisebb helyértékről tovaterjessztett túlcsordulás, bevisszük az összeadóba. A soros összeadás hátránya, hogy a művelet elvégzésére annyi órajelre van szükségünk, ahány bitet szeretnénk összeadni. Az összeadás gyorsabban elvégezhető, ha úgynevezett párhuzamos összeadó áramköröket használunk. Szorzó áramkörök Kevés bitet tartalmazó számok szorzása megvalósítható kombinacionális áramkörökkel, ezáltal nagy processzálási sebesség érhető el. Az első áramkör két darab hárombites szám szorzatának bitenkénti kiszámolását, míg a második rajz a szorzatok összeadását végzi el. X2 Y0 Y1 Y2 X1 X2Y0 X2Y1 X2Y2 X0 X1Y0 X1Y1 X1Y2 X0Y0 X0Y1 X0Y2 17

18 X2Y0 X2Y1 X2Y2 X1Y0 + X1Y1 + X1Y2 X0Y0 + X0Y1 + X0Y2 + + Z0 Z1 Z2 Egy több bites szorzóáramkör elkészítésénél egyszerűbb felépítésű, de a kombinacionális áramkörökkel megvalósított szorzó áramkörnél lassúbbak a szekvenciális áramkörökkel megvalósított szorzóáramkörök. A kézi számoláshoz hasonlóan a szorzást összeadások és eltolások ismétlésével valósítjuk meg. Az M regiszter tartalmazza a szorzandót, a Q regiszter pedig a szorzót. Az A akkumulátor össze van kapcsolva a Q regiszterrel és lehetőségünk van jobbra eltolni az részleges eredményt. A vezérlőegység kap egy START jelet és órajelet a CPU-tól a szorzási művelet elkezdésére. Azon kívül szintén a vezérlőegység szerepe a belső vezérlőjelek generálása az alábbi diagram alapján: Z3 Z4 Z5 START n=0 M x, AC=0 Q y Y(n)=0 AC<<1 (eltolás) AC<<n (eltolás) AC=AC+M n<4 n=0 STOP n=n+1 18

19 Start: n=0; AC=0; M=1101; Q=1001; Q(n) = 1 igaz AC=1101; n<4 igaz n=1; o o o o o o n=1; AC=1101; Q(n) = 1 hamis AC=11010; n<4 igaz n=2; o o o o o o n=2; AC=11010; Q(n) = 1 hamis AC=110100; n<4 igaz n=3; o o o o o o n=3; AC=110100; Q(n) = 1 igaz AC= ; n<4 hamis n=0; Vége. A számolási sebesség növelésének érdekében csővezetékes aritmetikai egységeket alkalmaznak. Ez abban az esetben kifizetődő, ha a csővezetéket sikerül folyamatosan táplálni adatokkal, mint például vektorműveletek esetében. Az összeadás négy művelete egy négyszintes csővezetékes rendszerrel oldható meg. Az előbbi rajzhoz képest az eltérést a szintek szétválasztására integrált regiszterek jelentik. Ez a csővezetékes struktúra biztosítja 4 adatpár szimultán (párhuzamos) feldolgozását (a négy adatpáron ugyanabban az időben más és más műveleteket hajtunk végre), és minden lépésben egy eredmény véglegesítését. A regiszterek kapacitása egy operandus tárolását biztosítja. Egy szintről a következő szintre való továbblépést egy órajel engedélyezi (vezérli), ez egy szinkron csővezetékes struktúrát eredményez. A vezérlő órajel frekvenciáját a legnagyobb szintek közötti terjedési időhatározza meg, emiatt az összegzőket, eltoló áramköröket, zérós detektorokat a leggyorsabb változatban kell elkészíteni, és lehetőleg egyenlő szintenkénti terjedési idővel, csökkentve így a szintek közötti várakozási időt. 19

20 III.4 Vezérlő Egység A vezérlőegység szerepe az utasítás előhívása a memóriából, az utasítás értelmezése, a megfelelő vezérlőjelek előállítása és kiküldése az adatfeldolgozó egységnek. A vezérlőegység két funkciója azonosítható: Az utasítások szekvencia előállítása (z utasítások sorba állítása) (azon metódusok, amelyek kijelölik a következő végrehajtandó utasítást) Az utasítások értelmezése (metódusok a dekódolt utasítás vezérlőjeleinek előállítására) III.4.1 Az utasítások szekvencia-előállítása Az esetek nagy többségében egy program valamely utasítását az eggyel nagyobb memóriacímen levő utasítás követi. Az előbbi érvből adódóan, a legegyszerűbb megoldás az utasítássorozatok előállítására egy programszámlálónak az alkalmazása, amely az aktuális végrehajtandó utasítás dekódolása után automatikusan inkrementálódik eggyel. Ebben az esetben nem szükséges az utasításkódban meghatározni (megadni) a következő utasítást, csak speciális esetekben, mint: ugróutasítás, függvényhívás, megszakítás. Az ugrási utasítás esetében a vezérlőegység biztosítja a programszámláló párhuzamos feltöltését az utasításkódban meghatározott címmel. Amikor függvényhívás (szubrutin hívás) történik, a szubrutin utasítást követő utasítás címét a vezérlőegység automatikusan elmenti a verembe, a programszámlálóba betöltődik a szubrutin kezdőcíme. A visszatérés a szubrutinból (RETURN) utasítás esetében, a vezérlőegység kiolvassa a verem tetejéről az elmentett (a szubrutin után következő) utasítás címét és betölti a programszámlálóba (PC). III.4.2 Többszintes függvényhívások megvalósítása A processzorok tervezésekor leszögezett kiindulási pontokat ki kell egészíteni a következőképpen, ahhoz, hogy eljárás (függvény) hívást tudjunk bevezetni utasítás forma (címzés) Utasítás kód n Operandus cím m utasítás készlet szükség lesz a CALL (eljárás hívás), RETURN (visszatérés az eljárás végén) és Set SP (Stack Pointer Verem mutató beállítása) utasításokra architektúra (pl. egy db. Akkumulátor központú felépítés), ki kell egészítsük egy N regiszterrel a legegyszerűbb esetben - ahova a visszatérési címet tároljuk el (PC értékét az ugrás előtt) vagy egy m méretű kis, verem típusú memóriával, ha többszintű (m) függvényhívási lehetőséget szeretnénk. a) Egyszintes függvényhívás esetén a CALL utasítás elmenti a PC aktuális értékét az N regiszterbe, majd végrehatja az ugrást az operandus cím mezőbe kódol memória címre, ahol a meghívott függvény első utasítása helyezkedik el. A RETURN utasítás az N regiszterből kiemeli az elmentett értéket és visszatölti azt a PC-ba, tehát folytatódik a CALL előtt abbahagyott program futtatása. 20

21 CALL RETURN PC CR PC CR MEMR MEMR Mem(cím) AR Mem(cím) AR közös fázis AR UR AR UR PC+1 PC PC+1 PC o o o o o o o o o o PC reg(n) N-1 N N+1 N reg(n) PC UR(cim) PC b) Többszintes (pl. M=8 szintes) függvényhívás implementálásához szükségünk lesz M darab regiszterre (verem), így lehetővé válik az is, hogy egy bizonyos függvény más függvényt hívjon meg. Az N regiszter ez esetben egy mutató lesz a következő szabad M-edik regiszterre. Az új utasítások mikor-lépés felbontása, ebben az esetben, a következő: CALL RETURN (közös fázis) (közös fázis) o o o o o o o o o o PC reg(n) N-1 N N+1 N reg(n) PC UR(cim) PC c) Ha a Verem értékeit nem a CPU belső regisztereiben, hanem a RAM-ban szeretnénk tárolni, annak mérete ezáltal jóval megnövekedhet, de az uatsítások végrehajtása is bonyolódik, mivel egy újabb memória hozzáférésre lesz szükség akkor, amikor veremmel dolgozunk. A SP (Stack Pointer) a verem mutató, továbbra is a CPU egy belső regisztere lesz, fel-le számláló, párhuzamos betöltésű vagy resetelhető. CALL (közös fázis) o o o o o PC AR SP CR MEMW AR Mem(CR) SP+1 SP UR(cím) PC RET (közös fázis) o o o o o SP-1 SP SP CR MEMR Mem(CR) AR AR PC 21

22 Példa: x 100; y 102; 5 104; 3 106; ; z 110; 0 112; ; int x, y, z; x=5; y=3; z=x-y; if (z>7) f(); else g(); void f() {z=0;} Void g() {z=-1;} Ezt leprogramozva az általunk definiált utasításokkal: 1. LOAD STORE LOAD STORE LOAD ADD STORE LOAD ADD JZ CALL LOAD STORE RET 15. CALL LOAD STORE RET III.4.3 Az utasítás értelmezése (dekódolása) Négy különböző típusú jelet lehet megkülönböztetni: C'' in - a vezérlőegységtől vagy (ha létezik) a felügyelő egységtől bejövő jelek (START, STOP, valamint más egységekkel való szinkronizálásra használt jelek) C'' out más vezérlőegységek fele kimenő jelek, amelyek jelzik a központi feldolgozó egység állapotát (éppen feldolgozás alatt van egy utasítás, utasítás végrehajtása véget ért stb.) C' in a feldolgozó egységtől beérkező jelek amelyek direkt módon befolyásolják a kimeneti jeleket (hibajelzések, nullával való osztás, állapotbitek, túlcsordulás C' out kimenő jelek, amelyek ellenőrzik (vezérlik) az adatforgalmat és kijelölik a megfelelő műveletet a vezérlőegységben A fő feladata a vezérlőegységnek a C' out típusú kimenő jelek (adatforgalmat vezérlő jelek) előállítása. Az imént említett jelek az alábbi egyszerű rajzon vannak szemléltetve. 22

23 A vezérlőegység elkészítésére több megoldás létezik, amelyek közül a következőkben megemlítjük a huzalozott vezérlőegységet, valamint a mikroprogramozott vezérlőegységet. III.4.4 Huzalozott vezérlőegység A vezérlőegységre egy megvalósítási lehetőség a szekvenciális számlálók alkalmazásán alapszik. A megoldás egy modulo k számlálónak a használata, amelynek kimenetei egy dekódolóra vannak kapcsolva. A dekódoló áramkör k egymást követő, időben egy órajellel eltolt, úgynevezett fázis impulzusokat generál. Lehetőség van a Start jellel a számláló indítására (kezdve a Φ 1 fázissal), a Stop jellel a számláló leállítására, valamint annak tartalmának törlésére. III.4.5 Vezérlőegység megvalósítása mikroprogramozással Ha az utasítások száma növekszik, vagy a központi feldolgozó egység jóval bonyolultabb, komplexebb, a huzalozott vezérlőegység elkészítése nehéz. Bármilyen fajta utólagos módosítás (egy hiba kijavítása, vagy az utasításkészlet módosítása) a vezérlőegység újratervezését igényli. A mikroprogramozás azt jelenti, hogy a vezérlőjelek tárolására és a vezérlőjelek sorba állítására, egy RAM memóriát alkalmazunk, amit vezérlőmemóriának fogunk nevezni. A vezérlőjelek, amelyek egy időben aktívak, egy mikroutasítást alkotnak. Az előhívásuk ugyanúgy történik, mint az utasításoknak a főmemóriából való előhívása. 23

24 Egy halmaz mikroutasítás egy mikroprogramot alkot. Az egy elkészített rendszerek sokkal flexibilisebbek, lehetővé teszik az utólagos módosítást, de lassúbbak, mint a huzalozott megvalósítás. Az UCP minden egyes utasítása egy mikroprogram, amely valósidőben van értelmezve. Az EMULATOR egy mikroprogram halmaz, amely értelmezi egy processzor összes utasítását. A mikroutasítás legegyszerűbb formája két mezőt tartalmaz Vezérlő mező az összes vezérlőjel, amely aktiválódik Címmező- a következő mikroutasítás címe. A vezérlőmező minden egyes bitje, megfelel egy vezérlőjelnek, és az 1 es logikai érték a vonal aktív állapotát jelenti. A megvalósítandó organigrammból kiindulva, megszámoljuk és kódoljuk az állapotokat és a bemeneteket. Ezek fogják jelenteni a címvonalakat. Az adatvonalak (adatjelek) számát az állapotjelek és a vezérlőjelek száma határozza meg. Választunk egy megfelelő méretű ROM memóriát, valamint egy megfelelő méretű cím regisztert, amely biztosítani fogja az utasítások sorba rendezését. III.5 A KFE-ek által alkalmazott címzési módszerek Eddig a pontig nem sok figyelmet szenteltünk arra, hogy a címrész bitjeit hogyan értelmezik az operandusok címeinek meghatározása végett. Egy lehetőség szerint a címrész memóriacímet tartalmaz. Amellett, hogy ekkor a címrész mérete nagy, további hátrány, hogy a címet fordításkor tudni kell. További olyan egyéb lehetőségek vannak, amelyek rövid specifikációt igényelnek és biztosítják a címek dinamikus meghatározását is. A következő szakaszokban néhány ilyen technikát vizsgálunk amit címzési módnak nevezünk. Újból az utasítás forma képezi a tervezés kiindulópontját. Utasítás forma ut. kód címzési forma cím Tekintsük a következő példát. Legyen az alábbi egy sor egy C program része, mely egy változót hoz létre. x=5; Hogyan implementálható ez az utasítás, az eddig megtervezett utasításkészlettel? A fordító le kell tegye az 5-ös értéket a memóriába (pl. a 8-as címre), ahonnan egy LOAD utasítással betölthetjük azt az Akkumulátorba. Ezt nevezzük: Azonnali (érték) címzés vagy Közvetlen címzés Hogyan kezelnénk az esetet, ha be lehetne kódolni az értéket is az utasításba? A legegyszerűbb módja az operandus specifikációjának, ha az operandust közvetlenül az utasításban adjuk meg, nem pedig a címét, vagy más információt, ami leírná, hogy az operandus hol található. Az ilyen operandust közvetlen operandusnak nevezzük, mert automatikusan betöltődik az utasítással, tehát azonnal hozzáférheti felhasználásra. A közvetlen címzésnek az a lényege, hogy nem kíván külön memóriahivatkozást az operandus kiolvasására. A hátránya, hogy ily módon csak konstanst lehet meg adni. Továbbá, az értékek száma korlátozott a mező méretével. Mégis sok architektúra használja ezt a technikát kicsi egész konstansokkal. pl. ADD 7az. AC + 7 AC vagy LOAD 8 8 AC 24

25 Direkt címzés A memóriabeli operandus megadása egyszerűen a teljes címének megadásával megtehető. Ezt a módot direkt címzésnek nevezzük. Mint a közvetlen címzés, direkt címzés használata is korlátozott: az utasítás minden végrehajtása ugyanazt memóriamezőt érinti. Tehát amíg az érték változhat, a hely nem, vagyis a direkt címzés csak olyan globális változók elérésére használható, amelyek címe fordításkor ismert. Azonban sok program használ globális változókat, így ez a módszer széles körben használatos. Ma már nem csak egy AC van a modern processzorokban. Például a következő utasítássorozat végrehajtása közben egy érték többször jár az AC-ban. x=5; y=3; z=x + y; Ha több általános célú regiszterünk (AC szerű) volna a processzorban, akkor több értéket tarthatnánk benn és kevesebb memóriahozzáférésre lenne szükség. Hogyan változnak ennek érdekében az utasításaink? LOAD cím hova töltődik be a megcímzett érték, ha több AC-szerű regiszterünk van (pl. A és B)? Mem(cím) A???? B más utasításra van szükség!!! Az új utasítások bevezetésével szemben az egyetlen alternatív stratégia az utasítás felépítésének megváltozatása, ami elvezet a következő címzési módszerhez, Regiszter címzés A regisztercímzés alapvetően azonos a direkt címzéssel, azzal a különbséggel, hogy memória cím helyett regisztert tartalmaz. Mivel a regiszterek nagyon fontosak (a gyors elérés és a rövid cím miatt), a legtöbb számítógépen ez a címzési mód a leggyakoribb. Sok fordítóprogram alaposan megnézi, hogy mely változókat használják a legtöbbet (pl. ciklusváltozók), és ezeket regiszterekbe tölti. Ez a címzési mód egyszerűen regisztermódként ismert. Csak az olyan utasítások térnek el ettől, amelyek memóriából regiszterbe (LOAD), illetve regiszterből memóriába töltenek (STORE). Még ezeknél az utasításoknál is az egyik operandus regiszter, ahonnan, illetve ahova az operandus töltődik. Út. kód reg cím Példa. Fordítsuk le a következő C LOAD 110 for (i=0, i<8,i++) a[i]=0; STORE 100 STORE 101 STORE 102 STORE 103 STORE 104 STORE 105 STORE 106 STORE 107 ut. kód reg reg i a[i] kódrészletet: 25

26 Megfigyelhetjük, hogy ha a példában használt tömbnek nem 8 hanem mondjuk 1000 eleme lenne, akkor az assembly program igencsak megnőne. E probléma feloldásának érdekében bevezethetünk egy új címzési módszert: Regiszter - indirekt címzés Ebben a címzési módban is a memóriából jön a specifikált operandus, vagy oda megy, mint a direkt címzés esetén, de nem közvetlenül a címe van adva az utasításban. Helyette a címet egy regiszter tartalmazza. Ha egy címet ilyen módon adunk meg, mutatónak hívjuk. A regiszter-indirekt címzés nagy előnye, hogy úgy hivatkozik a memóriára, hogy annak címét nem kell az utasításban tárolni. Továbbá, az utasítás különböző végrehajtása más-más memóriamezőre hivatkozhat. Az utasítás, tehát kell, hogy tartalmazzon egy mezőt, mely jelölésként fogható fel arra, hogy az illető regiszter melyre az utasítás hivatkozik egy memóriacímet tartalmaz, ahol az utasítás végrehajtásához szükséges operandus található. Ezt a módszert alkalmazva, a fenti kódrészlet a következőképpen alakul: LOAD R0, 100 LOAD R1, 8 LOAD R2, 0 IDE: LOAD (R0)cím, R2 ADD R0, 1 ADD R2, -1 JZ R1, IDE Indexelt címzés Ez a címzési módszer egy speciális index regisztert használ, melynek értéke növelhető vagy csökkenthető automatikusan, minden címzés használatkor. Előfordulhat olyan architektúra is, amely két index regisztert alkalmaz, egyet az adatok forrásaként használt cím kiszámításához és egyet a célként használt címhez. Bármely program fordításának előfeltétele az, hogy ismerjük a program helyének a kezdőcímét. A legtöbb esetben, viszont, egy bizonyos programot az operatív tár más és más területére kell betölteni. Ez azt jelenti, hogy a betöltő (pl. Operációs rendszer) a program minden utasításában végigváltoztatja a címeket (pl. hozzáad 300-at). Ezt a művelete, azonban, egy összeadóval és egy regiszterrel, maga a KFE is el tudja végezni. Így jutunk el a következő módszerhez: Bázis relatív címzés Ebben az esetben az abszolút cím kiszámításához, összeadódik a Bázis regiszter tartalma, az utasításba kódolt cím értékkel. (A C-ben írt Pointer típusú változók, ezzel a módszerrel implementálódnak). Mivel az összeadás eredményének értékét ellenőrizhetjük, hogy nem mutasson túl az illető programhoz tartozó memóriaterületen, ezt a módszert tekinthetjük úgy, mint az első lépést a processzorba beépített védelmi mechanizmusok fele. Bázis regiszter Kód Cím + abszolút cím URcím CR helyett: URcím + BR CR 26

27 Indexelt bázis - relatív címzés Az előző két módszer ötvözeteként jön létre, így az abszolút memóriacímek kiszámításához három értékétet kell összeadni: az Index regiszter, a Bázis regiszter illetve az utasításba kódolt cím értékekeit. BR Kód IR Cím + abszolút cím URcím CR helyett: URcím + IR + BR CR 27

28 IV. TÁRAK A MEMÓRIA SZERVEZÉSE IV.1 A memóriák osztályozása A számítógépek memóriája, a felhasználás típusa szerint háromféle lehet: A processzor belső memóriája (regiszterek): nagyon kisméretű, viszont a leggyorsabb, adatok és utasítások ideiglenes tárolására szolgál, Alapmemória vagy központi memória: szintén utasítások és adatok tárolására szolgál, csak a számítógép működése közben aktív, a KFE minden lokációhoz, egy közvetlen kapcsolaton keresztül (címsín, adatsín, vezérlő jelek) hozzáfér Másodlagos vagy háttér memória: nagy kapacitású, igen lassú, adatok hosszú távú tárolására szolgál, tartalma megmarad a számítógép kikapcsolása után is (például merevlemez vagy optikai tároló egységek). Elérési mód szerint megkülönböztetünk: Véltetlen hozzáférésű memória (RAM): bármely memória lokáció elérési ideje ugyanaz, függetlenül annak címétől Soros elérésű memória: valamely memória lokáció elérése előre meghatározott sorrendben történik, az elérési idő változik a cím függvényében, az egyik legjellemzőbb tulajdonsága a keresési idő. A fizikai felépítés alapján a memóriák a következőképpen osztályozhatóak: RAM (Random Access Memory) a gép kikapcsolása után elveszti az adatokat Dinamikus kondenzátorokból épül fel, periodikusan frissíteni kell Statikus D bistabilokból épül fel ROM (Read Only Memory) gyárilag beprogramozott, csak olvasható memória, a gép kikapcsolása után is megőrzi az adatokat EPROM (Erasable Programable ROM) optikai úton (infravörös fénnyel) törölhető, újra programozható memória EEPROM (Electronically Eraseable ROM) elektromosan törölhető, újra programozható FLASH-ROM gyors, nagyszámú törlési/újraírási ciklust támogató ROM memória A központi memória, a továbbiakban RAM, szavakra szervezett. Az adatok írása és olvasása egyidőben történik a szavakat alkotó összes bit esetében. A RAM egy lehetséges felépítése az alábbi ábrán látható. 28

29 D2 D1 D0 D Q D Q D Q CK CK CK 0. Szó D Q D Q D Q CK CK CK 1. Szó A1 A0 D Q D Q D Q 2. Szó CK CK CK D Q D Q D Q 3. Szó CK CK CK CS WR D2 D1 D0 RD A szelekciós jelet (CS) a címvonalak hozzák (pl. A0, A1 a fenti rajzon) létre. Ez a jel kondicionálja a teljes memória működését, azaz a CS az írási és olvasási műveletek engedélyező jele. A címvonalak jelölik ki a kért szót. A kimeneteket three-state áramkörökkel valósítják meg, így közvetlenül rácsatlakoztathatók az adatsínre. Az olvasást és írást irányító vezérlőjeleket, RD és WR, a CPU hozza létre az utasítások végrehajtása közben. Az elérni kívánt lokáció címét el kell küldeni a címsínen a CPU-tól a memória fele a megfelelő kontroll jel aktiválása előtt, annak érdekében, hogy azt helyesen tudja a memória dekódolni. A CPU és a memóriák sebessége közti különbség miatt előfordulhat, hogy a memória nem szolgáltatja időben a kért adatok vagy azt nem tudja azonnal elmenteni. Ilyen esetben a memória kérheti várakozási idő betartását, a READY kontroll jel aktiválásával (lásd az alábbi ábrát). 29

30 a) Olvasási ciklus b) T1 T2 T3 Írási ciklus T1 T2 T3 Órajel Órajel Cím sín Az olvasott adat lokációjának címe Cím sín Az írott adat lokációjának címe Adat sín Adatok Adat sín Adatok RD WR c) Olvasási cilkus T1 T2 TW T3 Órajel Cím sín Az olvasott adat lokációjának címe Adat sín Adatok RD READY A READY vonalat a CPU a T2 ciklusban teszteli. Amennyiben aktív, közbeiktat egy várakozási ciklust TW, melynek elteltével a vonalat újra teszteli. A ciklus addig ismétlődik, míg a memória törli a READY vonalat, ezután következhet a tulajdonképpeni olvasás. Abban az esetben, amikor két processzor speciális architektúra ugyanahhoz a memórialokációhoz szeretne hozzáférni, un. duális port-al rendelkező memóriákat lehet alkalmazni. Az ilyen típusú memóriákkal lehetővé válik két processzor általi, egyidejű leolvasás. Ha egyik processzor írni kezd a memóriába, a másik tevékenysége a READY vonal aktiválásával várakozó állapotba kerül. A megszakítás-logika alkalmazása ebben az esetben opcionális és a processzorok szinkronizálására használják. INT INT RD / WR Két portos RD / WR A Processzor READY Cím sín. RAM READY Cím sín B Processzor Adat sín Adat sín 30

31 IV.2 Memóriák bekötése a processzor címzéstartományába Kössünk be a processzorhoz egy 1 bites statikus RAM-ot a 12-es címre és a D1 adat bitre. T=A0*A1*A2*A3*MEMR OE=A0*A1*A2*A3*MEMW Kössünk be egy 4 szavas memóriát, különböző címekre. IV.2.1 Több memória modul bekötése - példák 1. Egy rendszer címzési tartománya 64 Kbyte. Illesszünk ebbe a rendszerbe két darab, egyenként 16 Kbyte-os RAM-ot az A0 címtől kezdődően egymás után, és egy EPROM-ot a 8 Kbyte-os a címzéstartomány végére. Készítsük el a memória térképet és a bekötési rajzot. 64 Kbyte = 64*2 10 = 2 6 *2 10 =16 címbit 1 RAM = 16*2 10 = 2 4 *2 10 = 14 címvonal 1 EPROM = 8*2 10 = 2 3 *2 10 = 13 címvonal 31

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

A mikroprocesszor felépítése és működése

A mikroprocesszor felépítése és működése A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor

Részletesebben

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

Számítógép felépítése Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége

Részletesebben

A fejlődés megindulása. A Z3 nevet viselő 1941-ben megépített programvezérlésű elektromechanikus gép már a 2-es számrendszert használta.

A fejlődés megindulása. A Z3 nevet viselő 1941-ben megépített programvezérlésű elektromechanikus gép már a 2-es számrendszert használta. Kezdetek A gyors számolás vágya egyidős a számolással. Mind az egyiptomiak mind a babilóniaiak számoló táblázatokat használtak. A helyiérték és a 10-es számrendszer egyesítése volt az első alapja a különböző

Részletesebben

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív

Részletesebben

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

Számítógépek felépítése Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák

Részletesebben

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

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

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

Digitális rendszerek. Utasításarchitektúra szintje Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK 1 Az adatok feldolgozását végezhetjük olyan általános rendeltetésű digitális eszközökkel, amelyeket megfelelő szoftverrel (programmal) vezérelünk. A mai digitális

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. 6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. Neumann elv: Külön vezérlő és végrehajtó egység van Kettes

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

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

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

találhatók. A memória-szervezési modell mondja meg azt, hogy miként Memória címzési módok Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről) a program utasításai illetve egy utasítás argumentumai a memóriában találhatók. A memória-szervezési

Részletesebben

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

Részletesebben

A SZÁMÍTÓGÉP FELÉPÍTÉSE.

A SZÁMÍTÓGÉP FELÉPÍTÉSE. A SZÁMÍTÓGÉP FELÉPÍTÉSE. Alapfogalmak: CPU : Central Processing Unit a központi feldolgozó egység, ez értelmezi a parancsokat és hajtja végre a memóriában tárolt utasításokat. RAM : Random Access Memory

Részletesebben

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben

Informatika érettségi vizsga

Informatika érettségi vizsga Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés

Részletesebben

Processzor (CPU - Central Processing Unit)

Processzor (CPU - Central Processing Unit) Készíts saját kódolású WEBOLDALT az alábbi ismeretanyag felhasználásával! A lap alján lábjegyzetben hivatkozz a fenti oldalra! Processzor (CPU - Central Processing Unit) A központi feldolgozó egység a

Részletesebben

Összeadás BCD számokkal

Összeadás BCD számokkal Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését

Részletesebben

IT - Alapismeretek. Feladatgyűjtemény

IT - Alapismeretek. Feladatgyűjtemény IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program

Részletesebben

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

Részletesebben

Digitális rendszerek. Mikroarchitektúra szintje

Digitális rendszerek. Mikroarchitektúra szintje Digitális rendszerek Mikroarchitektúra szintje Mikroarchitektúra Jellemzők A digitális logika feletti szint Feladata az utasításrendszer-architektúra szint megalapozása, illetve megvalósítása Példa Egy

Részletesebben

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK

IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK IRÁNYÍTÁSTECHNIKAI ALAPFOGALMAK, VEZÉRLŐBERENDEZÉSEK FEJLŐDÉSE, PLC-GENERÁCIÓK Irányítástechnika Az irányítás olyan művelet, mely beavatkozik valamely műszaki folyamatba annak: létrehozása (elindítása)

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

A számítógép egységei

A számítógép egységei A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt

Részletesebben

Központi vezérlőegység

Központi vezérlőegység Központi vezérlőegység A számítógép agya a központi vezérlőegység (CPU: Central Processing Unit). Két fő része a vezérlőegység (CU: Controll Unit), ami a memóriában tárolt program dekódolását és végrehajtását

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

IT - Alapismeretek. Megoldások

IT - Alapismeretek. Megoldások IT - Alapismeretek Megoldások 1. Az első négyműveletes számológépet Leibniz és Schickard készítette. A tárolt program elve Neumann János nevéhez fűződik. Az első generációs számítógépek működése a/az

Részletesebben

1. Generáció( ):

1. Generáció( ): Generációk: 1. Generáció(1943-1958): Az elektroncsövet 1904-ben találták fel. Felfedezték azt is, hogy nemcsak erősítőként, hanem kapcsolóként is alkalmazható. A csövek drágák, megbízhatatlanok és rövid

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

A 32 bites x86-os architektúra regiszterei

A 32 bites x86-os architektúra regiszterei Memória címzési módok Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

Alaplap: közös kapcsolódási felület a számítógép részegységei számára

Alaplap: közös kapcsolódási felület a számítógép részegységei számára Alaplap: közös kapcsolódási felület a számítógép részegységei számára AGP-csatlakozó alaplapi vezérlő chip PCI-csatlakozók rögzítőkeret a hűtőhöz FDD-csatlakozó tápegységcsatlakozó S.ATAcsatlakozók P.ATAcsatlakozók

Részletesebben

Az informatika fejlődéstörténete. A számítástechnika kezdetei

Az informatika fejlődéstörténete. A számítástechnika kezdetei Az informatika fejlődéstörténete A számítástechnika kezdetei A mechanikus számológépek a mechanikus golyós számológépek az abakusz i.e. 2000-től Fogaskerekes számológépek Schickard 1623 négy alapművelet

Részletesebben

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

Máté: Számítógép architektúrák Az GOTO offset utasítás. P relatív: P értékéhez hozzá kell adni a két bájtos, előjeles offset értékét. Mic 1 program: Main1 P = P + 1; fetch; goto() goto1 OP=P 1 // Main1 nél : P=P+1 1. bájt goto P=P+1;

Részletesebben

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. Mikroprocesszor A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. A mikroprocesszor részei A mikroprocesszor a szokásos

Részletesebben

Szekvenciális hálózatok és automaták

Szekvenciális hálózatok és automaták Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával

Részletesebben

A SZÁMÍTÓGÉP KIALAKULÁSA. Zámori Zoltán, KFKI

A SZÁMÍTÓGÉP KIALAKULÁSA. Zámori Zoltán, KFKI A SZÁMÍTÓGÉP KIALAKULÁSA Zámori Zoltán, KFKI ABACUS SZÁMLÁLÁS A MATEMATIKA ALAPJA Nézzük meg mi történik törzsvendégek esetén egy kocsmában. A pintek száma egy középkori kocsmában: Arató András Bornemissza

Részletesebben

Bepillantás a gépházba

Bepillantás a gépházba Bepillantás a gépházba Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív memória: A számítógép bekapcsolt

Részletesebben

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

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Dr. Oniga István DIGITÁLIS TECHNIKA 8 Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

Előadó: Nagy István (A65)

Előadó: Nagy István (A65) Programozható logikai áramkörök FPGA eszközök Előadó: Nagy István (A65) Ajánlott irodalom: Ajtonyi I.: Digitális rendszerek, Miskolci Egyetem, 2002. Ajtonyi I.: Vezérléstechnika II., Tankönyvkiadó, Budapest,

Részletesebben

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

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Egy gépi kódú utasítás általános formája: MK Címrész MK = műveleti kód Mit? Mivel? Az utasítás-feldolgozás általános folyamatábrája: Megszakítás?

Részletesebben

VEZÉRLŐEGYSÉGEK. Tartalom

VEZÉRLŐEGYSÉGEK. Tartalom VEZÉRLŐEGYSÉGEK Tartalom VEZÉRLŐEGYSÉGEK... 1 Vezérlőegységek fajtái és jellemzői... 2 A processzor elemei... 2 A vezérlés modellje... 2 A vezérlőegységek csoportosítása a tervezés módszere szerint...

Részletesebben

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel) Pannon Egyetem Villamosmérnöki és Információs Rendszerek Tanszék Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel) 1. tétel: Neumann és Harvard számítógép architektúrák összehasonlító

Részletesebben

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell

Részletesebben

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés 1. Fejezet: Számítógép The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda

Részletesebben

OPERÁCIÓS RENDSZEREK. Elmélet

OPERÁCIÓS RENDSZEREK. Elmélet 1. OPERÁCIÓS RENDSZEREK Elmélet BEVEZETÉS 2 Az operációs rendszer fogalma Az operációs rendszerek feladatai Csoportosítás BEVEZETÉS 1. A tantárgy tananyag tartalma 2. Operációs rendszerek régen és most

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

A/D és D/A konverterek vezérlése számítógéppel

A/D és D/A konverterek vezérlése számítógéppel 11. Laboratóriumi gyakorlat A/D és D/A konverterek vezérlése számítógéppel 1. A gyakorlat célja: Az ADC0804 és a DAC08 konverterek ismertetése, bekötése, néhány felhasználási lehetőség tanulmányozása,

Részletesebben

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a

Részletesebben

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

Számítógép architektúrák. Bevezetés Számítógép architektúrák Bevezetés Mechanikus számológépek Blaise Pascal (1642) Gottfried Willhelm von Leibniz báró (~1676) Összeadás, kivonás Mai négyműveletes zsebszámológépek mechanikus őse Charles

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Logikai áramkörök. Informatika alapjai-5 Logikai áramkörök 1/6

Logikai áramkörök. Informatika alapjai-5 Logikai áramkörök 1/6 Informatika alapjai-5 Logikai áramkörök 1/6 Logikai áramkörök Az analóg rendszerekben például hangerősítő, TV, rádió analóg áramkörök, a digitális rendszerekben digitális vagy logikai áramkörök működnek.

Részletesebben

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) 65-67 A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) Két fő része: a vezérlőegység, ami a memóriában tárolt program dekódolását és végrehajtását végzi, az

Részletesebben

7. Fejezet A processzor és a memória

7. Fejezet A processzor és a memória 7. Fejezet A processzor és a memória The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.

Részletesebben

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

1. Fejezet: Számítógép rendszerek 1. Fejezet: Számítógép The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda

Részletesebben

1. ábra: Perifériára való írás idődiagramja

1. ábra: Perifériára való írás idődiagramja BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat

Részletesebben

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

Máté: Számítógép architektúrák A mikroprogram Mic 1: 4.. ábra. 51x3 bites vezérlőtár a mikroprogramnak, MPC (MicroProgram Counter): mikroprogram utasításszámláló. MIR (MicroInstruction Register): mikroutasítás regiszter. Az adatút ciklus

Részletesebben

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat 1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat 2. Mit tudsz Blaise Pascalról? Ő készítette el az első szériában gyártott számológépet. 7 példányban készült el.

Részletesebben

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

A számítógépek felépítése. A számítógép felépítése A számítógépek felépítése A számítógépek felépítése A számítógépek felépítése a mai napig is megfelel a Neumann elvnek, vagyis rendelkezik számoló egységgel, tárolóval, perifériákkal. Tápegység 1. Tápegység:

Részletesebben

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

A Számítógépek hardver elemei Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek hardver elemei Korszerű perifériák és rendszercsatolásuk A µ processzoros rendszer regiszter modellje A µp gépi

Részletesebben

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Az utasítás-pipeline szélesítése Horváth Gábor, Belső Zoltán BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-05-19 1 UTASÍTÁSFELDOLGOZÁS

Részletesebben

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése Alapfogalmak Dr. Kallós Gábor 2007-2008. A számítógép felépítése A Neumann-elv A számítógéppel szemben támasztott követelmények (Neumann János,. Goldstine, 1945) Az elv: a szekvenciális és automatikus

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:

Részletesebben

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

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 Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

A számolás és a számítástechnika története. Feladat:

A számolás és a számítástechnika története. Feladat: A számolás és a számítástechnika története Kezdetektől, a huszadik század közepéig Feladat: Milyen eszközöket használtak a számoló/számítógépek megjelenése elo tt a számolás segítésére? Kik készítettek

Részletesebben

Digitális technika VIMIAA02 9. hét

Digitális technika VIMIAA02 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT Processzor adatstruktúrák

Részletesebben

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

Részletesebben

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu

Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu 1 Bevezetés - fogalmak Informatika sokrétű Információk Szerzése Feldolgozása Tárolása Továbbítása Információtechnika Informatika a technikai

Részletesebben

A számítástechnika fejlődése

A számítástechnika fejlődése A számítástechnika fejlődése Az 1600-as évektől kezdődően az emberek igyekeztek olyan gépeket építeni, melyek megkönnyítik a számolást. A számítógépek fejlődését nagy lépésekben követjük. Az egymástól

Részletesebben

Alapismeretek. Tanmenet

Alapismeretek. Tanmenet Alapismeretek Tanmenet Alapismeretek TANMENET-Alapismeretek Témakörök Javasolt óraszám 1. Történeti áttekintés 2. Számítógépes alapfogalmak 3. A számítógép felépítése, hardver A központi egység 4. Hardver

Részletesebben

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD Misák Sándor ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD Nanoelektronikai és Nanotechnológiai Részleg DE TTK v.0.1 (2007.02.13.) 1. előadás 1. Általános ismeretek. 2. Sajátos tulajdonságok. 3. A processzor jellemzői.

Részletesebben

Mutatók és mutató-aritmetika C-ben március 19.

Mutatók és mutató-aritmetika C-ben március 19. Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

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

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 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 Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben

Részletesebben

A számítógép fő részei

A számítógép fő részei Hardver ismeretek 1 A számítógép fő részei 1. A számítógéppel végzett munka folyamata: bevitel ==> tárolás ==> feldolgozás ==> kivitel 2. A számítógépet 3 fő részre bonthatjuk: központi egységre; perifériákra;

Részletesebben

3. óra Számrendszerek-Szg. történet

3. óra Számrendszerek-Szg. történet 3. óra Számrendszerek-Szg. történet 1byte=8 bit 2 8 =256 256-féle bináris szám állítható elő 1byte segítségével. 1 Kibibyte = 1024 byte mert 2 10 = 1024 1 Mebibyte = 1024 Kibibyte = 1024 * 1024 byte 1

Részletesebben

Adatelérés és memóriakezelés

Adatelérés és memóriakezelés Adatelérés és memóriakezelés Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD)

1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD) 1. DIGITÁLIS TERVEZÉS PROGRAMOZHATÓ LOGIKAI ÁRAMKÖRÖKKEL (PLD) 1 1.1. AZ INTEGRÁLT ÁRAMKÖRÖK GYÁRTÁSTECHNOLÓGIÁI A digitális berendezések tervezésekor számos technológia szerint gyártott áramkörök közül

Részletesebben

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL) SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL) SZÁMÍTÓGÉP Olyan elektronikus berendezés, amely adatok, információk feldolgozására képes emberi beavatkozás nélkül valamilyen program segítségével. HARDVER Összes műszaki

Részletesebben

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT Processzor adatstruktúrák

Részletesebben

3. óra Számrendszerek-Szg. történet

3. óra Számrendszerek-Szg. történet 3. óra Számrendszerek-Szg. történet 1byte=8 bit 2 8 =256 256-féle bináris szám állítható elő 1byte segítségével. 1 Kibibyte = 1024 byte mert 2 10 = 1024 1 Mebibyte = 1024 Kibibyte = 1024 * 1024 byte 1

Részletesebben

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

Máté: Számítógép architektúrák MPC új tartalma, JMPC JMPC esetén MPC 8 alacsonyabb helyértékű bitjének és MR 8 bitjének bitenkénti vagy kapcsolata képződik MPC-ben az adatút ciklus vége felé (MR megérkezése után). Ilyenkor Addr 8 alacsonyabb

Részletesebben

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI 1 A digitális áramkörökre is érvényesek a villamosságtanból ismert Ohm törvény és a Kirchhoff törvények, de az elemzés és a tervezés rendszerint nem ezekre épül.

Részletesebben

Fejezetek az Információ-Technológia Kultúrtörténetéből

Fejezetek az Információ-Technológia Kultúrtörténetéből Fejezetek az Információ-Technológia Kultúrtörténetéből Kezdeti elektronikus számítógépek kultúrtörténete ITK 7/58/1 Számológép - számítógép? Lady Ada Lovelace (1815-1852). Charles Babbage (1791-1871) ITK

Részletesebben

Programozható logikai vezérlő

Programozható logikai vezérlő PROGRAMABLE LOGIC CONTROLLER Programozható logikai vezérlő Vezérlés fejlődése Elektromechanikus (relés) vezérlések Huzalozott logikájú elektronikus vezérlések Számítógépes, programozható vezérlők A programozható

Részletesebben

Programozási segédlet DS89C450 Fejlesztőpanelhez

Programozási segédlet DS89C450 Fejlesztőpanelhez Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter

Részletesebben

2. Elméleti összefoglaló

2. Elméleti összefoglaló 2. Elméleti összefoglaló 2.1 A D/A konverterek [1] A D/A konverter feladata, hogy a bemenetére érkező egész számmal arányos analóg feszültséget vagy áramot állítson elő a kimenetén. A működéséhez szükséges

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Egyszerű RISC CPU tervezése

Egyszerű RISC CPU tervezése IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely

Részletesebben