1. Számítógép architektúra fogalma, virtuális gépek, hardver-szoftver Egy-egy szint adattípusainak, műveleteinek, szolgáltatásainak összesége a szint architektúrája. Ez a szint használója (pl.: programozó) által látható tulajdonságokat ( mint pl.memória használatának módja) foglalja egységbe. Ezen rendszerelemek tervezésével foglalkozik a számitógéparchitektúra. Tehát a prgramozó által látható rendszerelemek tervezésével foglalkozik a számítógép architektúra. Az elektronikus áramkörök, valamint a memória és I/O eszközök alkotják a számitógép hardwerét. A szoftver algoritmusokból ill., azok számitógépes reprezentációiból (programok) áll. A hardwer és a szoftver logikailag szoros. Bármely szoftverrel végrehajtható művelet beépithető közvetlenül a hardwerbe ill., forditva. Feltételezzük, hogy létezik egy M1 virtuális gép, melynek gépi nyelve L1 (magasabb szintű nyelv). Ezekre L1 nyelven irhatnak programokat, amelyek aztán LO nyelven írt értelmezőkkel vagy forditókkal hajthatóak végre a ténylegesen létezö MO gépen.
2. Számítógépek fejlődésének történeti áttekintése (10-15 sorban). - 0. generáció. Mechanikus gépek. Pascal, 1642, összeadás, kivonás; Leibniz (1646-1716), szorzás, osztás, Babbage (1792-1871), 1834: difference engine - összeadás, kivonás kiírás fémlemezre (csak egy program), analytical engine (négy egység: memória, számoló, input, output). 1000 darab 50 számjegyű adatot tudott tárolni! Utasítások lyukkártyáról - programozás (Ada Lovelance). Eddig mind mechanikus. Zuse, 1936: elektromágneses relék használata. - 1. generáció: elektroncsövek (1945-1955). COLOSSUS (Turing, 1943) - titkosírások megfejtése 30 évre titkosítva. ENIAC (Electronic Numerical Integrator and Computer) (Mauchley, Eckert, 1943), 18000 cső, 30 tonna súly, 20 darab 10 decimális jegyes regiszter. 1946-ig nem sikerült befejezni - nyári iskola - sok próbálkozás. EDSAC (Wilkes, Cambridge, 1949), EDVAC (1949), UNISYS. Sikertelenül próbálják találmánynak elfogadtatni. Neumann János: öt szerkezeti egység: vezérlő, aritmetikai-logikai egység, memória, input, output. Kettes számrendszer! 4096 szavas memória, 40 bites szavak (előjeles egész, vagy kér utasítás - 8 bites utasításkód, 12 bites cím), akkumulátor. Nem volt lebegőpontos aritmetika! IBM 701 (1953) 2K 36 bites memória. Legnagyobb 1. generációs: IBM 709 (1958). (Szegeden: M4). - 2. generáció: tranzisztorok (1955-1965). Tranzisztor feltalálása: 1948, Nobel díj: 1956. Első jelentős tranzisztoros gép: DEC PDP-1 (1961). 4k 18 bites szó, 5 sec ciklusidő, 120000 US dollár. 512x512 display! Teljesítménye fele az IBM 709-nek, ára a töredéke. Néhány évvel később: PDP-8: omnibusz - 50 000 eladott gép. Magyarországon: KFKI, TPAi. IBM 7090, 7094. Eddig mind számításigényes problémák. Első üzlet-orientált gép: IBM 1401 - byte-szervezésű memória. Első szuper-gyors gép: CDC 6600 (tervező: Cray)- párhuzamos utasítás-végrehajtás. Burroughs B5000: könnyen lehessen ALGOL-ban programozni! Szegeden: MINSZK 22. - 3. generáció: integrált áramkörök (1965-1980). Integrált (szilicon alapú) áramkör: Noyce, 1958. IBM problémája: 7094 és 1401 nem kompatíbilis. Radikális lépés (1964): 360-as sorozat (szocialista országok: R-sorozat). Emuláció: a sorozat gépein az előző típusok programjai futtathatók. Másik lényeges újítás: multi-programozás. 24 bites címtartomány (16 Mbyte). A nyolcvanas évek közepéig elég, akkor áttérés a 32 bites címre. DEC: PDP 11, 16 bites memóriaelemekkel. 4. generáció: VLSI (very large scale integration) (1980- ). Néhány millió elem egy lapkán (chipen). Személyi számítógépek - INTEL 8080, hajlékony lemez - kit, CP/M; Commodore, Apple, Spectrum-80. IBM PC -klónok. MS-DOS - Microsoft.
1
3. Technológia fejlődése, a példaként használt számítógépek rövid (1-2 soros) ismertetése. Technológiai fejlődés: Moore törvény (1965) - az egy lapkán elhelyezhető elemek száma másfél évenként duplázódik. Azt várják, hogy 2020-ig teljesülni fog. Minden más területen (lemezek, adatátvitel, ...) hasonló sebességű fejlődés: a szoftverek mérete, bonyolultsága is követi ezt. Nathan első törvénye: Software is a gas. It expands to fill the container holding it. Jelenlegi típusok: alkotóelemek (órákban, gépkocsikban), játékgépek, személyi számítógépek (1k dollár), szerverek, munkaállomások gyűjteménye, mainframe-ek (bankok), szuperszámítógépek (időjárás-előjelzés). Pentium II. Előd: Intel 8080 (millió számra kelt, ezt követően igen nagy fejlődés van): 1972-74, 8 bites, 8086 (1978) 16 bites. 80286, 80386 (32 bites, 1985)... Pentium II (1997): 233-400 MHz, 7.5 M tranzisztor, 4 Gbyte memória. UltraSPARC II. Előzmény: UNIX-ot kisgépekre. SUN (Stanford University Network) (1982). Motorola 6020 CPU. Új: SPARC (Scalable Processor Architecture). 32 bites, 36 MHz. UltraSPARC: közvetlen multimédiás utasítások. C, C++, Java /ez egyben egy programozási nyelv is/ (kilencvenes évek közepe, objektum-orientált, biztonságos nyelv. Cél: bináris formátumú, WEB-en letölthető programok - SUN). Virtuális gép: JVM(Java Virtual Machine) - fordítók, interpretetek, appletek(JVM értelmező). picoJava II: Java bináris programok végrehajtására szolgáló architektúra. 4. Adattípusok A számítógépnek adatok kellenek, amiket fel kell, hogy dolgozzon. 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. És a hardver mely adattípusokat támogatja? A hardver támogatás azt jelenti, hogy vannak utasítások, amelyek megadott adatformátumot feltételeznek, a programozo nem választhat más adatábrázolást. A következökben olyan adattípusokat tanulmányozunk, amelyeknek van hardver támogatása, ezért spaciáli ábrázolási formát igényelnek. -Numerikus adattípusok Az adattípusok két csoportra oszthatók: numerikus és nem numerikus adattípusok.Az egész számok kitüntetettek a numrikus adattípusok között. Méretük tipikusan 8,16, 32 és 64 bit. A modern számítógépek az egész számokat bináris kettes komplemens kódban ábrázolják.(Bináris számok az A, függelékben). Az elöjeltelen egészek esetében nincs elöjelbit, így egy 32 bites szó értéke 0 és 2 a 32-iken minusz 1 között lehet. Ellenben, a 32 bites kettes komplemes kódban a legnagyobb szám a 2 a 31-iken minusz 1 lehet, de képes negatív számokat is kezelni. Olyan számok ábrázolására, amelyek nem fejezhetök ki egészként, lebegőpontos ábrázolást használunk. A lebegopontos számok lehetnek 32, 64 vagy néha 128 bitesek. Sok gép külön regisztereket alkalmaz az egész ill. a lebegőpontos számoktárolására. A COBOL programozási nyelv decimális adattípust is megenged, tipikusan 4 biten ábrázolva egy decimális számjegyet, aztán egy bájtba pakol két számjegyet.De ehhez korrekcios utasítások is kellenek. -Nem numerikus adattípusok A gépeket nem mindig nemerikus alkalmazásokra használjuk, mint pl. a szövegszerkesztés.Az ilyen alkalmazások más adattípusokat igényelnek, amit gyakran az ISA-szintu utasítások is támogatnak. A leggyakoribb karakterkódok az ASCII és az UNICODE.Az elöbbi 7 az utobbi 16 bites ábrázolást alkalmaz.Az ISA-szint még rendelkezik lyan utasításokkal is, melyek karakterláncokon is operálnak.Az utasítások másolást, keresést, szerkesztést és még néhány más funkciót valosítanak meg karakterláncokon. A logikai ( Boolean-) értékek különösen fontosak. A két logikai érték az igaz és a hamis.Va olyan is, hogy egy biten ábrázolunk egy logikai értéket, amikor logikai értékek teljes tömbjét kell tárolni. Ilyenkor 32 bit 32 logikai értéket tartalmaz. Az ilyen adattípust bittérképnek nevezzük. Az utolsó adattípusunk a mutató, ami egyszerüen egy memoriacímet jelent. A mic-x gép esetén az SP, PC, LV, CPP mind példák mutatóra. Mutatóhoz adott távolságra lévö változó elérése, mint ahogy az ILOAD utasítás dogozik, gyakori minden gépen. -A Pentium II utasításai A Pentium II támogatja az elöjeles 2-es komplemens egész, az elöjeltelen egész, az IEEE 754 szabványnak megfelelö lebegöpontos számokat. Az operandusokat nem kell igazítani a
2
memoriában, bár célszerü néggyel osztható címen tárolni az adatokat. A Pentium II jo a 8 bites ASCII karakterek manipulálása terén is. -Az UltraSPARC II adattípusai Az UltraSPARC II adatformátumok széles skáláját nyújtja. Viszont csak az egészek esetén lehet 8, 16,32, 64 bites operandus, mind elöjeles, mind elöjeltelen formátumban. Az elöjeles egészek 2-es komplemens kódban ábrázolja.A lebegopontos operandusok lehetnek 32, 64 és 128 bitesek. Binárisan kódolt decimális ábrázolást nem támogat.Minden operandusnak a memoriában igazitottnak kell lennie. Az UltraSPARC regiszterorientált, majdnem minden utasítás 64 bites regiszterre vonatkozik. A karakterlánc adattípust nem támogatja speciális utasítással. -A Java virtuális gép adattípusai A Java szigorúan típusolt nyelv, ami azt jelenti, hogy minden operandusnak a fordítási idöben megadott típusa van megadott hosszal. A JVM a numerikus adattípusokat támogatja. Elöjeltelen egészeket a Java nyelv nem támogat, így a JVM sem.Ugyancsak nem támogatja a binárisan kódolt decimális számokat. A JVM támogatja a karakter adattípust, de nem a hagyományos ASCII kódolást, hanem a 16 bites UNICODE-ot.A mutatókat csak korlátozva támogatja, felhasználói programok nem használhatnak közvetlen mutatókat.Foleg csak objektumhivatkozásokra használhatók a mutatók. 5. Az utasítások végrehajtásának lépései A regiszterek két ALU bemeneti regiszterbe továbbitják az adatokat, amig az ALU dolgozik. Az ALU a bemenö adatokon egyszerű műveleteket végez, majd az eredményta kimeneti regiszterbe teszi. Ennek a regiszternek a tartalma visszahivható egy regiszterbe és az szükség esetén eltárolható a memóriában. Az utasitások lehetnek regiszter-memória vagy regiszter-regiszter tipusúak. REGISZTER-MEMÓRIA:neveket tölthetünk a memóriából a regiszterbe, ahol a soron következő utasitások bemenetként használják öket. REGISZTER-REGISZTER: két regisztero..... elhelyezve az ALU bemenet regisztereibenés elvéhez egy műveletet, majd az eredményt visszairányitja egy regiszterbe. Utasitások végrehajtása: 1. utasitása beolvasása az utasitás-regiszterbe 2. PC beállitása a következö utasitása részére 3. a beolvasott utasitás tipusának meghatározása 4. amennyiben az utasitás memóriabeli szót használ, a szó helyének megállapitás 5. ha szükséges, a szó beolvasása a regiszterbe 6. utasitás végrehajtása 7. következö utasitás végrehajtásának megkezdése 6. RISC tervezési elvei 1980-ban Berkeley-n olyan VLSI processzorok tervezése indult meg, amelyek nem használtak interpretálást >> RISC néven Ezt követte a RISC II, majd a Stanfordban tervezett kicsit eltérő MIPS. Mindekettő továbbfejlesztett változata kereskedelmi fogalomba is került: SPARC és MIPS. A új mikroprocesszorok különböztek az eddigi kereskedelemben kaphatóktól. Tulajdoságaik: -nem kellett kompatibilisnek lennie semmilyen termékkel -ezáltal az utasitáskészlet megválasztása teljesen szabad (kb.50 a 2-300 helyett) -az összes gyakori utasitást hardverben hajtja végre. Az interpretációs szint kiküszöbölésével a legtöbb utasitás gyors lesz. CISC utasitások részekre bontása és mikroutasitások sorozataként való végrehajtása. -az utasítások könnyen dekódolhatók legyenek(szabályosak, egyforma hosszúak és kevés mezőből állnak) -tervezés elsődleges szempontja csak a maximális teljesítmény -a kezdeti utasítás végrehajtási idő szempont helyett már az számit hány utasítást lehet elinditani egy másodperc alatt 3
-csak a betöltő és tároló (LOAD, STORE )utasítások hivatkozzanak a memóriára -sok regiszter használata, mivel a memóriaműveletek lassúak (legalábbis 12 regiszter hsználata). Igy egy beolvasott szó a regiszterben maradhat, nem kell a memóriához fordulni. 7. Utasításszintű párhuzamosítás Lényege, hogy az egyes utasításokban rejlő párhuzamosságot használjuk ki, hogy több utasítást tudjunk kibocsátani. -Szállitószalagelv: A régi számitógépekben utasítások kiolvasása igen lassú volt, ezért azokat egy előolvasási puffer (perfetch buffer) elnevezésű regiszterkészletben tárolták. A szállitószalag elv ezt az eljárást viszi tovább. Az utasítások több részre bontja, majd minden részt külön hardverelem kezel, amelyek párhuzamosan működnek. 1. fázis: utasítás beolvasása és elhelyezése egy pufferben 2. fázis: dekódolja az utasítást és meghatározza a tipusát és a szükséges operandusokat 3. fázis: megkeresi és beolvassa a operandusokat a regiszterből, vagy a memóriából 4. fázis: végrehajtja az utasítást azaz (átviszi az adatúton) 5. fázis: visszaírja az eredmény a megfelelő regiszterbe -Szuperskalár architekturák: Két szállitószalaggal rendelkező architektúra. A szállítószalagoknak saját ALU-juk van, így párhuzamosan tudnak működni; Feltétel, hogy a két utasítás ne használhatja ugyanazt az erőforrást (ez hardverrel vagy a forditóprogram által garantált) Ez a megoldást a Pentium számára 2x gyurulást jelent a 486-oshoz képest A szállitószalagok számanak növelése nem helyes a hardverelem számának növekedése miatt. Egy másik gyrosítási alapötlet, hogy csak egy szállítószalagot használnak, de több funkciónális egységgel. 8. Processzorszintű párhuzamosság A gyorsabb számitógépek iránti igények (nagy számitásigényű problémák) miatt nem elég a 5-10x sebességnövekedés. A 50-100x sebességnövekedést csak a több CPU tartalmazó számítógépek tervezésével lehet elérni. Azokon az alkalmazási területeken, ahol ugyanazt a műveletet kell egyszerre elvégezni különbözö adatbázisokon, a korszámitógépeket alkalmazzuk. Ennek két megvalósitása használatos: -Tömbprocesszor Nagyszámú, egyforma processzorból áll, melyek a számitásaik során ugyanazt a műveletsorozatot végzik el különbözö adathalmazokon (fizika, mérnöki munka), Pl.:ILLIAC IV 8x8 -as négyzethálóban a processzor/memóriapárok -Vektorprocesszorok hasonló, mint a tömbprocesszorok, de azoktól eltéröben minden összeadás egyetlen szállitószalagelven működö összadóegységben zajlik.(CAY I.) A tömb- és vektorprocesszorok egyaránt adattömbökkel dolgoznak. Mindkettö a vektorok összeadásához hasonló müveleteket végez. Ehhez a tömegprocesszorok a vektor elemzésével megegyező számú összeadóegységet tartalmaznak. A vektorprocesszorok vektorregisztereket használnak. A vektorregiszterek hagyományos regiszterekből állnak, ezeket a betöltö utasitás egymás után sorosan tölti fel a memóriából. Ezután a vektorösszeadás-utasitás végrehajtja az elemek páronkénti összeadását úgy, hogy egy szállitószalagos összeadóba irányitja öket a vektorregiszterekböl. A vektorösszeadás eredménye egy újabb vektor, amit egy vektorregiszterbe lehet tölteni, hogy közvetlenül fel lehet használni egy újabb vektorművelet operandusaként. A tömbprocesszorok feldolgozóegységei nem függetlenek egymástül, mert közös a vezérlőegységük. -Multiprocesszorok Olyan rendszer, amelyben több processzor használ egy memóriát Mindengyik CPU irhat olvashat memóriába, de együtt kell működniük (szofveresen), hogy ne legyenek egymás útjában.
4
Tipusai: -egysínes: több processzor egy közös memória -multiszámitógép lokális memóriával: a sebesség növelésére minden CPU saját memóriával rendelkezik, ezáltal csökkkentve a közös sin forgalmát Előnye:a programozásában van, bizonyos területeken. -Multiszámítógépek A nagyszámú összekapcsolt számítógépekből álló rendszerek, amelyek csak lokális memóriákkal (a nagy számu processzorokból álló gépekben már nehéz a a közös memóriaösszeköttetések megszervezése) rendelkeznek multiszámitógépeknek nevezzük. A multiszámítógép processzorai üzenetekkel kommunikálnak egymással. A gépek összeköttetésének struktúrája 2, 3 dimenziós hálókat fákat, gyűrűket követ. Már épitenek 10 000 processzoros multiszámítógépeket Multiprocesszorokat könnyebb programozni, a multiszámítógépeket könnyebb épiteni. 9.Kódolás, hibaérzékelő, hibajavító kódok A számítógépek memóriái néha hibáznak. Ezeknek a hibáknak a kiszürésére bizonyos hibafelismerő vagy hibajavító kódot alkalmaznak. Ezek használata esetében minden memóriabeli szót kiegészítenek speciális bitekkel. Egy szó kiolvasása során a kiegészítö biteket ellenőrzik, hogy a hiba kiderüljön. Egy n bites, m adatbites és r ellenörző bitet tartalmazó egységet gyakran n bites kódszónak nevezzük. Az eltérő bitpozíciók számának megállapításához egy egyszerü kizáró logikai VAGY müveletet kell végezni a két kódszón, majd megszámolni az eredmény 1-es bitjeit. Az eltérö bitpozíciók számát a két kódszó Hamming-távolságának nevezzük. Ha két kódszó távolsága d, akkor d darab egyszeres bithibának kell előfordulnia ahhoz, hogy az egyik kódszó a másikba alakulhasson. Ha egy memóriaolvasás érvénytelen kódszót ad, akkor a számítógép azonnal tudja, hogy memóriahiba lépett fel. Egy kódolás hibafelismerő és hibajavító képessége a Hammingtávolságtól függ.A d egyszeres felismeréséhez d+1 távolságú kódolás kell. -Hamming-algoritmus A kódolás során redundáns bitet adunk egy m bites szóhoz így a kódszó teljes hossza n=m+r bit lesz. A biteket nem 0-val, hanem 1-gyel kezdődően sorszámozzuk, a legnagyobb helyiértékű lesz az 1-es sorszámú. Minden olyan bit paritásbit lesz, amelynek sorszám, a 2 hatványa; a többi adatbit lesz.Minden paritásbit meghatározott bitpoziciókat ellenőriz. Általánosan a b bitet azok a b1, b2,...,bj paritásbitek ellenörzik, amelyekre b1+b2+...+bj=b. A hibás bit megtalálásának egy egyszerű módja az, hogy először kiszámoljuk az összes paritásbitet. Ha mindegyik helyes, akkor nem volt hiba. Ezután összeadjuk a hibás paritásbitek sorszámait, az eredményül kapott összeg a hibás bit sorszáma. 10. Gyorsítótárak feladata, működése. A számítógép története során a processzorok mindig gyorsabbak voltak a memoriáknál.A gyakorlatban ez azt jelenti, hogy a processzor egy memóriamuvelet elindítása után a kért szót még jó néhány CPU-ciklus ideig nem kapja meg.Minél lassabb a memória a processzornak annál több ciklust kell várnia.Viszont vannak olyan módszerek, amelyek egy kisméretu gyors memória kombinálásával egyszerre nyújtják a gyors memória sebességét és a lassú memória méretét mérsékelt áron. A kisméretu gyors memória neve gyorsítótár (cache). A gyorsítótár alapötlete egyszeru: a leggyakrabban használt memóriaszavakat a gyorsítótárban tartjuk. Amikor a processzornak szüksége van egy szóra, eloször belenéz a gyorsítótárba. Ha a szó nincs benne, akkor fordul csak a központi memóriához. Ha a szavak jelentös része megvan a gyorsítótárban, akkor az átlagos elérési ido nagymértékben csökken.A siker tehát azon múlik, hogy a szavak mekkora hányada van a gyorsítótárban. Az a megfigyelés, hogy egy rövid idointervallum alatt amemóriahivatkozások a teljes memória csak egy kis részét érintik, a lokalitási elv. Ez az alapja a gyorsítótáras rendszereknek, ahol az történik, hogy egy memóriaszóra hivatkozik a program, akkor az a szó és még néhány szomszédja beolvasásra kerül a nagy lassú tárból a gyorsítótárba, így ha legközelebb szükség van valamelyikre, akkor már gyorsan elérheto.Ha a CPU rövid idon belül egy szóra k-szor hivatkozik, akkor ebböl egyszer kell a lassú memóriához fordulnia, k-1-szer a 5
gyorshoz. Minél nagyobb a k annál jobb az összteljesítmény. A c-vel jelöljük a gyorsítótár elérési idejét, m-mel a központi memória elérési idejét és h-val a találati arányt, ami azt mutatja, hogy az összes hivatkozás mekkora hányada volt kiszolgálható a gyorsítótárból.A hibaarányt is definiálni szokták, ennek éertéke 1-h. Ezekkel a definíciokkal kiszámíthatjuk az átlagos elérési idot, ami egyenlo c+(1-h)m-mel. A lokalitási elvtol vezéreltetve a központi memória és a gyorsítótár kötött méretu blokkokra van osztva. Amikor a gyorsítótáron belüli blokkokrólesik szó, akkor ezeket általában gyorsítótársoroknak (cache line) nevezik.A közös gyorsítótár ( utasítások és adatok együtt) egyszerubb szerkezetu és autómatikusan kiegyenlíti az utasításokra és az adatokra történo hivatkozásokat.Az osztott gyorsítótár pedig az, amikor is az utasítások és az adatok külön vannak. Ezt Harvard-architektúrának is nevezik.Az osztott gyorsítótár lehetové teszi a párhuzamos muködést, a közös nem. Az utasításokat tároló gyorsítótár tartalmát soha nem kell visszaírni a memóriába. 11. Mágneslemezek muködési elve Egy mágneslemez egy vagy több mágnesezheto bevonattal ellátott alumíniumkorongból áll. Eredetileg ezek a korongok 50 cm átmérojüek voltak.A lemez felett egy indukcios tekercset tartalmazó fej lebeg, attól csak egy vékony levegoréteg tartja távól. Ha pozitív vagy negatív áram folyik az indukcios tekercsben, akkor a fej alatt a lemez felmágnesezodik, az áram polaritásától függoen a mágneses részecskék balra vagy jobbra állnak be.Amikor a fej egy felmágnesezett terület felett halad át, akkor a poz. vagy neg. áram indukálódik benne, így a korábban eltárólt biteket vissza lehet olvasni. Tehát ahogy a korong forog a fej alatt, bitsorozatokat lehet felírni és késöbb visszaolvasni. Egy teljes körülfordulás alatt felírt bitsorozat a sáv. Minden sáv 512 bájtos szektorokra van osztva, amelyeket a fej írás és olvasás elötti szinkronizáciojához szükséges fejléc eloz meg. Az adatok után hibajavító kód (EEC) áll.Ez vagy Hamming-, vagy Reed-Solomon-kód. A szektorok között keskeny szektorrés van. Minden lemeznek vannak mozgatható karjai, melyek a forgástengelytol sugárirányban ki-be tudnek mozogni.Minden sugárirányú pozícion egy-egy sáv írható fel. A sávok tehát forgástengely középpontú koncetrikus körök. Egy adott sugárirányú pozíciohoz tartozó sávok összessége a cilinder. A felület tisztasága és a levego minösége érdekében a legtöbb lemezt gyárilag légmentesen lezárják. Az ilyen lemezeket winchesternek hívják.Minden lemezhez tartozik egy lemezvezérlo, egy lapka, ami vezérli a meghajtót. 12. CD-k müködési elve Az utobbi években a mágneslemezeket fölváltották az optikai lemezek, mivel ezeknek már sokkal nagyobb az írási surusége. Az elsö generácios optikai lemezeket a Philips fejlesztette ki.1980-ban a Philips és a Sony megtervezte a CD-t(Compact Disk).A CD pontos technikai részleteit egy hivatalos nemzetközi szabványban rögzítették, melynek elterjedt neve a Red Book (Vörös könyv).Minden CD 120 mm átméröju és 1,2 mm vastag, középen egy 15 mm-es lyuk van.A CD anyaga polikarbonát, amiben az elhelyezkedö mélyedéseket üregeknek (pit), az üregek közötti érintetlen területeket szinteknek ( land) hívják.Visszajátszáskor egy kis energiáju lézerdióda 0,78 mikron hullámhosszuságú infravörös fénnyel világítja meg az üregeket és a szinteket, ahogy elhaladnak alatta.A lézer a polikarbonát oldalon van, ezért az üregek a lézer felé kidudorodnak az amugy sima felületböl.Mivel az üreg magassága negyede a lézerfény hullámhosszának, az üregekröl visszaverödö fény fél hullámhossznyi fáziseltolódásban van a környezö területröl visszaverodo fényhez képest.A két rész interferenciája miatt a lejátszó fényérzékelojébe jutó visszavert fény gyengébb, mint a szintrol visszavert fény.Így különbözteti meg a lejátszó az üreget a szinttol.Az üreg/szint, szint/üreg átmenetet 1-nek , ennek hiányát 0-nak vesszük.Az üregek és a szintek egyetlen folytonos spirálba kerülnek felírásra, amely a lyuk közelében kezdödik és a széléig egy 32 mm-es sávot foglal el.A spirál 22188 fordulatot tesz meg a középpont körül. Mivel például a zene egyenletes lejátszásához szükséges, hogy az üregek és a szintek állando sebességgel mozogjanak.Emiatt a CD forgási sebességét fokozatosan csökkenteni kell, ahogy az olvasofej a belsö területekröl kifelé tart. 1984-ben kiadták a Sárga Könyvet( Yellow Book), amely a mai CDROM pontos szabványát írja le.A Sárga Könyv a számítógépes adatok tárolási formátumát 6
definiálta.1986-ban a Zöld Könyvvel grafiku anyagok tárolását határozták meg, valamint lehetövé tette egy szektoron belül audio-, video és egyéb adatok eléhelyezését. 13. Input/Output eszközök muködése 1.Sínek:A személyi számítógépek szokványos felépítése egy fémdoboz, alján az alplappal, amin hosszában található rajta egy sín, valamint a B/K eszközök csatlakozoi.Minden B/K eszköz két részbol áll: egyik rész tartalmazza az elktronika nagy részét,ez a vezérlo.A másik maga az eszköz.A vezérlonek az a feladata,hogy a hozzá csatlakoztatott eszközt vezérelje és a sínhez való hozzáférést irányítsa.A sínt nem csak a B/K vezérlök használják, a CPU is ezen keresztül éri el az utasításokat és az adatokat.De ha a sínt egyszerre a CPU és a B/K is akarja használni, akkor a sínkiosztó lapka dönti el, hogy ki lesz az elsö. Egy igen jelentös tipusú sín az ISA(szabványos felépítés) sín volt, amit késobb továbbfejlesztettekés így lett az EISA(bovített szabványos felépítés). Ezek közül ma az egyik legnépszerübb a PCI(perifériás komponensek összekapcsolása) sín. 2.Terminálok:lásd a 14-es tételben 3.Egerek Az egér egy kis muanyag doboz ami a billentyuzet mellett helyezkedik el az asztalon.Ha mozgatjuk, akkor a monitoron látható kis jel szintén elmozdúl.Ezáltal a felhasználók rámutathatnak a képernyon lévo objektumokra.Az egég tetején egy, ketto vagy három gomb van, ezekkel lehet a menükbol választani.Háromféle egeret gyártottak eddig: mechanikus, optikai és optomechanikus egeret.Az elmúlt években a két kerék helyett már csak egy kiálló golyót használnak az egér talpában.Az optikainak viszont nincs se kereke, se golyója.Ehelyett egy LED(fénykibocsátó dióda) és egy fénydetektór van az aljában.Ez egy speciális muanyag lapon mozog amin a fénydetektor érzékeli az egér által megtett távolságot. A harmadik fajta egér az optomechanikus.A mechanikushoz hasonlóan egy golyó két, egymással derékszöget bezáró tengelyt forgat.Ahogy az egér mozog, a tengelyek forognak és a réseken keresztül egy LED-böl fényimpulzusok jutnak el a hozzá tartozó detektorba.A fényimpulzusok száma arányos a megtett úttal. 4.Nyomtatók: lásd a 15. tételben 5.Modemek: A számítógépek használatának növekedésével gyakran válik szükségessé, hogy két gép tudjon egymással kommunikálni.Azonban egy sima telefonvonal nem alkalmas a számítógép jeleinek továbbítására. Ez az eszköz, amelyik kétszintu jelek formájában bitenként karaktereket fogad el a számítógéptol és a biteket egyesével vagy kettesével amplitudó-, frekvencia- vagy fázismodulációt használva továbbítja.A mai modemek kb. 28800 bit/másodperc sebességgel muködnek.Full duplex az a modem amely egyszerre mindkét irányba tud kommunikálni.Fél duplex az, ami csak egy irányba tud kommunikálni egyszerre.A csak egy irányba muködö vonal neve szimplex. 6.ISDN: (integrált szolgáltatások digitális hálózat). Az ISDN az internet alkalmazásával lett hasznos.Amikor valaki ISDN-re fizet elö egy telefontársaságnál, akkor az analóg vonalat lecserélik digitálisra.Az új vonal két független digitális csatornát szolgál ki, plusz egy jelzocsatornát.Az ISDN tehát nem csak gyors,mint az analog csatorna, hanem a kapcsolatokat is 1 másodperc alatt fel tudja építeni. A bitek jelentése csak a küldo és a fogadó számára ismertek.Az ügyfél és a szolgáltató berendezései közötti interfész az NT1 doboz, egyik oldalán a T, másikon pedig az U interfésszel. A számok és karakterek egymáshoz rendelését karakterkódnak nevezzük. 14. Termináltípusok: A számítógépes terminálok két részböl állnak: billentyüzet és monitor. 1,Billentyüzet: A billentyüzetnek számos fajtája létezik. Az eredeti IBM-PC billentyüzetének minden billentyüje alatt egy olyan kapcsoló volt,amely az ujjakkal jól érzékelhetövé tette és hangot is adott, ha lenyomták.Manapsága az olcso billentyüzetek egyszerüen csak mechanikus kapcsolatot hoznak létre leütéskor.A jobbakban rugalmas anyag van a billentyük és az alsó nyomtatott áramköru lap között. Minden billentyü alatt egy kis kiemelkedés található, amely behorpad, ha elég erösen nyomjuk. A kiemelkedésalján lévo vezetö anyag zárja az áramkört.A személyi 7
számítógépeken egy billentyü leütésekor megszakítás generálódik, és a billentyüzet megszakításkezelöelindul.A megszakításkezelö kiolvassa a billentyüzet vezérlö regisztereiböl a leütött billentyü kódját (1-102). 2.,Monitorok: a,Katódsugárcsöves: A monitor egy katódsugárcsövet és a hozzá taretozó energiaellátó berendezéseket tartalmazó doboz. A katódsugárcsöben van egy olyan ágyú,amely elektronsugarat tud löni egy, a cso elülso részén lévo foszforeszkáló ernyöre.A színes monitorokban három elektronágyú van zöld, kék és vörös színekben.Az ilyen eszközöket, amelyek a képet soronkét állítják össze, rasztereseszköznek nevezzük. Ahhoz, hogy képpontokat lehessen megjeleníteni a képernyon, a CRT-ben egy rács helyezkedik el. Ha pozitív feszültséget kapcsolnak a rácsra, akkor az elekronok felgyorsulnak és az ernyobe csapódnak, rövid felvillanástokozva.Ezzel a módszerrel egy bináris elektromos jel világos és sötét pontokbólálló képpé alakítható. b,Lapos megjelenítok:Mivel a katódsugárcsöves monitorok túl nagyok lettek volnaegy noteszképhez lehessen oket használni, ezért más megoldásra volt szükség.A legelterjedtebb az LCD-folyadékkristályos kijelzo.A folyadékkristályok nyúlós, rafgadós szerves molekulák, amelyek úgy folynak, mint a folyadék, de térbeli szerkezetük is van. Egy elektromos mezö felhasználásával amolekulák elrendezodése és optikai tulajdonsága is megváltoztatható.Konkrétan, ha a folyadékkristályon keresztül fényt juttatunk át, akkor a kilépo fény intenzitása elektromosan szabályozható. Ezt a tulajdonságot kihasználvalapos megjelenítoket készíthetünk.Egy LCD képernyo két párhuzamos üveglemezböl áll, melyek közötti zárt térben folyadékkristály van.Átlátszó elektródákaterösítenek mindkét lemezhez. A hátsó lemez mögül érkezo fény világítja meg a képernyot hátulról. c,Karaktertérképes terminálok:Háromfajta terminált használnak széles körben:karaktertérképes terminálokat, bittérképes terminálokat és RS-232-C terminálokat.Ezek mindegyike használhat bármilyen billentyüzetet, de különbségvan a számítógéppel való komunikácioban és a megjelenités módjába. d,Bittérképes terminálok: A karaktertérkép helyett bittérképet használó terminálok a bittérképes terminálok.A fentihez hasonló ötlet, hogy a képernyot nem karaktertömbnek tekintjük, hanem olyan tömbnek, amely képpontokból, ugynevezett pixelekböl áll.Minden mai videokártya tud karaktertérképes és bittérképes módban is muködni. A programok bármilyen képet elhelyezhetnek itt, az azonnal megjelenik. Karaktereket úgy lehet megjeleníteni, hogy mondjuk egy 9x14-es télalapot tartunk fenn minden karakter számára és ezeket a megfelelo bitmintákkal feltöltjük.Bittérképes terminálokon gyakran ablakokat jelenítenek meg. Az ablak a képernyo valamely program által használt része.A bittérképes terminálok igen rugalmasak,de azért van két hátrányuk: Egyik, hogy nagy videomemoriára van szükségük, a másik a teljesítményük. e,RS-232-C terminálok:Ahhoz, hogy bármilyen terminált használhassunk bármilyen gépen, az EIA (Electronics Industries Association)kidolgozta az RS-232-C szabványos számítógépterminál interfészt.Ezeknek a termináloknak egy szabványos 25 tus csatlakozójuk van, mivel a szabvány meghatározta a csatlakozo méreteit, formáját, a feszültségszinteket, stb. Ha a terminál és a számítógép messze van egymástól, akkor az egyetlen praktikus összeköttetési lehetöség a telefonkapcsolat.Mivel a telefon nem képes az RS-232-C szabványos jeleinek továbbítására, ezért alkalmazunk egy modemnek nevezett jelátalakító eszközt, amit a gép és a telefon közé beiktatunk.De hogy kommunikálni tudjon a gép és a terminál, ezért a terminál is tartalmaz egy UART (univerzális aszinkron vevo és továbbító) lapkát. Az UART különben egy párhuzamos-soros átalakító,mert egy egész karaktert kap és ezt meghatározott ütemben egyenként adja ki a biteket.Az RS-232-c szabvány majdnem 25 jelet definiál, de gyakorlatban csak keveset használ.
8
15. Nyomtatók 1.Monokróm nyomtatók: a, Mátrixnyomtató: az egyik legolcsóbb nyomtató, amelyben egy 7-24 elektromágnesesen aktivizálható tut tartalmazó nyomtatófeje halad el minden nyomtatandó sorban.Igazából azonban minden kinyomtatott sor 7 vízszintes sorból áll. A mátrixnyomtatók olcsók és nagyon megbízhatók, habár lassúak, hangosak és gyengék a grafikus képességeik. b, Tintasugaras nyomtató: Olcsók otthoni nyomtatáshoz.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 fúvókában a tintacseppet elektromosan addig hevítik, míg szétrobban és a papírra kerül.Majd a fúvókát lehutik és az így keletkezett vákum ujabb tintacseppet húz be.Olcsók,csendesek és jo minoséget állítanak elo, de ezek is lassúak és drága a patron. c, Lézernyomtató: Kiváló minöségu képet készít,rugalmas, gyors és anyagilag is megengedheto.Majdnem ugyanazt a technológiát alkalmazzák, mint a fénymásolók.A nyomtató szíve egy forgó precíziós henger.Egyegy lap nyomtatása elött kb. ezer voltra feltöltik és fényérzékeny anyaggal vonják be.Ezután egy lézerrel végigpásztázzák a hengert, majd a fényt modulálják, hogy sötét és világos pontokat kapjanak.Azok a pontok, ahol fény éri a hengert, elveszítik elektromos töltésüket.Majd mikor az elsö sor eléri a tonerkazettát, ami elektrosztatikusan érzékeny fekete port tartalmaz. A por hozzátapad a még feltöltött pontokhoz és így láthatóvá válik a sor. 2.,Színes nyomtatók: a, CYMK-nyomtató: (Cyan, Yellow, Magenta, blacK).Ez a nyomtató színkivonással állitja elö a ciánból, a sárgából, a bíborvörösböl és a feketébol lineris superpozícioval a színeket.A monitorok ezzel szemben az additív alapszíneket és az RGB-(Red,Green,Blue)rendszert használják a színek elöállítására. Azoknak a színeknek az összességét, amit egy monitor vagy nyomtató képes eelöállítani gamutnak nevezzük. b, Szilárd tintás nyomtatók: Ezekben négy speciális, szilárd tintatömböt kell elhelyezni, amelyeket aztán felolvasztanak.Ezért bekapcs után várni pár percet, míg a tinta felolvad.Majd a forro tintát a papírra szórják, ahol megszilárdul és végül egy hengeren átgördülve véglegesen a papíron marad. c,Színes lézernyomtató: Monokróm testvéréhez hasonlóan muködik, kivéve, hogy a négy színnek megfelelö képeket egyenként viszik fel a hengerre és mindegyiknél külön tonerböl szinezik meg a papírt. d,Viasznyomtatók Egy széles, négyszínu viaszt tartalmazó szalag van benne, amely lapméretu szegmensekre osztott.Több ezer futoelem olvasztja meg a viaszt, ahogy a papír mozog alatta.A viasz CYMKrendszert használva pixelenként hozzátapad a papírhoz.Ezek igen elterjedt nyomtatók voltak, de drágák a kellékeik. e, Festékszublimációs nyomtatók Ebben a nyomtatóban egy több ezer futoelemet tartalmazó nyomtatófej felett haladnak el a hordozóanyagban tárolt CYMK-festékek. A festékek azonnal elpárolognak és a papírra kerülnek.Minél magasabb a homérséklet, annál több festék kerül a papírra és annál élénkebb lesz a szín. 16 Melyek az előadáson ismertetett legegyszerűbb digitális áramkörök? 17. Alapvető digitális logikai áramkörök alaptípusai. 18 Milyen kombinációs áramköröket ismer? Mit hajtanak végre ezen áramkörök? 19. Milyen aritmetikai áramköröket ismer? Mit hajtanak végre ezen áramkörök? -Multiplexer 2^n db adatbemenettel, n db vezérlőbenemettel és 1 db kimenettel rendelkezik. A kiválasztott adatbemenet útképzéssel irányított vagy másnéven kapuzott a kimenetre. Az n db vezérlőbemenet 9
egy n bites számot kódol, amely meghatározz a 2^n db bemenet közöl mlyiket kapuzzuk a kimenetre. Felhasználása: párhuzamos-soros adatkonverter, igazságtáblák implementálása -Dekódoló A bemenet egy n bites szám, amellyel ki tudjuk választani a 2^n kimenet az egyiket (azaz be tudjuk állitani 1-re) Felhasználása: memóriacímzés. -Összehasonlitó Két n bites bemeneti szót hasonlít össze. Ha meggyeznek 0 jelenik meg a kimeneten, ha különböznek akkor pedig 1. -PLA (Programmable Logic Array) Logikai függvények (igazságtáblázatok; t.d.n.f. alakra) megvalósíthatók PLA segitségével. A PLAban n vátozó számára van bemenet, amelyet komplemensképzéssel megkétszerezünk. Az igy kapott 2n bemenőjel közül egy "2n x m" -es mátrix határozza meg, melyik melyik ÉS kapura kerüljön. Ennek programozása az áramköri biztosítékok nagy árammal történő kiégetésével történik. A kimeneti rész k db VAGY kapuból áll. Itt egy "m x k"-s mátrix adja meg, hogy ténylegesen melyik kapcsolat létezik -Léptető (shifter) Egy n bites bemenettel és egy n bites kimenettel rendelkező léptető aritmetikai áramkör a bemenetet 1 bittel, a vezérlővonal által meghatározott irányba (0-balra, 1-jobbra) tolja el. -Fél-összeadó (half adder) Két jel összegét, és az átvitelt (balra) számítja, de többites összeadásnál nem megfelelő, mert nem kezeli a jobbról érkező átvitelt. -Teljes összeadó (full adder) A fél-összeadó hibáját kiküszöbölő öszeadó, amely két fél-összeadóból épül fel. -Aritmetikai-logikai egységek Az aritmetikai-logikai egység (ALU-Arithmetic Logic Unit) négy alapfunkció végrehajtására képes A ÉS B, A VAGY B, NOT B vagy A + B (aritmetikai összeadás) attól függően, hogy a funkciót kiválasztó bemenő vonalak (F0,F1) milyen értékűek A 2 bites dekódoló hozza létre a F0 és F1 jelekből az engedélyező jeleket. Pontosan csak egy dekódolókimenet lesz 1 a többi 0. A kimenten lévő vagykapu értéke csak az A B változók értékétől függ, mert a többi egység kimenete 0. A fenti 1 bites ALU építőeleme a több bites ALU-knak -Órák Sok digitális áramkörben fontos a megfelelő időzítés. Ezért ezek az áramkörök órajelet használnak, hogy biztosítsák a szinkronizációt. Ez egy áramkör, amely impulzusok sorozatát bocsátja ki meghatározott pulzusszélességgel és pontosan meghatározott két pulzus közötti időintervallummal. A két egymást követő pulzus élei kozti időintervallumot az óra ciklusidejének (clock cycle time) nevezzük. Műveletek egy órajelen:-késleltetés 20. Az aritmetikai-logikai egység (ALU) működése Az aritmetikai-logikai egység (ALU-Arithmetic Logic Unit) négy alapfunkció végrehajtására képes A ÉS B, A VAGY B, NOT B vagy A + B (aritmetikai összeadás) attól függően, hogy a funkciót kiválasztó bemenő vonalak (F0,F1) milyen értékűek A 2 bites dekódoló hozza létre a F0 és F1 jelekből az engedélyező jeleket. Pontosan csak egy dekódolókimenet lesz 1 a többi 0. A kimenten lévő vagykapu értéke csak az A B változók értékétől függ, mert a többi egység kimenete 0. A fenti 1 bites ALU építőeleme a több bites ALU-knak
10
21. Hogyan működik az SR-tároló? A tároló 0-ás állapotban SR - tároló Két bemenet van: - S, a tároló beállitására - R, az újrabeállításra (törlésre) A tárolónak két stabil állapota van R=S=0 esetén Q=0 és Q=1. A bemenetek hatása: A bemenet a felső kapunál 1 és 0 és Q-t kimenetként 0-ra állítják. Ezáltal az alsó kapu minkét bemenete 0-s lesz, ami 1-et eredményez a kimeneten. Igy az S beállításával (azaz 1-et adtunk neki értékül) a tároló átkapcsolódik 0-ból 1-esbe. Az R bemenet 1-esbe állítása, amikor a tároló 0-ás állapotban van nincs hatással, mert az alsó NEM-VAGY kapu kimenete 0 az 10-s és 11-es bemenetekre. Hasonlóan, ha S=1-et állitunk és Q=1 állapot van, de R beállitásával a tárolót Q=0-ba viszi. Tehát amikor S=1 a tároló felveszi a Q=1 állapotot, függetlenül attól milyen állapotban volt azelőtt. Valamint, ha R=1, akkor a tárolót 0-ba kényszeríti. Az áramkör emlékszik, hogy milyen S vagy R volt utoljára 22. Hogyan működik a D flip-flop tároló?
23. Memória szervezésének legfontosabb kérdései, memória lapkák. Memóriaszervezés: Az 1 bites memóriától a 8 bites memóriáig másfajta memóriaszervezés szükséges, mint felette. A nagyobbaknál fontos, hogy egyedi szavakat tudjunk megcímezni. A könyvbeli példa 4 db 3 bites szóból álló memóriát mutat be. Minden egyes művelet teljes 3 bites szavakat olvas, vagy ír. A flipflopokkal szemben ennek a kapacitása alig több, de kevesebb lábat kíván és a tervezés könnyen kiterjeszthető nagy memóriákra. Nagyon egyszerű szabályos struktúrája miatt. Nyolc bemenő vonala és három kimenő vonala van. A nyolc bemenő vonal: három bemenő az adatoknak, kettő a címzéshez, és három a vezérléshez: CS: lapka választás (chip select), RD: olvasás-írás választása, OE: kimenetre képessé tétel (output enable). A négy szókiválasztó ÉS kapu a memória bal oldalán egy dekódolót alkot. Minden kapu meghajt egy szókiválasztási vonalat a tetejétől az aljáig. Amikor a lapka írásra van választva a CS*RD vonal lesz magas, ezzel engedélyezi a négy író kapu valamelyikét, attól függően, hogy melyik szókiválasztó vonal magas. Az olvasás hasonló az íráshoz. A cím dekódolása pontosan ugyanúgy történik, mint az írásnál. Csak most a CS*RD vonal alacsony, így az összes író kapu letiltódik és egyetlen flipflop sem módosul. Ha összekötöttük volna a VAGY kapukat az adatkimenet vonalakkal, a lapka megpróbálna adatokat küldeni, azaz mindegyik vonalra egy meghatározott értéket kényszerítene, éppen írások idején is, így összeütközésbe kerülne a bemeneti adatokkal. Ennek megoldásához szükségünk van egy elektronikus kapcsolóra: nem invertáló pufferre. Egy adatbemenete, egy adatkimenete és egy vezérlőbemenete van. Amikor a vezérlőbemenet magas, a puffer úgy viselkedik, mint a huzal, amikor a vezérlőkimenet alacsony, a puffer úgy viselkedik, mint egy nyitott áramkör. Ezen kívül van invertáló puffer, amely úgy viselkedik, mint egy normális inverter. Memória lapkák: Bármely adott memóriaméretre különböző szerevezésű lapkák vannak. A 4 Mbites lapkáknak: 512 KB x 8 és 4096 KB x 1-es szerezéseit mutatom be. Az elsőnél 19 címvonal szükséges, hogy megcímezze a 2ˆ19 bájt bármelyikét, és nyolc adatvonal szükséges, hogy betöltse. Vagy letárolja a kiválasztott bájtot. Mivel a számítógép általában több memórialapkával rendelkezik, kell egy jel, amely kiválasztja az aktuálisan szükséges lapkát, ezzel kommunikál, az összes többivel pedig nem. A CS jel szolgál erre a célra, ezt kell beállítani a lapka érvényesítéséhez. Szintén kell egy mód arra, hogy megkülönböztessük az írás az olvasástól. A WE jel arra szolgál, hogy megkülönböztessük az adtok írását az adatok olvasásától. Végül az OE jelet akkor használjuk, amikor a kimeneti jeleket vezéreljük. A másik lapka belül egy 2048 x 2048-as 1 bites cellákból álló mátrix. Ahhoz, hogy megcímezzük ezt a lapkát, először egy sort jelölünk ki a cím lábakon 11 bitek beállításával. Ezután a RAS, sorcím kapuzójelet állítjuk be. Majd az oszlopszámot állítjuk be a cím lábakon és a CAS, oszlopcím kapuzójelet állítjuk be. A lapka válaszol egy adatbit befogadására, vagy kiadására. 11
24.RAM és ROM RAM - Random Acces Memories (véletlen hozzáférésű memória); az elnevezésből nem egyértelmű (így az helytelen is),de nem csak ez a típusú (hanem az összes) memória véletlenszerűen érhető el. A RAM-oknak két változatát különböztetjük meg; statikus és dinamikus. A statikus RAM-ok (SRAM) felépítésüket tekintve a D-flipflopokhoz hasonlóak.Jellegzetességük, hogy tartalmuk addig marad meg, amíg amíg az áramellátás működik. A statikus RAM - ok nagyon gyorsak (elérési idejük tipikusan néhány ns). Ezen tulajdonságuk miatt igen népszerűek második szintü cache-ek (gyorsítótárak) építésére. A dinamikus RAM -ok (DRAM) nem használnak flipflopot. ADRAM a cellák egy tömbje;minden cella egy tranzisztort és egy kisebb kondenzátort tartalmaz.A kondenzátor - attól függően,hogy az 0-t, vagy 1-est tárol - kisül.Az elektromos töltés szivárgásra hajlamos, így minden bitet néhány ezred másodpercenként frissíteni kell.Ezen külső logikai felügyelet miatt a DRAM -ok bonyolultabbak, viszont nagy a tárolókapacitásuk.Az egyetlen tranzisztor és kondenzátor miatt nagyon nagy sűrűséget lehet a DRAM - okon elérni, így a főmemóriák jórészt ilyen típusuak.A DRAM -ok elérési ideje néhány tíz ns -jóval lassabb, mint az SRAMoké. Főbb DRAM típusok: FPM DRAM - belseje egy bitmátrix; a hardverben megjelenik egy sorcím és a következő lépésben az oszlopcím (RAS,CAS). EDO DRAM - megengedi egy újabb memóriahivatkozás megkezdését, mielőtt egy másik megkezdődne (több szó/másodperc) Mindkét fenti memóriatípus aszinkron működésű (a cím - és adatvonalat nem egyetlen órajel vezérli). SDRAM - a statikus és dinamikus RAM -ok keveréke, egyetlen szinkron órajel vezérli ROM -Read-Only Memories; nem változtatható meg (így nem is törölhető). A tárolt adatok betöltése a gyártás alatt történik. Olcsó, de rugalmatlan. PROM - Programmable ROM; az adatmező egyszer programozható. Legtöbbjük biztosítékokból álló tömböt tartalmaz; ezeket úgy égetjük el, hogy a megfelelő sorokat ill. oszlopokat kiválsztjuk, majd nagy feszültséget kapcsolunk a lapka megfelelő lábaira. EPROM - Erasable PROM; törölhetők a mezők.Erős ultraibolya fénnyel 15 percig megvilágítva minden bit 1-re áll. EEPROM - impulzusokkal törölhetők a mezők.Az SDRAM -oknál 10x lassabbak, 100x kisebbek és sokkal drágábbak. flash memory - blokktörlés- ill. újraírás.Elérési ideje 100 ns.10000 törlés után elkopnak. 25. CPU lapkák A modern CPU lapkák egyetlen lapkán helyezkednek el. Minden lapkának van egy lábkészlete;ezen keresztül kommunikál a "külvilággal". Egyes lábak kimeneti jeleket kap a CPU-tól, mások jeleket fognak a külvilágból (van amelyik mindkét funkciót ellátja).A CPU lábakat 3 csoprtra oszthatjuk: cím-,adat- és vezérléslábak.Ezek kapcsolatban vannak a memória- és a B/K lapkák hasonló lábaival a síneken (párhuzamos huzalok) keresztül. Az utasítás betöltéséhez a CPU beállítja az adott utasítás memóriacímét a címlábakon, majd beállít egy vagy több vezérlővonalat, hogy informálja a memóriát olvasási szándékáról. A memória válszol;a kért szót a CPU adatlábaira helyezi és beállít egy jelet,amely jelzi a készenlétet.Amikor a CPU látja ezt a jelet, elfogadja a szót és végrehajtja az utasítást. A CPU teljesítményét két kulcs paraméter határozza meg;a címlábak száma ill. az adatlábak száma. Egy lapka m címlábbal 2^m memóri helyet tud megcímezni. Az m tipikus értékei 16,20,32,64. Hasonlóan egy lapka n adatlábbal n bites szavakat tud írni és olvasni a művelet során. (Tehát egy 8 adatlábbal rendelkező CPU 4 művelettel olvas 32 bites szavakat, míg egy 32 lábas CPU egyetlen művelettel testi ugyanezt) A cím - és adatlábakon kívűl a CPU -nak van néhány vezérlőlába is; ezek vezérlik az adatok időzítését és folyamát a CPU -ból (-ba), és még néhány segédfunkciót is ellátnak. További lábak szolgálnak az áramellátásra(+3,3 volt vagy +5 volt). A földláb és az órajel kiosztása lapkánként változó. A vezérlőlábak főbb kategóriák szerinti csoprtosítása:
12
1. Sínvezérlés - főleg a CPU -ból a síre történő kimenet (+bemenet a memória - és B/K lapkák számára);jelzi, hogy a CPU milyen feledatot akar ellátni (pl. írás,olvasás a memóriában) 2. Megszakítások - B/K -ból CPU bemenet; a CPU kiadja a feladatot a B/K eszköznek, majd más feladatot lát el. Amikor a B/K eszköz végzett, beállít egy jelet valamelyik megszakítás-lábon, az megszakítja a CPU-t és kiszolgálja a B/K berendezést 3. Sínhozzáférés - irányítjék a forgalmat a sínen az ütközések elkerülése érdekében 4. Segédprocesszor jelei - kommunikáció biztosítása a coprocessor és a CPU között 5. Állapotinformáció 6. Segédinformáció 26. Sínek működése, időzítése. A leggyakoribb sinfajták A sín egy közös elektronikai pálya a különböző eszközök között. Léteznek a CPU - n belül (adat I/O az ALU-ból), ill. a CPU-n kívül (összeköttetés a CPU-memória-B/K egységek között). Egyes sínekhez csatlakoztatott eszközök aktívak (master -kezdeményezni tudnak síntranzakciót),mások passzívak (slave – várják a kéréseket). Az egyes eszközök adott esetben viselkedhetnek masterként, más esetben pedig szolgként.A memória semmilyen körülmények között nem lehet master. A berendezések által kibocsátott bináris jelek gyakran nem elég erősek, hogy elegendő áramot adjanak a sínnek. Ezért a legtöbb sínmester összekapcsolódik egy bus driver lapkával, mely tul. képp egy digitális erődítő.Hasonlóan a legtöbb szolga egy bus receiveren keresztül kapcsolódik a sínre.(Ezek a bus interface lapkák gyakran 3 állapotúak, hogy amikor szükségtelenek, lekapcsolódhassanak vagy eltérő módon kapcsolódjanak rá - ez utóbbit nyitott gyűjtőnek hívjuk). A síneknek is vannak cím-,adat- és vezérlőlábai (egy a memóriaolvasásra, egy másik a memóriaírásra,egy harmadik a B/K olvasásra, egy újabb a B/K írásra,stb).Az ilyen típusu sín és a CPU között dekódoló lapka felelteti meg a 2 oldalt (a 3 bites kódolt jelet különböző jelekre választja szét, melyek vezérlik a sín vonalát). Időzítés szerint a sínek szinkron ill. aszinkron sínek lehetnek. Szinkron sínek: A szinkron sín egy vezetékére kristályoszcillátor van kapcsolva.Ezen a vezetéken át egy 5-100 Mhz frekvenciájú négyszög hullámból álló jel halad (sín ciklusok). A szinkron sín időzétési sémája 40 Mhz -es frekvenciát véve a következő: T1 periódus kezdetét az órajel felfutó éle definiálja.T1 periódus közben a CPU felteszi a kívánt memóriaszó címét a címvezetékre. Amikor a címvezetékek éppen felveszik az új értéket beállítják a MREQ (jelzi, hogy a memória, nem pedig a B/K eszköz elérése van folyamatban) és RD (olvasás esetén magas, írásnál negált) jeleket. A memória számára 40 ns szükséges azután, hogy a cím stabil, ezért nem tudja T2 alatt kiszolgálni a kívánt adatot.Ezért a memória T2 kezdetekor a WAIT vezetéken jelet ad a CPU -nak,hogy az ne várjon rá. Ez további sín ciklusokat (várakozó állapotokat) szúr be, amíg a memória be nem fejezi a műveletet és negálja a WAIT jelet. T3 első fele alatt a memória feltölti az adatokat az adatvezetékre.T3 lefutó éle hatására a CPU leolvassa az adatvonalakat és az értéket egy belső regiszterben tárolja. Miután a CPU beolvasta az adatot, negálja a MREQ és RD jeleket.Az órajel következő felfutú élének hatására újabb memória ciklus kezdődhet. Aszinkron sínek: Nincs főorajel generátor.A ciklusok igény szerint bármilyen hosszúak lehetnek és nem kell, hogy minden lehetséges eszközpár között azonos legyen. Miután a sínmester beállította a az MREQ és RD jeleket (+ még amire szüksége van), beállít egy speciális jelet: MSYN (mesterszinkronizáció). Amikor a slave ezt meglátja, elvégzi a munkát,amilyen gyorsan csak tudja. Amikor elkészül beállítja a SSYN (szolgaszinkronizáció) jelet. Amikor ezt a master észleli,megtudja, hogy az adatok rendelkezésre állnak,rögzíti azokat, negálja a címvezetéket az MREQ,RD és a MSYN jelekkel együtt.A slave mikor ezt meglátja, tudja, hogy a ciklus véget ért, ő is negálja a SSYN jelet. Leggyakotibb sínfajták: ISA (Industrial Standard Architecture); 8,33 Mhz-es frekvencia (egy ciklusban 2 bájtot tud átvinni), EISA (Extended ISA);32 bit (egy ciklusban 4 bájt átvitele), PCI (Peripheral Component Interconnect);33 ill 66 Mhz -es frekvencia (528 MB/s) Általános Soros sín; USB (Univesal Serial Bus;(1,5 MB/s) 13
27. MIC adatút Az adatút a CPU azon része, amelyik tartalmazza az ALU-t, a bemeneteivel és kimeneteivel együtt. Az MIC adatút-ja :226.o 4.1.ábra Sok 32 bites regiszterből áll;PC,SP,MDR,stb.A regiszterek nagy része a tartalmát egy (B) sínre tudja irányítani.Az ALU kimenete a léptetőbe,majd a másik (C) sínre kerül.Az ALU tevékenységét 6 vezérlővonal határozza meg;F1,F0 (ezek határozzák meg az ALU műveletet),ENA,ENB(egyedileg engedélyezi a bemeneteket),INVA(invertálja a baloldali bemenetet) és INC (a legalacsonyabb helyiértékű biten kierőszakol egy átvitelt,hozzáadva 1-et az eredményhez).Az ALU-nak 2 bemenetre van szüksége;a bal (A) ill. a jobb oldali (B) bemenetre.A bal oldali bemenet a H-hoz tartozó regiszterhez kapcsolódik,a jobboldali bemenet pedig a B sínhez,amelyik képes betölteni az MDR-OPC források bármelyikét.Kezdetben H egy olyan ALU tevékenység válásztásával tölthető fel, amelyik a B sínről csupán átenegedi az ALU kimenetére.Lehetséges ugyanazt a regisztert írni és olvasni ugyanazon a cikluson belül(az olvasás és az írás egy cikluson belül, különböző időpontban hajtódik végre). Az adatút időzítése: Minden órajel ciklus kezdetekor rövid impulzus kezdődik. Az impulzus leeső élén beállnak azok a bitek, amelyek az összes kaput irányítani fogják(ez §w idő alatt bekövetkezik).Ez után, az a regiszter amelyikre a B sínnek szüksége van, kiválsztódik és rákapcsolódik a (B) sínre (§x idő telik el, amíg az érték stabil lesz).Ekkor az ALU és a léptető elkezdi végrehajtani a műveletet az érvényes adaton. §y múlva az ALU és a léptető kimenetei stabilak lesznek, további §z után az eredmények a C sínen kersztül a regiszterekhez érnek, ahova a következő impulzus emelkedő élénél betöltődhetnek. Ugyanekkor a regiszter és a B sín kapcsolata megszakad, felkészülve a következő ciklusra. Részciklusokra bontva tehát: 1. A vezérlő jelek beállnak (§w) 2. A regiszterek a B sínre töltődnek (§x) 3. Az ALU és léptető működik (§y) 4. Az eredmények visszakerülnek (C sínen át) a regiszterekhez (§z) A gép (MIC) egy 32 bites szócímzésű és egy 8 bites bájtcímzésű memóriaporton keresztül tud a memóriával kommulnikálni. A 32 bites portot két regiszter a MAR(memóriacím-regiszter) és a MDR(memóriaadat-regiszter) vezérli. A regiszterek mindegyikét egy vagy két vezérlőjel irányítja.A MAR nem kapcsolódik a sínre, így nincs engedélyező jele, ami engedélyezmé a B sínre kapcsolódást.Az MBR nem tölthető le a C sínről,tehát nincs írást engedélyező vezérlő jele sem.Egy memóriaolvasás (vagy -írás) kezdeményezéséhez a megfelelő memóriaregisztereket fel kell tölteni,majd egy olvasó vagy író jelet kell bocsátani a memória felé. A MAR szó címeket tartalmaz (a 0,1,2,stb. értékek egymást követő bájtokra hivatkoznak(a PC -be 2-t téve,elindítva a memóriaolvasást, ki fogjuk olvasni a memória 2. bájtját és az MBR alsó 8 bitjére tesszük;2-t téve a MAR -ba,elindítva a memóriaolvasást,kiolvassuk a memória 8-11. bájtját [a 2. szót] és az MDR-be tesszük. Amikor a MAR a címsínre kerül, a 32 bitje nem képződik le a 32 cmvonalra 0-31-ig, hanem a MAR 0. bitje a címsín 2. vonalához kötődik,a MAR 1.bitje a címsín 3. vonalához kötődik,stb (A MAR legfelső két bitje kimarad, mivel ezek csak 2^32 feletti szócímzésekhez szükségesek).Ezt a leképezést használva, amikor a MAR1, a sínre kerülő cím 4;amikor a MAR2, a sínre kerülő cím 8 és így tovább.Az MBR két mód közül az egyikkel kapuzható (vagyis másolható) a B sínre:előjeltelenül vagy előjelesen.Amikor előjeltelen értékre van szükség, akkor a B sínre kerülő 32 bites szó tartalmazza az MBR értékét az alsó 8 biten és nullákat a magasabb 24 biten.A másik lehetőség, a 8 bites MBR 32 bites szóvá konvertálására,hogy egy -128 és 127 közötti előjeles egésznek tekintjük és ezt az értéket felhasználva 32 bites szót generálunk, melynek ugyanez a numerikus értéke.
14
28. MIC vezérlőtár A legnagyobb és legfontosabb elem a MIC vezélőrészében a vezérlőtár,mely egy komplett mikroprogramot tartalmazó memória (bár néha logokai kapuk egy halmazaként valósítják meg. Működését tekintve egyetlen memória, amelyik ISA utasítások helyett mikroutasításokat foglal magában.A példagépnél 512 szót tartalmaz, minden szó egy 36 bites mikroutasításból áll.Mivel a vezérlőtár működését tekintve (csak olvasható) memória, így szüksége van saját memóriacímregiszterre é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 (Micro Program Counter), a memóriaadat -regisztert MIR-nek (MicroINstruction Register) nevezzük - szerepe,hogy tartalmazza az érvényes mikroutasítást, melynek bitjei meghajtják az adatutat működtető vezérlő jeleket.Az ADDr és J(Jam) csoportok vezérlik a következő mikroutasítás kiválasztását.Az ALU csoport azt a 8 bitet tartalmazza,amelyek kiválasztják az ALU tevékenységét és irányítják a léptetőt.A C bitek betöltetik az egyedi regiszterekel az ALU kimenetét a C sínről.Az M bitek vezérlik a memória műveleteet. Az utolsó 4 bit irányítja a dekódert, amelyik meghatározza,hogy mi kerüljön a B sínre. Minden óra ciklus kezdetén (az óra leeső éle) a MIR feltöltődik az MPC által megmutatott vezérlőtárbeli szóval (ez az első részciklus alatt megtörténik).Ahogy a mikroutasítás felépül a MIR-ben,különböző jelek terjednek ki az adatútra.Egy regiszter kitevődik a B sínre,az ALU megtudja,melyik a végrehajtandó művelet és sok tevékenység zajlik arrafelé (ez a második részciklus). A második részciklus végére az ALU bemenetei stabilak lesznek. Egy újabb részciklussal később az ALU, az N és Z kimenete stabil lesz, ekkor N és Z értékek eltárolódnak egy pár 1 bites flipflopban. Ezek a bitek, hasonlóan az összes regiszterhez, melyek a C sínről és a memóriából töltődnek fel, az óra emelkedő élére tárolodnak, közel az adatút ciklus végéhez. Az ALU kimenete azonnal a léptetőbe töltődik (nem tárolódik).Az ALU és a léptető tevékenysége a 3. részciklusra esik. Egy további időintervallum után a léptető kimenete a C sínen keresztül eléri a regisztereket. Ekkor a regiszterek feltölthetők a ciklus vége közelében. A 4. részciklus a regiszterek és az N,Z flipflopok betöltéséből áll. Ez nem sokkal a ciklus emelkedő éle után befejeződik(ekkor már minden eredmény el van mentve és az előző memóriaművelet eredményei rendelkezésre állnak, és MPC fel van töltve). Az adatút meghajtásával párhuzamosan a mikroprogramnak meg kell határoznia, hogy melyik lesz a következő végrehajtandó mikroutasítás,mivel nem abban a sorrendben futnak, ahogy a vezérlőtárban előfordulnak.A köv. mikroutasítás címének kiszámítása azután kezdődik, hogy a MIR feltöltődik és stabilizálódik.Először a 9 bites NEXT_ADRESS mező az MPC-be másolódik.Amíg a másolás lezajlik a JAM mező vizsgálat alá kerül.Ha értéke 000,nem kell semmit sem csinálni,amikor a NEXT_ADRESS másolása befejeződik,az MPC a következő mikroutasításra mutat. Ha JAM egy vagy több bitje 1,akkor több tevékenység szükséges.Ha JAMN be van állítva,akkor az 1 bites N flipflop OR kapcsolattal kerül az MPC legmagasabb bitjére.Hasonlóan,ha JAMZ be van állítva,akkor az 1 bites Z flipflop kerül OR kapcsolattal oda.Ha mindkettő be van állítva,akkor mindkettő OR kapcsolattal kerül ugyanoda. Összegezve: Az 1. részciklus alatt a MIR feltöltődik az PC-ben jelenleg lévő círől.A 2. részciklus alatt a jelek szétterjednek a MIR-ből és a B sín feltöltődik a kiválasztott regiszterből.A 3. részciklus alatt az ALU és a léptető működik és stabil eredményt állít elő.A 4. részciklus alatt a C sín,a memóriasínek,és az ALU értékei stabillá válnak.Az óra emelkedő élére a regiszterek a C sínről feltöltődnek,az N,Z flipflopok betöltődnek és MBR és MDR megkapják az előző adatút ciklus végén indított memória műveletből származó eredményüket (ha volt ilyen).Így MPC megkapja értékét valamikor az intervallum közepén,amikor az óra magas,de már azután,hogy MBR/MDR készen van.Ahogy az óra leesik,az MBC megcímezheti a vezérlőtárat,és új ciklus kezdődhet. 29. A MIC utasításainak felépítése.
15
30. A PII utasításkészlete A PII utasításkészlete keveréke a 32 bites utsításoknak és olyan utasításoknak,amelyek a korábbi 8088-as életéből származnak. Sok PII uatsításnak 2 operandusa van (ez lehet memória vagy regiszer).Ilyan pl. az ADD utasítás,mely a forrást hozzáadja a céloperandushoz,vagy az INC utasítás,amely növeli eggyel az operandust.Néhány utasításnak több változata is van (pl. léptető utasításoknak balra ill. jobbra léptető,egy előjeles és egy előjeltelen változata.A legtöbb utasításnak különböző lehet a kódolása az operandus természetétől függően.Az SRC mező információforrás (ez nem változik), a DTS mező céloperandus, amelyet az utasítás módosít.Sok utasításnak három változata van; 8,16 és 32 bites operandusszal.Ezeket különböző műveleti kódok különböztetik meg és\vagy egy bit az utasításban. Az utasítások több csoprtra oszthatók: 1. adatmozgató utasítások;ezek regiszterek,memória és verem közt mozgatják az adatokat. 2. Előjeles és előjeltelen aritmetikai utasítások; szorzás és osztás esetén 64 bites szorzatot, illetve az osztandót az EAX és EDX regiszterpár tartalmazza. 3. BCD (binárisan kódolt decimális aritmetika); minden bájt 4 bites falatra van osztva.Minden falat egy decimális számjegyet tartalmaz (0-9).Az 1010-1111 bitkombinációk nem használatosak. Így egy 16 bites egész 0-tól 9999-ig terjedő számokat tartalmazhat. 4. logikai és léptető/forgató utasítások; egy szó vagy bájt bitjeit manipulálják. 5. teszteléssel és elágazással foglalkozó utasítások; a tesztelés és összehasonlítás eredménye a EFLAGS regiszter bitjeiben tárolódik.A Jxx jelzésű utasítások feltételes elágazást valósítanak meg az előző összehasonlítás (EFLAGS bitjei) alapján. 6. Karakterlánc utasítások; betöltés, tárolás,másolás,keresés karakterláncokon.Ezen utasítások prefix bájtja a REP, ami az utasítás ismétlését eredményezi megadott feltétel teljsüléséig, mint az ECX, amely csökkentődik eggyel mindaddig, amíg 0 nem lesz.Ezzel a módszerrel akármekkora adatblokk átmozgatható, összehasonlítható,stb. 7.Egyéb utasítások; számos prefix lehetőség (mint REP) tartozik ebbe a csoportba.Minden prefix egy speciális bájt, amely a legtöbb utasítás előtt szerepelhet.A REP prefix hatása az, hogy az utasítás mindaddig ismétlődik,amíg az ECX regiszter tartalma 0 nem lesz.A REPZ és a REPNZ a feltételkód Z bitjének 1-es ill. 0 érték bekövetkezésésig ismétli az utasítást.A LOCK lefoglalja a sínt az utasítás teljes végrehajtásáig,ami multiprocesszor esetén lehetővé teszi a szinkronizálást.Van olyan prefix,amely az utasítást 16 vagy 32 bites módba kényszeríti, ami nem csak azt jelenti, hogy korlátozza az operandus hosszát,de a címzési módot is teljesen átdefiniálja.Végül van olyan prefix, ami megmondja, hogy melyik szegmenst (a 8088 architektúráét vagy nem) használjuk. 31. UltraSPARC utasításkészletének fő jellemzői. Az UltraSPACRC utasításkészletét több csoportba sorolhatjuk: A LOAD és STORE utasítások jelentése nyilvánvaló, 1, 2, 4 és 8 bájtos változatuk létezik. Ha 64 bitnél kisebb méretu a betöltendo, akkor vagy elojelesen, vagy elojel nélkül (0-val) kiegészítodik 64-re. Mindkét változatra van utasítás. A következo csoport az aritmetikai utasításokat tartalmazza. A nevükben a CC karaktereket tartalmazó utasítások beállítják az NZVC feltételkód bitjeit, a többi nem állítja be a feltételkódot. Ha az eredeti utasítássorrend: A B C és A beállítja a feltételkódot, valamint B teszteli, akkor a fordító nem illeszti be C-t A és B közé, ha C is beállítja a feltételkódot. Éppen ezért sok utasításnak két változata van. A lépteto csoport egy balra és két jobbra lépteto utasítást tartalmaz, mindegyiknek van 32 és 64 bites változata. SLL esetén a teljes 64 bit részt vesz a léptetésben, mert ez még kompatíbilis a korábbi szoftverrel. A logikai utasítások csoportja hasonló az aritmetikához. Van AND, OR, XOR, ANDN, ORN és XNORN utasítás. A következo csoport tartalmazza a vezérlésátadó utasításokat. A BPcc utasítások olyan csoportját reprezentálja, amelyek különbözo feltételek alapján történo ugrást végeznek, és az utasításban specifikálják, hogy a fordító akarja-e az ugrást, vagy sem. A SAVE és a RESTORE a regiszterablakon és a vermen manipulál. Mindketto csapdát eredményez, ha a következo (megelozo) ablak nem létezik. Az utasítások utolsó csoportja segédutasításokat tartalmaz. A készlet meglepoen kicsi, az UltraSPARC II valóban redukált utasításkészletu gép.
16
32. JVM utasításkészletének fo jellemzoi. Teljes egészében tartalmazza a JVM226 utasítását, valamint 115 olyan extra utasítást, melyek a C/C++ nyelvek, és az operációs rendszer megvalósításához kellenek. A legtöbb JVM-utasítás a verembe rak adatokat, a már veremben lévo adatokon muveletet végez, és a verembol kivesz adatokat, legtöbbjüket a picoJava hardver közvetlenül hajtja végre, de néhányat a mikroprogram valósít meg, továbbá néhányat csapda útján szoftver valósít meg. A typeLOAD IND8 nem egy utasítás, hanem egy sablon utasítások generálására. A type lehet az I, L, F és D betu, amelyek rendre a 32 bites egész, 64 bites egész, 32 bites lebegopontos és 64 bites lebegopontos típusokat jelöli. Tehát négy utasításuk van: ILOAD, LLOAD, FLOAD és DLOAD, mindegyik a 8 bites IND8 indexet használja a lokális változók elérésére, és azt a verembe tölti a megfelelo hosszban és típussal. E négy betölto utasítás mellett még további négy következi a typeALOAD séma szerint, amelyek tömbelemet töltenek a verembe. A csoport utolsó négy utasítása szintén tömbökkel operál, de más típusokkal. Ezeknek bájt, rövid szó, karakter és mutató operandusuk van. Összességében 16 betölto utasítás van ebben a csoportban. A typeSTORE utasítások hasonlóan muködnek, mint a typeLOAD utasítások, csak fordítva. A verembetölto utasítások értékeket tesznek a verembe. Az aritmetikai utasítások teljesen szabályosak, hat utasítás van mind a négy adattípus számára. A három logikai és lépteto utasítás csak egészeken és hosszú egészeken értelmezett. Bármely típus átkonvertálható bármelyi másikra, tehát 12 konvertáló típus van. A verem kezelo utasítások csoportjában van duplikáló utasítás, amely a verem tetején lévo egy vagy két adatot másolja és valahova a verembe teszi. Más utasítások kivesznek a verembol vagy megcserélik a verem tetején lévo elemet. Az összehasonlító utasítások csoportjában minden elem kivesz a verembol egy vagy két elemet és azokat vizsgálja. Van egy csoport, amely utasításai eljáráshívást és visszatérési érték megadását végzik. A következo csoport négy utasítást tartalmaz egy- és többdimenziós tömbök létre hozására, lekezelésére. A JVM a tömböket a halomban tárolja, és szemétgyujto módszerrel törli azokat, amelyekre már nincs szükség. Az utolsó csoportba a kimaradottak kerültek, mindegyik speciális célú és a Java valamely speciális tulajdonságával kapcsolatos. 33. Utasításformák. Mindegyiknél van opcode, ehhez az operanduszok megadása társul - különbözo hosszúak lehetnek, ezt címezésnek nevezzük. Egy új gép tervezésekor nagyon korai stádiumban dönteni kell az utasításformákról - nagyon függ a rendelkezésre álló technológiától. Például, ha gyors a memóriaelérés, akkor a verem jó megoldás, ha lassú, sok regiszter kell. Rövidebb utasítások kevesebb helyet foglalnak el, de nehezebb lehet átlapolni azokat. Rövidebb utasításokat gyorsabban lehet betölteni is. Az opcode hossza meghatározza a különbözo utasítások számát is. Fontos tényezo a cím hossza és a memóriaszervezés módszere is ugyanazon memória lehet 32 bit címes, byte elérésu, vagy 30 bit címes, szó elérésu. n + k bites utasításformánál 2n memóriát címezhetünk, és 2k különbözo utasítás lehet. 34. Kiterjeszkedo utasítások értelmezése.
17
35. Milyen címzési módokat ismer? Címzési módok (módszerek). Kiindulási helyzet: három cím: két operandusz + eredmény helye. Regiszterek használata rövidíti a címeket, de hosszítja a programot. Címek megadása: Közvetlen címzés (immediate addressing): konstans megadása a cím helyén. Ez autómatikusan betöltodi az utasítással. Direkt címzés (direct addressing): a teljes memóriacím megadásával történo címzés. Általában nem változtatható, mindig ugyanaz a cím érheto el. Regiszter címzés (register addressing): mint a direkt címzés, csak nem memóriacím, hanem regisztercím megadásával. Regiszter indirekt címzés (register indirect addresing): címként valamelyik regiszter címét adjuk meg az utasításban, és a megadott regiszter tartalmazza azt a memóriacímet, amivel az utasítást végre kell hajtani (mutató - pointer). Elonyei: rövidebb a cím és változtatható. Indexelt címzés (indexed addressing): báziscím (offset) + relatív cím formájában adjuk meg. A báziscím például a verem egy címe (például LV). Bázis-indexelt címzés (based-indexed addressing): a báziscím mellett még két regiszter címét adhatjuk meg: az egyikben egy konstanst adunk a báziscímhez, a másikban pedig az eltolást. Verem címzés (stack addressing). Nem kell operandusz! Segédfogalom: postfix jelölés, fordított lengyel jelölés: a kifejezéseket olyan formában adjuk meg, hogy a muveleti jel mindig a két operandusza után jön, a második késobb (infix: x + y, postfix: x y +). Elonyei: nem kell zárójel, precedenciaszabályok, könnyen lehet számítógépes programokban veremhez használni. Elágazó utasítások címzési módjai: a korábbiak jelentos része itt is muködik. Fontos: jó architektúrában a muveleti kódok és a címzési módszerek (majdnem) szabadon párosítható (ortogonalitás elve) Összefoglalás, hogy melyik gép mit használ: 373. oldal 5.28. ábra. 36. Fordított lengyel jelölés definíciója, kiszámítása. A matematikában régi hagyomány, hogy a muvelet jelét az operandusok közé írják, mint x+y, nem pedig azok után, mint xy+. Ha a muveleti jel az operandusok között van, infix jelölésrol beszélünk. Ha a muveleti jel az operandusok urán áll, akkor postfix, vagy fordított lengyel jelölés az elnevezés. A formula n jelbol áll, mindegyik vagy operandus, vagy muveleti jel. Kiértékelése: olvassuk a formulát balról jobbra, ha operanduszhoz érünk, akkor rakjuk be a verembe, ha az aktuális jel muveleti jel, akkor hajtsuk végre a megfelelo muveletet. Jó példa: 367. oldal 5.23. ábra. 37. Megszakításokkal kapcsolatos hardver és szoftver tevékenységek Megszakítások (interrupt) kezelése. Általában: nem a futó program által történo vezérlésátadás (például lemezrol adatbeolvasás - ennek befejezésekor megszakítás). Csapda és megszakítás különbözosége: szinkronizált, nem szinkronizált. Példa: egy sornyi karaktert kívánunk megjeleníteni a képernyon (terminálon). Elokészítés: egy program összegyujti a megjelenítendo karaktersorozatot egy pufferben, egy változóban megadja a karakterek számát, és egy mutatót definiál e puffer elejére. Megnézi, hogy a terminál tud-e adatot fogadni, és ha igen, elküldi az elso karaktert, majd a program folytatja számítási feladatát. A következok történnek ezután: - Hardver tevékenységek: a terminál eszközvezérloje beállítja a megszakításjelet a buszon; amikor a CPU fogadni tudja a megszakítást, visszajelzést küld; ezt észlelve a terminál a saját azonosítószámát elküldi a buszon - ez egy magszakítás-vektort azonosít; ezt a CPU átmenetileg tárolja; a CPU a verembe teszi az aktuális utasításszámlálót és a PSW-t; a CPU az azonosítónak megfelelo utasításszámlálót és PSW-t beállítja. - Szoftver tevékenységek: menti a regisztereket, kiválasztja az esetleg több terminálból a jelentkezot, I/O hibát ellenoriz, aktualizálja a mutatót és a számlálót, visszajelez a megszakításvezérlonek, hogy készen van, visszaállítja a regisztereket, visszatér a szubrutinhívásból. Sok eszköz esetében egymásba ágyazódhatnak a megszakítások
18