Számítógép architektúrák tételkidolgozás
2010
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Tartalomjegyzék Tartalomjegyzék ...................................................................................................................................... 1 Nagytételek ............................................................................................................................................. 4 1. Lebegőpontos számok, IEEE 754 szabály..................................................................................... 4 2. Boole algebra. Igazságtábla. Boole függvények megvalósítása, áramköri ekvivalenciája .......... 4 3. Boole algebra legfontosabb azonosságai, dualitás ..................................................................... 5 4. Kombinációs áramkörök, multiplexer, demultiplexer, dekódoló, összehasonlító, programozható tömbök ...................................................................................................................... 6 5. Aritmetikai áramkörök. Léptető, fél és teljes összeadó .............................................................. 7 6. Egy bites ALU (bitszelet). Az ALU-val végezhető műveletek ....................................................... 8 7. Átvitel továbbterjesztő és kiválasztó összeadás.......................................................................... 9 8. Nem kombinációs áramkörök. Óra, tárolók, flip-flop-ok. SR-, időzített SR-, időzített D-tároló .. 9 9. Központi memória. Bájtsorrend ................................................................................................ 10 10. Hamming távolság. Hibaészlelő, hibajavító kódok. ................................................................... 11 11. Direkt leképezésű gyorsítótár és működése. ............................................................................ 12 12. Halmaz kezelésű gyorsító tár, és működése. ............................................................................ 12 13. Memóriába írás módjai gyorsító tár esetén. ............................................................................. 13 14. Az UltraSPARC III másodlagos gyorsító tárának működése....................................................... 13 15. A CPU részei, feladatai, adatút. ................................................................................................. 13 16. A CISC és a RISC kialakulása, a RISC jellemzése. ........................................................................ 14 17. Utasítás szintű párhuzamosítás ................................................................................................. 15 18. Processzor szintű párhuzamosítás............................................................................................. 16 19. Sínek. Sín protokoll. Mester – Szolga. Sín vezérlő, vevő, adó, adóvevő. Sávszélesség, sín szélesség. Sokszorozott sín. ............................................................................................................... 17 20. Sín időzítés: szinkron sín működése. ......................................................................................... 18 21. Sín időzítés: aszinkron sín működése, teljes kézfogás............................................................... 18 22. Sín ütemezés. Sín ütemezők. Sín műveletek. ............................................................................ 18 23. Általános Soros Sín és működése. (USB) ................................................................................... 20 24. PCI Express és működése .......................................................................................................... 21 25. Parallel Input/Output (PIO), valódi és memóriára leképezett I/O eszköz. Teljes és részleges, cím dekódolás.................................................................................................................................... 22 26. A Mic-1 működése, adatút ciklusa. ........................................................................................... 24 27. Mic-1 memória ciklusa .............................................................................................................. 24 28. MPC új értékének kialakulása Mic-1-en, a Mic-1 feltétlen és feltételes elágazó utasításai. .... 24 29. Utasítás betöltő egység, és működése (Mic-2) ......................................................................... 25 30. Csővonalas terv: Mic-3. Eltérések a Mic-2-höz képest. Miért jelent ez gyorsítást? .................. 26 31. Elágazás, eltolási rés. Statikus és dinamikus elágazás jövendölés. ........................................... 27 32. Dinamikus elágazás jövendölés és fajtái. .................................................................................. 28 33. Sorrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés. 29 34. Feltételezett végrehajtás. Emelés. Mellékhatások.................................................................... 29 35. Gépi utasítás szint. Memória modellek (igazítás), memória szemantika. ................................. 30 36. A Pentium 4 üzemmódjai, memória szervezése, regiszterei..................................................... 31 37. Az UltraSPARC III regiszterei, regiszter ablak technikája ........................................................... 32 38. Az I-8051, memória szervezése, óraciklusa. .............................................................................. 33 1
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
39. Operandus megadás különböző módjai. ................................................................................... 34 40. Veremcímzés. Fordított lengyel (postfix) jelölés. Dijkstra algoritmusa. ................................... 35 41. Postfix alakú formulák kiértékelése. ......................................................................................... 35 42. A Pentium 4 utasítás formái, címzési módjai. ........................................................................... 36 43. Az UltraSPARC III utasítás formái, címzési módjai. .................................................................... 37 44. Az I-8051 utasítás formái, címzési módjai. ................................................................................ 38 45. Megszakítás. Csapda. ................................................................................................................ 38 46. Hardver és szoftver tevékenységek megszakításkor, átlátszóság. ............................................ 39 47. Eljárás, rekurzív és re-entrant eljárás. ....................................................................................... 39 48. Feltételes végrehajtás, predikáció............................................................................................. 40 49. Operációs rendszer szintje. Virtuális memória. Laptábla. ......................................................... 40 50. Szegmentálás ............................................................................................................................. 41 51. A Pentium 4 virtuális memóriája ............................................................................................... 43 52. Az UltraSPARC III virtuális memóriája ....................................................................................... 43 53. Mágneslemezek, lemezvezérlők................................................................................................ 44 54. RAID szintek ............................................................................................................................... 45 55. Optikus lemezek ........................................................................................................................ 47 56. Lézernyomtató, half-toning ....................................................................................................... 48 57. Színkeverés, színes nyomtatók fajtái ......................................................................................... 48 58. Megjelenítők (CRT, LCD) ............................................................................................................ 49 59. Terminál. Modemek, jelzési, adatátviteli sebesség................................................................... 50 60. ADSL, kábeles internet .............................................................................................................. 51 Kistételek ............................................................................................................................................... 52 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Fordítás. Értelmezés. ................................................................................................................. 52 Gépi nyelvi szintek és jellemzésük............................................................................................. 52 Számítógép generációk, 0., 1., 2., 3., 4. generáció. ................................................................... 52 Neumann elvű és Harvard típusú számítógépek. ...................................................................... 53 Moore törvény, Nathan első törvénye ...................................................................................... 53 Fixpontos szám ábrázolás, konverzió számrendszerek között. ................................................. 54 Negatív számok ábrázolásai ...................................................................................................... 54 A NEM-ÉS és NEM-VAGY kapu megvalósítása........................................................................... 55 A pulzus generátor és működése .............................................................................................. 55 Invertáló/nem invertáló puffer működése és szerepe a memóriáknál..................................... 55 RAM-ok és ROM-ok fajtái .......................................................................................................... 56 Adat típusok, karakter kódolás.................................................................................................. 56 Gyorsító tár (cache). Találati és hiba arány. Egyesített és osztott gyorsító tár. ........................ 57 Példák sínekre, sín összekapcsolásokra..................................................................................... 58 Az IJVM, az IJVM memória modellje ......................................................................................... 58 A WIDE utasítás hatása és működése Mic-1-en. ....................................................................... 59 FSM (véges állapotú gép, az IFU (Mic-2) működésének bemutatása véges állapotú géppel) .. 59 A Mic-1 és a három sínes architektúra különbségei, az utóbbi előnyei. ................................... 59 Az utasítás betöltő és dekódoló egység, és működése Mic-4-en.............................................. 59 A sorba állító egység és működése Mic-4-en ............................................................................ 60 A MIR1, MIR2, MIR3 és MIR4 regiszterek szerepe, és működése Mic-4-en. ............................ 61 Az elágazó utasítások kezelése Mic-4-en. ................................................................................. 61 2
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
23. FSM (véges állapotú gép, a két bites elágazás jövendölés bemutatása véges állapotú géppel) 61 24. Szimatolás (Pentium 4) .............................................................................................................. 61 25. A Pentium 4, az UltraSPARC III és az I-8051 mikroarchitektúrájának összehasonlítása............ 62 26. A műveleti kód kiterjesztése, menekülő kód. ........................................................................... 62 27. Három, kettő egy és nullacímes utasítások. Implicit operandus............................................... 62 28. Ortogonalitási elv ...................................................................................................................... 63 29. Utasítás típusok. Ciklus szervezés. ............................................................................................ 64 30. Vezérlési folyamat. Szekvenciális vezérlés, elágazás, korutinok ............................................... 64 31. Programozott I/O, pollozásos technika. .................................................................................... 65 32. DMA ........................................................................................................................................... 65 33. Laphiány. Kérésre lapozás, munka halmaz. Vergődés............................................................... 65 34. Lapkezelési eljárások (LRU, FIFO) .............................................................................................. 66 35. Lapméret, belső elaprózódás .................................................................................................... 66 36. A virtuális memória és a gyorsító tár analógiája. ...................................................................... 66 37. SCSI ............................................................................................................................................ 66 38. CD-ROM ..................................................................................................................................... 67 39. CD-R, CD-RW.............................................................................................................................. 67 40. DVD, Blu-Ray.............................................................................................................................. 67 41. Egér ............................................................................................................................................ 68 42. Mátrix nyomtató ....................................................................................................................... 68 43. Tintasugaras nyomtatók ............................................................................................................ 68
3
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Nagytételek 1.
Lebegőpontos számok, IEEE 754 szabály
IEEE 754: a lebegőpontos számok szabványosítása, amelyek kicserélhetők a különböző számítógépek között, és jól működő modell a hardvertervezők számára. Három formát definiál: egyszeres pontosságú (32 bit): o előjelbittel kezdődik o törtrész: 23 bites 2-es alapú o kitevő: 127 többletes, a minimális kitevő 0, a maximális 255 dupla pontosságú (64 bit): o előjelbittel kezdődik o törtész: 52 bites 2-es alapú o kitevő: 1023 többletes, a minimális kitevő 0, a maximális 2047 kiterjesztett pontosságú (80 bit): kerekítési hibák csökkentésére szolgál Normalizált számok: Ha 0
NaN: meghatározatlan értékű szám (pl. ∞/∞ esetén)
2. Boole algebra. Igazságtábla. Boole függvények megvalósítása, áramköri ekvivalenciája Boole-algebra: olyan algebra, amelynek változói, függvényei csak a 0 és 1 értéket veszik fel, műveletei: ÉS (konjukció), VAGY (diszjunkció) illetve NEM (negáció). Kapcsolóalgebra: a Boole-algebra egy speciális típusa A boole-függvényeknek egy, vagy több bemeneti változója van, boole-műveletekből áll és egy eredményt szolgáltat, amely a bemeneti változók értékeitől függ. Pl. a NEM boole-függvény megadása: f(A)=0, ha A=1; f(A)=1, ha A=0; N db változó esetén
db különböző Boole-függvény van. n
Igazságtáblázat: 2 soros táblázat, amely megadja az adott n változós Boole-függvény minden lehetséges kombinációjának értékét.
4
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Bármely Boole-kifejezés meghatározható, ha megmondjuk, hogy a bemenő változók mely kombinációi adnak 1-es kimeneti értéket. (Diszjunktív normálformula) Megegyezés szerint: felülvonás: NEM egymás mellé írás vagy pont: ÉS +: VAGY ̅ ̅ ̅ pl.: Ez a formula közvetlenül megmutatja hogy valósítható meg a függvény szabványos kapuk használatával. Egy Boole függvényt megvalósíthatunk áramkörrel (gyakran különböző módokon is, ha a bemenő és kimenő változókat elektromos jelekkel reprezentáljuk, a műveleteket pedig kapukkal, mint az ÉS, VAGY,és NEM. Boole függvény megvalósításának lépései: 1. írjuk fel a függvény igazságtáblázatát 2. biztosítsunk NEM kapukat minden bemenet komplemensének előállításához 3. rajzoljunk ÉS kaput minden sorhoz, amelynek az eredményoszlopában 1 van 4. kapcsoljuk össze az ÉS kapukat a megfelelő bemenetekkel 5. az összes ÉS kapu kimenetét tápláljuk be egy VAGY kapuba Másik módszer: mindig megvalósítható, de több kaput igényel 1. a fenti megvalósítás lépéseit elvégezzük 2. kicseréljük a többszörös bemenettel rendelkező kapukat két bemenetű kapukból álló, vele ekvivalens áramkörökkel 3. a NEM, ÉS, VAGY kapukat kicseréljük NEM-ÉS és NEM-VAGY kapukra
Áramköri ekvivalencia: cél: kapuk számának csökkentése
Ekvivalens áramkörök: két függvény akkor és csak akkor ekvivalens, ha az összes lehetséges bemenetre ugyanazt a kimenetet adják, ez az igazságtáblázattal ellenőrizhető.
3.
Boole algebra legfontosabb azonosságai, dualitás
Boole-algebra azonosságai: minden szabálynak két formája van, ezek egymás duáljai. Az ÉS és VAGY, valamint az 1 és 0 felcserélésével előállíthatók egymásból. Pozitív logika: 0 V a logikai 0, 3,3-5 V jelenti a logikai 1-et Negatív logika: 0 V a logikai 1, 3,3-5 V jelenti a logikai 0-t
5
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
4. Kombinációs áramkörök, multiplexer, demultiplexer, dekódoló, összehasonlító, programozható tömbök A digitális logika nagyon sok alkalmazása megkívánja, hogy egy áramkör többszörös bemenettel és többszörös kimenettel rendelkezzen, és benne a kimeneteket csak a pillanatnyi bemenetek határozzák meg. Az ilyen áramkört kombinációs áramkörnek (combination circuit) hívjuk. Pl.: multiplexer, demultiplexer, dekódoló, összehasonlító, programozható logikai tömbök. Multiplexer: A digitális logika szintjén a multiplexer egy n olyan áramkör, mely 2 adatbemenettel, 1 adatkimenettel és n darab vezérlőbemenettel rendelkezik. Az n vezérlővonal egy n bites számot kódol, mely meghatározza, hogy a bemenő vonalak közül melyiket irányítsuk a VAGY kapura és ennek megfelelően a kimenetre. A kiválasztott adatbement útképzéssel irányított vagy „kapuzott” (gated) a kimenetre. Használják párhuzamosból sorosba történő konverterként is (klaviatúra billentyűleütés továbbítása). Demultiplexer: A multiplexer inverze a demultiplexer, amely egy n egyedi bemenő jelet irányít a 2 kimenet valamelyikére az n vezérlővonal értékétől függően. Ha a vezérlővonalak bináris értéke k, akkor a k-adik kimenet a kiválasztott kimenet.
Dekódoló: A dekódoló egy olyan áramkör, mely egy n bites számot használ bemenetként, és ki n tudjuk vele választani a 2 kimenet egyikét. Tehát minden kimeneten 0 érték lesz, kivéve a kiválasztott kimenetet.
Összehasonlító: Az összehasonlító (comparator) két bemeneti szót hasonlít össze. Az áramkör KIZÁRÓ-VAGY (XOR) kapun alapul, mely 0-át ad ki, ha a bemenetek egyenlők és 1-et, ha nem egyenlők. A bemeneti szavak bitjei ilyen KIZÁRÓ-VAGY kapukra vannak kötve, így ha minden XOR kapu 0-át ad a kimenetén, akkor a bemeneti szavak megegyeznek. A XOR kapukat egy NEM-VAGY (NOR) kapuval összekapcsolva a kimenetünk egyenlőség esetén 1 lesz, különben pedig 0.
6
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Programozható logikai tömb: A programozható logikai tömb vagy PLA (Programmable Logic Array) egy nagyon általános lapka, mely szorzat-összeg képzésére szolgál. A lapkának 12 bemenő lába, 6 kimenő lába, tápfeszültség és föld kapcsolata van, azaz összesen 20 lábbal rendelkezik. A 12 bemenő láb 12 változó számára szolgál bemeneti vonalként, ezek komplemense a lapkán belül képződik, így összesen 24 bemeneti jel van. Az áramkör szíve egy 50 ÉS kapuból álló tömb, melynek minden egyes kapuja a 24 bemeneti jelnek bármelyik részhalmazát tartalmazhatja. Az hogy melyik bemenő jel melyik ÉS kapura kapcsolódik egy 24*50 bites mátrix határozza meg, melyet a felhasználó állít be. Ezen mátrix programozása a benne található 1200 biztosíték közül a kiválasztott biztosítékok kiégetésével lehetséges. A kimenetet 6 db, egyenként 50 bemenő jellel rendelkező VAGY kapu alkotja (az 50 ÉS kapu kimenete kapcsolódik a 6 VAGY kapuhoz). Itt szintén egy felhasználó által programozható (50*6-os) mátrix mondja meg, hogy ténylegesen mely kapcsolatok léteznek. Az ilyen a mező-programozású (field-programmable) PLA-t még használják, de nagyon sok alkalmazásnál a felhasználó által meghatározott (custom-made) PLA-k a használatosabbak. Ezek nagy részét a felhasználó tervezi meg és a gyártó legyártja a felhasználó specifikációi alapján. Azt ilyen PLA-k olcsóbbak, mint a mező-programozásúak.
5.
Aritmetikai áramkörök. Léptető, fél és teljes összeadó
Léptető: 8 bemenettel, 8 kimenettel rendelkezik. A C vezérlővonal értéke meghatározza a léptetés irányát: 0 esetén balra, 1 esetén jobbra. A szélsők kivételével az összes bithez ÉS kapupárok kapcsolódnak. Amikor C=1, minden kapupár jobb oldali tagja tudja megfelelő bemenő bitet a kimenetre küldeni. Mivel a jobb oldali ÉS kapu kimenete össze van kötve a tőle jobbra eső VAGY kapu bemenetével, jobbra léptetés hajtódik végre. Amikor C=0, az ÉS kapupár bal oldali tagja továbbíjta a jelet, és balra léptetés történik. Összeadók:Két kimenet van feltüntetve: az A és B bemenő jelek összege, valamit az átvitel a következő pozícióba. Félösszeadó:megfelelő két több-bites bemenő szó alsó bitjeinek összeadására, de nem jól működik a szavak középső bitpozícióin, mert nem kezeli a jobbról érkező átvitelt. Teljes összeadó: Két fél összeadóból épül fel. Az összeg kimenő vonal 1, ha az A, B és átvitel bemeneteken páratlan az 1-esek száma. Az átvitel ki akkor 1, ha az A és B
7
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
is 1, vagy pontosan az egyikük 1-es, és az Átvitel be szintén 1. A két fél összeadó együtt számolja ki az összeg- és az átvitel biteket.
6.
Egy bites ALU (bitszelet). Az ALU-val végezhető műveletek ALU vagyis az Aritmetikai és logikai egység az ÉS-t,a VAGY-t, és két gépi szó összeadását biztosítja. n bites szavakra készül, n azonos áramkört tartalmaz az egyes bitpozíciókra. ALU részei: Dekódoló - az innen kijövő engedélyezővonalak segítségével fogja a logikai egység vagy a teljes összeadó elvégezni a műveletet. Logikai egység - az ÉS, VAGY és # (negált) műveletet tudja végrehajtani ez az egység. Teljes összeadó - az A+B-t végzi el, valamint másik ALUból kaphat Átvitelt, valamint adhat átvitelt.
Bemenetei: Kimenetei:
2 vezérlővonal (F0, F1) 3 adatbemenet (A, B, INVA): a bal oldali bemenet a H regiszterhez, a jobb oldali a B sínhez kapcsolódik. 2 engedélyező vonal (ENA, ENB) Átvitel be bit (az előző ALU-tól kapja) Átvitel ki bit (a következő ALU-nak adja át) Kimenet vonal 2 vezérlővonal: egymástól függetlenül használható az ALU kimenetének irányítására SLL8: a tartalmat 1 bájttal balra lépteti, feltöltve nullával a legalacsonyabb helyértékű 8 bitet SRA1: a tartalmat 1 bittel jobbra lépteti változatlanul hagyva a legmagasabb helyértékű bitet.
Az ALU-val végezhető műveletek A ÉS B, A VAGY B, A+B, #A, A+B+1, B-A, B-1, A+1, B+1, 0, 1, -1 Bitszeletek: lehetővé teszik bármilyen szélességű ALU megépítését. INC jel: sorbakapcsolt ALU-knál jut szerephez, hatására 1-gyel növekszik az eredmény (A+’, A+B+1)
8
Szegedi Tudományegyetem
7.
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Átvitel továbbterjesztő és kiválasztó összeadás
Majdnem elképzelhetetlen egy olyan számítógép, amely nem tud egész számokat összeadni. Ahhoz, hogy mondjuk két 16 bites szó összeadásához összeadót építsünk, 16szor meg kell ismételnünk a teljes összeadó áramkört. Az átvitel ki bitet bal oldali szomszédnál az átvitel be ághoz kötjük. A jobb szélső bitnél az átvitel be bitet 0-nak vesszük. Az ilyen típusú összeadót átvitel tovább terjesztő összeadónak nevezzük. Mivel a legrosszabb esetben, ha 1-et hozzáadunk az 111…111 bináris számhoz, az összeadás mindaddig nem lesz kész, míg az átvitel nem halad végig az egész bitsoron a bal szélső bitről a jobb szélső bitig. Léteznek olyan összeadók, amelyeknek nincs meg ez a késleltetése, emiatt gyorsabbak és ezeket általában előnyben részesítik. Ahelyett, hogy a felső rész összeadásához egyetlen összeadót építenénk, két párhuzamosan működő összeadót építünk, megduplázzuk a felső rész hardverét. Így az áramkör most három 16 bites összeadóból áll: az alsó részből és az U0, U1 két felső részéből, ezek párhuzamosan működnek. Átvitel be értékeként 0t töltünk U0-ba és 1-et U1-be. Most mind a kettőt el tudjuk indítani ugyanakkor, amikor az alsó fél is indult, de csak az egyik végeredménye lesz helyes. Amikor a 16 bites összeadás már megtörtént ismert az átvitel be a felső fél számára, akkor a megfelelő felső felet ki tudjuk választani. Ez a trükk felére redukálja az összeadási időt. Az ilyen összeadót átvitelkiválasztó összeadónak nevezzük.
8. Nem kombinációs áramkörök. Óra, tárolók, flip-flop-ok. SR-, időzített SR-, időzített D-tároló Óra: egy áramkör, amely pontosan meghatározott szélességű pulzusok sorozatát bocsátja ki és a köztük lévő intervallumot, amelyet ciklusidőnek (cycle time) nevezünk. Pulzusfrekvencia (1-500 MHz), amit kristályoszcillátor vezérel, órajel (1000ns-2ns). Több esemény történhet, ha ezek sorrendje meghatározott, az órajelet alciklusokra kell osztani.
Tárolók: Az 1 bites memória készítéséhez szükségünk van olyan áramkörökre, amelyik valahogyan „visszaemlékszik” az előző bemeneti értékre. SR-tároló : Két bemenete van S (set) a tároló beállítására és R (reset) pedig a törlésére szolgál. Két kimenete van: Q és ̅. A kombinációs áramkörökkel ellentétben a tároló kimeneteli nem csupán az aktuális bemenettől függnek. Gyakran fontos, hogy a tároló állapotváltozásai csak bizonyos meghatározott pillanatban történjenek. Ennek eléréséhez kicsit módusítjuk az áramkört, így megkapjuk az időzített SR-tárolót.
9
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Időzített SR-tároló: Ez az áramkör egy további bemenettel rendelkezik, az órajellel, amely alaphelyzetben 0. A 0-s órajel hatására az ÉS kapu kimenete 0, tehát a tároló nem változtatja meg állapotát. Amikor az órajel 1, az ÉS kapuk hatása megszűnik, és a tároló érzékeny lesz S-re és R-re. Időzített D-tároló: egy igazi 1 bites memória. A tárolt érték Q-ban mindig elérhető. A D aktuális értékének a memóriába töltéséhez egy pozitív pulzus kell adni órajel bemenetre. Mivel az alsó ÉS kapu mindig komponense a felső kapu bemenetére, a két 1-es bemenet problémája nem fordulhat elő. Flip-flop: Sok áramkörnyék szükséges lehet, hogy egy meghatározott időpontban vegyen minimumát bizonyos vonalon lévő értékről, és tárolja az az értéket. Az órajel 1-es állsnál nem fordul elő állapotváltozás, hanem csak akkor, amikor az órajel átmegy 0-ból 1-be vagy 1-ből a 0-ba. Az órajel hossza nem lényeges, ha elég gyors az átmenet. A flip-flop élvezérelt, míg a tároló szintvezérelt.
9.
Központi memória. Bájtsorrend
A memória a számítógépnek az a része, ahol a programokat és az adatokat tároljuk. Bitek A memória alapegysége, értéke 0 vagy 1. A digitális információ legmegbízhatóbb formája. Memóriacímek Rekesz (cella): a memóriák ebből épülnek fel, mindegyik valamilyen információt tárolhat. Ez a legkisebb címezhető egység. Rekeszcím van minden rekeszhez rendelve, a programok ezzel tudnak rájuk hivatkozni. Minden rekeszben ugyanannyi bit van. Ha egy memóriában n rekesz van, a címek 0-tól n-1-ig terjedhetnek. Ha egy rekesz k bites, akkor 2k különböző bitkombináció valamelyikét tárolhatja. Ha egy cím m bites, akkor a megcímezhető rekeszek száma 2m. Bájt: szabványosított 8 bit hosszúságú rekesz Szavak: bájtokból felépülő memóriaegység. Jelentősége abban van, hogy a legtöbb utasítás teljes szavakkal dolgozik, pl két számot összead. Bájsorrend megadja, hogy a legnagyobb vagy a legkisebb helyiértékű bájtnál kezdődik a számozás. Big Endian:A legmagasabb helyiértékű bájt a legalacsonyabb címen található. Pl Sparc Little Endian: A legmagasabb helyiértékű bájt a legmagasabb címen található. Pl Pentium Mindkét reprezentáció teljesen jó, önmagával konzisztens. A problémák a két különböző bájtsorrendű kommunikációjában lép fel. A megoldás erre, hogy minden adatelem elé egy mezőt helyezünk, hogy a soron következő adat milyen hosszú, és milyen a típusa. Típus Little Endian Big Endian legmagasabb helyiértékű legalacsonyabb címen található a legmagasabb címen bájt a található Alkalmazás SPARC Pentium 2 3 3 2 Ha egy 32 bites szó a+b*256+c*256 +d*256 a*256 +b*256 +c*256+d bájtjainak értéke rendre: a, b, c, d, akkor a szó értéke:
10
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
A szövegek karaktereit mindkét esetben növekvő bájt sorrendben helyezik el Példa: 0
J
I
M
M
I
J
0
4
S
M
I
T
8
H
0
0
12
0
0
16
0
0
M
I
J
J
I
M
T
I
M
S
4
0
H
0
0
0
0
21
0
0
0
1
4
0
0
1
0
T
I
M
S
S
M
I
T
4
8
H
0
0
0
H
0
0
0
8
21
12
21
0
0
0
0
0
0
21
12
4
16
4
1
0
0
0
0
1
4
16
(a) személyi adatstruktúrea nagy endián gépben. (b) ugyanaz kis endián gépben (c) Nagy endián gépről kis endián gépre történt átvitel eredménye (d) előző átvitel a bájtsorrend megfordításával
10. Hamming távolság. Hibaészlelő, hibajavító kódok. Hibafelismerő, hibajavító kódok: a számítógép memóriái hibázhatnak, ennek kiküszöbölésére minden memóriabeli szót kiegészítenek speciális bitekkel. Egy szó kiolvasása előtt a kiegészítő biteket ellenőrzik, hogy történt-e hiba. Kódszó: n bites kódszó, ha n = m+r, ahol m az adatbit száma, r a redundáns bitek száma M bites memóriaszavak esetén 2m érvényes kódszó van. Hamming-távolság: két kódszó eltérő bitpozícióinak száma. Az egyes bitpárokra XOR (kizáró vagy) műveletekkel állapítható meg. Ha két kódszó távolsága d, d darab egyszeres bithiba kell, hogy egyik a másikba alakulhasson. Összes kódszó Hamming-távolsága: az összes érvényes kódszó meghatározása, majd ebben a listában a minimális Hamming-távolság Hibafelismerő, hibajavító képesség: Hamming-távolságtól függ, d egyszeres bithiba felismerése: d+1 távolságú kódolással d egyszeres bithiba javítása: 2d+1 távolságú kódolással Paritásbit: adatbitekhez hozzáadott bit, egyetlen bithibát felismerő kódoláshoz alkalmazható. Értékét úgy választjuk meg, hogy a kódszóban páros (vagy páratlan) számú 1-es legyen. Ennek a kódolásnak Hamming-távolsága 2, mert minden egyszeres bithiba hibás paritásút állít elő. Ha hibás paritású kódszó kerül kiolvasásra a memóriából, hibaüzenetet kapunk, a program leáll. Egyszeres bithiba javításához szükséges ellenőrző bitek száma: m+r < 2r Tetszőleges hosszúságú memóriaszavak hibajavító kódolása: a kódszó hossza n = m+r. A biteket 1gyel kezdődően sorszámozunk, minden egyes bit paritásbit lesz, amelynek sorszáma 2 hatványa, a többi adatbit. Minden paritásbit meghatározott bitpozíciókat ellenőriz. Hibás bit megtalálása: először megadjuk az összes paritásbitet. Ha mindegyik helyes, nem volt hiba. Ezután összeadjuk a hibás paritásbitek sorszámát, az összeg a hibás bit pozíciója.
11
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
11. Direkt leképezésű gyorsítótár és működése. A legegyszerűbb gyorsítótár a direkt leképezésű gyorsítótár. A gyorsítótárban minden egyes bejegyzés (sor) pontosan egy gyorsítótár-vonalat tartalmazhat a főmemóriából. Minden gyorsítótárbejegyzés három részből áll: 1. Valid bit: Jelzi, hogy van-e ebben a bejegyzésben érvényes adat vagy nincs. A rendszer indulásakor minden bejegyzést érvénytelennek jelöl meg. 2. Tag mező: Egy egyedi 16 bites értékből áll, mely a megfelelő memória-vonalat azonosítja, ahonnan az adat jött. 3. Data mező: A memóriában lévő adat másolatát tartalmazza. Ez a mező egy 32 bájtos gyorsítótár-vonalat tartalmaz. A direkt leképezésű gyorsítótárban egy adott memóriaszó pontosan egy helyen lehet tárolva a gyorsítótáron belül. Ha adott egy memóriacím, akkor azt pontosan egy helyen keressük, ha nincs ott, akkor nincs a gyorsítótárban. Az adatok tárolásához és kinyeréséhez a címet négyfelé tagoljuk: 1. TAG mező: A gyorsítótárban tárolt Tag bitek megfelelője. (16 bit) 2. LINE (vonal) mező: Jelzi, hogy melyik gyorsítótár-bejegyzés tartalmazza a megfelelő adatokat, ha azok jelen vannak. (11 bit) 3. WORD (szó) mező: Egy vonalon belül melyik szóra történt hivatkozás. (3 bit) 4. BYTE (bájt) mező: Egy szón belül melyik bájtra van szükség. Egy olyan gyorsítótárnál, amelyik csak 32 bites szavakat szolgáltat, ez a mező mindig 0. (2 bit) Amikor a CPU előállít egy memóriacímet, a hardver kiveszi a címből a 11 LINE bitet, és felhasználja indexelésre a gyorsítótárban, hogy megtalálja a keresett bejegyzést. Ha az a bejegyzés érvényes, akkor a memóriacím TAG mezője és a gyorsítótár bejegyzésének Tag mezője összehasonlításra kerül. Ha megegyeznek, akkor a gyorsítótár-bejegyzés tartalmazza a keresett szót. Ezt az esetet gyorsítótártalálatnak nevezzük. Ha a gyorsítótár bejegyzése érvénytelen vagy a címkék nem egyeznek meg, akkor a keresett bejegyzés nincs a gyorsítótárban, ezt az esetet gyorsítótárhiánynak nevezzük. Ebben az esetben a teljes gyorsítótárvonal betöltődik a memóriából és tárolódik a gyorsítótár-bejegyzésen, helyettesítve azt, ami ott volt. Valamint ha a meglévő gyorsítótár-bejegyzés módosításra került a betöltés óta, akkor vissza kell írni a főmemóriába, mielőtt eldobhatnánk.
12. Halmaz kezelésű gyorsító tár, és működése.
n utas halmazkezelésű gyorsítótár esetén minden címhez n db lehetséges bejegyzés van. 2 és 4, újabban a 8 utas kezelésű. Bonyolultabb, mint a direkt leképzésű
LRU (Least Recently Used) algoritmus: rendezett listát készít minden bejegyzés halmazhoz. Frissül a lista, ha a sorokhoz hozzányúlunk, megjelöli a legutolsóként használt bejegyzést. Ha egy bejegyzést ki kell cserélni, akkor a lista legvégén lévő- azaz legrégebben használt eldobásra kerül. Memóriacím előállítása: minden bejegyzés rendelkezik egy címke-összehasonlító logikával. Ha a gyorsító tár Vonal által mutatott sorában az A, B, C és D bejegyzések egyikében TAG megegyezik a címben lévő TAG-gel, és a hozzá tartozó V=1 (valid), akkor az adat bent van a gyorsító tárban (ebben a bejegyzésben).
12
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
13. Memóriába írás módjai gyorsító tár esetén. Írásáteresztés (write through): bejegyzés azonnali frissítése a főmemóriában. Ha a cím a gyorsítótárban van, oda is be kell írni, különben el kellene dobni a gyorsítósort Késleltetett írás, visszaírás: gyorsítótár találat esetén csak a gyorsítótárba írunk. A memóriába csak gyorsítósor cserénél. Írásallokálás: gyorsítótár hiány esetén is behozza az adatot a gyorsítótárba. Többnyire ezt alkalmazzák késleltetett írás esetén.
14. Az UltraSPARC III másodlagos gyorsító tárának működése. UltraSPARC III gyorsítótárai: A fő memória 64 bájtos gyorsító sorokra van felosztva. A 256 leggyakoribban használt utasítás- és adatsor az L1 gyorsító tárban van. A gyakran használt gyorsító sorok közül azok, amelyek nem férnek már be az L1 gyorsító tárba, a L2 gyorsító tárba kerülnek. Ez a gyorsító tár már véletlenszerűen, vegyesen tartalmaz utasítás- és adatsorokat. Az másodlagos gyorsító tár a CPU lapkán kívül helyezkedik el, mérete 1 MB-tól 8 MB-ig terjed. Két közönséges SRAM-ot, és egy UDB II lapkát (UltraSPARC Data Buffer II) is tartalmaz. Működés: Amikor a CPU-nak egy memóriaszóra van szüksége, azt először az L1 gyorsító tárban keresi. Ha ott van a szó, folytatja a futtatást teljes sebességgel. Ha nincs ott, akkor az L2-vel próbálkozik: Amikor egy gyorsítósor nem található az L1 gyorsítótárban, a CPU a sor azonosítóját (bejegyzéscím) elküldi a L2 gyorsítótárba. A válasz (bejegyzésadat) megadja a CPU számára, hogy a keresett sor bent van- e a L2 gyorsítótárban, és ha igen, milyen állapotban (érvényes/érvénytelen). Ha a gyorsítósor ott van, a CPU elkéri, és meg is kapja. Az adatátvitel szélessége 16 bájt, így négy órajelciklus szükséges a teljes 64 bájtos gyorsítósor átvitelére az első szintű gyorsítótárba.
15. A CPU részei, feladatai, adatút. Minden modern CPU egyetlen lapkán helyezkedik el. A kapcsolatuk a rendszer többi részével jól definiált. Van lábkészlete, ezen keresztül tartja a kapcsolatot a külvilággal. Néhány láb kimeneti jeleket kap a CPU-tól; mások jeleket fogadni a külvilágtól; néhány mind kettőre képes. A CPU lapka lábait 3 csoportba oszthatjuk: cím adat vezérlés Ezek a lábak párhuzamos huzalokon keresztül kapcsolatban vannak a memória és a B/K lapkák hasonló lábaival, ezeket a párhuzamos huzalokat sínnek hívjuk. A CPU memóriával és B/K berendezésekkel úgy tartja a kapcsolatot, hogy jeleket küld és fogad a lábain. Másféle kapcsolat nem lehetséges. Két lényeges paraméter határozza meg a CPU teljesítményét: m címlábak: m címlábbal 2 memóriahelyet tud megcímezni. adatlábak: n adatlábban n bites szavakat tud írni és olvasni egyetlen művelet során A cím- és adatlábakon kívül minden CPU-nak van néhány vezérlőlába is. A vezérlőlábak szabályozzák a folyamatot, a CPU-ból és a CPU-ba mozgó adatok időzítését, és további, vegyes funkcióik is vannak. Minden CPU-nak vannak lábai áramellátásra, a földelére és az órajelre, de a többi láb lapkáról lapkára erősen változik.
13
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
A vezérlőlábak csoportosítása: sínvezérlés megszakítás sínütemezés/kiosztás segédprocesszor jelei állapot vegyes A sínvezérlő lábak főként a CPU-ból a sínre történő kimenetként szolgálnak, megmondják, hogy a CPU olvasni vagy írni akar, vagy valami mást akar tenni. Ezeket a lábakat a CPU a rendszer többi részének vezérlésére használja, és megadja, hogy mit szeretne tenni. A megszakítási lábak a B/K berendezésekből a CPU-ba tartó bemenetek. Néhány CPU-nak kimeneti lába is van; ezen nyugtázza a megszakító jelet. A sínütemezéslábak a sínen a fogalom irányításához szükségesek: megakadályozzák, hogy két berendezés egyszerre használja a sínt. Néhány CPU lakát úgy terveztek meg, hogy együtt működjön a segédprocesszorral. A CPU a segédprocesszor közötti kommunikáció biztosítására speciális lábak szolgálnak, amelyek küldik és fogadják a különböző kérdéseket. Ezeken kívül néhány CPU-nak más célú lábai is vannak. Ezek némelyike az állapotra vonatkozó információt szolgáltat vagy fogad, míg mások a számítógép alaphelyzetbe állításánál használatosak, és megint mások biztosítják a kompatibilitást a korábbi B/K lapkákkal.
16. A CISC és a RISC kialakulása, a RISC jellemzése. A 70-es években sok bonyolult utasítást építettek a gépekbe, mert a ROM-oknak a RAM- okhoz viszonyított nagy sebessége a mikroprogram gyors végrehajtását eredményezte. CISC: (Complex Instruction Set Computer) összetett utasításkészletű számítógép Akár ~200-300 db utasítása is lehetett egy gépnek interpretálást használnak fontos a visszafelé kompatibilitás Az IBM egyszerűbb gépek tervezésébe fogott: a 801-es volt az első kísérleti gép, Seymour Cray ötlete alapján. Nem került piacra, csak 1982-ben publikálták. 1980, Berkeley: olyan VLSI-processzorokat kezdett el tervezni, amelyek nem használtak interpretálást. Az első CPU lapka a RISC I, a második a RISC II nevet kapta. Egy másik változat az MIPS. Továbbfejlesztett változataik a SPARC és MIPS. Az Intel megoldása: Kompatibilitás megtartása érdekében a CISC mag mellé beépítettek egy RISC magot is, amely a legegyszerább és egyben leggyakoribb utasításokat egyetlen adatútciklus alatt hajtja végre, míg a komplikáltabb utasításokat interpretálja a CISC-elvnek megfelelően. RISC- tervezési elvek: 1. Minden utasítást közvetlenül a hardver hajtson végre a. Maximalizálni kell az utasítások kiadásának ütemét b. MIPS: Millions of Instructions Per Second c. minél több utasítást tudunk elindítani, annál jobb lesz a teljesítmény d. függetlenül az hogy mennyi ideig tart az utasítások befejezése e. párhuzamosság 2. Az utasítások könnyen dekódolhatók legyenek. Jó, ha az utasítások a. szabályosak b. egyforma hosszúak c. kevés mezőből állnak 3. Csak a betöltő és tároló utasítások hivatkozzanak a memóriára a. Más operandusok a regiszterekből olvassák ki az adatokat, illetve regiszterbe írják az eredményt b. A memóriaműveleteket a késeltetés illetve az idő miatt legjobb más utasításokkal átfedve végrehajtani 4. Sok regiszter kell (legalább 32), hogy egy beolvasott szó mindaddig regiszterben maradhasson, ameddig szükség van rá. El kell kerülni, hogy kifogyjunk a regiszterekből, mert akkor a memóriába írással illetve olvasással jelentősen lecsökken a teljesítmény.
14
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
17. Utasítás szintű párhuzamosítás Lapkák gyorsítása: órajel frekvenciájának növelésével, párhuzamosság alkalmazásával Utasításszintű párhuzamosítás: az egyes utasításokban rejlő párhuzamosságot használjuk ki Csővezeték: az utasítás végrehajtását több részre osztja. Minden részt külön hardverelem kezel, amelyek egyszerre működnek (fázisok). 1. beolvassa az utasítást a memóriából és elhelyezi egy pufferben 2. dekódolja az utasítást, meghatározza a típusát és a szükséges operandusokat 3. megkeresi és beolvassa az operandusokat 4. végrehajtja az utasítást: az operandusokat átviszi az adatúton 5. visszaírja az eredményt a megfelelő regiszterbe Lehetővé teszi, hogy kompromisszumot kössünk késleltetés és áteresztőképesség között.
Késleltetés: mennyi ideig tart egy utasítás végrehajtása Áteresztő képesség: hány MIPS a processzor sebessége Ha az órajel T ns, a csővezeték n fázisú késleltetés: n*T ns Kettős szállítószalag: közös beolvasó egységű gép. A csővezetékeknek saját ALU-juk van, így párhuzamosan tudnak működni. F_leg a RISC gépek használják, de a Pentiumban is megtalálható. A fő csővezeték az u pipeline (elsőbbséget élvez) a mellékcsővezeték a v pipeline (csak egész műveleteket tud). Két utasítás kompatibilis: bonyolult szabályok határozzák meg az utasítások mindig az eredeti sorrendben hajtódnak végre gyorsabb programokat tudnak előállítani belőlük a fordítóprogramok Szuperskaláris processzor: egy csővezetéke van, több funkcionális egységgel 4, vagy 6 utasítás végrehajtását kezdi el egyetlen órajel alatt S3 fázis lényegesen gyorsabban elő tudja készíteni az utasításokat, mint ahogy az S4 fázis képes azokat végrehajtani. a 4. fázis funkcionális egységeinek többsége egy órajelnél jóval több időt igényel a feladata elvégzéséhez több ALU is lehet az S4 fázisban
15
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
18. Processzor szintű párhuzamosítás Ha 50-szeres, 100-szoros vagy ennél is nagyobb gyorsítást szeretnénk elérni, akkor ennek egyedüli módja, hogy több CPU-t tartalmazó számítógépet tervezünk, és processzorszintű párhuzamosítást alkalmazunk. Tömbprocesszor: Nagy számú, egyforma processzorból áll, melyek ugyanazt a műveletsorozatot végzik el különböző adathalmazokon. A világ első tömbprocesszora (ILLIAC IV, 1972) 4 negyedből állt volna, minden negyedben egy 8*8-as négyzethálóban processzor/memória párokkal és negyedenként egy vezérlőegységgel, mely az utasításokat adja ki, melyeket a hozzá tartozó processzorok szinkronizálva hajtanak végre, úgy hogy az adatokat mindegyik a saját memóriájából veszi. Csupán egy negyedet építettek fel, de ez is elérte az 50 megaflop (millió lebegőpontos utasítás per másodperc) sebességet. Vektorprocesszor: Programozói szemszögből nagyon hasonlít a tömbprocesszorra, de ennél minden összeadás egyetlen szállítószalagelven működő összeadó-egységben zajlik. Adattömbökkel dolgozik, csak úgy, mint a tömbprocesszor, de míg tömbprocesszor esetében annyi összeadó-egység van, mint a vektor elemszáma, addig a vektorprocesszor esetében vektorregisztereket használnak. Egy vektorregiszter több hagyományos regiszterből áll, ezeket a betöltő utasítás egymás után, sorosan tölti fel a memóriából. A vektorok összeadását szállítószalagos összeadó végzi, az eredmény egy újabb vektor, melyet egy újabb vektorregiszterbe lehet tölteni, vagy közvetlenül fel lehet használni egy újabb vektorműveletben. Multiprocesszor: Egy tömbprocesszor feldolgozóegységei nem függetlenek egymástól, mert közös vezérlőegységük van. Az első olyan párhuzamos rendszer, amiben több teljes CPU van, a multiprocesszor. Mely egy olyan rendszer, amiben több CPU közösen használ egy memóriát. A legegyszerűbb implementációs séma, hogy egyetlen sínre csatlakoztatjuk a memóriát és az összes processzort és a sín leterheltségének csökkentése érdekében minden processzornak saját lokális memóriát adunk, amit többi nem érhet el. Más megoldások is elképzelhetőek, például gyorsítótár használata. A multiprocesszor előnye a párhuzamos számítógéppel szemben az, hogy a közös memória programozási modelljét könnyű használni. Multiszámítógép: Nagyszámú összekapcsolt számítógépből álló rendszer, melyben az egyes gépeknek csak saját, lokális memóriájuk van, közös memóriájuk nincs. A multiszámítógép processzorai üzenetek küldésével kommunikálnak egymással. Nagy rendszerekben nem célszerű minden gépet minden másikkal összekötni, ezért 2 és 3 dimenziós hálókat, fákat és gyűrűket használnak.
16
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
19. Sínek. Sín protokoll. Mester – Szolga. Sín vezérlő, vevő, adó, adóvevő. Sávszélesség, sín szélesség. Sokszorozott sín. Sín (bus): különböző eszközök közötti elektronikus pálya. Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább 2 van: 1 belső (speciális célú, CPU és a memória között) és 1 külső (B/K berendezések számára)
Sínprotokoll: a külső sínek működésére vonatkozó pontos, meghatározott szabályok, mechanikai és elektronikus elírások. Ez teszi lehetővé, hogy egy 3. fél által tervezett kártyákat is a rendszerhez lehessen csatlakoztatni. Ezeket a szabályokat az összes csatlakoztatni kívánt eszköznek be kell tartania. Mester (masters): a sínhez csatlakozó aktív berendezés, átvitelt tud kezdeményezni. A memória sosem lehet mester. Szolga (slaves): sínhez csatlakozó passzív berendezés, végrehajtó funkciót tölt be. Ezek a szereposztások tranzakciónként eltérőek lehetnek.
Sínvezérlő (bus driver): digitális jelerősítő, a legtöbb sínmester ezzel kapcsolódik a sínhez. Sínvevő (bus receiver): a legtöbb szolga ezzel kapcsolódik a sínhez Sínadóvevő (bus transceiver): mester és szolga módban is működni tudó eszközök kapcsolódása a sínhez. A sínadóvevő gyakran háromállapotú (tri-state) berendezés, azért hogy le tudjon kapcsolódni a sínről, ha már nem szükséges. Illetve a berendezés lehet (open collector) amely némiképp más módon kapcsolódik a sínre. n
Sínszélesség: egy sín n címvezetékét a CPU 2 különböző memóriarekesz címzésére tudja használni. Szélesebb sínnel több memória címezhető, de több fizikai helyet foglalnak, és nagyobb csatlakozókra van szükségük. Ezek drágábbak, későbbi kompatibilitási problémák. Sávszélesség: továbbítható bitek száma / s Sín gyorsítása: probléma a sínaszimmetria, és a visszafelé kompatibilitás sínciklus idejének csökkentése: több adatátvitel / s sávszélesség növelése: több bit átvitele egyszerre Sínaszimmetria (skew): az egyes sínvezetékeken a jelek kissé eltérő sebességgel haladnak. Minél gyorsabb egy sín, annál nagyobb az aszimmetria. Sokszorozott sín: túl széles sínek problémáját küszöbölik ki közös vezetékek a cím és adat számára a sín működésének kezdetén a vezetékeket címzéshez, később adatátvitelre használják csökkenti a sín szélességét, olcsóbb, mint az osztott cím- és adatvezeték_ sínek csökken a sávszélesség is, de nem olyan mértékben bonyolultabb sínprotokoll szükséges hozzá
17
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
20. Sín időzítés: szinkron sín működése. Egyik vezetékére egy kristály oszcillátor van kapcsolva. Ezen a vezetéken egy 5 és 100 MHz közé eső frekvenciájú négyszög hullámokból álló jel halad. Szinkron sín egy ciklusa: A négyszög hullámok időtartama, minden tevékenység ezek többszörösével működik. Az első ciklus a T1 felfutó élénél kezdődik el és a harmadik a T4 felfutó élnél ér véget. A sínciklust a sínen lévő leglassabb eszköz sebességéhez kell igazítani. Síntevékenységek: 1. cím megadása 2. vezérlőjelek beállítása (MREQ#, RD#) 3. WAIT# jel beállítása, ha szükséges várakozó állapotok beiktatása 4. WAIT# jel negálása, az adatok az adatvezetékekre kerülnek 5. CPU leolvassa az adatvonalakat és beírja a regiszterekbe MREQ: memória elérése folyamatban RD: olvasás van folyamatban WAIT: a sín jele a CPU-nak, hogy nem tudja szolgáltatni az aktuális ciklus végéig az adatot.
21. Sín időzítés: aszinkron sín működése, teljes kézfogás. Nincs órajel. Minden eseményt egy előző esemény okoz. MYSN# - mesterszinkronizáció jel SSYN# - szolgaszinkronizáció jel Működése: cím, RD# és MREQ# beállítása MSYN# beállítása szolga elvégzi a feladatát, majd SSYN# beállítása mester észleli SSYN# beállítását, adatok tárolása, címvezeték, MREQ#, RD#, MSYN# jelek negálása szolga látja MSYN# negálását, SSYN# jel negálása ciklus újrakezdése Teljes kézfogás: Mester: kívánságok beállítása, majd MSYN#, vár Szolga: látja MSYN# - t, dolgozik, majd SSYN#, vár Mester: látja SSYN# - t, dolgozik, ha kell, majd negálja MSYN# Szolga: látja MSYN# negálását, negálja SSYN# - t Akkor indulhat új ciklus, ha SSYN# negált.
22. Sín ütemezés. Sín ütemezők. Sín műveletek. Minden B/K eszköz két részből áll: az egyik rész tartalmazza az elektronika nagy részét; ez a vezérlő vagy kontroller, a másik pedig az eszköz maga. A vezérlő általában egy kártyán van, amely be van dugva valamelyik szabad csatlakozóba, kivéve a nem opcionális vezérlőket, amelyek néha az alaplapon helyezkednek el. A vezérlő feladata, hogy a bitsorozatot nagyobb egységekké állítsa össze, és amint összeálltak, beírja a memóriába. A CPU közreműködése nélkül a memóriát olvasó vagy oda író vezérlő közvetlen memóriaelérést hajt végre. Az adatátvitel befejeződése után a vezérlő egy megszakítást vált ki, amit a megszakítás kezelő hajt végre, amely hibaellenőrzést és egyben speciális teendőket elvégezve értesíti az operációs rendszert, hogy B/K művelet befejeződött, ez után a CPU folytatja a megszakított program futását.
18
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
A cikluslopás lelassítja a számítógép működését. Sínütemező: ha több eszköz (koprocesszor, B/K lapkák) szeretne egyszerre sínmester lenni, akkor egy ütemező mechanizmust végez. Ha két vagy több eszköz egyszerre szeretne sínmester lenni, sínütemező mechanizmusra van szükség, hogy elkerülhessük a káoszt. Centralizált mechanizmus: CPU lapkába van építve, néha külön lapkán szerepel 1 kérés vezeték: huzalozott VAGY - egyszerre több eszköz adhat jelet 1 engedély vonal: egyetlen ütemező dönti el, hogy ki következik az ütemező azt látja, hogy van-e kérés, a kérő eszközök száma nem ismert 1, vagy több prioritási szint: minden szintnek van sínhasználat kérő- és engedélyező vonala. Az egyes szinteken belül a láncolás működik. néha van engedély fogadása vonal: ha beállított, a kérés és engedélyezés vonalakat negálni lehet. Újabb kérés lehetséges sín használata közben → bonyolultabb logika, sínciklusok jobb kihasználtsága Láncolás: az engedélyező vonal végigfut az ütemezőből indulva az összes eszközbe. Minden eszközhöz prioritást rendel, amely az ütemezőtől vett fizikai távolságtól függ o a sínütemező beállítja a sínhasználati engedély jelet o az ütemezőhöz legközelebb lévő eszköz ellenőrzi, hogy ő adta-e ki a kérést o ha igen, átveszi a sín irányítását (sínmesterré válik), ha nem, akkor továbbítja az engedélyt a sorban következő eszköznek
Decentralizált mechanizmus: nincs ütemező minden eszköz figyeli az összes sínhasználat kérő vonalat, így minden sínciklus végén tudja, hogy ő volt-e a legnagyobb prioritású kérő eszköz o több sínvezetéket igényel o eszközök száma nem lehet több a használati kérés vezetékek számánál láncoláshoz hasonló, de nincs ütemező → gyorsabb, és olcsóbb o 1 sínhasználat kérése vonal (huzalozott VAGY), o 1 foglalt vonal (aktuális mester állítja be), o 1 ütemezést megvalósító vonal (végig van láncolva az összes eszközön) o minden eszköz ellenőrzi, hogy szabad-e a sín a be/kimenetein (IN/OUT) o ha az IN negált, az első eszköz negálja az OUT kimeneteit, és így tovább o sínmester: akinél az IN magas és az OUT negált Többféle sínciklus is létezik. A blokkátvitel gyakran hatékony lehet, amikor egy ilyen megkezdődik, a sínmester megadja a szolgának az átvinni kívánt szavak számát, ez után ahelyett, hogy a szolga egyetlen szót adna vissza továbbiakban minden egyes órajel periódusban vissza fog adni egy-egy szót, amíg csak számláló ki nem merül. Többprocesszoros rendszerekben gyakran van egy olvasás-módosítás-visszaírás sínművelet, amely bármelyik CPU-nak lehetővé teszi, hogy beolvasson egy szót, megvizsgálja és visszaírja a memóriába anélkül, hogy közben elengedné a sínt. Ez a fajta sínművelet kizárja, hogy a CPU egy versenytársa használni tudja a sínt és így befolyásolja az első CPU működését.
19
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
A sínciklusok egy másik fontos típusa a megszakítások kezelésére szoltál. Amikor a CPU utasít egy B/K eszközt, hogy egyen meg valamit, általában megszakítást vár visszajelzésként, amikor a feladat elkészült. A megszakítás kérésjelzéséhez szükség van a sínre. Az egyes eszközökhöz prioritásokat rendelünk, egy központi ütemező használatával pedig a leginkább időkritikus eszközöknek maga prioritást adunk.
23. Általános Soros Sín és működése. (USB) Általános soros sín (USB): alacsony sebességű perifériák összekapcsolására fejlesztették ki. Bármikor könnyen, azonos módon lehet sokféle perifériát kapcsolni a géphez, akár a gép működése közben, hardver ismeretek nélkül. Négy vezeték: adatok (2), tápfeszültség, föld Verziói: 1.0: sávszélesség 1,5 Mbs – billentyűzet, egér, scanner, digitális telefon számára 1.1: sávszélesség 12 Mb/s – nyomtatók, digitális fényképez_gépeknek 2.0: sávszélesség 480 Mb/s – nagy sebesség_ eszközöknek (merevlemez, DVD lejátszó) Csomópont (root hub): rendszersínre csatlakozik, több csatlakozót tartalmaz a külső B/K eszközök, vagy további csomópontok számára. 1 ms-onként üzenetekkel (frame) kommunikál az eszközökkel. Konfigurálás: ha a központi elosztó tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja). A frissen csatlakoztatott eszköz címe kezdetben 0. Keret (frame): egy, vagy több csomagból áll. Az egyes csomagok haladhatnak a központból az eszközök felé vagy fordítva. A haladási irány egy kereten belül is változhat. vezérlő (control): eszközkonfigurálás, parancs, állapot lekérdezés izoszinkron: valós idejű eszközöknek használják, pl. telefon. Hiba esetén nem kell ismételni az üzenetet. csoportos (bulk): nagy tömegű adat átvitelére szolgál megszakítás (interrupt): az USB nem támogatja a megszakítást, helyette pl. 50 ms-onként lekérdezhető az eszköz állapota. Csomag: parancs (token): központ küldi az eszköznek o SOF: mindig az első csomag, szinkronizálja az eszközöket o IN (be): adatokat kér az eszköztől. Meg lehet adni, hogy melyik eszköztől milyen adatokra van szükség o OUT (ki): adatok fogadására kéri az eszközt. o SETUP (beállítás): konfigurálja az eszközt. adat (data): 64 bájt információ mozgatása akármelyik irányban o SYN: 8 bit szinkronizáció o PID: a csomag típusa (8 bites) o PAYLOAD: hasznos adat o CRC: ciklikus redundancia kód, az adatátvitel helyességének ellenőrzésére (16 bit) kézfogás (handshake): o ACK: megelőző adatcsomag rendben megérkezett o NAK: átvitel során CRC hiba észlelése o STALL: elfoglaltság jelzése speciális
20
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
24. PCI Express és működése Az alapötlet a következő: a PC legbelül CPU, memória- és B/K vezérlőlapkákból áll, amelyeket össze kell kapcsolni. A PCI Express egy általános célú kapcsolót biztosít a lapkák összekötéséhez soros kapcsolat segítségével. Gyorsítótár: A gyorsítótár hagyományos módon kapcsolódik a csatoló lapkához. Kapcsoló: Központosított kapcsoló a több leágazású sín helyett. Mindegyik B/K lapkának saját egyedi összeköttetése van a kapcsolóhoz. Kapcsolat: Minden eszközt azonos módon kezelnek: keskeny közvetlen soros kapcsolat a széles, párhuzamos sín helyett. Mindegyik kapcsolat két egyirányú csatornából álló pár. Az egyik csatorna a kapcsolóhoz, a másik pedig a kapcsolótól szállít adatokat. Mindegyik csatorna két vezetéket jelent. Egyik a jel számára, a másik a föld számára, amely így nagy zajtűréssel rendelkezik a nagy sebességű átvitel során. Csomagforgalom: A csomagfogalom egy fejlécből és a hasznos adatból áll (a hálózatok világából származik). A fejléc vezérlési-információt tartalmaz, így nincs szükség sok vezérlőjelre, mint a PCI sínnél. A hasznos adat tartalmazza az átvinni kívánt adatot. Valójában egy PC a PCI Express-szel egy kicsi csomagkapcsolt hálózat. CRC (ciklikus redundancia kód): Hibajelző kód, amellyel a PCI sínnél nagyobb fokú megbízhatóság érhető el, ha a számított és kapott CRC megegyezik, akkor nyugtázza a rendszer a kapott adatot, különben újrakéri. Kapcsolat hossza: A kapcsolat egy lapka és egy soros kapcsoló között hosszabb lehet, mint a PCI esetében, elérheti az 50cm-t is. Ez megengedi a rendszer áttervezését. Bővíthetőség: A rendszer bővíthető, mivel az eszköz lehet akár egy másik soros kapcsoló is, amellyel a kapcsolók fastruktúráját hozhatjuk létre. Plug & Play: Az eszközök futás közben csatlakoztathatók és eltávolíthatók. Méret: A soros csatlakozók sokkal kisebbek, mint a régi PCI-csatlakozók, így az eszközök és a számítógépek sokkal kisebbek lehetnek. Folyamatvezérlő mechanizmus: Megakadályozza a küldő és fogadó eltérő sebességéből eredő adatvesztést. Mindent egybevéve, mindez jelentős eltávolodást jelent a PCI síntől. Kapcsolati protokollrendszer Maradva a csomagkapcsolt hálózati modellnél, a PCI Express réteges kapcsolati protokollrendszerrel rendelkezik. A protokoll a két fél között párbeszédet irányító szabályok egy halmaza. A protokollrendszer protokollok hierarchiája, amelyben az egyes problémákkal külön rétegekben foglalkoznak. A réteges protokollok a hatékony, moduláris tervezést szolgálják és évtizedek óta széles körben elterjedtek a hálózati szoftverek világában. Ami újdonság, hogy most a sínhardverbe is beépítésre kerültek: Fizikai réteg: A legalsó réteg a fizikai réteg. Azzal foglalkozik, hogy biteket továbbít a küldőtől a fogadónak egy közvetlen kapcsolaton keresztül. Minden egyes kapcsolat egy vagy több szimplex (azaz egyirányú) csatornapárból áll. A legegyszerűbb esetben egy pár van, egy-egy csatorna mindkét irányban, de 2, 4, 8, 16 vagy 32 pár is megengedett. Egy-egy csatornát sávnak neveznek. A sávok számának mindkét irányban azonosnak kell lennie. Az első generációs termékeknek bármely irányban legalább 2,5 Gbps sebességet kell biztosítaniuk, de azt remélik, hogy a sebesség hamarosan mindkét irányban eléri a 10 Gbps-t. Kapcsolati réteg: A csomagok átvitelével foglalkozik. Fogja a tranzakciós rétegtől kapott fejlécet és hasznos adatot, egy sorszámot és egy CRC-nek nevezett hibajelző kódot ad hozzá.
21
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Tranzakciós réteg: A tranzakciós réteg kezeli a síntevékenységeket és a kapcsolati réteg által biztosított nyers csomagküldést további szolgáltatásokkal egészíti ki. Minden tranzakció az alábbi négy címtartomány egyikét használja: 1. Memóriaterület 2. B/K terület 3. Konfigurációs terület (plug-and-play) 4. Üzenetterület (hardver-vezérlőjel szerepét veszi át) Szoftverréteg: A PCI Express rendszer a szoftverrétegen keresztül csatlakozik az operációs rendszerhez. Képes a PCI sín emulálására, így a létező operációs rendszerek változtatás nélkül tudnak működni a PCI Express rendszert alkalmazva.
Évtizedek óta nagy sikerrel használják a hálózatok világában azt az elképzelést, hogy miden réteg a protokoll rétegeiben egyre mélyebbre haladva további kiegészítő információt ad az adatokhoz. A hálózatok és a PCI Express között az a nagy különbség, hogy a hálózatok esetében a különböző rétegekben lévő kód majdnem mindig szoftver, amely az operációs rendszer része. A PCI Expressnél ez mind az eszközben lévő hardver része.
25. Parallel Input/Output (PIO), valódi és memóriára leképezett I/O eszköz. Teljes és részleges, cím dekódolás. Parallel Input/Output: egy központi egységben futó program állapotát (0 vagy 1) tudja írni tetszőleges vonalára, vagy be tudja olvasni bármely vonal állapotát. Nagyfokú rugalmasságot biztosít. TTL (logikai jelszinteket használó) kompatibilis eszközökhöz tud kapcsolódni (pl. billentyűzet, kapcsolók, nyomtatók) Aszinkron eszközökhöz „kézfogás” logika van beépítve PIO részei: 3 port: A, B, C – mindegyik egy 8 bites tároló regiszterhez csatlakozik 8 db adatsínre csatlakozó vonal A0-A1: címvonalak a 3 port+állapotregiszter kiválasztására – a címsín két legalsó vezetékéhez van kapcsolva #CS: lapkaválasztó vonal #WR/#RD: írás/olvasás jelzése RESET: alaphelyzetbe állítás
22
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
PIO működése: egy portot használhatunk kimenetként: a központi egység beírja a megfelelő 8 bites számot a megfelelő regiszterbe, ez megjelenik a kimenő vonalakon, ott meg is marad a regiszter újraírásáig bemenetként: a központi egység csak a megfelelő tárolót kiolvassa
Valódi és memóriára leképezett I/O eszköz kétféle módszer létezik egy PIO lapka kiválasztására – mint valódi B/K eszköz, vagy mint a memória egy területe.
Valódi B/K eszköz: külön sínvezetékre van szükség: jelzi, hogy nem a memóriát használjuk Memóriára leképezett B/K eszköz: 4 memóriabájt: 3-at a három port és 1-et a vezérlőregiszter számára ki kell jelölnünk EPROM: 2 KB címterületet igényel RAM: 2 KB-ot igényel a memóriából PIO: 4 bájtot igényel
Egy lehetséges memóriára leképezés: legyen 64 KB a teljes címterület EPROM: 0-tól 2 KB-ig terjed_ címterületet foglalja el, minden olyan cím, amelynek a legfelső 5 bitje nulla: 0000 0xxx xxxx xxxx RAM: 32-34 KB közötti területet – hasonlóan az EPROM-hoz, minden olyan cím, amelynek a legfelső bitjei: 1000 0xxx xxxx xxxx (inverterrel megvalósítható) PIO: memória legfelső bájtját foglalja el – 65532-65535 közötti – cím alakja 1111 1111 1111 11xx Címdekódolási módszerek Teljes címdekódolás: ha csak CPU, két memórialapka és PIO van, akkor 4 NEM-ÉS-t tartalmazó lapka elegendő, egyébként a felépítése 4 db nyolc bemenetű NEM-ÉS lapka 1 VAGY kapu 1 lapka: amelyen 3 inverter van csak az EPROM címeinél 0 a legfelső címvezeték → összeköthető a #CS láb és A15 RAM kiválasztására elegendő 2 bites dekódoló PIO: minden cím, amely 11-gyel kezdődik Részleges címdekódolás: nem a teljes címet használja tulajdonság: minden olyan cím esetében, amely a címtartomány alsó felére mutat, az EPROM lesz kiválasztva túlságosan nagy címterületet köt le → kerülendő Teljes címdekódolás
Részleges címdekódolás
23
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
26. A Mic-1 működése, adatút ciklusa. Mic-1 processzor adatútciklusának lépései a következők: 1. MIR (MicroInstruction Register) feltöltődik az MPC által mutatott szavával. 2. Kialakul a B sín kívánt tartalma, ALU és a léptető megtudja, mit kell csinálnia 3. Az ALU és a léptető elvégzi a feladatát, a C sín, N (negative) és Z (zero) megkapja az új értékét 4. A regiszterek feltöltődnek a C sínről (MBR/MDR megkapja az értékét, ha az előző ciklus adatot kért a memóriától) 5. Kialakul az MPC új értéke 6. Memória ciklus kezdete A szöveg melletti képen egy MIC-1 processzor adatútját lehet látni, mely áll három sínből, ahol az A sín csak a H regiszterből kap elemet, a B sín, az MDR, PC, MBR, SP, LV, CPP, TOS, OPC-ből kaphat értéket, és a C sín pedig a H, OPC, TOS, CPP, LV, SP, PC, MDR, MAR-ba rakhat értéket.
Mic-1 működése (tulajdonképpen ez az adatútciklus leírva, és egy kicsit kibővítve)
27. Mic-1 memória ciklusa A memóriaművelet az adatút ciklus végén kezdődik, mikor feltöltődtek a regiszterek, és a következő ciklus végén áll rendelkezésre. Ha a mikroutasítás módosította a memóriacímet, akkor a memóriacím a módosított MAR, ill. PC értéke lesz. Az olvasás eredménye csak 2 ciklussal később használható az ALU-ban, mert MBR és MDR csak a következő adatút ciklus végén töltődik fel a memóriából, így a régi érték használható abban a ciklusban, amelyben a memóriaolvasás megtörténik. Tehát addig használható a régi érték, amíg az olvasás nem írja felül.
28. MPC új értékének kialakulása Mic-1-en, a Mic-1 feltétlen és feltételes elágazó utasításai. A legnagyobb és a legfontosabb elem a gép vezérlőrészében egy memória, melyet vezérlőtárnak nevezünk. Egy komplett mikroprogramot tartalmazó memóriára általában vezérlőtáblaként hivatkozunk. Működését tekintve a vezérlőtár egy memória, amely ISAutasítások helyett egyszerűen mikroutasításokat foglal magában. A főmemóriában lévő utasítások végrehajtása mindig címsorrendben történik a mikroutasításoké pedig nem.
24
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Mivel a vezérlőtár működését tekintve memória, szüksége van saját memóriacím-regiszterre és saját memóriaadat-regiszterre. Nincs szükség olvasó- és írójelekre, mert folyamatosan olvassuk. A vezérlőtár memóriacím-regiszterét MPC-nek fogjuk nevezni. Ez a név ironikus, mivel benne lévő helyek határozottan nem rendezettek, így a számlálás elve nem használható. A memóriaadatregisztert MIR-nek nevezzük. Szerepe az, hogy tartalmazza az érvényes mikroutasítást, melynek bitjei meghajtják az adatutat működtető vezérlőjeleket. Következő mikroutasítás címének kiszámítása: MPC akkor töltődik be, amikor az órajel magas, majd MIR feltöltődik az MPC által mutatott vezérlőtárbeli szóval 1. NEXT_ADDRESS mező az MPC-be másolódik, és a JAM mező vizsgálat alá kerül 2. ha a JAM egy, vagy több bitje be van állítva: JAMN=1: N flip-flop OR kapcsolattal kerül az MPC legmagasabb bitjére JAMZ=1: Z flip-flop OR kapcsolattal kerül az MPC legmagasabb bitjére JAMN=1=JAMZ: mindkettő OR kapcsolattal kerül oda Magas bit: F = (JAMN AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8]
3. ha JMPC=1: az MBR 8 bitje bitenkénti OR kapcsolattal kerül az aktuális mikroutasítás NEXT_ADDRESS mezőjének legalsó 8 bitjével, az eredmény MPC-be másolódik Ha a JAM mező értéke 000, akkor nincs teendő, a NEXT_ADDRESS másolása után MPC a következő mikroutasításra mutat. Kezdődhet az új mikroutasítás végrehajtás
29. Utasítás betöltő egység, és működése (Mic-2) Utasításbetöltő egység (Instruction Fetch Unit) betölti a bájtokat a bájtfolyamból, mielőtt szükség lenne rájuk (fetch) csökkenti az úthosszt: minden kódot értelmez, kell-e operandus, összerakhatja azokat egy regiszterbe, hogy készen álljanak a kódtól függetlenül előkészíti a következő 8 és 16 bites részt IFU részei: Léptető regiszter: fenntart egy bájtsorozatot a memóriából, és továbbítja az MBR1-be és az MBR2-be. IMAR:IFU saját memóriacím-regisztere, melyet a memória címzésére használunk, amikor egy új szót be kell tölteni. Szavakban számlál, saját növelője van, rézsútosan kerül a címsínre. Módosul, amikor a léptető regiszterbe írta a következő 4 bájtot. Amennyiben a PC értéket kap a C sínről, akkor a PC értékét át kell másolni az IMAR-ba is. Ilyenkor a mikroprogramnak várnia kell a léptető regiszter, MBR1 és MBR2 feltöltésére. FSM (Finite State Machine, véges állapotú gép) 1. állapotok (7 db kör): egy olyan lehetséges helyzetet ábrázol, amelyben az FSM lehet 2. átmenetek (élek): eseményt ábrázol, háromféle lehetséges: a. MBR1: Akkor fordul elő, amikor az MBR1-t kiolvassuk, a léptető regiszterben egy bájt kilép a jobb oldali végén, az állapotot eggyel csökkentve, MBR1-et újratölti. b. MBR2: Akkor fordul elő, amikor az MBR2-t kiolvassuk, a léptető regiszterben két bájt kilép a jobb oldali végén, az állapotot kettővel csökkentve, MBR2-t újratölti. c. Szó betöltve: Ha az FSM 0,1,2 állapotú, akkor egy új szót betöltő memóriaciklus kezdődik, a szó megérkezése 4-gyel növeli az állapotot.
25
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Amennyiben olyat kérnek az IFUtól, amit abban a pillanatban nem tud végrehajtani, leblokkol. Továbbá egyszerre csak egy dolgot tud csinálni, így a beérkező eseményeket sorba kell állítania. Amikor a PC megváltozik, az IFU-t frissíteni kell. A PC-t az IFU tartja karban, figyeli, hogy melyik MBR-t olvassák ki, és e szerint növeli 1-gyel vagy 2vel a PC-t. Mic-2: Main1-et eltávolítja PC növeléséhez nem az ALU-t használja 8 és 16 bites operandusokat az IFU adja 3sínje van: A,B,C több hardver kell az A sín címzése és IFU miatt kevesebb mikroutasítás kell, némelyik utasítást jobban felgyorsítja, mint a többit vezérlés átadáskor várni kell, míg az IFU elkészül (a léptető megkapja az új értékét, MBR1 és MBR2 feltöltése megtörténik) Mic-2 adatútja: 1. A és B sínek feltöltése a regiszterekből 2. ALU és a léptető munkája 3. eredmények tárolása a C sínről Mic-2 utasítások: különböző mértékben gyorsulnak fel, de az átlagos nyereség nagy LDC_W: 9 utasítás helyett 3 SW AP: 8-ról 6-ra rövidül ILOAD: 6 helyett 3 IADD: 4 helyett 3 IF_ICMPEQ: sikeres esetben 13 helyett 10, sikertelen esetben 10 helyett 8
30. Csővonalas terv: Mic-3. Eltérések a Mic-2-höz képest. Miért jelent ez gyorsítást? Mic-3: a Mic-2 továbbfejlesztése, újítások: Három további tároló (A,B,C), amelyek egy-egy sín közepén helyezkednek el, három részre osztják az adatutat párhuzamosságot alkalmaz óraciklus rövidítése: maximális késleltetés rövidebb, órajel növelhető az adatút három ciklust (mikrolépést) igényel: minden ciklus alatt használható az adatút összes része Párhuzamosítás: a 3 mikrolépés egyidejűleg végrehajtható 1. A, B tárolók feltöltése a regiszterekből 2. C feltöltése az ALU és a léptető eredménye alapján 3. C tárolása egy regiszterbe
26
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Valódi függőség (RAW függőség): Read After Write, egy mikrolépés nem tud indulni, mert egy eredményre vár, ami egy előző mikrolépés még nem hozott létre. Késleltetéssel oldható meg. Elakadás: megáll a végrehajtási folyamat, hogy egy szükséges értéket megvárjon. Csővezeték: gyorsabbá teszi a gépet, még akkor is, ha egyszer függőség miatt le kellett állni egy utasítás négy óraciklust igényel, de minden egyes óraciklusban egy új utasítás kezdődik, és egy régi befejeződik egy utasítás egyszerre csak egy hardverszeletet használ, a többi szabad más utasításoknak Hardverszeletek (óraciklusok): 1. IFU betölti az utasítást 2. regiszterek feltöltik A és B tárolót 3. ALU és léptető tevékenysége, C tároló feltöltése 4. C tároló regiszterekbe töltése Miért jelent ez gyorsítást? háromszor annyi óraciklusa van másodpercenként, mint a Mic-2-nek egyszerre négy utasításnak történik a végrehajtása
31. Elágazás, eltolási rés. Statikus és dinamikus elágazás jövendölés. Probléma: A csővezeték jellege miatt a betöltő egységnek kell eldöntenie, hogy honnan töltse be a következő utasítást, mielőtt még tudná, hogy milyen utasítást kapott legutoljára. Legkorábban a dekódoló veheti észre, hogy ugró utasítást kell végrehajtani, de addigra a következő utasítás már a csővezetékben van annak ellenére, hogy logikusan nem kellene. Eltolás rés (delay slot): az elágazó (ugró) utasítás utáni pozíció. Az elágazás végrehajtásakor bizonyos utasítások már a csővezetékben vannak. Pentium 4: bonyolult hardver gondoskodik a csővezeték helyreállításáról UltraSPARC III: az eltolás résben lévő utasítás végrehajtásra kerül. A felhasználóra (fordítóra) bízza a probléma megoldását, a legrosszabb esetben NOP utasítást kell tenni az ugró utasítás után. Ha az elágazás jövendölés helyes, a végrehajtás éppen a célcímnél folytatódhat. Megoldási lehetőségek rossz jövendölésre: a legtöbb gép, ha talál egy feltételes elágazást, megjövendöli, hogy végre kell-e hajtani, vagy sem 1. triviális: a visszafelé irányulót végre kell hajtani, az előre irányulót nem 2. feltételes elágazás esetén a gép tovább futhat a jövendölt ágon, amíg nem ír regiszterbe, vagy csak „firkáló” regiszterekbe ír Statikus elágazás jövendölés: nem futásidőbeni jövendölés, fordítóprogram segítségével. A hardver azt teszi, amit a fordítóprogram mond. Az elágazási előzmények táblában nem szükséges hely bizonyos utasításokhoz. 1. UltraSPARC III: rendelkezik olyan utasításkészlettel is, amely tartalmaz bitet a jóslásra. A fordító ezt a bitet beállítja, a betöltő egység teszi, amit az utasítás mond. 2. a processzor visszafelé ugrások bekövetkeztére számít, az előre ugrásokra nem 3. az elágazás viselkedésének megfigyelése, majd ennek az információnak a fordítóprogramba táplálása Dinamikus elágazás jövendölés: futásidőbeni jövendölés, bonyolult hardverrel. Elágazás előzmények tábla: a CPU tartja fent, amelyben feljegyezhetők és kikereshetők az előforduló feltételes elágazások. Hasonló jellegű, mint a gyorsító tár, lehet több utas is. 1. egy jövendölő bit: megtörtént-e az elágazás, amit legutóbb végrehajtottunk? Minden bejegyzésben szerepel. 2. két jövendölő bit: mi várható, és mi volt legutóbb? A „várható” bitet csak két egymás utáni helytelen jövendölés után írja át. 3. legutóbbi célcím: a legutóbb tárolt célcímre történik ugrás, ha az a jövendölés, hogy lesz elágazás
27
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
4. elágazási előzmények blokkos regisztere: az utolsó k feltételes elágazást figyeli meg (k bites szám), hogy végre kellett-e őket hajtani, függetlenül attól, hogy melyik utasítás volt az. Ha a k bites szám megegyezik a táblázat valamely bejegyzésének a kulcsával (találat), akkor az ott talált jövendölést használja.
32. Dinamikus elágazás jövendölés és fajtái. A CPU egy előzménytáblát tart fenn, amelyben feljegyzi az előforduló feltételes elágazásokat, így kikereshetők, ha ismét előfordulnak. Az elágazás előzmények tábla, hasonló jellegű, mint a gyorsító tár. Lehet több utas is. Egy jövendölő bit: tartalmazza az elágazó utasítás címét egy bittel együtt, amely megmondja, hogy megtörtént-e az elágazás, amikor legutoljára végrehajtottuk. ezt használva a jövendölés egyszerűen az, hogy az elágazás ugyanazt az utat fogja követni, mint legutóbb. Ha a jövendölés rossz, a bit megváltozik az előzménytáblában. Amikor a ciklus végül kilép, a végén az elágazást tévesen jövendöli, ez a rossz jövendölés megváltoztatja az előzménytáblát. Két jövendölő bit: ezzel a módszerrel a jövendölés csak két egymást utáni helytelen jövendölés után változik meg. Egy bit van arra , hogy az elágazás „feltehetőleg” mit fog tenni, és egy arra hogy mit tett legutóbb. A táblázat a legutóbbi célcímet is tartalmazhatja. Ha az a jövendölés, hogy lesz elágazás, akkor arra számít, hogy a legutóbb tárolt célcímre kell ugrani.
Elágazás jövendölés: azt figyeljük, hogy az utolsó k feltételes utasítást végre kellett-e hajtani, függetlenül attól, hogy melyik utasítás az. Ezt a k bites számot, amelyet az elágazási előzmények blokkos regiszterében tároljuk, összehasonlítjuk párhuzamosan az előzménytábla minden bejegyzésének k bites kulcsával, és találat esetén az ott talált jövendölést használjuk.
28
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
33. Sorrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés. Szuperskaláris architektúra: a dekódoló egység az utasításokat mikroutasításokra darabolhatja. Az S3 fázis lényegesen gyorsabban tudja el_készíteni az utasításokat, mint ahogy az S4 fázis végrehajtja őket. Legegyszerűbb, ha a mikroutasítások végrehajtási sorrendje megegyezik a betöltés sorrendjével, de ez nem mindig optimális. Függőség: ha egy utasítás írni/olvasni akar egy regisztert, akkor meg kell várnia azon korábbi utasítások befejezését, amelyek ezt a regisztert írni/olvasni akarták. Az utasítás nem hajtható végre, ha: RAW (valódi) függőség: onnan akarunk olvasni operandust, ahova még nem fejeződött be egy korábbi írás WAR függőség: olyan regiszterbe szeretnénk írni az eredményt, ahonnan még nem fejeződött be egy korábbi olvasás WAW függőség: olyan regiszterbe szeretnénk írni az eredményt, ahova még nem fejeződött be egy korábbi írás RAR függőség nincs: nincs akadálya, hogy onnan olvassunk, ahonnan egy korábbi olvasás még nem fejeződött be. Függőségek nyilvántartása: eredményjelzővel, amely regiszterenként egy-egy számláló, hogy hányszor használják a végrehajtás alatt lévő mikroutasítások a regisztert olvasásra/írásra. Biztosítja: az utasítások indítása és befejezése az eredeti sorrendben történjék ne boruljon föl az írások sorrendje pontos megszakítás: a gép állapota bármikor helyreállítható Pl. ha a dekódoló ciklusonként két utasítást tud kiosztani végrehajtásra, az n. ciklusban dekódolt utasítás végrehajtása legkorábban az (n+1). ciklusban kezdődhet, és az (n+2)-ben fejeződik be, de a szorzás csak az (n+3)-ban. Sorrendtől eltérő végrehajtás: az utasításokat sorrendtől eltérően lehet kiosztani és befejezni ki kell bővíteni az eredményjelzőt: nyomon követi azokat a tárolásokat, amiket az átugrott utasítások végeznek nem lehet kiosztani azokat az utasításokat, amelynek operandusa egy olyan utasítással tárolódik, ami a sorban előtte van, de átugrottunk függőben hagy, majd később visszatér rá Regiszterátnevezés: a dekódoló egység regiszterek tucatjait használja regiszterátnevezéssel. egy táblázat képezi le a látható regisztereket titkos regiszterekre, a kapcsolatok gyakran változnak a végrehajtás során kiküszöböli a WAR és WAW függőségeket
34. Feltételezett végrehajtás. Emelés. Mellékhatások. Feltételezett végrehajtás: kód végrehajtása, mielőtt még tudnánk, hogy szükség lesz-e rá. Támogatás szükséges a fordítóprogramtól, és némi architekturális bővítés. Alapblokk: Lineáris kódsorozat, tetején egy belépési ponttal, alján egy kilépéssel. Nem tartalmaz vezérlési szerkezetet. Sokszor rövid, nincs elegendő párhuzamosság, hogy hatékonyan kihasználjuk. Emelés: egy utasítás előre hozatala egy elágazáson keresztül, és regiszterbe töltése. Lassú műveletek esetén nyerhetünk vele. Ha valamit nem biztos, hogy meg kell csinálni, de nincs más dolga a gépnek, akkor megteheti, de csak „firkáló” regiszterekbe írhat. Ha később kiderül, hogy kell, akkor átírja az eredményeket a valódi regiszterekbe, ha nem kell, elfelejti.
29
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Mellékhatások:
fölösleges gyorsító sor csere. Megoldás: SPECULATIVE_LOAD – megpróbálja a betöltést a gyorsító tárból, ha nincs ott, akkor feladja.
if(x>0) z=y/x; Az osztást a feltétel ellenőrzése előtt végzi el a processzor (emelés), x=0 esetén csapda következik be 0-val való osztás miatt. Megoldás: mérgezés bit
Mérgezésbit: Emelés esetén a csapda csak akkor következik be, ha az emelt műveletet tényleg végre kell hajtani.
35. Gépi utasítás szint. Memória modellek (igazítás), memória szemantika. Gépi utasítási szint (ISA szint): Alapvetően az ISA szint azt jelenti, ami a gépi szintű programozó számára látszik a gépből (mondjuk azt, hogy mi a fordítóprogramok kimenete). ISA szintű kód készítése céljából a fordítóprogram írójának ismernie kell a memóriamodellt, hogy milyen regiszterek vannak, hogy milyen adatokat és utasításokat használhat, és így tovább. Mindezen információk összegződése alkotja az ISA szintet. Általában a mikroarchitektúrához kapcsolódó információk nem tartoznak ide, mert a fordítóprogram készítője számára nem láthatóak. Néhány architektúra ISA szintjét formális dokumentum definiálja. Pl.: V9 SPARC (SPARC 9-es verzió), JVM (Weaver és Germond, 1994; valamint Lindholm és Yellin, 1997). De Pentium 4-nek nincs. A legtöbb gép legalább két módban működhet: 1. Kernel mód (az operációs rendszer futtatására szánt mód, minden utasítás végrehajtható) 2. Felhasználói mód (a felhasználói programok futtatását célozza és nem teszi lehetővé bizonyos érzékeny utasítások végrehajtását, mint amelyek közvetlenül manipulálják a gyorsítótárat). Memória modellek: Minden számítógép memóriája cellákra van osztva, és a cellák címei összefüggő tartományt képeznek. A leggyakoribb cellaméret napjainkban 8 bit. Egy 8 bites cella neve bájt. A 8 bites cellaméret oka az, hogy az ASCII kód karakter 7 bit, így a paritásbittel együtt éppen belefér egy bájtba. A bájtok általában 4 bájtos vagy 8 bájtos (64 bit) csoportokba, szavakba vannak rendezve, lehetővé téve, hogy az utasítások teljes szavakon végezzenek műveletek. Szóigazítás: Az igazítást gyakran azért követelik meg, mert a memória így hatékonyabban működhet. A Pentium 4 például, amely 8 bájtot olvas ki a memóriából, 36 bites fizikai címet használ, de csak 33 bit címe van. A legtöbb gép egyetlen lineáris címtartományt alkalmaz, ami 0-tól valami maximumig terjed, azonban néhány gép külön címtartománnyal rendelkezik az adatok, és külön az utasítások számára (Harvard-architektúra). Utóbbi esetben lehetséges nagy méretű program és a programot védi a felülírástól is.
Memória szemantika: Fontos, hogy ugyanarra a memóriacímre kibocsájtott írás (STORE), majd közvetlenül utána olvasás (LOAD) ugyanazt az adatot kezelje. Azonban, a mikro utasítások sorrendje átrendeződhet. Tehát valós
30
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
a veszély, hogy a memória nem az elvárt módon viselkedik. A probléma még rosszabbá válhat multiprocesszor esetén, amikor a különböző CPU-k (esetleg átrendezett) olvasási szorzatot bocsátanak ki osztott memóriára vonatkozóan. Megoldási lehetőségek: Egy szélsőséges megoldás, ha minden memóriahivatkozást szekvencializálnak, így mindegyik előbb befejeződik, mint egy másik elkezdődne. Hatékonyságot sért. Másik szélsőséges megoldás esetében semmi garancia nincs általánosan biztosítva. A memóriahivatkozások sorrendjének kikényszerítésére SYNC utasítást kell a programnak végrehajtania, amely blokkolja minden memóriaművelet kibocsátását mindaddig, amíg az összes eddig kiadott memóriaművelet be nem fejeződött. Közbelső megoldás is lehetne a memóriamodellre, amikor is a hardver automatikusan blokkol bizonyos memóriahivatkozásokat (többek között a RAW és WAR függőséget tartalmazókat), de nem mindet.
36. A Pentium 4 üzemmódjai, memória szervezése, regiszterei. A Pentium 4 processzor több generáción keresztül fejlődött ki. Származása visszavezethető az egyik legelsőként épített mikroprocesszorra. A Pentium 4-nek 3 működési módja van, kettőben ezek közül a gép úgy viselkedik, mintha 8088-as lenne. Valós mód: minden olyan tulajdonság ki van kapcsolva, amelyet a 8088 után vezettek be, a gép úgy működik, mint egy egyszerű 8088-as. Ha a program valami szabálytalant csinál, a gép egyszerűen összeomlik. Emberi használattal ez annyit tesz, hogy az embert visszaminősítenék csimpánzzá. Virtuális 8086 mód: lehetővé teszi a régi 8088-as programokat védett módon történi futtatását. Ebben a módban valódi operációs rendszer vezérlete alatt működik a teljes gép. A 8088-as program futtatása úgy történik, hogy az operációs rendszer speciális izolált környezetet épít fel, amely úgy viselkedik, mint a 8088-as, és ebben futtatja a programot. A lényeges kivétel, hogy a program összeomlásakor értesíti az operációs rendszert ahelyett, hogy a gép maga összeomlana. Védett mód: a Pentium 4 valódi Pentium 4-ként viselkedik, és úgy, mint egy erősen kiterjesztett 8088. Négy privilegizált szint van, amelyeket a PSW bitjei vezérelnek: o 0- szint: más gépek kernelmódjának felel meg, amikor a gép korlátozás nélküli elérése biztosított. Ezt a szintet használja az operációs rendszer o 3- szint: felhasználói programoké. Ekkor bizonyos kritikus utasítások és regiszterek elérése blokkolt, hogy megvédje a gépet a huncut programozóktól. o 1-es és 2-es szintet ritkán használjuk. A Pentium 4 hatalmas címtartománnyal rendelkezik a memóriában 16384 darab szegmensre van 32 osztva, a címek mindegyike 0-tól 2 - 1-ig terjednek. A legtöbb operációs rendszer azonban csak egy 32 szegmenst támogat, így a legtöbb felhasználói program csak egy 2 nagyságú lineáris címtartományt lát, amelynek egy részét maga az operációs rendszer foglalja el. A címtartományban minden bájtnak saját címe van, a szavak 32 bitesek. A szavak tárolása kis endián kódban történi. A Pentium 4 regiszterei: az első négy, az EAX, az EBX, az ECX és az EDX többé kevésbé általános célú regiszter, bár mindegyiknek van sajátossága. EAX a fő aritmetikai regiszter EBX jól használható mutató tárolására ECX ciklusszervezésben van szerepe EDX a szorzás és osztás utasításoknál kell, amikor az EAX-szel együtt tartalmazzák a 64 bites szorzatot, illetve osztandót. A felsorolt regiszterek mindegyikének első 16 bitje egy 16 bites, első 8 bitje pedig 8 bites regisztert alkot.
31
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
A következő 3 szintén valamelyest általános célú regiszter, de több különbséggel. ESI-t és EDI-t memóriában mutató mutatók tárolására szánták, különösen a hardveres karakterlánc műveletek esetére, amikor az ESI a forrás karakterláncra, az EDI pedig a cél karakterláncra mutat EBP is mutató regiszter, tipikusan az aktuális veremkeret címét tartalmazza, mint az IJVM esetén az LV regiszter. Ha egy regiszter a lokális veremkeret címét tartalmazza, akkor azt mondjuk, hogy keretmutató. A regiszterek következő csoportja CS-től a GS-ig bizonyos értelemben elektronikus őskövületek, 20 amelyek abból az időből maradtak fenn, amikor a 8088 esetén a 2 méretű memória 16 bites címzéssel történő elérésre használták. A Pentium 4-nél ezek biztosan elhagyhatók, ha a gép egyetlen 32 bites lineáris címtartományt használ. A következő az EIP, amely az utasításszámláló. Végül az EFLAGS regiszter látható, amely PSW.
37. Az UltraSPARC III regiszterei, regiszter ablak technikája Regiszterek : 32 db 64 bites általános célú regiszter o R0-R7 (G0-G7) Globális változók: olyan konstansok, változók és mutatók, amelyeket minden eljárás használhatja R0 huzalozott 0 o R8-R15 (O0-O7) regisztereket paraméterek átadására használják, elkerülve a memóriahivatkozást SP (O6): aktuális verem teteje, veremből, verembe utasítás esetén változik (O7) csak ideiglenes tárolásra használható o R16‐R23 (L0‐L7) Lokális regiszterek o R24‐R31 (I0‐I7) Bemenő paraméterek, R30 (I6) = FP az aktuális veremkeret mutatója, R31: aktuális eljárás visszatérési címe 32 db lebegőpontos regiszter o 32 vagy 64 bites pontossígú számot tartalmazhat o két lebegőpontos regiszter használatával 128 bites pontosságú számot is eltárolhatunk Az UltraSPARC III 32-nél több általános regisztert tartalmaz, de mindig csak 32 látszik a programozó számára adott pillanatban. Ez a regiszterablak. Az eljárások hatékony megvalósítását célozza. CWP (current windows pointer): regiszter mutatja, hogy aktuálisan mely regiszterek használhatók. Regiszterablak-technika: Az eljáráshívás utasítás elrejti a régi regiszterkészletet, és egy újat nyit úgy, hogy csökkenti a CWP értékét (néhány regiszter az új regiszterkészletben is benne lesz, hatékonyabbá téve az eljáráshívások megvalósítását). Néhány regiszter más nevet kap, a régi R8-R15 kimeneti regiszterek -> R24-R31 bemeneti regiszterek. A 8 globális regiszter sohasem változik, ezek mindig ugyanazt jelentik. Hátránya: amennyiben sok eljáráshívás ágyazódik egymásba, és kifogy a regiszterkészlet, akkor a régi regiszterkészleteket ki kell írni a memóriába, majd ha sok visszatérés következik be, akkor vissza kell ezeket olvasni a memóriából. Tehát csak akkor segít, ha az eljáráshívások nem túl mélyen egymásba ágyazottak.
32
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Az UltraSPARC betöltő/tároló (load/store) architektúra, vagyis csak a regiszterek és a memória közötti adatátvitelt megvalósító betöltő és tároló utasítások hivatkoznak közvetlenül a memóriára.
38. Az I-8051, memória szervezése, óraciklusa. I-8051: memóriával, B/K-lel együtt egyetlen lapkára integrált számítógép. Beágyazott rendszerekben alkalmazzák, mert olcsó, sokoldalú mikrovezérlő. Legnépszerűbb az MCS-51-es család. Logikai lábkiosztása: a CPU 40 multiplexelt lábú standard tokban foglal helye 4 KB belső ROM 128 bájt belső RAM Address (16): 64 KB külső memóriát tud megcímezni Data (8): 8 bites adat sín, adatátvitel a CPU és a memória között RD#: olvas a memóriából WR#: ír a memóriába ALE (Address Latch Enable): külső memória esetén használják, a sínen érvényes a cím PSEN# (Program Store Enable): olvasás a programot tároló memóriából EA# (External Access): az értéke állandó o 1: belső címek használata esetén o 0: külső memóriát használja időzítők (2): külső áramkörről is kaphat jelet, pl. számláló megszakítások (2): két külső eszköznek megszakítás kérési lehetőség TXD (Transmitted Data): továbbított adat, modemmel, terminállal soros B/K-t tesz lehetővé RXD (Received Data): érkezett adat RST (Reset): gép alapállapotba állítása port 0-3 (32): 4 db 8 bites csoportba rendezett kétirányú soros vonalak
33
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Mikroarchitektúrája: fősín: regiszterek kapcsolódnak hozzá, melynek többségét az utasítások írni tudják RAM (128 bájt): adatatok számára fenntartott 8 bites regiszterek o RAM ADDRess: RAM címzéséhez o IR (utasításregiszter): végrehajtás alatt álló utasítást tartalmazza o SP: verem tetejére mutat o B: szorzásnál, osztásnál van szerepe, ideiglenes tárolásra is használható o ACC: f_ aritmetikai regiszter, a legtöbb számítás eredménye itt keletkezik o TMP1, TMP2: ALU bemenetei, az eredmény a fő sínről akármelyik regiszterbe kerülhet o PSW (Program Status Word): feltételkódok, amelyek jelzik, ha az eredmény 0, negatív ROM (4 KB): utasítások számára fenntartott 16 bites regiszterek o ROM ADDRess: ROM címzéséhez o DPTR: dupla szélességű mutató 16 bites címek kezelésére o PC: utasításszámláló, a következőnek betöltendő utasítás címét tartalmazza o PC növelő: automatikusan növeli a PC-t. Nem érhető el a fősínről ez és a PC sem. o BUFFER: beírva, majd kiolvasva PC növelődik 3 db időzítő (16 bit): valós idejű alkalmazások esetén nélkülözhetetlenek 4 db port (8 bit): akár 32 külső gomb, lámpa, érzékelő vezérlését teszik lehetővé
Óraciklus: I-8051 szinkronprocesszor, a legtöbb utasítás egy óraciklust igényel. A ciklusnak 6 állapota van: 1. utasítás a ROM-ból a fősínre és IR-be kerül 2. utasítás dekódolása, PC növelése 3. operandusok előkészítése 4. egyik operandus a fősínre, onnan TMP1-be, a másik ACC-ból TMP2-be kerül 5. ALU végrehajtja a műveletet 6. ALU kimenete a fősínre kerül, ROM, ADDR felkészül a következő utasítás olvasására
39. Operandus megadás különböző módjai. Közvetlen operandus (immediate operand): az operandus megadása az utasításban. Direkt címzés (direct addressing): a memóriacím megadása a címrészen. Az utasítás mindig ugyanazt a címet használja. Az operandus értéke változhat, de a címe nem (fordításkor ismert kell legyen). Regiszter címzés (register addressing): olyan, mint a direkt címzés, csak nem memóriát, hanem regisztert címez. Egy tömb elemeinek összeadásához e=e+ak vagy A=A+ak alakú utasításokra van szükség. Vagy mindegyik utasítást szerepeltetjük a programban, vagy inden elem hozzáadása után úgy módosítjuk az összeadó utasítást, hogy hogy legközelebb a következő elem hozzáadását végezze… Regiszter-indirekt címzés (register indirect addressing): a címrészen valamelyik regisztert adjuk meg, de a megadott regiszter nem az operandust tartalmazza, hanem azt a memóriacímet, ahol az operandus található (mutató - pointer). Rövidebb, és a regiszter értékének módosításával a cím változtatható.
34
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Indexelt címzés (indexed addressing): egy eltolási érték (offset) és egy (indexed) regiszter tartalmának összege lesz az operandus címe. Bázisindex címzés (based-index addressing): egy eltolási érték (offset) és két (egy bázis és egy index) regiszter tartalmának összege lesz az operandus címe. Ha R5 A címét tartalmazza, akkor C: ADD R1,A(R2) helyett a C: ADD R1, (R2+R5) utasítás is írható. Ez a módszer előnyös, ha nem csak az A tömb elemeit szeretnénk összegezni. Verem címzés (stack addressing): az operandus a verem tetején van. Nem kell operandust megadni az utasításban.
40. Veremcímzés. Fordított lengyel (postfix) jelölés. Dijkstra algoritmusa. Veremcímzés: az operandus a verem tetején van. Nem kell operandust megadni az utasításban. Postfix jelölés (fordított lengyel): a kifejezéseket olyan formában adjuk meg, hogy az első operandus után a másodikat, majd ezután adjuk meg a műveleti jelet. infix: x+y postfix: xy+ Postfix jelölés előnyei: nem kell zárójel, nincsenek precedencia szabályok. Jól alkalmazható veremcímzés esetén, nullacímes utasításokkal. Dijkstra algoritmusa: infix alakú formulák konvertálása postfix-re. Az infix elemek egy váltóhoz érkeznek. Minden változó és konstans Kaliforniába megy ( ), a többi esetben a verem tetejétől függően: ↓: a kocsi Texas felé megy ↑: a verem teteje Kaliforniába megy : a kocsi eltűnik a verem tetejével együtt •: vége az algoritmusnak ?: hibás az infix formula A döntési tábla tartalmazza a prioritási szabályokat.
41. Postfix alakú formulák kiértékelése. Ideális számítógépes kiértékelésre verem használatával. A formula n jelből áll, mindegyik vagy operandus, vagy műveleti jel. olvassuk a formulát jobbról balra jelenként adunk ki egy utasítást operandus: rakjuk a verembe műveleti jel: hajtsuk végre a műveletet a verem tetején van a jobb, alatta a bal operandus pl.:
infix: (8+2*5)/(1+3*2-4) postfix: 825*+132*+4-/
35
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
42. A Pentium 4 utasítás formái, címzési módjai. A Pentium 4 utasítás formái: Több generáción keresztül kialakult architektúra, utasításformátumai bonyolultak és szabálytalanok. Általánosan érvényes, hogy ha egy kétoperandusú utasítás egyik operandusa a memóriában van, akkor a másik nem lehet a memóriában (csak regiszterben). Utasítás-típusok, operandusok helye szerint: regiszter-regiszter regiszter-memória memória-regiszter memória-memória Ilyen NINCS Prefix bájt módszer: Van egy extra bájt az utasítás elején, ami módosítja a jelentését. Pl.: WIDE utasítás az IJVM esetén. Kiterjesztő kód (escape code): Mikor az Intel kifogyott a műveleti kódokból bevezette a 0xFF kiterjesztő kódot, hogy lehetőség legyen egy második műveleti kód-bájtot is megadni. Végrehajtandó utasítás osztályának és méretének meghatározása: Ahhoz, hogy meghatározzuk a végrehajtandó utasítás osztályát vagy méretét a teljes műveleti kódot dekódolnunk kell, mivel a Pentium 4 egyedi bitjei nem sok információt adnak magáról az utasításról. (Kivéve bizonyos utasítások esetében, melyeknek műveleti kód mezőjében a szélső bit jelzi, hogy a bájt vagy szó az operandus, míg egy másik bit pedig azt, hogy memóriába vagy regiszterbe kerül). Ez megnehezíti a nagy hatékonyságú megvalósítást, mivel még ahhoz is intenzív dekódolást kell végrehajtani, hogy meghatározzák a következő utasítás címét.
MOD: A 8 bit egy 2 bites MOD- és két 3 bites REG- és R/M mezőkre oszlik. Néha az első 3 bit a műveleti kódhoz tartozik, így összesen 11 bites a kód. Azonban a 2 bites mód mező csak négyféle operanduscímzési módot határozhat meg, és az egyik operandusnak regiszternek kell lennie. Néhány kombináció tiltott, és speciális esetekre használják. SIB: Néhány mód további bájtokat igényel, ezek az SIB (Scale, Index, Base - skála, index, bázis). Ez a séma nem ideális, de kompromisszumot képez a visszafelé kompatibilitás kényszere és az új lehetőségek bevezethetősége között. A Pentium 4 címzési módjai: A Pentium 4 címzési módjai nagyon szabálytalanok, és attól is függnek, hogy 16 vagy 32 bites az utasítás. A támogatott módok: közvetlen indexelt direkt indexelt regiszter-indexelt regiszter-indirekt indexelt speciális mód: tömb elemek címzésére
36
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Az a gond, hogy nem minden mód alkalmazható minden utasításban, és nem minden regiszter használható minden módban. Például nem lehet az EBP indirekt és az ESP relatív címzés. Ez nagyon megnehezíti a fordítóprogram-készítők dolgát, és gyenge kódot eredményez.
43. Az UltraSPARC III utasítás formái, címzési módjai. Az UltraSPARC III ISA minden utasítása pontosan 32 bit és szóhatárra igazított. Az utasítások általában egyszerűek, és csak egy akciót határoznak meg. A tipikus aritmetikai utasítás két regisztert specifikál a bemenő operandusok és egyet az eredmény számára. A LOAD utasítás összeadja két regiszter tartalmát, így képezve a betöltendő cella címét. Az eredeti SPARC nagyon korlátozott utasításformákat tartalmazott, később új formák keletkeztek. A legtöbb új változat úgy keletkezett, hogy bizonyos mezőkből néhány bitet elhagytak. Minden utasítás első két bitje segít meghatározni az utasítás formáját és megadja a hardvernek, hol találja a műveleti kód maradék részét, ha van egyáltalán. 32 bites utasítás esetén nem lehet 32 bites konstanst megadni az utasításban. A nem jövendölő ugró utasítások 3-as formájúak, ahol a LEFT mező mondja meg, hogy melyik feltételt kell ellenőrizni. Az utolsó forma a CALL utasításé, amely eljárást végez. Ez az utasítás speciális, mert ez az egyetlen, amelyben 30 bit kell a cím megadására. Erre az ISA-ban csak 2 bites a műveleti kód. A célcím a 31 megadott cím négyszerese, ami azt eredményezi, hogy az adott utasítás helyéről 2 bájt tartományt lehet címezni. Az UltraSPARC ISA minden utasítása közvetlen vagy regisztercímzést használ kivéve azokat, amelyek memóriára hivatkoznak. Regisztermódban 5 biten van adva a regiszter. A közvetlen módban 13 bites adat lehet a konstans. Nincs más módú aritmetikai, logikai vagy hason0ló utasítás. Háromféle utasítás hivatkozik memóriára: betöltő (LOAD), a tároló (STORE) és egy multiprocesszor-szinkronizáló utasítás. A LOAD és a STORE utasítások kétféle módban dolgoznak. Az egyik módban két regiszter tartalmának összege adja a címet. A másik hagyományos indexelés 13 bites eltolási értékkel.
37
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
44. Az I-8051 utasítás formái, címzési módjai. Intel 8051 utasításformátumai: 6 db, az utasítások hossza 1, 2, vagy 3 bájt. 1. forma: egyetlen műveleti kód, 1 bájt 2. forma: egy bájt, 5 bites műveleti kód és 3 bit regisztercím 3. forma: 1 bájtos operandus, lehet közvetlen konstans, eltolás, bitsorszám 4. forma: ugró és szubrutin hívások, 11 bites cím 5. forma: ugró és szubrutin hívások, 16 bites cím (8K-nál nagyobb memória esetén szükséges) 6. forma: két 8 bites operandus
Címzési módok: Öt alapvető címzési mód: Implicit: akkumulátort használja Regisztermód: az egyik operandus regiszter. Regiszter lehet forrás, vagy cél. Direkt címzés: az operandus a memóriában van, amelynek címe az utasítás része Regiszter-indirekt címzés, az operandus címe regiszterben van, az operandusnak a memória alsó 256 címén kell lennie Közvetlen mód: az operandus magában az utasításban van megadva. A külső memória elérését két utasítás biztosítja, az LJMP, amely 16 bites eltolási értéket tartalmaz, így lehetővé téve bármely memóriacímre ugrást LCALL, amely szintén 16 bites eltolást tartalmaz, így bármely memóriacímen lévő eljárást tud hívni Külső adatmemória elérése: 16bites regiszterrel, DPTR, 16 bites memóriacímet tartalmazhat, ezt a programot betölthetik, aztán a betöltött érték indirekt címzésre használható, így elérhető a teljes 64KBos tartomány
45. Megszakítás. Csapda. Csapda: a program által előidézett feltétel. Hatására a csapdakezelő eljárás automatikus hívása történik. (Pl. túlcsordulás, csapdát eredményez_ utasítás) Megszakítás: a vezérlési folyamat eltérítése, amit általában nem a futó program, hanem valamilyen B/K eszköz idéz elő. Ekkor a megszakítás kezelő indul el. Pl. a program utasítja a lemezegységet, hogy kezdje el az adatátvitelt, és annak végeztével megszakítást küldjön. A csapda a programmal szinkronban van, a megszakítás aszinkronban. „Alap” állapot: ekkor történhet megszakítás „Megszakítási” állapot: nem lehet újabb megszakítás Hierarchia: megszakítási állapotban csak magasabb szintű ok eredményezhet megszakítást. Bizonyos utasítások csak a központi egység bizonyos kitüntetett állapotában hajthatók végre, alap állapotban nem csapda, szoftver megszakítás keletkezik. Multiprogramozás: amíg az I/O be nem fejeződik az operációs rendszer átmenetileg felfüggeszti a program működését, és elindítja egy másik program futását.
38
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
46. Hardver és szoftver tevékenységek megszakításkor, átlátszóság. Hardvertevékenység 1. Az eszközvezérlő beállít egy megszakítási vonalat a rendszersínen a megszakítási sorozat elindítására. 2. Amint a CPU a megszakítás kezelésére képes állapotba kerül, azonnal beállítja a megszakítást nyugtázó jelet a rendszersínen. 3. Amint az eszközkezelő észleli, hogy a megszakítási kérelmét nyugtázta a CPU, saját azonosítására egy kis egész számot küld az adatvonalon. Ezt a számot megszakítási vektornak nevezik. 4. A CPU kiolvassa a sínről a megszakítási vektort, és időlegesen elmenti. 5. A CPU berakja a verembe a programszámlálót és a PSW-t. 6. Ezután a CPU beállítja az új programszámláló értékét arra a memóriacímre, amelyet a megszakítási vektor meghatároz. Ezt úgy kapja, hogy a megszakítási vektort egy táblázat indexének tekinti. Ha például a programszámláló 4 bájtos és a megszakítási vektor n, akkor a cím 4n lesz. Az új programszámláló a megszakítás-kezelő rutin kezdő címe lesz. Szoftvertevékenység 7. A megszakítás-kezelő rutin első dolga, hogy elmentse a regisztereket, hogy később vissza tudja tölteni. A mentés történhet a verembe vagy a rendszerterületre. 8. Az azonos típusú eszközök megszakítási vektora általában azonos, így a szerviz rutin nem tudja, hogy melyik terminál okozza a megszakítást. A terminál számát az eszközregiszterből olvassa ki. 9. A megszakítással kapcsolatos minden egyéb információt, mint például az állapotkódot most már be lehet olvasni. 10. Ha B/K hiba keletkezik, itt lehet kezelni. 11. A prt és cout változók értékét aktualizálja (prt – a kiírandó karakterlánc aktuális karakterére mutat; count – a hátralévő karakterek száma). Az előbbit növeli, hogy a következő bájtra mutasson, az utóbbit csökkenti eggyel, mert eggyel kevesebb átviendő bájt maradt. Ha a count nagyobb, mint 0, akkor még maradt átviendő karakter. Átmásolja az aktuális karaktert a kimeneti pufferbe. 12. Ha megkövetelt, akkor egy speciális kódot küld ki, hogy közölje az eszközzel vagy a megszakítás-vezérlővel, hogy a megszakítás feldolgozását elvégezte. 13. Visszatölti az elmentett regisztereket. 14. Végrehajtja a RETURN FROM INTERUPT (visszatérés megszakításból) utasítást, amivel a CPU visszakerül abba az állapotába, amelyben a megszakítás bekövetkezése előtt volt. A gép ott folytatja a munkáját ahol abbahagyta. A megszakításokkal kapcsolatos kulcsfogalom az átlátszóság. Amikor megszakítás következik be, bizonyos műveletek végrehajtódnak, bizonyos kód végrehajtódik, de amikor ennek vége a számítógép ugyanabba az állapotba kerül, mint amelyben a megszakítás előtt volt. Az ilyen módon működő megszakítási rutint átlátszónak nevezzük. Az átlátszóság miatt sokkal egyszerűbb megérteni a megszakításokat.
47. Eljárás, rekurzív és re-entrant eljárás. Eljárás: az eljáráshívás úgy tekinthető, mint egy magasabb szinten definiált utasítás végrehajtása. Elég, ha azt tudjuk, mit csinál az eljárás, nem lényeges, hogy hogyan. Eljárás: paraméterek, munkaterület tartozik hozzá
39
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Rekurzív eljárás: önmagát hívja közvetlenül, vagy más eljárásokon keresztül. Programozott, hogy mikor történik az újrahívása. Veremre van szükség rekurzív eljárás megvalósításához: a hívó és a hívott eljárás paraméterei, és a lokális változók külön területen vannak. LV (Local Variable), SP (Stack Pointer) verem mutató Re-entrant eljárás: többszöri belépést tesz lehetővé, ha az eljárás még nem fejeződött be, amikor újra hívható. Az esetleges újrahívás ideje a véletlentől függ. Különálló munkaterületek biztosítása: reentrant eljárás esetében újabb belépés csak másik processzusból képzelhető el minden processzus saját vermet használ Eljárás prológus: a régi veremkeret mutató (FP) elmentése, új veremkeret mutató megadása és a verem mutató (SP) növelése, hogy legyen hely a veremben a lokális változók számára. Eljárás epilógus: visszatéréskor a verem kitakarítása
48. Feltételes végrehajtás, predikáció. Predikáció: feltételes elágazások számának csökkentésére való módszer predikátum: az utasítások feltételt tartalmaznak. Ez megmondja, hogy végre kell-e hajtani az utasítást minden utasítás egyetlen predikációs utasítássorozatba fésülhető össze, különböző predikátumokat alkalmazva Pl. az if utasítás then ága és else ága egy-egy gépi utasítássorozatba foglalódik, az előbbi a predikátumot, az utóbbi annak inverzét alkalmazza. Feltételes végrehajtás: a predikáció előnye új utasítást vezet be, amely feltételt vizsgál biztosítani kell: a feltételt már akkor ismerni kell, amikor az utasítás a tényleges végrehajtásba kezd IA-64: predikációt alkalmaz minden összehasonlító utasítás beállíthat egy predikátumregisztert minden más utasítás lehet predikációs egy predikátumregiszterre hivatkozva ténylegesen végrehajtódik minden utasítás a végrehajtási cső legvégében derül ki, hogy a predikátum igaz-e o igaz: az utasítás befejeződik, az eredmény bekerül a célregiszterbe o hamis: az utasításnak nincs hatása, nem történik visszaírás
49. Operációs rendszer szintje. Virtuális memória. Laptábla. Operációs rendszer szintje: A programozók rendelkezésére álló, a felhasználói módban használható ISA szintű utasítások és az operációs rendszer által hozzáadott utasítások együttese. Rendszerhívások: Ezeket az operációs rendszer eljárásai valósítják meg értelmezéssel. Processzus: A futó program és ennek összes állapotinformációja. (Memória, regiszterek, utasításszámláló, B/K állapot, stb.) Virtuális memória: Kis memória esetén használatos, annak növelése érdekében. (másodlagos memória használata, pl.: lemez igénybevétele). A programozó olyan átfedéseknek (overlays) nevezett kisebb részekre osztotta fel programját, amelyek külön-külön már elfértek a memóriában. Átfedés (overlay): A program több része fut ugyanazon a memória-területen, mindig az aktuálisan futó rész van a memóriában, a többi rész a lemezen van. A programozó dolga a feladat átfedő részekre bontása, és a részek mozgatása a memória és a háttértár között.
40
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
MMU (memória-kezelő egység): A virtuális címek fizikai címekre történő leképezését végzi. A leképezés megoldható asszociatív-memóriával, de igen drága, mivel annyi cellás, ahány lapkeret van. Laptábla (memória-térkép): Összekapcsolja a virtuális címeket a fizikai címekkel. Lapozás: Az átfedések automatikus kezelésének technikája. Lapok: A beolvasott programrészek. Virtuális címtartomány: Azok a címek, amelyekre a program hivatkozni tud. Fizikai címtartomány: Azok a címek, amelyek tényleges memória cellát címeznek. A virtuális és a fizikai címtartomány ugyanolyan méretű lapokra van osztva, de a virtuális sokkal nagyobb, mint a fizikai. Lapkeret: Memória-darabok, melyekbe lapokat töltünk be. Lapméret: Mindig kettő hatványa (512B – 64KB). Elaprózódás: Az elvesztegetett bájtokkal kapcsolatos fogalom. Belső elaprózódás: Ha egy program k lapon fér el, akkor általában a k. lap nincs tele. Ha a lap mérete n, akkor programonként átlagosan n/2 bájt kihasználatlan, ez a belső elaprózódás. A lap méretének csökkentésével lehet védekezni ellene, de ez a laptábla méretének növekedését eredményezi. Ugyan kisebb vergődés, de a lemez sávszélesség-kihasználtsága előnytelen. Külső elaprózódás: Miután egy ideig fut a program a memória szegmensekre, és a köztük lévő lyukakra osztható, ezt nevezzük külső elaprózódásnak. Laphiány: Ha olyan címre történik hivatkozás, amely nincs a memóriában, akkor úgynevezett „laphiány” keletkezik. Ekkor a következő lépéseket kell végrehajtani: 1. a lapkeret tartalmának lemezre mentése 2. a kérdéses lap megkeresése a lemezen 3. a kérdéses lap betöltése a lapkeretbe 4. a memória-térkép megváltoztatása (címek leképezése a betöltött lapkeret címtartományába) 5. végrehajtás folytatása Kérésre lapozás: A lapozás csak laphiány esetén történik meg. A program egyetlen bájtjának sem kell bent lennie a memóriában, csak a másodlagos tárolón. Csak a program elindulásakor lényeges, hogy ezt használtuk-e. Munkahalmaz: A legutóbbi k memóriahivatkozásban szereplő lapok halmaza. Az operációsrendszer feladata megállapítani. Vergődés: Nagyon gyakori laphiányt jelent. Akkor történik, ha a munkahalmaz nagyobb, mint a lapkeretek száma. Időosztásos rendszerekben a kérésre lapozás nem kielégítő, a munkahalmazban lévő lapok előre visszatölthetők. Lapkezelési eljárások: Az eltávolítandó (amely helyett az újat be lehet tölteni) lapokat megadó algoritmus. LRU (legrégebben használt): általában jó, de nem jó pl. 9 lapon átnyúló ciklus esetén, ha csak 8 memória lap van. FIFO (először be, először ki): egyszerűbb, mint az LRU. Csak a módosult lapokat kell visszaírni.
50. Szegmentálás Sok esetben előnyösebb, ha egyetlen virtuális címtartomány helyett 2 vagy több külön címtartományunk van. Ha egy program kivételesen sok tárolót tartalmaz. Ilyenkor az egyik nyilvánvaló megoldás sok teljesen független címtartomány, azaz szegmensek bevezetése. 0-tól valamely maximális értékig terjedő
41
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
címek lineáris sorozata. Az egyes szegmensek hossza 0-tól megengedett maximumig bármekkora lehet. A különböző szegmensek hossza eltérő lehet. A szegmensek hossza még változhat is a végrehajtás során. Mivel minden szegmens külön címtartományt alkot a különböző szegmensek egymástól függetlenül nőhetnek vagy zsugorodhatnak, illetve természetesen be is telhetnek, de általában olyan nagyok szoktak lenni, hogy ez csak ritkán fordul elő. A különböző programok közötti kód- és adatmegosztást is elősegíti a szegmentálás. Ha a gépen több program fut párhuzamosan és mind használnak bizonyos közös könyvtári eljárásokat, a memória pocsékolása lenne, ha mindegyik program saját másolatot kapna belőlük. Minden eljárást külön szegmensbe helyezve könnyen megoszthatjuk őket, s így nem kell belőlük egynél több fizikai másolatot a memóriában tartani. Ezzel memóriát spórolunk meg. Mivel minden szegmens a programozó által is látható logikai egységet képez, a szegmensek védelme eltérő lehet. Az eljárásszegmensek lehetnek csak végrehajtók, megtiltva ezzel olvasásukat vagy felülírásukat. A lebegőpontos tömböket specifikálhatjuk írhatónak és olvashatónak, de nem végrehajthatónak. Így észrevehető, ha a program végrehajtása rájuk próbálna futni. Az efféle védelem gyakran segítheti a programozási hibák megtalálását. Szegmentált memória esetén a felhasználó tudja, hogy mi van az egyes szegmensekben. A lapok tartalma bizonyos mértékben véletlenszerű. A szegmentálás két féle módon valósítható meg: cserélés: minden időpillanatban szegmensek bizonyos halmaza van a memóriában. Ha olyan szegmensre történik hivatkozás, amely pillanatnyilag nincs bent, akkor betöltődik, ha nincs elég hely számára, először egy vagy több szegmenset lemezre kell írni. lapozás: a szegmensek szükség szerint mozognak a lemez és a memória között. Míg a lapméret rögzített, a szegmensek mérete változtatható. Külső elaprózódás: miután egy ideig fut a rendszer, a memória szegmenseket és „lyukakat” tartalmazó részekre osztható, mivel elpocsékolt hely a szegmenseken kívül, a köztük lévő lyukakban van. A külső elaprózódást néha lyukacsosodás néven is megemlítik. A külső elaprózódás elkerülésének módszere: valahányszor lyuk keletkezik, a lyuk mögötti szegmenseket toljuk el a 0memóriacím felé úgy, hogy ezt a lyukat megszüntessük. Az összepréselés célja, hogy a sok kis haszontalan lyukat egy olyan nagy lyukba gyűjtsük össze, amelyben már elhelyezhető 1 vagy több szegmens. A minden új lyuk keletkezése utáni összepréselés rendszerint túl sok időt vesz igénybe. Ha a memória összepréseléséhez szükséges idő elfogadhatatlanul nagy, akkor algoritmusra van szükség. legjobb illesztés azt a legkisebb lyukat választja, amelybe még belefér a kért szegmens. A lyukak egy szegmensek összepárosításánál ne „törjünk le” darabokat olyan nagy lyukakból, amelyeket fel lehetne használni a későbbi nagy szegmensekhez első illesztés körbemegy a listán, és azt az első lyukat választja, amely elég nagy a szegmens tárolására. Ehhez nyilvánvalóan kevesebb idő kell, az átlagos hatékonyság szempontjából is jobb az előző illesztés algoritmusa a legjobb illesztésnél. mindkét algoritmusnál csökken a lyukak átlagos nagysága Amikor olyan szegmenset távolítunk el a memóriából, amelynek mindkét közvetlen szomszédja lyuk, az egymás utáni lyukak egy nagy lyukká olvaszthatók össze. Teljes szegmensek ingáznak igény szerint a lemez és a memória között. A szegmentálás másik megvalósításánál a szegmenseket fix méretű lapokra osztjuk, és ezeket lapozzuk a kérések szerint. Lehetséges, hogy valamelyik szegmens lapjainak egy része a memóriában, a többi meg a lemezen van, ha ezt a megoldást választjuk. A lapozáskor minden szegmenshez külön laptábla kell. Mivel minden szegmens csupán egy lineáris címtartomány, az összes eddig ismert lapozási technika alkalmazható szegmensekre. Minden szegmens saját laptáblát kap.
42
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
51. A Pentium 4 virtuális memóriája a szegmens regiszter tartalmazza a szelektort. a szelektor indexe a lokális (LDT) vagy globális leíró táblából (GDT) a leíró sorszámát, a 0. leíró használata csapdát eredményez Kódszegmensének leírója: ha P=0, csapda: nem létező szegmens, egyébként be kell tölteni a szegmenst. Offset: a szegmens elejéhez viszonyított relatív cím. Ha a szegmens határán túl van, csapda keletkezik. Ha G=0: akkor a LIMIT a szegmens pontos méretét adja meg bájtokban, ha 1, akkor lapokban Lapozást tiltó flag (a globális vezérlőregiszter bitje): engedélyezett: lineáris cím=virtuális cím >laptáblákkal leképezés tiltott: lineáris cím=fizikai cím->memória Lapkönyvtár: a 32 bites lineáris címek és a 4 KB-os lapok miatt egy szegmenshez egymillió lap is tartozhat minden futó programhoz egy lapkönyvtár tartozik minden bejegyzés egy laptáblára mutat minden laptábla bejegyzés egy lapkeretre mutat lineáris cím A lapkönyvtárnak azokhoz a mutatóihoz, amelyek nem mutatnak sehova, nem kell helyet foglalni a laptábla számára. A táblákban minden bejegyzéshez 32 bit áll rendelkezésre. A mutatókhoz nem használt biteket a hardver az operációs rendszer számára hasznos jelzésekkel tölti ki (védelem, szennyezettség, hozzáférés, ...) Speciális hardver támogatja a legutóbb használt lapok gyorsabb elérését. Pentium 4 védelmi rendszere: a futó program pillanatnyi szintjét a PSW tartalmazza a program a saját szintjén lévő szegmenseket szabadon használhatja magasabb szinten lévő adatokhoz hozzáfér, de az alacsonyabb szinten lévők kezelése csapdát okoz más szinten lévő eljárás hívásánál CALL utasításnak cím helyett szelektort kell tartalmaznia, ez a szelektor egy hívás kaput jelöl ki, amely a hívandó eljárás címét adja meg más védelmi szintre csak szabványos belépési ponton lehet áttérni, nem lehet más szinten tetszőleges kódszegmens közepébe ugrani
52. Az UltraSPARC III virtuális memóriája UltraSPARC III virtuális memóriája: virtuális cím 64 bites, egyel_re 44 bitre korlátozva 44 bitre korlátozva ez a címtartomány folytonos fizikai címtartomány maximum 41 bites a kód és adat lapokat külön kezeli Lapméret: 8, 64, 512 KB és 4 MB MMU (memóriakezelő egység): 3 szinten dolgozik a legutóbb használt lapokat gyorsan megtalálja (hardver). A kód és az adat lapokat teljesen külön kezeli. a nem nagyon régen használtakat már lassabban (hardver segítséggel)
43
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
a nagyon régen használtakat csak hosszas keresés után (szoftveres úton) TLB: a legutóbb használt 64 lap bejegyzését tartalmazza Környezet: processzus szám Asszociatív memória: kulcs a keresett virtuális lap és a környezet TLB hiány esetén: csapda és TSB folytatja a keresést (szoftver). TSB: olyan felépítésű, mint egy direkt leképezésű gyorsító tár. Operációs rendszer építi fel, és kezeli a központi memóriában. TSB találat: egy TLB sor helyébe beíródik a kért lapnak megfelelő bejegyzés TSB hiány: fordítótábla alapján keres. Fordítótábla: szerkezetét az operációs rendszer határozza meg. tördeléses eljárás: a memóriába töltött virtuális lapok és a nekik megfelelő fizikai lapkeretek sorszáma listákba van helyezve ha p-osztva q-t ad maradékul, akkor csak a q-adik listát kell végignézni ha ez se találja a keresett lapot, akkor nincs a memóriában Virtuális memória és gyorsító tár: 2 szintű hierarchiája van az egész programot lemezen tartjuk, fix méretű lapokra osztjuk laphiány: a lapot a központi memóriába tölti az operációs rendszer gyorsítótár esetén a központi memóriát gyorsító sorokra osztjuk gyorsítósor hiány esetén a gyorsító sort a gyorsító tárba tölti a hardver
53. Mágneslemezek, lemezvezérlők Felépítés és működés: A mágneslemez egy vagy több mágnesezhető bevonattal ellátott alumíniumkorongból áll. Egy indukciós tekercset tartalmazó fej lebeg a lemez felett, attól csak egy vékony levegőréteg tartja távol. Ha pozitív vagy negatív áram folyik az indukciós tekercsben, akkor a fej alatt a lemez felmágneseződik, a mágneses részecskék az áram polaritásától függően balra vagy jobbra állnak be. Amikor a tekercs egy felmágnesezett terület felett halad el áram indukálódik benne, így a korábban eltárolt biteket vissza lehet olvasni. Tehát ahogy a korong forog bitsorozatokat lehet írni/olvasni.
Kapcsolódó fogalmak: Sáv: Egy teljes körülfordulás alatt felírt bitsorozat. (5000-10000 sáv/cm) Szektor: Minden sáv rögzített méretű, tipikusan 512 bájtos részekre van osztva, ezek a részek a szektorok. Minden szektort egy fejléc előz meg. Fejléc: A fej írás és olvasás előtti szinkronizációjához szükséges. A szektorok előtt helyezkedik el. Reed-Solomon-kód: Az adatok után hibajavító kód helyezkedik el, mely lehet Hamming-kód, vagy R-S-kód. Szektorrés: A szektorok közötti keskeny rész. Formázott kapacitás: Általában 15%-al kisebb mint a formázott. Nem számítja adatlan a fejléceket, ECC-ket és a réseket.
44
Szegedi Tudományegyetem -
-
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Winchester lemez: - légmentesen lezárt - kezdetben 30MB fix és 30MB cserélhető - átmérő: régen 50 cm, mostanában 3 cm alatti is van - lemezegység: közös tengelyen több (6-12) lemez - minden felülethez tartozik egy fej és egy mozgatókar, a fejek ugyanarra a sugárirányú pozícióra állnak be Cilinder: Egy adott sugárirányú pozícióhoz tartozó sávok összege. Seek (keresés): Egy szektor beolvasásához vagy kiírásához először a fejet a megfelelő sugárirányú pozícióba kell állítani. Ezt a műveletet hívják keresésnek (seek). Forgási késleltetés: A fej kívánt sugárirányú pozíciójába való beállítás utáni rövid szünet. Átlagosan egy fél fordulat ideje 3-6 ms (60-180 fordulat/sec) Átviteli sebesség: - a kerületi bitsűrűségtől és fordulatszámtól függ (20-40 MB/sec) - maximális: az első adatbit beolvasásánál mérhető sebesség - átlagos: folyamatos adatátviteli sebesség Írássűrűség: - régen: belül maximális, kifelé egyre kisebb (forgás szög alapján) - jelenleg: 10-30 zóna, a külső zónákban több szektor van egy sávon
Lemezvezérlő: Minden lemezhez tartozik egy lemezvezérlő, egy lapka amely vezérli a meghajtót. Egyes vezérlőkben egy teljes CPU van. A vezérlő feladatai közé tartozik a szoftverparancsok (READ, WRITE és FORMAT) fogadása, a kar mozgatása, a hibák felismerése és javítása, valamint a 8 bites memóriabájtok oda- és visszaalakítása bitek sorozatává. Egyes vezérlők még puffereléssel is foglalkoznak, a beolvasott szektorokat gyorsítótárba helyezik, és átcímkézik a hibásakat. Ez utóbbira akkor van szükség ha valamelyik szektorban keletkezik egy hibás (állandóan mágneses) hely. Ha a vezérlő felfedez egy ilyet, akkor kiváltja egy olyannal, amit kifejezetten erre a célra tartanak fenn minden cilinderen vagy zónában. Hajlékonylemez (floppy): Szerviz célokra találták ki (karbantartási információk tárolása). Az I/O fej hozzáér a lemezhez, ezáltal gyorsan kopik, ezért leáll, ha éppen nincs feladata. Kb. 0,5 sec, míg a lemez felpörög. Két méretben gyártották: 3,5 inch és 5,25 inch.
54. RAID szintek Felvetődött már azt évek során, hogy a párhuzamos B/K jó ötlet lehetne. Patterson és társai 6 olyan lemez-összekapcsolási módot javasoltak, amelyek vagy teljesítmény, vagy megbízhatóság, vagy mindkettő növelésére használhatók. Ez elvezetett új típusú B/K eszköz megszületéséhez, amelynek neve: RAID. Eredeti definíció: olcsó lemezek redundáns tömbje. Szükség volt „rosszfiúra”, ami a SLED lett. A RAID alapötlete az, hogy a számítógép mellé telepítünk egy dobozt tele lemezegységekkel, a lemezvezérlőt kicseréljük egy RAID vezérlőre, átmásoljuk az adatokat a RAID-re aztán folytatjuk a munkát. A RAID-nek az operációs rendszer felé úgy kell viselkednie, mint egy SLED-nek amelynek azonban nagyobb a teljesítménye és a megbízhatósága. Azontúl, hogy a RAID szoftverszempontból egyetlen lemeznek látszik, az adatok szét vannak osztva a meghajtók között, lehetővé téve a párhuzamos működést. Ezeknek több megoldása van, ezek a RAID 0-tól RAID 5-ig terjedő szintek. A „szint ” elnevezés sem igazán jogos, mert valójában nincs hierarchia, csupán 6 különböző szervezési mód.
45
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS] RAID 0 az egymás után következő csíkokat körben forgó módszerrel írja fel a lemezekre. 4 RAID-meghajtó esetén. Ezt a fajta adateloszlást csíkozásnak hívják. A RAID 0 nagyméretű blokkokkal működik a legjobban. Ha (egy kérés) > (lemezek száma * a csík méretével), egy meghajtó több kérést is fog kapni, amikor az első befejezte, kezdi a másodikat. A vezérlő feladata: a kérések feldarabolása a megfelelő részkérdések eljuttatása a megfelelő lemezhez a megfelelő sorrendben részeredmények helyes összeállítása a memóriában A RAID 0 olyan operációs rendszerekkel teljesít a leggyengébben, amelyeknek az a szokása, hogy szektoronként kezelik az adatokat.
RAID 1, mely már igazi RAID. Minden lemezt megdupláz, tehát 4 elsődleges és 4 tartalék lemez van. Írás esetén minden csoport kétszer kerül kiírásra. Olvasás esetén a kettő közül bármelyik másolat használható, így a terhelés több meghajtóra oszlik el. Írás 2 példányban, nagyobb biztonság, olvasása gyorsabb RAID 2 szóalapú, esetleg bájt alapú is lehet. A virtuális lemez minden bájtját két 4 bites részre vágunk, majd Hamming-kódolással olyan 7 bites szavakat képezünk, amelyekben az 1., a 2. és 4. bitek paritásbitek. 7 meghajtójának karjai sugár irányban és forgási pozíció tekintetében szinkronizálva vannak. Hátránya ennek a szémának, hogy az összes meghajtó forgásának szinkronban kell lennie és csak elég sok meghajtó használata esetén van értelme. A vezérlőnek is sok a dolga, mert minden bitmozgatási idő alatt egy Hamming-kódot is kell számítania. Hamming-kód: 4 adatbit + 3 ellenőrző bit, nagyobb biztonság, nagy átviteli sebesség. RAID 3 a RAID 2 egy egyszerűsített változata. Itt minden adatszóhoz egyetlen paritásbit van rendelve, amelyet egy külön paritásmeghajtón tárolunk. A meghajtókat szinkronizálni kell, mert adatszavak szét vannak térítve több meghajtóra. Egyetlen paritásbit csak hibafelismerésre jó, hibajavításra nem. Ha egy diszk kiesik, nincs adatvesztés. RAID 4 és a RAID 5 megint csak csíkozással dolgozik, nem paritásbitekkel ellátott egyedi szavakkal, ezért ezek nem igénylik a meghajtók szinkronizálását. A RAID 4 hasonlít a RAID 0-ra, azonban a csíkonkénti paritást felírja a külön meghajtóra. Ez a megoldás védelmet nyújt a meghajtó elvesztése ellen, de nem hatékony, ha gyakran kell kis mennyiségű adatot újraírnunk. A paritásmeghajtóra nehezedő vagy terhelés miatt a válhat a szűk keresztmetszetté. Ezt azzal szünteti meg, hogy paritásbiteket egyenletesen, körbejárásos módszerrel szétosztja a meghajtók között. RAID 4 az összetartozó csoportok paritás csoportosításhoz olvasni is kell mindegyik diszkről nagyon terheli a paritás diszket. RAID 5 Elosztja a paritás diszkek terhelését.
46
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
55. Optikus lemezek CD (1980): Philips Részei: Nyomtatott címke Védő lakk réteg Fény visszaverő réteg Polikarbonát alap Olvasás: kis energiájú infravörös lézerrel. Az üregből visszavert fény rövidebb utat tesz meg, mint az üreg pereméből visszavert, ezért gyengíteni fogják egymást. Spirál: belülről induló 22188 fordulatú kb. 5,6 km hosszú 35 mm-es sávban, kb. 600 menet/mm Jelsűrűség: a spirál mentén állandó. Fordulatszám: 530 és 200 fordulat/perc CD-ROM (1984): Yellow Book Több szintű hibajavítás: kihasználtság 28% (650MB), mivel 1 bájtot 14 biten ábrázol, annyi benne a redundancia kód. fejléc: 12 bájt + 3 bájt szektor sorszáma + 1 bájt mód: o mód=1: 2048 adat + 288 ECC bájt o mód=2: 2336 adat bájt EEC: Error Correction Code CD-R (1989): Orange Book spirál 0,6 mikrométer széles vájat mutatja, ezen egy 22,05 kHz frekvenciájú 0,03 mikrométer amplitúdójú szinusz hullám szolgál a pontos forgási frekvencia ellenőrzésére alumínium helyett arany bevonat üreg helyett sötét pont minden sávot megszakítás nélkül folyamatosan kell felírni mindig az utolsó katalógus (VTOC) az aktuális Trükk az illegális másolat készítés nehezítésére: szándékosan hibás ECC-k CD-RW: 3 különböző energiájú lézer van (törlő, író, olvasó). Viszonylag drága és néha hátrány, ha újraírható. DVD (Digital Versatile Disk): sokoldalú digitális lemez precízebb mechanika kisebb üreg (0.4 mikrométer a 0.8 helyett) szorosabb spirál (1.6 helyett 0.74) vörös lézer (0.78 mikro helyett 0.65) Kapacitás: 4,7 Gigabyte (133 perces videó fér el rajta) 4 formában gyártják: egyoldalas, egyrétegű (4,7 GB) egyoldalas, kétrétegű (8,5 GB) kétoldalas, egyrétegű (9,4 GB) kétoldalas kétrétegű (17 GB) A rétegeket a lézer fókuszálásával váltja ki. Az alsó réteg kapacitása egy kicsit kisebb. Blu-Ray: kék lézert használ, a dvd-ben használt piros lézer helyett. Az egyoldalas 25 GB-os a kétoldalas pedig 50 GB tárolókapacitással rendelkezik. Átviteli sebesség: 4,5 MB/s. Arra számítanak, hogy leváltja a CD-t,DVD-t.
47
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
56. Lézernyomtató, half-toning A lézernyomtató megjelenése volt a nyomtatás egyik legizgalmasabb eseménye. Ez az eszköz olyan tulajdonságokat egyesít magában, mint a kiváló minőségű kép, nagy rugalmasság, sebesség és elfogadható költség. A lézernyomtatók majdnem ugyanazt a technológiát használják, mint a fénymásolók. A nyomtató szíve egy fényérzékeny anyaggal bevont fogó precíziós henger. Egy-egy lap nyomtatása előtt körülbelül 1000 voltra feltöltődik. Ezt követően egy lézer pásztázza végig a hengert hosszában, egy nyolcszögletű tükörrel irányítja a fényt a hengerre. A fényt modulálják, hogy világos és sötét pontokat kapjanak. Azok a pontok, ahol fény éri a hengert elveszítik elektromos töltésüket. Miután egy pontokból álló sor elkészült, a hengert, elveszítik elektromos töltésüket. Miután egy pontokból álló sor elkészült a henger a fok egy törtrészével elfordul, és elkezdődhet a következő sor előállítása. Később az első sor eléri a tonerkazettát, amely elektrosztatikus érzékeny fekete port tartalmaz. A por hozzátapad a még feltöltött ponthoz, így láthatóvá válik a sor. Tovább fordulva a bevont henger hozzányomódik a papírhoz, átadva a papírnak a festéket. A papír ezután felmelegített görgők között halad el, ezáltal a festék véglegesen hozzátapad a papírhoz, kialakul a kép. Később, a továbbforduló hengerről eltávolítják a töltést és letörlik a maradék port, ezzel a henger készen áll arra, hogy újra feltöltsék a következő papírhoz. Az elektronika egy gyors CPU-ból és néhány megabájt memóriából áll, amelyben elfér egy kinyomtatandó lap bittérképe és számos betűkészlet, ezek némelyike beépített, mások letölthetők. A legtöbb elfogad lapleíró parancsokat is. A szokásos megoldás szürkeárnyalatos képek nyomtatására az úgynevezett halftoning – a kereskedelemben kapható posztereknél is ezt alkalmazzák. a képet halftone cellákra bontják, egy cella jellemzően 6x6 pixel. Minden cella 0 és 36 közötti fekete pixelt tartalmazhat. A szemünk több fekete pixelt tartalmazó cellát sötétebbnek látja, mint a kevesebbet tartalmazók. A 0 és 255 közötti szürkeségi értéket 37 zónába sorolják. A 0-tól 6-ig terjedő értékek vannak a 0-s zónában, 7-től 13-ig az 1-es zónában és így tovább. Ha egy 0-s zónába eső szürkeségi értékkel találkozunk, az annak megfelelő halftone cella a papíron üresen marad. Az 1-es zónában eső pixelek helyére 1 fekete picel kerül. A 2-es zónába eső értékek 2 fekete pixelként jelennek meg.
57. Színkeverés, színes nyomtatók fajtái Színeket kétféleképpen állíthatunk elő: színösszeadással: a 3 additív alapszín, a vörös, a zöld és a kék lineáris szuperpozíciójával állíthatók elő színkivonással: bizonyos hullámhosszúságú fényt elnyelnek, míg másokat visszavernek. Ezek a 3 szubtraktív alapszín, a cián, a sárga, és a bíborvörös lineáris szuperpozíciójával állnak elő CMYK nyomatók: Elméletileg minden szín előállítható a cián, a sárga és a bíborvörös tinta keverésével. Gyakorlatilag nehéz olyan teljesen tiszta tintákat készíteni, amelyek az összes fényt elnyelik, és a keverék feketének látszik. Emiatt majdnem minden színes nyomatási rendszer 4 tintát használ: ciánt, sárgát, bíborvöröset és feketét. A monitorok ezzel szemben az additív alapszínrendszert használják a színek előállítására. Azoknak a színeknek az összességét, amelyeket egy monitor vagy nyomtató képes előállítani, gamutnak nevezzük. Egyetlen eszköz gamutja sem azonos a világ színeivel. Ezeken túl a színek érzékelése nem csak a fény fizikai jellemzőin, hanem sokban azon is múlik, hogy a csapok és a pálcikák hogyan helyezkednek el emberi retinán. Színes nyomtatáshoz 5 féle technológiát alkalmaznak a mindennapos használatban; ezek mindegyike CMYK-rendszeren alapul. Az egyszerűbbek a színes tintasugaras nyomtatók, melyek ugyanúgy működnek, mint a monokróm tintasugaras nyomtatók, de egy helyett 4 patronnal.
48
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
A legjobb eredménye elérése érdekében speciális tintát és papírt kell használni. Két féle tinta van: festékalapú: folyékony hordozóanyagban oldott színes festékek. Élénk színeket adnak, és könnyen folynak. Fő hátrányuk, hogy ultraibolya fénynek kitéve fakulnak. pigmentalapú: szilárd pigmentrészecskéket tartalmaznak folyékony hordozóanyagban, amely elpárolog a papírról, hátrahagyva a pigmenteket. Nem fakul, de nem is olyan élénk a színűk, mint a festékalapú tintáknak, illetve szeretik eltömíteni a fúvókákat. A szilárd tintás nyomtatók. Négy speciális, szilárd tintatömböt kell elhelyezni, amelyeket aztán felolvasztanak, és tartályokban tartanak. Forró tintát papírra szórják, ahol megszilárdul és két henger között átvezetve véglegesen a papíron marad. A színes lézernyomtató a négy színnek megfelelő képeket egyenként viszik fel a hengerre és mindegyiknél külön tonnerből színezik meg a papírt. A nyomtatónak 55MB memóriára van szüksége csak a bittérkép tárolására, nem számítva a belső processzorok, betűkészletek és egyebek memóriaszükségeltét. Ezek a követelmények drágává teszik a színes lézernyomtatókat, de a nyomtatás gyors, a minőség nagyon jó és a képek időállók. A viasznyomtató egy széles, négyszínű viaszt tartalmazó szalag található benne, amely lapméretű szegmenseket osztott. Több ezer fűtőelem osztja meg a viaszt, ahogy a papír mozog alatta. A viasz CMYK-rendszer használva pixelenként hozzátapad a papírhoz. Igen elterjedtek voltak régen, de olyan nyomatók váltották fel ezeket, melyeknek olcsóbbak a kellékei. Festékszublimációs nyomtató: a szublimáció annak a folyamatnak a tudományos neve, mikor egy szilárd halmazállapotú anyag gázzá változik anélkül, hogy keresztülmenne a folyékony halmazállapoton. A festékszublimációs nyomtatóban több ezer fűtőelemet tartalmazó nyomtatófej felett haladnak el a hordozóanyagban tárolt CMYK festékek. A festékek azonnal elpárolognak és a közben lévő speciális papírra kerülnek. A többi színes nyomtatóval ellentétben közel folytonos színátmeneteket lehet elérni, így halftoning technikára nincs szükség. Kis fényképek készítésére használt nyomtatók gyakran ezen az elven működnek, és nagyon valósághű képeket tudnak produkálni speciális papírra
58. Megjelenítők (CRT, LCD) CRT (katódsugárcsöves) monitor: soronként állítja össze a raszteres képet
elektronsugár: eltérítésére elektromos tereket használ, jobbakban mágneses tereket elektronágyú: elektronokat bocsát ki, vízszintes irányban keresztben átfut a képernyőn eltérítő tekercsek: ágyú alatt és felett van, függőleges irányban mozdítja rács: szabályozza a képernyőt érő elektronok mennyiségét, pozitív feszültséget kapcsolva rá az elektronok felgyorsulnak és az ernyőbe csapódva felvillannak, a negatív feszültségről visszapattannak → bitmintázat alakítható ki színes monitorban 3 elektron ágyú ⋅ a teljes képernyőt másodpercenként 30-60-szor újrarajzolják Folyadékkristály: nyúlós szerves molekula, de térbeli szerkezete is van. Optikai tulajdonsága a beeső fény irányától, polarizáltságától függ. Elektromos mező felhasználásával az optikai tulajdonság megváltoztatható. LCD (folyadék kristályos) monitor: többnyire hordozható gépeknél 2 párhuzamos üveglemez elektródák mindkét lemezen – ezek elektromos teret hoznak létre a folyadék kristályban, változtatva a feszültséget kialakítható a kívánt kép polárszűrők a képernyő elején és hátulján TN (csavart molekula elrendeződéses) megjelenítő: a megvilágító fényt a hátsó polárszűrő vízszintesen polarizálja a folyadékkristály függőlegesbe forgatja a polaritást az első polárszűrő csak a függőlegesen polarizált fényt engedi át feszültség hatására a forgatás csökken vagy elmarad, következésképpen csökken a fényerő
49
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Feszültség beállítási módszerek: passzív: merőleges vezetékháló o vízszintes és függőleges párhuzamos elektródák o az egyik függőleges vezetékre feszültséget kapcsolva, és impulzust bocsátva egy vízszintes vezetékre a kiválasztott pixel elsötétíthető o az egész képernyőt kirajzolják másodpercenként 60-szor aktív mátrix (TFT-megjelenítő): o pixelenként kapcsolóelem (vékonyfilm tranzisztor) van, ezeket ki-be kapcsolgatva tetszőleges feszültségminta hozható létre o drágább, de lényegesen jobb képet ad Video RAM-ok: A megjelenítők másodpercenként 60-100 alkalommal frissítik a képernyőt a videomemóriából, ami a videokártyán van. Több képernyőnyi tartalmat is tárolhat. Pixel: képpont, 3 bájtos értékből áll (Red, Green, Blue) Színpaletta (indexelt színelőállítás): 256 elemből álló színkészlet, mindegyik 3 bájtos RGB érték. A pixelekhez csak az elem indexét tárolják. A videomemóriaigényt csökkenti. Nagy sávszélesség: a képernyő kiszolgálásához 1600-1200 pixelhez 5,5 MB kell, legalább 25 képkocka/s a folyamatos képhez EISA és PCI sín helyett AGP sínt használnak a Pentium II-től kezdve: 32 bit továbbítása 66 MHz-en, sávszélessége 252 MB/s AGP verziók: 2, 4, 8x-os sebesség elegendő sávszélességű, nem terheli le a PCI sínt
59. Terminál. Modemek, jelzési, adatátviteli sebesség Terminál: billentyűzet + monitor. Gyakran egybeépített, soros vonalon, telefonhálózaton keresztül van a központi géphez kapcsolva. Billentyűzet: eredeti: minden billentyű alatt egy kapcsoló, amely kattanó hangot ad, ha lenyomják most: mechanikus kontaktust hoznak létre leütéskor rugalmas anyag van a billentyűk és az alattuk lévő nyomtatott áramköri lap között billentyű leütésekor: zárul az áramkör Megszakítás: a billentyű leütésekor és felengedésekor keletkezik, Billentyűzet-megszakításkezelő: program, az operációs rendszer része kiolvassa a billentyűzet vezérlőregisztereiből a leütött billentyű kódját billentyűkombinációk kezelése szoftveres úton történik. Telekommunikációs berendezések: modemek segítségével teremtenek kapcsolatot számítógépek között Modemek: adatátvitel analóg telefonvonalon 1000-2000 Hz közötti (szinuszos) vivőhullám átvihető kis torzulással Moduláció: 1-esek és 0-k sorozata átvihető vele amplitúdó: két feszültségszintet használ (egyiket a 0-hoz, másikat 1-hez) frekvencia (frekvenciaeltolásos kódolás): feszültségszint állandó, a vivőhullám frekvenciája eltér_ 0-k és 1-eseknél fázis: vivőhullám fázisa eltolódik minden 1-0, 0-1 váltásnál 180 fokkal kombináltan is alkalmazhatók Dibit fáziskódolás: 45, 135, 225, 315 fokos fázisváltás minden oszthatatlan időintervallum kezdetén. 2 bitet lehet vele intervallumonként átvinni. Baud (jelzési sebesség): időintervallumok száma, a lehetséges jelváltások száma/s. Egy jel több bit információt hordozhat. Intervallumonként 2 vagy több bit átvitele esetén a másodpercenként átvitt bitek száma nagyobb, mint a jelváltások száma. Adatátviteli sebesség: átvitt bitek száma/s Egy bájt továbbítása: start bit, bájt, stop bit Tipikus mai modem: 9600 baud, 28.800 vagy 57.600 bit/sec. Kommunikációs vonal: full-duplex: egyszerre kétirányú forgalom, különböző frekvenciát használva half-duplex: kétirányú forgalom, de nem egyszerre simplex: csak egy irányú forgalom lehetséges
50
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
60. ADSL, kábeles internet ADSL A modemek lassúságának oka, hogy a telefonvonalakat egy 3000 Hz-es szűrővel korlátozzák a telefontársaságnál. Ez az a szűrő, amely behatárolja az adattovábbítás sebességét. Szűrő nélkül a lokális huroknak a gyakorlatban elérhető sávszélessége függ a vezeték hosszától, de általában néhány kilométer távolságon elérheti az 1,1 MHz-et. Szélessávú szolgáltatás: Lényegében, azt teszik, hogy eltávolítják a szűrőt, és az elérhető 1,1 MHz spektrumot 256 független, egyenként 4312,5 Hz szélességű csatornára osztják fel. A 0-s csatornát az egyszerű régi telefonszolgáltatás céljaira használják. Az 1-5. csatornát nem használják, azért hogy megelőzzék a telefonhang és az adatjelek interferenciáját. A fennmaradó 250 csatornából egyet a felmenő, egyet a lejövő adatfolyam vezérlésére használnak. A többi csatorna pedig a felhasználók adatait továbbítja. Általában 32 csatorna van a feltöltésre, és az összes többi pedig a letöltésre. A különböző csatornákon eltérhet az átviteli sebesség.
A diagram azt mutatja be, hogy a felhasználó vagy a telefontársaság szerelőjének egy hálózati interfészt kell felszerelnie az előfizető telephelyén. Ez a kis műanyag doboz jelöli a telefontársaság birtokának a végét és az előfizető birtokának a kezdetét. A hálózati interfészhez közel található a szétválasztó. Ez egy analóg szűrő, amely leválasztja az telefonvonalat, és az adatjeleket egy ADSL modemre irányítja. Az ADSL-modem tulajdonképpen egy digitális jelfeldolgozó eszköz, amely egy Ethernet-vonalon csatlakozik a számítógéphez (néha Ethernet helyett USB). A vezeték másik végén, a telefontársaság végpontján egy megfelelő szétválasztót kell felszerelni. A jel, hang részét itt is ki kell szűrni, és a normál telefonközpontba küldeni. A 26 KHz feletti jeleket egy újfajta készülékbe, a DSLAM-ba irányítják. A DSLAM (digitális előfizetői vonal hozzáférési multiplexer) egy digitális jelfeldolgozó egység, amely csomagokat alakít ki a digitális jelekből képzett bitsorozatokból és azokat az internetszolgáltatóhoz küldi tovább. Kábeles internet A kábelszolgáltatók minden városban fő telephellyel rendelkeznek, valamint rengeteg, elektronikával zsúfolt dobozzal szerte a működési területükön, amelyeket fejállomásoknak neveznek. A fejállomások nagy sávszélességű kábelekkel vagy üvegkábelekkel kapcsolódnak a fő telephelyhez. Minden fejállomásról egy vagy több kábel indul el, otthonok és irodák százain halad keresztül. Minden előfizető ehhez a kábelhez csatlakozik, ahol az átlépi az előfizető telephelyének határát. Így felhasználók százai osztoznak egy a fejállomáshoz vezető kábelen. Rendszerint a kábelek sávszélessége 750 MHz körül van. Bár a gyakorlatban egy saját 1,1 MHz sávszélességű csatorna nem nagyon különbözik a fejállomáshoz vezető kábel 200 MHz-es részének 400 felhasználó számára történő felosztásától, akiknek a fele nem használja a rendszert az adott pillanatban. Ez azonban azt jelenti, hogy hajnali 4 órakor jobb a kiszolgálás, mint délután 4-kor, míg az ADSL egész nap állandó. A kapcsolódás kábelmodemmel történik, mely internet hozzáférést biztosít, folyamatosan kapcsolatban van a fejállomással. 2 interfész van benne: - számítógép interfész: Ethernet-kártyával csatlakozik a gépre - kábel tv-hálózat interfész
51
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Bekapcsolása: 1. ellenőrzi a lejövő csatornákat, speciális csomagot keres, amit a fejállomás küld periodikusan (rendszerparaméterek). Ha megvan, jelez a fejállomásnak, ami kiosztja 2. a felmenő, lemenő csatornáit, és meghatározza minislot-kiosztását (minislot: az adatforgalom egy rövid idejű szelete). 3. távolságbehatárolás: fejállomástól mért távolság, egy csomag kézbesítési idejét leméri 4. hálózati címkérés: dinamikusan osztja ki az internetszolgáltató (ISP) 5. kapcsolat titkosítása, majd bejelentkezés
Kistételek 1.
Fordítás. Értelmezés.
L0: a gépi nyelv L1: egy magasabb rendű nyelv, kényelmesebb nyelv Fordítás: Először az L1 nyelvű program minden utasítását helyettesítjük az L0 nyelv utasításainak egy vele ekvivalens sorozatával. Ekkor egy L0 nyelvű programot kapunk, és ezt hajtjuk végre.. Értelmezés: Az L1 nyelvű program következő utasítását elemezzük, és a vele ekvivalens L0 nyelvű utasítássorozatot azonnal végrehajtjuk a számítógéppel.
2.
Gépi nyelvi szintek és jellemzésük 0. Digitális logika szintje a. kapuk: AND, OR, … b. 1 bites, több bites memória, regiszter… 1. Mikroarchitektúra szintje a. mikroutasítások, mikroprogram – nem minden gépen létezik, de a gépi utasítások végrehajtását gyakran a mikroprogram végzi, ekkor ez a szint értelmezi a 2. szintet b. Regiszterek, ALU c. Adatfolyam - adatút 2. Gépi utasítás szintje a. itt dől el a kompatibilitás kérdése 3. Operációs rendszer szintje a. speciális kiegészítők (memóriakezelés, párhuzamos futtatás) b. általában értelmezés. A szint utasításait az operációs rendszer vagy közvetlenül a 2. szint hajtja végre. 4. Assembly nyelv szintje a. szimbolikus írás 5. Probléma orientált nyelv szintje a. pascal, C, C++, adatbázis kezelők, ….
3.
Számítógép generációk, 0., 1., 2., 3., 4. generáció. 0. generáció: mechanikus gépek (1642-1945) Fémlemezre kiíratás használtak Pascal (összeadó,kivonó), Leibnitz 4 alapművelet, Babbage differenciagép Zuse (1936) elektromágneses reléket használ Aiken (1944) jelfogós gépet készít 1. generáció: elektroncső (1945-1955) Kezdetben két szint: digitális logika, utasítások 2-es számrendszer, 4096 szavas memória, 40 bites szavak COLOSSUS, ENIAC, IBM 709, M3
52
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
2. generáció: tranzisztor (1955-1965) 512x512 pixeles kijelző Omnibusz (Általános sín kialakulása) PDP-8 DEC PDP-1 3. generáció: integrált áramkör (1965-1980) Emuláció: a sorozat gépein futtathatók az előző típusok programjai is Mikroprogramozás, Operációs rendszerek, Multiprogramozás (DOS), DEC PDP-11, IBM 360 4. generáció: VLSI (1980-) Néhány millió elem egy nyomtatott áramköri lapkán (chipen) Személyi számítógépek, kábelek, tápegység Commodore, Apple, Spectrum-80, Intel 8080, MS-DOS, OS/2, Windows
4.
Neumann elvű és Harvard típusú számítógépek.
Neumann elvű gép: Tárolt programú elektronikus számítógép, amely az adatok és a program tárolására közös memóriát használ. Az első ilyen elvű gép az EDSAC volt. Négy építőköve: Memória ALU (Aritmetikai-logikai egység) Vezérlőegység Bemeneti/Kimeneti elemek
Harvard típusú gép: Külön memóriát használ az adatok és külön memóriát a program számára.
5.
Moore törvény, Nathan első törvénye
Moore vette észre, hogy a memória-áramkörök esetében háromévente jelentek meg új generációk. Minden generáció megnégyszerezte az előző memóriakapacitását. Azt jósolta, hogy ez a növekedés még évtizedekig folytatódni fog. Ezt a megfigyelést hívjuk Moore-szabálynak. A tranzsztorok száma 18 havonta megkétszereződik, azaz növekedés mintegy 60%. A közgazdaság-tudomány ezt a szabályt bűvös körként ismeri. A technológia fejlődése jobb és olcsóbb termékeket eredményez. A technológia fejlődés másik motorját Nathan első szoftvertörvénye fogalmazza meg. Eszerint „a szoftver gáz, amely kitölti a rendelkezésre álló teret”. A szoftverekbe egyre jobban szolgáltatások épülnek be és ezért egyre gyorsabb processzorokra, nagyobb memóriákra és B/K kapacitásra van igény.
53
Szegedi Tudományegyetem
6.
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Fixpontos szám ábrázolás, konverzió számrendszerek között.
Véges pontosságú számok: számítógépes erőforrások véges természete csak fix számú jeggyel ábrázolható számokkal enged foglalkozni Algebrájuk: különbözik a normál algebrától, az asszociációs, disztribúciós szabály nem minden esetben működik és a műveletek sorrendje is számít Ábrázolási tartományuk: ez a halmaz nem zárt a négy alapműveletre nézve, különböző terjedelmű lehet Zártságot megszüntető okok: túlcsordulás - az eredmény nagyobb, mint az ábrázolható legnagyobb halmazbeli szám alulcsordulás - az eredmény kisebb, mint az ábrázolható legkisebb halmazbeli szám az eredmény nem eleme az ábrázolható számok halmazának Némely gép speciális hardvere észreveszi a túlcsordulási hibákat. Pontosság: két egymást követő szám különbsége Maximális hiba: az ábrázolási tartományba eső tetszőleges valós szám és a hozzá legközelebb lévő ábrázolható szám különbsége Számrendszerek közötti konverzió: 2 → 8: hárombites csoportokra osztjuk a számot, a tizedesponttól kiindulva minden hárombites csoport alkot egy oktális számjegyet, szükség lehet egy, vagy két pótló 0- ra a kezdő és záró csoportoknál 2 → 16: négybites csoportokra osztjuk a számot, a tizedesponttól kiindulva minden négybites csoport alkot egy hexadecimális számjegyet, szükség lehet egy, két vagy három pótló 0-ra a kezdő és záró csoportoknál 8 → 2: minden oktális számjegyet lecserélünk egy vele ekvivalens hárombites számra 16 → 2: minden hexadecimális számjegyet lecserélünk egy vele ekvivalens négybites számra 2 → 10: egyik módszer szerint összegezzük 2 azon hatványait, ahol 1-es volt a kitevőben Másik módszer: függőlegesen, fordított sorrendben írjuk le a bináris számjegyet. 1-et írunk az első sorba, az n. sor eredménye az (n-1). sor kétszerese + az n. sor bitje. Az eredmény a legfelső sorban képződik. 10 → 2: egyik módszer szerint a legnagyobb kettes kitevővel rendelkező számot, amely nem nagyobb, mint maga a szám, le kell vonni a decimális számból. Ezután a különbségre ismételjük az eljárást. 1-es lesz azokon a bitpozíción, amelynek megfelelő számot a szétbontásban használtunk, és 0-s ott, amelyet nem használtunk Másik módszer: egészrész esetén 2-vel osztással (törtrésznél 2-vel szorzással) feljegyezzük a maradékot, majd a hányadosra ismételjük az eljárást, amíg nem lesz 0 a hányados. A maradék számjegyeket fordított sorrendben leolvasva kaphatjuk meg a bináris számot. 10 → 8, 10 → 16: először bináris számrendszerbe konvertálunk, és azután a kívánt számrendszerbe, vagy pedig 8 illetve 16 hatványainak kivonogatásával
7.
Negatív számok ábrázolásai
A negatív számok megjelenítésére négy különböző számrendszert használnak: Előjeles nagyság: A bal oldali első bit az előjelbit (0 +, 1 -), a maradék bitek jelzik a szám abszolút értékét. 8 bit esetén a legkisebb szám -127, a legnagyobb 127. A 0 kétféleképp ábrázolható. Egyes komplemens: Van egy előjelbitje (0 +, 1 -), egy szám negáltját úgy kapjuk meg, hogy minden 1-est 0-ra, és minden 0-t 1-esre cserélünk, az előjelbitre is alkalmazva. Bináris összeadásnál a baloldalon keletkezett átvitel bitet a jobb szélső bithez adjuk hozzá. A legkisebb szám -127, a legnagyobb 127 (8 bit esetén). A 0 kétféleképp ábrázolható. Kettes komplemens: Szintén tartalmaz előjelbitet (0 +, 1 -), egy szám negatívját kétlépéses eljárásban kapjuk meg: 1. Minden bitet negálunk, majd 1-et hozzáadunk az eredményhez. 2. Bináris összeadásnál az átvitelt a bal szélső bitnél eldobjuk. A legkisebb szám -128, a legnagyobb 127. A 0 egyértelműen ábrázolható. m-1 2mTöbbletes: m bites szám esetében 2 többletesnek nevezzük. Egy szám helyett a számnak és a 1 -nek az összegét tárolja, előjel nélkül. Lebegőpontos számok kitevő részénél használatos. Például egy 8 bites 128 többletes rendszerben a számot úgy tároljuk, mint a valódi számot plusz 128. Így a -
54
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
128-tól +127-ig elhelyezkedő számokat meg tudjuk feleltetni 0-255-ig terjedő számoknak, melyeket 8 bites egész számként fejezhetünk ki. A 0-át csak egyféleképpen ábrázoljuk. A pozitív és negatív számok aszimmetrikusak, van olyan negatív szám aminek nincs pozitív párja.
8.
A NEM-ÉS és NEM-VAGY kapu megvalósítása
Az, amibe megy a V1 és a V2, azok tulajdonképpen a tranzisztorok.
9.
A pulzus generátor és működése Ennek leginkább a késleltetéshez van köze. Működése az ábrán látható
10. Invertáló/nem invertáló puffer működése és szerepe a memóriáknál. Működése: Invertáló puffer esetén ha a bemeneti jel alacsony, akkor a kimeneti jel magas, míg a nem invertáló puffernél ez fordítva van. Továbbá jelen van egy vezérlő jel, amely átengedi az adott jelet vagy sem. Szerepe: Az invertáló és nem invertáló puffer háromállapotú eszköz (0, 1, semmi kibocsátása), olvasás esetén összeköti a VAGY kapukat a kimeneti vonalakkal, írás esetén teljesen leválasztja azokat. Néhány ns alatt fel tudja építeni a kapcsolatot vagy megszakítani. Jelerősítő is, így sok bemenetet tud egyszerre meghajtani.
55
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
11. RAM-ok és ROM-ok fajtái RAM (Random Access Memory): Véletlen elérésű memória, írni és olvasni is lehet. Két változata van: statikus és dinamikus. Fajtái: SRAM (Statikus RAM): D-filp-flopból épül fel, tartalma addig marad meg, amíg az áramellátása biztosított. Elérési ideje néhány ns. Népszerű 2. szintű gyorsítótár építéséhez (cache). DRAM (Dinamikus RAM): Cellák egy tömbjéből épül fel, mindegyik egy tranzisztort és egy kondenzátort tartalmaz. A kondenzátor feltöltött vagy kisült a tárolt értéknek megfelelően. Frissíteni kell minden bitet, mert az elektromos töltés elszivárogna. Nagyobb sűrűségűek, mint az SRAM-ok, de néhány 10 ns az elérési idejük. A főmemóriákat ebből építik. Fajtái: FPM (Fast Page Mode): Gyors lapkezelésű, a memória a fő rendszerórától eltérő szinkronizációval működik. EDO (Extended Data Output): Kiterjesztett adatkimenetű, megenged egy második memóriahivatkozást, mielőtt az előző befejeződött volna. SDRAM (Synchronus DRAM): SRAM és DRAM keveréke, a fő rendszeróra vezérli. Az óra kiküszöböli a vezérlőjeleket, így növekszik az adatátviteli sebessége. Blokkos átvitelt alkalmaz. Újabb fajtája a DDR, mely az órajel felfutó és lefutó élénél is bocsájt ki adatot. ROM (Read-Only Memory): Csak olvasható memória. A tárolt adatok bevitele gyártás során történik. Fényérzékeny anyag maszkon keresztüli megvilágítása, majd a felület kimaratása. Fajtái: PROM (Programmable ROM): Mező-programozható, egy biztosítékokból álló tömböt tartalmaz, melyeket nagyfeszültségű árammal égetnek ki a sor és oszlop kiválasztása után. EPROM (Erasable PROM): Mező-programozható, és mező-törölhető is. Kvarcüveg ablakon át, erős ultraibolya fénnyel megvilágítva az összes bitje 1-esre állítható. EEPROM (Electronic Erasable PROM): Impulzusokkal törölhető bájtonként speciális berendezés nélkül. Viszont fele olyan gyors mint az EPROM és 64x kisebb tárolókapacitású. Flash memória: A legújabb EEPROM-típus, blokkonkénti törlést és újraírást tesz lehetővé. Törölhető az áramkörből való elmozdítás nélkül. Digitális kamerák képeinek tárolására, MP3 lejátszókban, stb használják. 50 ns körüli elérési idejűek, kb. 100.000 használat után elkopnak.
12. Adat típusok, karakter kódolás. A számítógépnek adatok kellenek. Az adatokat a számítógépen belül speciális formában kell ábrázolni. Az ISA-szint adattípusok széles választékát nyújtja erre. A kulcskérdés, hogy vajon a hardver mely konkrét adattípusokat támogatja. A hardver támogatás azt jelenti, hogy vannak utasítások, amelyek megadott adatformátumot feltételeznek a programozó nem választhat más adatábrázolást. Két 32 bites egész számolt használjunk minden szám ábrázolására, azaz 64 bitet számonként, ha a gép nem támogatja az ilyen dupla pontosságú számokat, akkor minden aritmetikát szoftverrel kell megvalósítani, de ekkor a két 32 bites szám sorrendje tetszőleges lehet, hoszan a hardver ezzel nem törődik. Fajták: numerikus adattípusok nem numerikus adattípusok Pentium 4 adattípusai UltraSPARC III adattípusai 8051 processzor adattípusai Minden számítógép használ valamilyen karakterkészletet. Ez legalább 26 nagybetűt, 16 kisbetűt, 0-tól 9-ig a számjegyeket és egy sor speciális szimbólumot, mint például szóközt, pontot, mínuszjelet,
56
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
vesszőt és kocsi vissza jelet tartalmazza. Ahhoz, hogy a számítógépen tárolni tudjuk ezeket a karaktereket mindegyikhez hozzá kell rendelni egy számot. A karakterek számokra történő leképezését karakterkódnak nevezzük. Alapvető fontosságú, hogy az egymással kommunikáló számítógépeken ugyanazt a kódot használja, különben nem értik meg egymást ezért szabványokat dolgoztak ki. 2 legfontosabb: ASCII UNICODE
13. Gyorsító tár (cache). Találati és hiba arány. Egyesített és osztott gyorsító tár. A processzorok mindig gyorsabbak a memóriáknál, szoftveres, vagy hardveres várakozás teljesítménycsökkenést okoz. Gyorsítótár (cache): CPU teljesítményének növelésére szolgáló, CPU lapkára integrálható kicsi, gyors memória. Logikailag a CPU és a központi memória között helyezkedik el, fizikailag számos helye lehetséges A központi memória és a cache kötött méretű blokkokra van osztva. Alapötlete: a leggyakrabban használt memóriaszavakat a gyorsítótárban tartjuk. Ha egy utasításnak szüksége van az A szóra, először itt keresi, ha nincs itt, akkor az A-t tartalmazó blokk kerül beolvasásra a memóriából a gyorsítótárba. A siker azon múlik, hogy a keresett szavak mekkora hányada van a gyorsítótárban. Lokalitási elv: egy rövid időintervallumban a memóriahivatkozások a teljes memóriának csak egy kis részét érintik, ezek egymás közelében helyezkednek el Ha a CPU rövid időn belül egy szóra k-szor hivatkozik, ebből 1-szer kell a lassú memóriához fordulni, k-1-szer a gyorshoz. Minél nagyobb a k, annál jobb a teljesítmény. c: gyorsítótár elérési ideje m: központi memória elérési ideje h = (k-1) / k Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsítótárból. Hibaarány: 1-h Átlagos elérési idő: c + (1-h)*m Ha h→1, akkor minden hivatkozás kiszolgálható a gyorsítótárból, az elérési idő közelíti c-t. Ha h→0, akkor minden esetben memóriaműveletet kell végezni, az elérési idő közelíti c+m-et Gyorsítósor: főmemóriában lévő blokk, ha egy keresett szó nincs a gyorsítótárban, egy egész sort betöltenek oda. Egyszerre k szót olvasni hatékonyabb, mint egy-egy szót olvasni k-szor. Egyesített gyorsítótár: utasítások és adatok ugyanazt a gyorsítótárat használják. Egyszerűbb szerkezetű, automatikusan egyensúlyban tartja az utasítások és az adatok mozgását. Nem lehetséges vele a párhuzamosítás. Osztott gyorsítótár: az utasítások és adatok külön gyorsítótárban vannak (Harvard- architektúra). Lehetséges vele a párhuzamosítás: egyik szállítószalag végzi az utasítás, másik az operandus előolvasást. Az utasítás gyorsítótár tartalmát sosem kell visszaírni a memóriába, mert az utasítások nem módosulnak Gyorsítótár szintek: egyre bővülők, az 1. szintű tartalma benne van a 2. szintű cache-ben, a 2. szintű cache teljes tartalma benne van a 3. szintű gyorsítótárban.
57
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
14. Példák sínekre, sín összekapcsolásokra A sínek azok a ragasztók, amelyek összetartják a számítógéprendszereket. Népszerű sínek: ISA sín, PCI sín és az univerzális soros sín. Az ISA sín az eredeti IBM PC sínjének egy kismértékű bővítése. A visszafelé kompatibilitás miatt minden Intelalapú PC-ben volt ilyen sín az utóbbi néhány évvel bezárólag. A gépek rendelkeznek egy második, gyorsabb sínnel is: PCI sínnel. A PCI sín szélesebb, mint az ISA sín, és magasabb órajel-frekvencián működik, ennek következtében több adatot képes továbbítani másodpercenként, mint az ISA sín. Az univerzális soros sín (USB) B/K sín az olyan alacsony sebességű perifériák számára, mint az egerek vagy a billentyűzet.
15. Az IJVM, az IJVM memória modellje IJVM: A JVM egész értékű aritmetikát tartalmazó része. Mikroarchitektúrán futó mikroprogram, amely értelmezi az ISA szintet. Mikroprogram: betölti, értelmezi és végrehajtja az IJVM utasításokat, ez a betöltés-végrehajtás ciklus. IJVM utasítások szerkezete: rövidek OPCODE (műveleti kód) + OPERANDUS (ez nem mindig kell) Pl. IADD (ez a verem két felső szavát adja össze), BIPUSH 5 (ez az 5-ös számot teszi a verembe), ILOAD k (a k változót teszi a verembe) Verem: lokális változóknak fenntartott memóriaterület, ezen belül a változók nem kaphatnak abszolút címet. LV: regiszter, amely a lokális változók kiindulópontjára mutat SP: regiszter szintén, amely a verem tetején található szóra mutat veremműveletek: verembe betesz, veremből kivesz Operandusverem: operandusok és az eredmény ideiglenes tárolására használható egy aritmetikai kifejezés kiszámolása alatt. Pl. a1=a2+a
Memória modellje: a memória két módon látható, 4 GB-os bájtszervezésű, vagy 1 GB-os szószervezésű konstans mező: konstansokból, sztringekből, mutatókból áll. A program betöltődése után nem változik meg. A CPP implicit regiszter a konstans mező első szavának címét tartalmazza. Erre a területre IJVM program nem írhat. lokális változók mezője: egy metódus minden hívásakor lefoglalódó terület, a lokális változók tárolására. Az elején vannak a paraméterek, amelyekkel a metódust meghívtuk. LV tartalmazza a lokális változók mezőjében az első hely címét. operandus verem: közvetlenül lokális változók mezője fölött található. SP implicit regiszter tartalmazza a verem legfelső szavának címét. A megvalósításban ez a TOS regiszterben található. metódus mező: az IJVM programot tartalmazza. PC tartalmazza a betöltendő utasítás címét.
58
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
CPP, LV, SP: szavakra vonatkozó mutatók, növelésük 1-gyel és olvasás kezdeményezése a következő szó betöltését eredményezi. 47 PC: bájtokra vonatkozó mutató, növelése 1-gyel és olvasás kezdeményezése a következő bájt betöltését eredményezi. OPC: ideiglenes, firkáló regiszter. Nincs előre meghatározott feladata
16. A WIDE utasítás hatása és működése Mic-1-en. A WIDE utasítás valójában prefixum, azaz önmagában nem csinál semmit, csak jelzi, hogy a következő utasításnak 16 bites indexe van. Pl.: ILOAD varnum lokális változó a verembe, varnum a lokális változó 8 bites indexe WIDE ILOAD varnum: lokális változó a verembe, varnum a lokális változó 16 bites indexe w_iload1 címe = iload1 címe + 0x100 Hatások: Minden WIDE utasításkód 256-tal (azaz 0x100-zal) magasabb címen kezdődik a vezérlő tárban, mint a megfelel_ reguláris opcode Az indexet két egymás utáni index byte összefűzésével kell megkonstruálni, ahelyett, hogy csak 1 byteon végeznénk előjel-kiterjesztést PC-t kétszer kell megnövelni az utasítás végrehajtása során, hogy az a következő utasítás kódjára mutathasson
17. FSM (véges állapotú gép, az IFU (Mic-2) működésének bemutatása véges állapotú géppel) FSM: (Finite State Machine – Véges állapotú gép) Minden FSM-nek két része van: az állapotok, amit a körök jeleznek az ábrán, és az átmenetek, amit az egyik állapotból a másikba menő élek mutatnak. Minden él egy olyan eseményt ábrázol, ami előfordulhat. Az IFU működését ez az ábra mutatja.
18. A Mic-1 és a három sínes architektúra különbségei, az utóbbi előnyei. Háromsínes architektúra: két teljes bemenő sínt biztosítunk az ALU-hoz, egy A sínt, egy B sínt. Minden regiszter eléri mindkét bemenő sínt, így bármelyik két regisztert összekombinálhatjuk egy cikluson belül. Különbség a Mic-1-től, hogy míg a Mic-1-nél az A sín a H regiszterhez kapcsolódik, addig a Háromsínes technológiánál az A sín minden regiszterhez kapcsolódik a MAR,MBR1, MBR2, PC kivételével természetesen. Továbbá a Háromsínes technológiánál nem használjuk a H-t ideiglenes tárolóként.
19. Az utasítás betöltő és dekódoló egység, és működése Mic-4-en. A Mic-3-hoz hasonlóan, van egy IFU, amelyik előre betölt szavakat a memóriából és kezeli a különböző MBR-eket. Sok betöltés elválasztható az ALU-tól egy független egység megalkotásával, amely betölti és feldolgozza az utasításokat. Ez az egység, amit IFU-nak nevezünk, képes függetlenül növelni PC-t, és betölteni a bájtokat és a bájtfolyamból, még mielőtt szükség lenne rájuk. Ez az egység csak egy növelőt igényel, egy áramkört, ami sokkal egyszerűbb, mint egy teljes összeadó. Az IFU összerakhat 8 és 16 bites operandusokat, így azok készen állnak az azonnali használatra.
59
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Legalább 2 mód van, ahogy ez végrehajtható: Az IFU ténylegesen értelmezhet minden egyes műveleti kódot: meghatározhatja, hogy hány további mezőt kell betölteni, és összerakhatja azokat egy regiszterbe, hogy készen álljanak, amikor a fő végrehajtási egység használni akarja Az IFU kihasználhatja az utasítások folyam természetét és mindig elérhetővé teheti a következő 8 és 16 bites részt, akár szükség van rá, akár nincs. A fő végrehajtási egység bármikor kérheti ezeket, ha szükség van rá. Az IFU figyeli a fő végrehajtási egység által felhasznált bájtot vagy bájtokat. Éppúgy elérhetővé teszi a következő bájtot az MBR1-ben mint a Mic-1, az egyetlen eltérés, hogy működően érzékeli, amikor az MBR1-t kiolvassák, ekkor előre behozza a következő bájtot és közvetlenül betölti MBR1-be. Az IFU végzi a bájtfolyam betöltést. A legtöbb mikroutasítás a következőt választja ki a folyamatban lévő sorozatban, de az utolsó általában egy többutas elágazást csinál, ami eldugítja a csővezetéket, mert utána lehetetlen folytatni az előre betöltést. Az IFU a bejövő bájtfolyamot egy új alkatrész, a dekódoló egység számára adagolja. Ennek az egységnek van egy belső ROM-ja, amit az IJVM műveleti kódjával indexelünk. A dekódoló egység felismeri a bejövő bájtfolyamatban az utasításokat, így mindig tudja melyek a műveleti kód bájtjai és melyek az operandusok. A dekódoló egység elküldi a mikroműveletek ROMjához a saját táblázatában talált indexet a következő rész, a sorba állító egység számára.
20. A sorba állító egység és működése Mic-4-en A sorbaállító egység: némi logika két tábla: o RAM-ban o ROM-ban: Mikroprogram: minden IJVM utasításnak néhány egymást követő mikroműveletnek nevezett bejegyzése van, sorrendben helyezkednek el minden egyes IJVM sorozat pontosan és teljes terjedelmében helyezkednek el, ismétlésekkel együtt nincs JAM és NEXT_ADDRESS FINAL : minden IJVM mikroművelet-sorozatának utolsó mikroműveletében van beállítva GOTO: feltételes mikroelágazások megjelölésére szolgál Működése: 1. Átvesz egy indexet a mikroművelet ROM-hoz a dekódoló egységből 2. Kikeresi a mikroműveletet és bemásolja a belső sorba ->final bites műveletig, majd megáll 3. Ha nem talált olyan mikroműveletet, amelyben a GOTO bit 1 és van elegendő hely a sorban, akkor nyugtázó jel a dekódoló egységnek 4. A dekódoló a nyugtázó jel fogadása után elküldi a következő IJVM utasítás indextét a sorbaállító egységnek Ilyen módon az IJVM utasítások sorozata átalakul mikroműveletek sorozatára egy sorban
60
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
21. A MIR1, MIR2, MIR3 és MIR4 regiszterek szerepe, és működése Mic-4-en. A sorbaállító egység mikroműveletei táplálják. A MIR-ek feladata hogy az adatút egyes részeinek jeleket küldjenek. Az adatutat 4 egymástól független MIR vezérli. Minden óraciklus kezdetekor MIR feltöltődik a felette lévőből, MIR1 pedig a RAM-ból. MIR1: az A és B mezőket vezérli (mely regiszter értékét tegye az A és a B sínre) MIR2: ALU mezőjét vezérli, vagyis az ALU műveletét állítja be (pl. összeadja az A és B-t vagy kivonja stb.) MIR3: C mezőt vezérli, így az eredmény visszaírását vezérli MIR4: M mezővel a memóriaműveletet vezérli
22. Az elágazó utasítások kezelése Mic-4-en. Mikroelágazások: Néhány IJVM utasítás (pl. IFLT) elágazást kíván. Ezek külön mikroműveletek, amelyeknél Goto=1, és tartalmazzák a JAM biteket is. Goto: arra szolgál, hogy a sorba állító egység le tudja állítani a további utasítások dekódolását ha egy mikroelágazás sikeres, akkor a sorbaállító egység a művelet átmásolásakor nem küldi el a nyugtázás jelet a dekódoló egységnek. A csővezeték ekkor nem folytatódhat. „Tiszta lapot” kell csinálni az IFU-ban, a dekódolóban és a sorba állító egységben. Ezután az offsetnek megfelelő címtől folytatódik a betöltés. ha az ugrás feltétele nem teljesül, akkor a dekódoló megkapja a nyugtázó jelet, és a következő utasítással folytatódhat a dekódolás.
23. FSM (véges állapotú gép, a két bites elágazás jövendölés bemutatása véges állapotú géppel) FSM: (Finite State Machine – Véges állapotú gép) Minden FSM-nek két része van: az állapotok, amit a körök jeleznek az ábrán, és az átmenetek, amit az egyik állapotból a másikba menő élek mutatnak. Minden él egy olyan eseményt ábrázol, ami előfordulhat. A két bites elágazás jövendölés bemutatását ez az ábra mutatja.
24. Szimatolás (Pentium 4) A szimatolás (snoop) többprocesszoros rendszerekben fordul elő. Minden processzor figyeli a sínen a többi processzor memóriához fordulásait (szimatol). Ha valamelyik processzor olyan adatot kér, amely bent van valamelyik másik processzor gyorsítótárában, akkor ez a másik processzor a saját gyorsító tárából megadja a kért adatot, és letiltja a memóriához fordulást. Megjegyzés: Megnéztem a 8.25ös ábrát a könyvben. Memóriák és CPU-k 8x8-as keresztkapcsoló hálózatát mutatja. Az ábrát sajnos nem tudom ide tenni, de nem hiszem, hogy meg kellene tanulni.
61
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
25. A Pentium 4, az UltraSPARC III és az I-8051 mikroarchitektúrájának összehasonlítása. Mind három nagyon különbőző, de mégis van bennük némi közös. A Pentium 4-nek van egy régi CISC-utsításhalmaza, az UltraSPARC III tiszta RISC-elképzelés, szegényes és egyszerű utasításhalmazzal. A 8051 egyszerű 8 bites processzor a beágyazott alkalmazások számára. Mégis mindegyik lelke a regiszterkészlet, és az egy vagy több ALU, amely elvégzi az egyszerű aritmetikai és logikai műveleteket a regisztereken. Ezen nyilvánvaló külső különbség ellenére a Pentium 4-nek és az UltraSPARC III- nak nagyon hasonlók a végrehajtó egységei. Mindkét végrehajtó egység olyan mikroműveleteket fogad el, amelyek egy műveleti kódot, két forrásregisztert és egy célregisztert tartalmaznak. Mindkettő végre tud hajtani egy mikroműveletet egy ciklus alatt. Mindkettőnek nagy tudású csővezetékei, elágazásjövendülése, valamit I- és D- gyorsítótára van. Könnyű és természetes olyan csőveezetékes adatutat építeni, amelyik vesz két forrásregisztert, átfuttatja az ALU-n, és az eredményt egy regiszterben tárolja. A fő különbség a Pentium 4 és UltraSPARC III között az, hogy ISA-ugasításaikat a végrehajtó egységhez juttatja. A Pentium 4-nek szét kell bontania a CISC-utasításait, hogy háromregiszteres formátumúvá alakítsa őket. Az UltraSPARC III-nak nem kell semmit tennie, mert eredeti utasításai már csinos, formás mikroműveletek. Ezért van az, hogy a legtöbb új ISA RISC típusú. A Peintum 4-gyel és az UlraSPARC III-mal szemben a 8051 igazán egyszerű gép. Inkább RISC, mint CISC típusú, hiszen legtöbb utasítása egyszerű és szétbontás nélkül végrehajtható egy óraciklusban. Nincs csővezetéke és gyorsítótára van viszont sorrend szerinti kiosztása, sorrend szerinti végrehajtása és sorrend szerinti befejezése.
26. A műveleti kód kiterjesztése, menekülő kód. Műveleti kód kiterjesztése: k bites műveleti kód esetén 2k különböző utasítás lehet n bites címrésznél 2n memória címezhető fix utasítás hossz esetén egyik csak a másik rovására növelhető Lehetőségek a műveleti kód és egyéb információk hosszánál: fix utasításhossz: rövidebb kód mellett hosszabb operandus rész minimális átlagos utasításhossz: a gyakori kódok rövidek, a ritkán használtak hosszabbak. Minden utasítást a lehető legkevesebb biten kódolunk. Menekülő kódokat használva lehetséges ez a megoldás. Pl. Ha 1111 kódot nem használtuk ki 3 címes utasításnak (menekülő kód), és ez lehetővé teszi, hogy további, 2 címes utasításokat adjunk meg. 4 bites műveleti kód: 15 db 3 címes utasítás 8 bites műveleti kód: 14 db 2 címes utasítás 12 bites műveleti kód: 31 db 1 címes utasítás 16 bites műveleti kód: 16 db 0 címes utasítás
27. Három, kettő egy és nullacímes utasítások. Implicit operandus Minden utasítás tartalmaz egy műveleti kódot és általánosan valamilyen kiegészítő információt, mint hogy hol vannak az operandusok és az eredmény hova kerül. Azt az általános módszert, mely meghatározza az operandusok helyét (címét) címzésnek nevezzük. Gyakori utasításformák (címzési módszerek): 1. Nullacímes utasítás (veremműveletek, pl. az IJVM IADD utasítása) 2. Egycímes utasítás (akkumulátor = akkumulátor + forrás1) 3. Kétcímes utasítás (regiszter2 = regiszter2 + forrás1) 4. Háromcímes utasítás (cél = forrás1 + forrás2) Mindegyik tartalmaz egy műveleti kódot, mely megmondja, hogy mit csinál az utasítás. Ezen kívül pedig 0,1,2 vagy 3 operandus címmel is rendelkezik. A kettő vagy annál kevesebb címes
62
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
utasításokból „hiányzó” operandus-címek implicit módon vannak megadva, így ezeket implicit operandusok. Utasítástípusok: regiszter‐memória utasítások: a regiszterek és a memória közötti adatforgalom (betöltés, tárolás). Ilyenkor egy regiszter és egy memória cím megadása szükséges a címrészen. regiszter‐regiszter utasítások: összeadás, kivonás, … Az eredmény is regiszterben keletkezik. Ilyenkor három regiszter megadása szükséges a címrészen. … Utasításhossz: Vannak olyan gépek, melyeknél minden utasítás azonos hosszúságú, mások esetén több, különböző hosszúságú utasítás lehet. Az utasítások hossza lehet a szóhosszal azonos, rövidebb vagy hosszabb is. Ha minden utasítás azonos hosszúságú, akkor könnyebb a dekódolás, de pazarló a tárolás, mert a közös hossz megegyezik a leghosszabb hosszával. Mivel van egy „A műveleti kód kiterjesztése, menekülő kód” című tétel, így lehet, hogy ez már nem tartozik ide Műveleti kód és kiterjesztése: k Tekintsünk egy (n + k) bites utasításkészletet, ahol k bit a műveleti kód és n bit a címrész. Ez 2 n különböző utasítást és 2 memóriacímet tesz lehetővé. Fix utasításhossz esetén az egyik csak a másik rovására növelhető. Tehát lehetőségünk van rövidebb műveleti kód mellett hosszabb címrészt alkalmazni, ekkor nagyobb memóriát tudunk megcímezni, vagy ugyanakkorát nagyobb felbontásban, de kevesebb utasításunk lenne. Vagy lehetséges a műveleti kódot növelni a címrész rovására, ekkor több utasításunk lesz, de kisebb vagy durvább felbontású memória mellett.
További lehetőségünk a változó hosszúságú műveleti kód alkalmazása. Ezzel elérhetjük, hogy minimalizáljuk az átlagos utasításhosszt, azáltal, hogy minden utasítást a legkevesebb szükséges biten kódolunk (a gyakran használt kódok hossza rövidebb, a ritkán használtaké pedig hosszabb). Szerencsétlen módon ez azt eredményezné, hogy az utasításokat nem lehetne még bájthatárra sem igazítani, így ez az optimalizálás majdnem biztosan gazdaságtalan lesz.
28. Ortogonalitási elv Ortogonalitási elv: Jó architektúrában a műveleti kód és a címzési módszerek (majdnem) szabadon párosíthatók. Háromcímes elképzelés:
32 bites utasítások. Lehetséges műveleti kódok száma 256. Az 1. formátumban minden utasítás egy cél- és két forrásregisztert tartalmaz, aritmetikai-logikai utasítás. A 2. típus 13 bites közvetlen adat. Index módú LOAD és STORE utasítás 13 bites eltolással. A 3. formában speciális utasítások. PC relatív elágazó, eljárás hívó utasítások, LOAD és STORE, ezek R0-t használnák.
63
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
Kétcímes elképzelés:
Képes összeadni regisztert és memóriaszót, memóriaszót és regisztert, regisztert és regisztert, illetve memóriaszót és memóriaszót. 8 bit van a műveleti kód számára, és 12-12 biten lehet megadni a forrás és cél címet. Minden operandus számára 3 bit mondja meg a módot, 5vbit a regisztert és 4 bit az eltolást. A 3 módbit lehetővé teszi a direkt-, regiszter-, regiszter-indirekt, index- és veremcímzési módokat, továbbá maradna még két lehetőség később bevezetendő mód számára.
29. Utasítás típusok. Ciklus szervezés. Adatmozgató utasítások: adat másolása egyik helyről a másikra. Ekkor létrejön egy új objektum, amelynek a bitképe azonos az eredetivel. Az adatok lehetnek a memóriában, vagy regiszterben. Négy esete lehet a másolásnak, néhány gépnek 4 külön utasítása van a 4 esetre: LOAD, STORE, MOVE, nincs a memóriából közvetlen memóriába közvetlenül mozgató utasítás Diadikus műveletek: 2 operandusú, 1 eredményt szolgáltató műveletek AND, OR, XOR, NOR, NAND Monadikus műveletek: 1 operandusa van, 1 eredményt ad léptetés, forgatás INC, NEG, NOT Összehasonlító és feltételes elágazó utasítások: elágazás megvalósítására. Megadott feltétel teljesülését ellenőrzi. Ha a feltétel teljesül, akkor elágazás történik megadott memóriacímre. gép egy bizonyos bitjének 0 vagy nem 0 értéke jelenti a feltételt CÍMKE: ha a tesztelt bit 1-es, akkor a CÍMKE című utasítás hajtódik végre N: ha a szám negatív, akkor a feltételes elágazás végrehajtódik, ha 0/+, akkor az azt követő utasítás Z: ha a szám nulla, akkor feltételes elágazás történik, egyébként az azt követő utasítás hajtódik végre Eljáráshívó utasítások: az eljárás utasítások olyan sorozata, amely meghatározott feladatot old meg, a program különböző helyeiről hívható. Assemblyben szubrutin, Javaban metódus. Visszatérési cím helye: hívó utasítás tölti be rögzített hely, eljárás első szava, verem Ismétléses vezérlés: utasítások egy sorozatát adott számszor ismétli meg. Tartalmaz egy számlálót, amelyet minden ciklusmag lefutásakor csökkenti, vagy növeli. A számláló értékét teszteli, ha a megadott feltétel teljesül, az ismétlés véget ér végfeltételes ismétléses vezérlés kezdőfeltételes ismétléses vezérlés
30. Vezérlési folyamat. Szekvenciális vezérlés, elágazás, korutinok Vezérlési folyamat: az a sorrend, amelyben az utasítások végrehajtódnak dinamikusan, a program végrehajtása során. Szekvenciális vezérlés: az utasítások abban a sorrendben kerülnek végrehajtásra, ahogy a memóriában elhelyezkednek. Elágazás: Ha a program tartalmaz elágazást, akkor ez az egyszerű kapcsolat az utasítások memóriabeli sorrendje és a végrehajtásuk sorrendje között nem áll fenn. Ha van elágazás, akkor a programszámláló értéke nem lineáris függvénye többé az időnek Korutinok: párhuzamos feldolgozás szimulálására alkalmas egy CPU-s gépen
64
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
31. Programozott I/O, pollozásos technika. A programozott I/O teljesen a CPU (I/O regiszterrel) vezérli az I/O utasításokat portokon keresztül. A port és a központi egység közötti információ átadás gyors, a periféria autonóm módon elvégzi a feladatát. Újabb perifériához fordulás esetén a CPU várakozni kényszerülhet. Pollozásos technika: (tevékeny várakozás) a futó program időről időre megkérdezi a periféria állapotát, és csak akkor ad ki újabb I/O utasítást, amikor a periféria már fogadni tudja. A hatékonyság az éppen futó programtól függ.
32. DMA Direkt memóriakezelő eszköz, mely önállóan végzi az eszköz figyelését és az adatok mozgatását a sínen keresztül. Pl.: tömb kiíratásakor hasznos
Cikluslopás: Ha a DMA lapka sínciklust vesz el a CPU-tól. 4 regisztert tartalmaz: 1. kezdő memóriacímet tartalmazza, amelyiket írni/olvasni kell 2. az átviendő bájtok száma 3. az átvitelre kiválasztott eszköz sorszáma vagy B/K cím 4. az átvitel iránya (írás/olvasás)
33. Laphiány. Kérésre lapozás, munka halmaz. Vergődés A hivatkozott virtuális lap a memóriában van, ez a feltevés azonban nem mindig teljesül, mert a memóriában nincs elég hely az össze virtuális lap számára. Az olyan hivatkozás, amely a memóriában lévő lapon található címre vonatkozik, laphiányt okoz. Laphiány felléptekor az operációs rendszernek be kell olvasnia lemeztől a kért lapot be kell írnia új fizikai helyét a laptáblába, és meg kell ismételnie a hibát okozó utasítást. Virtuális memóriával rendelkező gépen akkor is elindíthatunk egy programot, ha egyetlen része sincs a memóriában. A virtuális memória használatának ezt a módszerét kérésre lapozásnak nevezzük. A lapok nem előzetesen, hanem csak akkor töltődnek be a memóriába, ha ténylegesen kérik. Csak a program elindulásakor lényeges, hogy kérésre lapozást használjuk-e. Ha már futott valameddig a szükséges lapok általában benn lesznek a memóriában. Az alternatív megközelítés azon megfigyelésen alapul, hogy a legtöbb program nem egyenletesen hivatkozik a memóriatartományra, hanem néhány lap körül „sűrűsödnek össze” a hivatkozások. Ezt a fogalmat lokalitás elvnek nevezzük. Egy memóriahivatkozás utasítást tölthet be, adatok olvashat vagy tárolhat. Bármely t időpontban tekinthetjük a legutóbbi k memóriahívatkozásban szereplő lapok halmazát. Denning nyomán ezt munkahalmaz néven fogjuk emlegetni. Azt a jelenséget, amikor egy program gyakran, szinte folyamatosan laphiányokat generál vergődésnek nevezzük. Az olyan programokkal nincs gond, amelyek nagy virtuális címtartományt használnak, de munkahalmazuk kicsi, időben lassan változó, és mindig elfér rendelkezésre álló memóriában. Ez a megállapítás még akkor is igaz, ha a program futása során több százszor annyi virtuális memóriaszót használ fel, mint a gépmemóriában lévő szavak száma.
65
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
34. Lapkezelési eljárások (LRU, FIFO) Lapkezelési eljárások: eltávolítandó lapokat megadó algoritmus, amely helyett az újat be lehet tölteni LRU (legrégebben használt): általában jó, de nem jó pl. 9 lapon átnyúló ciklus esetén, ha csak 8 memória lap van FIFO (először be, először ki): egyszerűbb, mint az LRU. A legrégebben betöltött lapot távolítja el, függetlenül attól, hogy mikor hivatkoztak rá utoljára. Minden lapkerethez egy számláló tartozik, mely kezdetben 0. Laphiány esetén 1-gyel növekszik ez a számláló. Ha lapot kell eltávolítani, akkor a legnagyobb számláló-értékűt távolítjuk el.
35. Lapméret, belső elaprózódás Ha véletlenül úgy adódik, hogy a felhasználó programja és adatai valahány lapon pontosan elférnek, a memóriába való betöltésükkor nem pocsékolunk el helyet. Az ellenkező esetben az utolsó lapon valamennyi hely kihasználatlanul marad. Az elvesztegetett bájtokkal kapcsolatos probléma a belső elaprózódás. A lapméretet n bájtosra választva a belső elaprózódás miatt a program utolsó lapján elveszített hely átlagosan n/2 lesz, ami azt sugallja, hogy kicsi lapméret használatával minimalizálható a veszteség. A kis lapméret azonban rengeteg lapot és nagy laptáblát eredményez. A kis lap előnytelen a lemez sávszélességének kihasználása szempontjából is, viszont kisebb a vergődés kialakulásának valószínűsége.
36. A virtuális memória és a gyorsító tár analógiája. Virtuális memória és gyorsító tár: 2 szintű hierarchiája van az egész programot lemezen tartjuk, fix méretű lapokra osztjuk laphiány: a lapot a központi memóriába tölti az operációs rendszer gyorsítótár esetén a központi memóriát gyorsító sorokra osztjuk gyorsítósor hiány esetén a gyorsító sort a gyorsító tárba tölti a hardver
37. SCSI SCSI (Small Computer System Interface) lemezek: cilinderekre, sávokra, szektorokra van osztva más az interfésze, mint az IDE-lemeznek gyorsabb átvitelt biztosít, és drágább is SCSI sín részei: sín SCSI vezérlő maximum 7 (15) SCSI eszköz csatlakoztatható rá (lemez, nyomtató, CD) Sín: „átmegy” az eszközökön minden eszköznek van egy bemenő és egy kimenő csatlakozója a visszaverődő jelek kiszűrése miatt az utolsó eszközön a sínt le kell zárni. 50 ér, ebből 25 földpotenciálon van: zajtűrés érdekében 25 használt ér: 8 adat, 1 paritás, 9 vezérlő, többi tápfeszültség, fejlesztésekre fenntartott SCSI vezérlők és perifériák: 2 üzemmódban működhetnek kezdeményező: kiadja a parancsokat fogadó: végrehajtja a parancsokat a parancsok és válaszok fázisonként követik egymást egyszerre több eszköz is aktív lehet minden eszköznek 0-7 (15) közötti azonosítója van
66
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
38. CD-ROM
1984, Yellow Book Több szintű hibajavítás: kihasználtság 28% (650 MB) szimbólum: 14 biten ábrázol 1 bájtot keret: 42 szimbólum, ebből 24 az adat bájt szektor: 98 db keret, ebből 16 bájt fejléc fejléc: 12 bájt + 3 bájt szektor sorszáma + 1 bájt mód: o mód=1: 2048 adat + 288 ECC bájt o mód=2: 2336 adat bájt ECC: Error Correction Code (Reed-Solomon) Forgási sebesség: 1-szeres (75 szektor/s) – 32-szeres. Keresési idő: több 100 msec, sebesség < 5 MB/sec. 1986: Green Book, multimédiás alkalmazásokhoz
39. CD-R, CD-RW CD-R (1989): Orange Book spirál 0,6 mikrométer széles vájat mutatja, ezen egy 22,05 kHz frekvenciájú 0,03 mikrométer amplitúdójú szinusz hullám szolgál a pontos forgási frekvencia ellenőrzésére alumínium helyett arany bevonat üreg helyett sötét pont minden sávot megszakítás nélkül folyamatosan kell felírni mindig az utolsó katalógus (VTOC) az aktuális Trükk az illegális másolat készítés nehezítésére: szándékosan hibás ECC-k CD-RW: 3 különböző energiájú lézer van (törlő, író, olvasó). Viszonylag drága és néha hátrány, ha újraírható.
40. DVD, Blu-Ray A technológia és a 3 hihetetlenül gazdag és hatalmas iparágban mutatkozó kereslet kombinációja vezetett a DVD-hez. Alapfelépítése ugyanaz, mint a CD-é, egy 120mm-es, öntőformában készített polikarbonát lemez, amely üregeket és szinteket tartalmaz; ezeket egy lézerdióda világítja meg és egy fotódetektor olvassa le a jeleket. Amiben viszont más: kisebb üregek (0,4 mikron a CD: 0,8) szorosabb spirál (0,74 mikron rés CD: 1,6) vörös lézer (0,65 mikron CD:0,78) Ezek a javítások együtt hétszeresre, 4,7 GB-ra növelték a kapacitást. Egy 1x DVD-meghajtónak 1,4 MB/s az adatátviteli sebessége. DVD-meghajtónak egy másik lézerre vagy körmönfont átalakító optikára lesz szükségük ahhoz, hogy CD-ket és CD-ROM-okat olvasni tudják. A DVD-knek 4 formátuma definiált: Egyoldalas, egyrétegű (4,7GB) Egyoldalas, kétrétegű(8,5GB) Kétoldalas, egyrétegű(9,4) Kétoldalas, kétrétegű(17GB) A DVD-z épphogy csak bevezették, amikor megjelent a következő versenytársa, hogy elavulttá tegye. A DVD utódja az úgynevezett Blu-Ray. A kék fénye rövidebb a hullámhossza mint a pirosnak, ezért pontosabban fókuszálható, és így kisebb mélyedéseket tesz lehetővé. Az egyoldalas Blu-Ray-lemez 25GB, a kétoldalas 50GB adatot tárol. Az átviteli sebesség 4,5MB/s. Arra számítanak, hogy a Blu-Ray végül le fogja váltani a CD-ROM-ot és a DVD-t, de ez néhány évet biztosan igénybe fog venni.
67
Szegedi Tudományegyetem
[SZÁMÍTÓGÉP ARCHITEKTÚRÁK TÉTELKIDOLGOZÁS]
41. Egér Az egér egy kis műanyag doboz, ha mozgatjuk a képernyő látható kis jel szintén elmozdul, ezáltal a felhasználók mutathatnak a képernyőn lévő objektumokra. Az egér tetején egy, két, vagy három gomb van, ezekkel lehet a menükből választani. 3 féle van: mechanikus: két gumikerék áll ki az aljából egymásra merőleges tengellyel, de ezt később felváltották az olyan egerek melyeknél a kerekek helyén golyót használnak. optikai: ennek nincs kereke, se golyója, ehelyett egy LED és egy fénydetektor van az aljában. optomechanikus: egy golyót két egymáshoz képest 90°-ban elhelyezetett tengelyt fogat. ahogy az egér, általa a tengelyek is mozognak a érseken keresztül egy LED-ből fényimpulzusok jutnak el a hozzá tartozó fénydetektorba 3 bájtból álló üzenetet küld a számítógépnek, ha megtesz egy bizonyos minimális távolságot, melyet néha mickey-nek neveznek. Az első bájt egy előjeles egész szám, amely megadja, hogy az egér mennyit mozdult x irányban az utolsó tized másodpercben. A második bájt ugyanezt az információt adja meg az y irányban. A harmadik bájt az egér gombjainak aktuális állapotát adja meg. Néha két bájtot használnak mind két koordináta esetén. A számítógépben egy alacsony szintű szoftver fogadja a beérkező jeleket és az egér által küldött relatív mozgásadatokból állítja az abszolút pozíciót. Így egy nyilat jelenít meg a képernyőn, mellyel egyszerűbb használni a gépet.
42. Mátrix nyomtató Mátrixnyomtató: 7-24 elektromágneses aktivizálható tűt tartalmazó nyomtatófej nyomtatási minőség javítása: o több tű használata o egymást átfedő körök alkalmaza: vastagított betűk o egy soron többször megy át a fej olcsók, megbízhatók, lassúak, hangosak és gyenge grafikus képességűek felhasználási területeik: o előre nyomtatott formanyomtatványok o kis papírdarabokra való nyomtatás: pénztárblokkhoz o többpéldányos leporellókra való nyomtatás
43. Tintasugaras nyomtatók A mozgatható, tintapatront tartalmazó nyomtatófej vízszintesen végighalad a papír előtt, mialatt tintát permetez apró fúvókáiból. a tintacseppecskék térfogata körülbelül 1 pikoliter, ami azt jelenti, hogy 100 millió kényelmesen belefér egy cseppnyi vízbe. A tintasugaras nyomtatók két változatban kaphatók: piezoeletromos: egy speciális kristály van a tintapatron mellett. Amikor feszültséget kapcsolnak a kristályra, enyhén deformálódik, és egy tintacseppet présel ki a fúvókán. Minél nagyobb a feszültség, annál nagyobb a festékcsepp. hővezérlésű: általában festékbuborékos nyomtatónak nevezik. Ezekben egy kis ellenállás van minden fúvókában, amikor az feszültséget kap, nagyon gyorsan felhevül, és a vele érinthető festéket azonnal felmelegíti egészen a forráspontig, a festék elpárolog, és egy gázbuborékot képez. Ennek térfogata nagyobb, mint a tintáé, amelyből létrejött így nyomás keletkezik a fúvókában. A tinta csak egyetlen helyre mehet: a fúvókán keresztül a papírra. A tintasugaras nyomtató felbontása tipikusan legalább 1200 dpi, a legjobbaké eléri a 4800 dpi-t.
68