Számítógép-architektúrák 2. fejezet PDF
Document Details
Uploaded by Deleted User
Gábor Dénes Egyetem
Dr. Vári-Kakas István
Tags
Related
- Computer Organization and Architecture PDF
- (The Morgan Kaufmann Series in Computer Architecture and Design) David A. Patterson, John L. Hennessy - Computer Organization and Design RISC-V Edition_ The Hardware Software Interface-Morgan Kaufmann-102-258-pages-4.pdf
- Computer Organization And Architecture - Lecture Notes PDF
- Bihar STET 2023 Computer Science Paper II PDF
- Computer Organization and Architecture PDF
- Lecture 4 - Computer Architecture PDF
Summary
Ez a dokumentum a számítógépek architektúrájával foglalkozik. A fejezet bemutatja a számítógép felépítését, működését és buszrendszerét, beleértve a szoftveres feladatmegoldás fogalmát, az általános célú számítógép felső szintű összetevőit, és a program végrehajtásának folyamatát.
Full Transcript
Számítógép-architektúrák 2. A számítógép felépítése, működése és buszrendszere 2.1. Bevezetés A fejezet bemutatja a szoftveres feladatmegoldás fogalmát, és röviden megvizsgálja az általános célú számítógép felső szintű összetevőit. Az ezen összetevők közötti kölcsönhatáson alapulva tárgyalja a legf...
Számítógép-architektúrák 2. A számítógép felépítése, működése és buszrendszere 2.1. Bevezetés A fejezet bemutatja a szoftveres feladatmegoldás fogalmát, és röviden megvizsgálja az általános célú számítógép felső szintű összetevőit. Az ezen összetevők közötti kölcsönhatáson alapulva tárgyalja a legfontosabb funkció, nevezetesen egy program végrehajtásának teljesítését. Egy utasítássorozat feldolgozásának példája segít megérteni az utasításcikluson belüli ciklusokat. Az egyszerű utasításciklus állapotdiagramját a megszakítási ciklussal kell kiegészíteni. Ezért részletesen tárgyaljuk a megszakítási kérés feldolgozását, és foglalkozunk a többszörös megszakítás kezelésével is. Leírjuk a számítógépes komponensek összekapcsolásához használt alapvető struktúrát és a modulok közötti kommunikáció kezeléséhez szükséges jeleket. A hagyományos buszorientált struktúra mellett a modern számítógépekben gyakran használt pont-pont összeköttetéssel is foglalkozunk. 2.2. A számítógép alkotóelemei Gyakorlatilag minden mai számítógép tervezése a Neumann János által kifejlesztett koncepciókon alapul. Az ilyen tervezést von Neumann-architektúrának nevezik, és három kulcsfogalomra épül: Az adatokat és az utasításokat egyetlen írható-olvasható memóriában tárolják. Ennek a memóriának a tartalma hely szerint címezhető, tekintet nélkül az ott található adatok típusára. A végrehajtás szekvenciális módon történik (hacsak nem módosítják kifejezetten) egyik utasítástól a következőig. Ha egy adott számítást kell elvégezni, alapvetően két lehetőség van: Huzalozott megoldás, amely a különböző logikai komponenseknek az adott feladathoz szükséges konfigurációban való összekapcsolását jelenti (2.1.a ábra). Ez a rendszer adatokat fogad és eredményeket produkál, de minden új feladathoz új hardvert kell kialakítani. Szoftveres programozás, amely a feladatot utasítássorozataként írja le az aritmetikai és logikai komponensek általános célú konfigurációja számára (2.1.b ábra). A teljes program valójában lépések sorozata, minden egyes lépésnél valamilyen műveletet hajtunk végre valamilyen adaton. Minden lépéshez megfelelő vezérlőjelekre van szükség. Minden egyes új programhoz csak egy-egy új kódsorozatot kell megadni. Minden kód tulajdonképpen egy utasítás, és a hardver egy része értelmezi az egyes utasításokat, és vezérlőjeleket generál. 2.1. ábra. A hardveres és a szoftveres feladatmegoldás Dr. Vári-Kakas István Gábor Dénes Egyetem A szoftverrel programozott számítógép előállításához szükséges főbb összetevők a következők (2.2. ábra): Központi feldolgozó egység (central processing unit, CPU), amely az utasítások értelmezését végzi és vezérlőjeleket generál az általános célú aritmetikai és logikai modul (a végrehajtó egység) számára. Fő memória, amely ideiglenesen tárolja a programutasításokat és az adatokat. I/O (input/output) modul a külső tároló- és perifériás be- és kimeneti eszközökkel való kommunikációhoz. 2.2. ábra. A számítógép fő összetevői A CPU két belső regisztert használ a memóriával való adatcseréhez: egy memória-címregisztert (memory address register, MAR), amely megadja a memóriában történő olvasáshoz vagy íráshoz szükséges címet, és egy memória-pufferregisztert (memory buffer register, MBR), amely a memóriába írandó adatot tartalmazza, illetve a memóriából olvasott adatot fogadja. Hasonlóképpen, egy I/O címregiszter (I/O AR) egy adott I/O eszközt határoz meg, és az I/O pufferregiszter (I/O BR ) az I/O modul és a CPU közötti adatcserére szolgál. A programszámlálónak (program counter, PC) nevezett regiszter a következő feldolgozandó utasítás memóriabeli címét tartalmazza. A lehívott utasítás a processzorban lévő utasításregiszterbe (instruction register, IR) töltődik be. A fő memória (más néven belső memória) sorszámozott címekkel meghatározott rekeszekből áll. Minden egyes rekesz egy bináris számot tartalmaz, amely utasításként vagy adatként értelmezhető. Az I/O modul adatokat továbbít a külső eszközökről a CPU-ba vagy a memóriába, és fordítva. Belső puffereket tartalmaz ezen adatok ideiglenes tárolására, amíg azokat tovább nem lehet küldeni. 2.3. A számítógép működése A számítógép alapvető funkciója egy program végrehajtása, amely a memóriában tárolt utasításokból áll. A processzor az utasításokat a memóriából egyenként kiolvassa (lehívja), majd végrehajtja. A program végrehajtása az utasításlehívás (angolul fetch) és az utasításvégrehajtás folyamatának ismétléséből áll (2.3. ábra). Az egyetlen utasításhoz szükséges feldolgozási folyamatot utasításciklusnak nevezzük, amely a lehívási és a végrehajtási ciklusból áll. A program végrehajtása csak akkor áll meg, ha a gép kikapcsol, valamilyen helyrehozhatatlan hiba lép fel, vagy olyan programutasítással találkozik, amely leállítja a számítógépet. Dr. Vári-Kakas István Gábor Dénes Egyetem 2.3. ábra. Az alap-utasításciklus Minden utasításciklus elején a processzor a programszámlálóban tárolt címről a memóriából lehív egy utasítást. Általában a processzor minden egyes utasításlehívás után növeli a PC tartalmát, hogy a következő utasítást az eggyel magasabb memóriacímről hozza be. Ezt a sorrendet csak a program végrehajtása során bekövetkező elágazási feltétel változtathatja meg. A lehívott utasítás az utasításregiszterbe töltődik. A processzor értelmezi az utasítást, és végrehajtja az utasításkód műveleti kódrészében (opkódban) meghatározott kívánt műveletet. A 2.4. ábra egy részleges programvégrehajtást szemléltet, bemutatva a memória és a processzor regisztereinek megfelelő részeit. A bemutatott programrészlet a 940-es címen lévő tárbeli szó tartalmát hozzáadja a 941-es címen lévő szó tartalmához, és az eredményt az utóbbi helyre tárolja. Ebben a példában a processzor egyetlen adatregisztert tartalmaz, amelyet akkumulátornak (accumulator, AC) nevezünk. Vegyük észre, hogy minden utasításban a kód első számjegye a végrehajtandó műveletet adja meg, a másik három számjegy pedig a memóriacímet. Ebben a példában három utasításciklusra van szükség, amelyek mindegyike egy lehívási ciklusból (az ábra bal oldali oszlopa) és egy végrehajtási ciklusból (a jobb oldali oszlop) áll. 2.4. ábra. Egy példa a program végrehajtására Egyes processzorokban egy adott utasítás végrehajtási ciklusa egynél több memóriahivatkozást is tartalmazhat. Továbbá, a memóriahivatkozások helyett egy utasítás ALU vagy I/O műveletet is meghatározhat. E további megfontolások alapján a 2.5. ábra részletesebb áttekintést nyújt a 2.3. ábra alapvető utasításciklusáról. Az ábra állapotdiagram formájában látható. A processzor utasításról utasításra végigjárja az állapotdiagramot. Dr. Vári-Kakas István Gábor Dénes Egyetem Megjegyezzük, hogy a diagram lehetővé teszi több operandus és több eredmény megjelenítését, például egy vektoron vagy egy karakterláncon végrehajtandó utasítás esetén. 2.5. ábra. Az utasításciklus állapotdiagramja 2.4. Megszakítások A megszakítás (interrupt) a felhasználói program normál végrehajtásának felfüggesztése, amelyet egy, a processzoron belül vagy kívül bekövetkező, kezelendő esemény okoz. Amikor egy megszakítási kérést jeleznek a processzornak, az az aktuális program működésének felfüggesztésével válaszol, és az eseményt kiszolgáló másik programra vált, amelyet megszakításkezelőnek neveznek. A megszakítás-feldolgozás befejezése után a felhasználói program végrehajtása folytatódik (2.6. ábra). 2.6. ábra. Megszakításos vezérlésátadás A megszakítások elsősorban a feldolgozás hatékonyságának javítására szolgálnak az eseményekre adott gyors reakció révén. A megszakítás forrásától függően a megszakítások leggyakoribb típusai a következők: I/O. A megszakítást az I/O-vezérlő generálja, hogy a processzortól I/O szolgáltatást kérjen, jelezze egy I/O művelet normál befejezését, vagy valamilyen hibaállapotról értesítsen. Időzítő. A megszakítást a rendszeren belüli időzítő generálja. Ez lehetővé teszi az operációs rendszer számára, hogy bizonyos funkciókat rendszeresen elvégezzen. Program. A megszakítást valamilyen feltétel generálja, amely egy utasítás végrehajtása következtében lép fel (például aritmetikai túlcsordulás, nullával való osztás, illegális gépi utasítás végrehajtásának kísérlete, a felhasználó által engedélyezett memóriaterületen kívüli hivatkozás, vagy akár a programozó által szándékosan okozott megszakítás). Hardverhiba. A megszakítást olyan hiba generálja, mint például áramkimaradás vagy memóriaparitás-hiba. Dr. Vári-Kakas István Gábor Dénes Egyetem A megszakítások befogadására az utasításciklushoz egy megszakítási ciklus is tartozik, ahogyan az a 2.7. ábrán látható. A megszakítási ciklusban a processzor ellenőrzi, hogy történt-e megszakításkérés (amit általában egy megszakítási jel jelenléte jelez). Ha nincs folyamatban megszakítás, a processzor továbblép a lehívási ciklusba és beolvassa az aktuális program következő utasítását. Ha megszakítás van folyamatban, a processzor a következőket teszi: Felfüggeszti az aktuálisan futó program végrehajtását, és elmenti annak kontextusát. Ez a következő végrehajtandó utasítás címének (a programszámláló aktuális tartalmának) és a processzor aktuális tevékenysége szempontjából fontos egyéb regiszterbeli adatok elmentését jelenti. A programszámlálót egy megszakításkezelő vagy megszakításkiszolgáló rutin kezdőcímére állítja. A processzor most a lehívási ciklusba lép és beolvassa a megszakításkezelő program első utasítását. A megszakításkezelő program, amely kiszolgálja a megszakítást, általában az operációs rendszer része. Ez a program általában meghatározza a megszakítás jellegét, és végrehajtja a szükséges műveleteket (például egy I/O művelet végrehajtását). Amikor a megszakításkezelő rutin befejeződik, a processzor visszaállítja a kontextust, és a megszakítás helyétől folytatja a felhasználói program végrehajtását. 2.7. ábra. Megszakításciklussal kiegészített utasításciklus 2.8. ábra. Az utasításciklus állapotdiagramja megszakításokkal Dr. Vári-Kakas István Gábor Dénes Egyetem A 2.8. ábra egy átdolgozott utasításciklus állapotdiagramját mutatja, amely tartalmazza a megszakítási ciklus feldolgozását is. Bizonyos esetekben több megszakítás is előfordulhat. Például egy program adatokat fogadhat egy kommunikációs vonalról, valamint kinyomtathatja az eredményeket. A nyomtató minden egyes nyomtatási művelet befejezésekor megszakítást generál. A kommunikációs vonal vezérlője minden alkalommal megszakítást generál, amikor egy adategység érkezik. Előfordulhat, hogy a kommunikációs megszakítás a nyomtató megszakításának feldolgozása közben történik. A többszörös megszakítások kezelése kétféleképpen történhet: Megszakítások letiltása egy megszakítás feldolgozása közben (2.9.a ábra). Ha ez idő alatt megszakítás történik, az függőben marad, és a processzor a megszakítások engedélyezése után ellenőrzi azt. Így amikor egy felhasználói program végrehajtása közben megszakítás lép fel, a megszakítások azonnal letiltásra kerülnek. A megszakításkezelő rutin befejezése után a felhasználói program folytatása előtt a megszakítások engedélyezésre kerülnek. Ez a megközelítés egyszerű, mivel a megszakítások kezelése szigorúan szekvenciális sorrendben történik, de hátránya, hogy nem veszi figyelembe a relatív prioritást vagy az időkritikus igényeket. A megszakítások prioritásainak meghatározása, és annak lehetővé tétele, hogy egy magasabb prioritású megszakítás megszakítsa egy alacsonyabb prioritású megszakításkezelőt (2.9.b ábra). Ha például a kommunikációs megszakításnak magasabb prioritása van, mint a nyomtatónak, akkor megszakítja a nyomtató megszakításkezelő rutinjának végrehajtását. Ez utóbbi a kommunikációs modul kiszolgálásának befejezése után folytatódik. 2.9. ábra. Többszörös megszakítás kezelése Dr. Vári-Kakas István Gábor Dénes Egyetem 2.5. Buszkapcsolati szerkezet A számítógép három alapvető típusú komponens vagy modul halmazából áll: processzor, memória, I/O. A különböző modulokat összekötő utak gyűjteményét összekapcsolási struktúrának nevezzük. Hagyományosan a busz a számítógépes rendszerelemek összekapcsolásának domináns eszköze. A busz több eszközt összekötő közös kommunikációs útvonal. A buszhoz több eszköz csatlakozik, és bármelyik eszköz által továbbított jelet a buszhoz csatlakoztatott összes többi eszköz is képes fogadni. Természetesen egyszerre csak egy eszköz tud sikeresen továbbítani. A számítógép főbb komponenseit (processzor, memória, I/O) összekötő buszokat rendszerbusznak nevezzük (2.10. ábra). A rendszerbusz jellemzően körülbelül 50-100 különálló vonalból áll, amelyek mindegyike képes bináris 1-et és bináris 0-t jelentő jelek továbbítására. A vonalak bármelyik buszon három funkcionális csoportba sorolhatók: adat-, cím- és vezérlővonalak. Ezen kívül lehetnek tápellátó vezetékek, amelyek a csatlakoztatott modulok tápellátását biztosítják. 2.10. ábra. Buszkapcsolati rendszer Az adatvonalak biztosítják az adatok mozgatását a rendszermodulok között. Ezeket a vonalakat együttesen adatbusznak nevezzük. Az adatbusz 32, 64, 128 vagy még több különálló vonalból állhat, a vonalak számát az adatbusz szélességének nevezzük. Mivel minden egyes vonal egyszerre csak egy bitet tud szállítani, a vonalak száma határozza meg, hogy egyszerre hány bitet lehet átvinni. Az adatbusz szélessége kulcsfontosságú tényező a rendszer általános teljesítményének meghatározásában. Ha például az adatbusz 32 bit széles és minden utasítás 64 bit hosszú, akkor a processzornak minden utasítási ciklus során kétszer kell hozzáférnie a memóriamodulhoz. A címvonalakat az adatbuszon lévő adatok forrásának vagy rendeltetési helyének kijelölésére használják. Például, ha a processzor egy szó (8, 16, 32 vagy 64 bit) adatot kíván kiolvasni a memóriából, akkor a kívánt szó címét a címvonalakra írja. Nyilvánvaló, hogy a címbusz szélessége határozza meg a rendszer maximálisan lehetséges memóriakapacitását. Egy 32 bites címsorbuszon például 232 különböző memóriahelyet lehet megcímezni. A címvonalakat továbbá általában az I/O portok címzésére is használják. A vezérlővonalak az adat- és címvonalak elérésének és használatának szabályozására szolgálnak. Mivel az adat- és címvonalakat az összes komponens megosztva használja, szükség van a használatuk ellenőrzésére. A vezérlőjelek mind a parancs-, mind az időzítési információkat továbbítják a rendszermodulok között. A parancsjelek meghatározzák az elvégzendő műveleteket, míg az időzítési jelek jelzik az adat- és címinformációk érvényességét. Tipikus vezérlővonalak a következők: Memóriaolvasás: a címzett helyről származó adatok elhelyezése az adatbuszon. Memóriaírás: a buszon lévő adatok írása a címzett helyre. I/O olvasás: a címzett I/O portból származó adatok adatbuszra helyezése. I/O írás: a buszon lévő adatok kiküldése a címzett I/O portra. Transfer ACK: az adatátvitel nyugtázása (jelzi, hogy az adatokat elfogadták a buszról vagy elhelyezték a buszon). Bus request: egy modul át kívánja venni a busz használatát. Bus grant: a kérelmező modul megkapta a busz irányítását. Megszakításkérés: jelzi egy modul megszakítási igényét. Interrupt ACK: nyugtázza a függőben lévő megszakítás elfogadását. Órajel: a műveletek szinkronizálását szolgálja. Reset: az összes modult inicializálja. Dr. Vári-Kakas István Gábor Dénes Egyetem A 2.11. ábra a buszra csatlakoztatott egyes modultípusok adatcseréjéhez szükséges jeleket mutatja: Processzor. A processzor beolvassa az utasításokat és az adatokat, vezérlőjelekkel irányítja a rendszer általános működését, a feldolgozás után kiírja az adatokat. Megszakítási jeleket fogad. Memória: A memóriamodul általában N azonos hosszúságú szóból áll. Minden szóhoz egyedi numerikus cím tartozik (0, 1, …, N–1). A memóriából egy szónyi adatot lehet kiolvasni vagy oda beírni. A művelet jellegét olvasási és írási vezérlőjelek jelzik. A művelet helyét egy cím adja meg. I/O modul: A számítógépes rendszer belső szempontjából az I/O modul funkcionálisan hasonló a memóriához. Két művelet van: olvasás és írás. A külső eszköz minden egyes interfészére portként hivatkozhatunk, és mindegyiknek egyedi címet adhatunk (pl. 0, 1, …, M–1) Egy I/O modul egynél több külső eszközt is vezérelhet. A külső eszközzel történő adatbevitelre és -kimenetre vannak külső adatútvonalak. Egy I/O modul képes lehet megszakítási jeleket küldeni a processzornak. 2.11. ábra. Számítógépes modulok Ha egy adatátvitel kezdeményezője (általában a processzor) adatokat kíván küldeni vagy fogadnia buszon, akkor a következő dolgokat kell tennie: (1) megszerzi a busz használatát, (2) a címvonalakra kihelyezi a másik résztvevő címét, és (3) az adatvonalakon adatokat küld vagy fogad. Dr. Vári-Kakas István Gábor Dénes Egyetem 2.6. Buszhierarchia Ha a buszhoz nagyszámú eszköz csatlakozik, a busz szűk keresztmetszetté válhat, mivel az összesített adatátviteli igény megközelíti a busz kapacitását. Ennek megfelelően a legtöbb buszalapú számítógépes rendszer több buszból álló, buszhierarchiába rendezett buszokat használ. Egy tipikus struktúra a 2.12. ábrán látható. Van egy helyi busz, amely a processzort a gyorsítótárral köti össze A mai rendszerekben a gyorsítótár a processzorral azonos csipen van, így nincs szükség külső buszra A gyorsítótár (cache) vezérlője nemcsak ehhez a helyi buszhoz köti a gyorsítótárat, hanem egy rendszerbuszhoz is, amelyhez a fő memóriamodul csatlakozik. Lehetséges lenne az I/O-vezérlőket közvetlenül a rendszerbuszra csatlakoztatni, de hatékonyabb megoldás egy vagy több alacsonyabb szintű busz felhasználása erre a célra. Ez az elrendezés lehetővé teszi, hogy a rendszer sokféle I/O-eszközt támogasson, és ugyanakkor a memória és a processzor közötti forgalmat elszigetelje az I/O- forgalomtól. 2.12. ábra. Tipikus buszhierarchia A gyorsítótár-vezérlő egy hídba vagy pufferelő eszközbe van integrálva, amely a nagysebességű buszhoz csatlakozik. Ez az I/O-busz támogatja a nagysebességű LAN-okhoz, valamint a video- és grafikus munkaállomás-vezérlőkhöz való csatlakozást, valamint a helyi perifériabuszok vezérlőihez – amennyiben vannak –, mint amilyen a SCSI (small computer syístem interface) és a FireWire. Az alacsonyabb sebességű eszközök a bővítőbuszon keresztül csatlakozhatnak. A forgalmat a bővítőbusz és a nagysebességű busz között egy interfész puffereli. Ennek az elrendezésnek az az előnye, hogy a nagy sebességű busz a nagy igényű eszközöket közelebb hozza a processzorhoz, de ugyanakkor ettől független marad. A megosztott buszarchitektúra évtizedekig a számítógép moduljai közötti összeköttetés szabványos kialakítása volt. A kortárs rendszerek azonban egyre inkább a pont-pont összeköttetésre támaszkodnak a megosztott buszok helyett. A változás fő oka az volt, hogy egyre nagyobb adatátviteli sebességeknél egyre nehezebbé válik a szinkronizálási és arbitrálási funkciók időben történő elvégzése. A megosztott buszhoz képest a pont-pont összeköttetés kisebb késleltetéssel, nagyobb adatátviteli sebességgel és jobb skálázhatósággal rendelkezik. A 2.13. ábra egy tipikus konfigurációt mutat, amely támogatja a pont-pont összeköttetés használatát. Egy komplex gyökéreszköz, más néven lapkakészlet (chipset vagy host-bridge) köti össze a processzort és a memória alrendszert a PCI Express kapcsolórendszerrel. A PCI Express (PCIe) egy soros pont-pont összekapcsolási sín, amely a PCI (peripheral component interconnect) nagysebességű I/O busz felváltására szolgál. Dr. Vári-Kakas István Gábor Dénes Egyetem 2.13. ábra. Tipikus kialakítás pont-pont összeköttetéssel A komplex gyökéráramkör pufferelő eszközként működik, hogy kezelni tudja az I/O-vezérlők és a memória- és processzorkomponensek közötti adatátviteli sebességkülönbségeket. Továbbá elvégzi az átfordatást a PCIe formátumai és a processzor, valamint a memória jel- és vezérlési követelményei között. A lapkakészlet általában több PCIe portot támogat, amelyek közül néhány közvetlenül egy PCIe eszközhöz csatlakozik, és egy vagy több olyan kapcsolóhoz, amely több PCIe folyamot kezel. A PCIe végpont egy PCIe-t megvalósító I/O eszköz vagy vezérlő, például egy Gigabit Ethernet, egy grafikus vagy videovezérlő, egy lemezinterfész vagy egy kommunikációs vezérlő. 2.7. Busztípusok A buszok különböző kritériumok szerint osztályozhatók. A buszvonalak hozzárendelésétől függően megkülönböztetünk dedikált és multiplexelt buszokat: A dedikált busz külön cím- és adatvonalakat használ (funkcionális dedikáció), vagy állandóan a komponensek egy részhalmazához van rendelve (fizikai dedikáció). Ez utóbbira tipikus példa az összes I/O-modul összekapcsolására szolgáló I/O-busz használata. A multiplexelt busz ugyanazokat a vonalakat több célra használja az idő különböző pillanataiban (időmultiplexelés). Például a cím- és adatinformációkat ugyanazon a vonalkészleten keresztül lehet továbbítani egy Address Valid vezérlővonal segítségével. Az adatátvitel kezdetén a cím felkerül a buszra, és az Address Valid vonal aktiválódik. Ekkor minden modulnak meghatározott idő áll rendelkezésére, hogy lemásolja a címet, és megállapítsa, hogy ő-e a címzett modul. Ezután a cím eltávolításra kerül a buszról, és ugyanazokat a buszvonalakat használják a következő olvasási vagy írási adatátvitelhez. A buszon zajló események időzítésétől függően vannak szinkron és aszinkron buszok: A szinkron buszon az események bekövetkezését az összes modul számára közös órajel határozza meg. Az aszinkron buszon egy esemény bekövetkezése egy előző eseményt követ és attól függ. Az 2.14. ábra a szinkron olvasási és írási műveletek tipikus idődiagramját mutatja. A legtöbb esemény egyetlen órajelciklust vagy buszciklust foglal el. Az első órajelciklus alatt a processzor memóriacímet helyez el a címvonalakon és különböző állapotvonalakat állíthat be. Olvasási művelet esetén a processzor a második ciklus elején kiad egy olvasási parancsot. Írási művelet esetén a processzor a második ciklus elején az adatokat az adatvonalakra helyezi és az adatvonalak stabilizálódása után írási parancsot ad ki. A memóriamodul felismeri a címet, és a harmadik ciklusban olvasás esetén az adatokat az adatvonalakra helyezi, írás esetén pedig lemásolja az információt az adatvonalakról. Dr. Vári-Kakas István Gábor Dénes Egyetem 2.14. ábra. Egy szinkron busz idődiagramja Az 2.15. ábra egy egyszerű aszinkron olvasási és írási műveletet mutat. A processzor cím- és állapotjeleket helyez a buszra. Miután szünetet tartott, hogy ezek a jelek stabilizálódjanak, kiadja a parancsot (olvasás vagy írás). Írás esetén az adatokat is elhelyezi az adatvonalakon. A művelet befejezése után a memóriamodul a nyugtázó vonalat aktiválja, hogy ezt jelezze a processzornak. Végül, miután a nyugtázó jel megérkezett, a processzor eltávolítja a címet és a parancsot. A koordinációnak ezt a formáját kézfogásnak nevezzük. 2.15 ábra. Egy aszinkron busz idődiagramja Dr. Vári-Kakas István Gábor Dénes Egyetem A szinkron időzítés egyszerűbben megvalósítható és tesztelhető. Azonban kevésbé rugalmas, mint az aszinkron, mivel minden eszköz fix órajelütemhez van kötve. Az aszinkron időzítéssel a gyors és lassú eszközök is megoszthatják a buszt. Mivel egyidejűleg csak egy egység tud sikeresen továbbítani a buszon, valamilyen arbitrációs módszerre van szükség a modulok között, amelyek egyszerre igényelhetik a busz vezérlését. Az arbitrációs módszertől függően léteznek központosított vagy elosztott arbitrációval rendelkező buszok: A központosított arbitrációs rendszerben egyetlen hardvereszköz, az úgynevezett buszvezérlő vagy arbiter felelős a hozzáférési idő elosztásáért a buszon. Az elosztott arbitrációs rendszerben nincs központi vezérlő, hanem minden modul tartalmaz hozzáférési vezérlő logikát, és a modulok együttesen döntenek a busz megosztásáról. 2.8. Összefoglalás Ebben a fejezetben megismerkedtünk a számítógép legfontosabb alkatóelemeivel, azok összekapcsolásával és a köztük lévő kölcsönhatással egy program végrehajtása érdekében. A következő fontos fogalmakkal találkoztunk: ▪ programszámláló (PC) ▪ utasításregiszter (IR) ▪ akkumulátor (AC) ▪ utasításciklus ▪ lehívási ciklus ▪ végrehajtási ciklus ▪ megszakítás ▪ megszakításkiszolgáló rutin ▪ busz ▪ buszhierarchia ▪ rendszerbusz ▪ adatbusz ▪ címbusz ▪ vezérlőbusz ▪ multiplexelt busz ▪ pont-pont összeköttetés ▪ szinkron busz ▪ aszinkron busz Források Felhasznált szakirodalom: W. Stallings, Computer Organization and Architecture, 11th Edition, Global Edition, Pearson Education Limited, 2022. Ábrák, táblázatok forrása: W. Stallings, Computer Organization and Architecture, 11th Edition, Pearson, 2019. (Instructor resources, www.pearson.com/en-us/subject-catalog/p/computer-organization-and- architecture/P200000003394?view=educator&tab=instructor-resources) Dr. Vári-Kakas István Gábor Dénes Egyetem