You are on page 1of 31

1.

Logikai függvények, JUMPER-ek, Plug-and-Play

Ismertesse a leggyakrabban használt kétváltozós logikai függvényeket!


Név Leírás
AND/NAND • Logikai "És" vagy logikai szorzás
• Kommutatív, inputjai felcserélhetők
• "Igaz" a kimenet, ha minden bemenet
"Igaz"
• Konjunkció
OR/NOR • Logikai "Vagy", vagy logikai összeadás
• Kommutatív, inputjai felcserélhetők
• "Igaz" kimenet, ha legalább egy bement
"Igaz"
• Diszjunkció
XOR/XNOR • Kizáró "vagy"
• Kommutatív, inputjai felcserélhetők
• "Igaz" kimenet, ha az inputjai
különböznek
• Antivalencia/Ekvivalencia

Mutassa meg, hogy hol használunk a gyakorlatban is ilyen "függvényeket"!

• OR: A buszok leszállásjelzője. Elég csak az egyik gombot megnyomni a jelzéshez, de ha


mindet megnyomjuk, az sem okoz gondot.
• AND: Biztonsági indítás a veszélyes gépeken. Két, egymástól messze lévő gombot kell
megnyomni, hogy még véletlenül se nyúlhasson bele a kezelő.
• XOR/XNOR: A lépcsőházi villanykapcsolók bekötése

Periféria címzési eljárásokban mi a szerepe a JUMPER-nek?

• A Jumper egy egyszerű hármas láb mely akkor kapott szerepet, ha egyszerre több
perifériát akartunk csatlakoztatni soros porton a számítógépre.
• A soros portos perifériák elérése a 3F8-3FF memóriacímzéssel történt. A 16 bites
memóriacímzésnél a perifériák címzése csak 10 biten történt, amiből az utolsó három belső
címzési feladatot látott el, így maga a periféria 7 biten, A3-A7 között volt csupa 1-es címmel
elérve.

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0


0 0 0 0 0 0 1 1 1 1 1 1 1 x x x
3 F 8-F
• Több eszköz bevezetésekor azonban címütközés lépett fel, így be kellett vezetni a 2F8-
2FF tartományt is (a többi része ugyanaz).
• Ezt a tartományt az A8 bit átírásával érték el.
• Az eredeti 3F8 tartomány lett a Com1, az új pedig a Com2

A15 A14 A1 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0


3
0 0 0 0 0 0 1 0 1 1 1 1 1 x x x
2 F 8-F

1
• A perifériákat a gyakorlatban manuálisan be lehetett állítani, hogy Com1, vagy Com2
elérésük legyen, amit a Jumper átállításával tudtunk megtenni.
• Az A8 vezetéket egy hármas lábra vezették. Az egyik összekötésen A8 jele volt, a
másikon annak a negáltja, így attól függően, hogy melyik lábat kötöttük be, a periféria
onnantól kezdve lett Com1 vagy Com2 címzésű.

Hogyan címződnek meg a perifériák Plug and Play rendszerben?

• A perifériáknak egy 64 bites egyedi azonosítója van.


• A nem PnP rendszerekben a Chip Select bitre egy AND kapu volt kötve, ezt felváltja egy
összehasonlító áramkör, melyből az eszközök automatikusan saját címet kapnak az
azonosítójuk alapján.
• Az eszközök címeinek eltárolásához a rendszernek előbb meg kell tudnia ezt a címet, ám az
egyenkénti végigkérdezgetés hosszú időt venne igénybe.
• Megoldás:
◦ A perifériák sorosan egy vezetékre kapcsolódnak nyitott kapcsolókkal. A vezeték
alapértelmezett jele 1, ami megváltozik, ha egy vagy több eszköz kapcsolója zár.
◦ A vezeték végén egy Master nevű eszköz van, ami figyeli a jel változását.
◦ A Master alaphelyzetbe állítja a perifériákat, majd küld egy jelet, hogy amelyiknek az
aktuális bitje 1, az kapcsolódjon a vezetékre. A vezeték visszaállítása után a 0 aktuális
bitű perifériák következnek.
◦ Lehetséges kimenetek:
▪ 1-1  Nincs periféria
▪ 0-1  Az aktuális bit értéke mindenkinek 1
▪ 1-0  Az aktuális bit értéke mindenkinek 0
▪ 0-0  Előfordult mindkét érték.
◦ Szelekció:
▪ A Master kiszórja az azonos aktuális bitű perifériákat, csak az egyiküket hagyja meg.
◦ Ezzel a módszerrel 64*3 lépés után (kérés, kérés, szelekció) tudni fogja egy periféria
címét, amit eltárol, és leválasztja a vezetékről.
◦ 64*3*perifériaszám után tudni fogja az összes periféria címét.

2
2. Kombinációs hálózat, hálózat jellemzőinek leírása, egyszerűsítések, regiszterek

Mit nevezünk kombinációs hálózatnak?

• A kombinációs hálózat kimenetelét kizárólag a bemenetek kombinációja határozza meg.


• A kimenet egyértelműen meghatározható a bemenetből.
• Kapuk: olyan döntéshozó áramkörök, amelyeknek a kimenetét egyértelműen meg lehet
határozni a bemenet ismeretében.
• Az adatok bevitelének sorrendje lényegtelen a végeredmény szempontjából.
• Pl.: multiplexer, adatszelektor.

Hogyan tudjuk leírni a számunkra szükséges hálózat jellemzőit?

Kombinációs hálózat tervezése:


1. Felírjuk a probléma igazságtábláját
2. Az igazságtábla alapján leírunk egy függvényt, ami a bemenetek megfelelő interpretációiban
a megfelelő eredményt adja.
3. Egyszerűsítjük a függvényt
4. Felrajzoljuk a kapcsolási vázlatot.

Milyen egyszerűsítéseket ismer?


• Kombinációs tábla
• Logikai függvények
• Karnaugh-Veitch tábla
◦ Felveszünk egy táblázatot, amikbe az alábbiak szerint írjuk be az értékeket.
▪ A táblázat akkor van jól kialakítva, ha két szomszédos értéke csak egy számjegyben
különbözik.
◦ Ha a jelölés a táblázat alatt/fölött van, akkor az oszlopai, ha a táblázat mellett van, akkor a
sorai lesznek egyes értékűek.
◦ A tábla egyaránt alkalmas egyszerűsítésre és a cél felvázolására.
◦ A táblázat értékei ABC sorrendben következnek: Az első érték az A, a második a B, stb.
◦ Beleírjuk a táblázatba, hogy milyen kombinációra szeretnénk egyest.
A
100 110 1 010 000

101 1 111 1 011 1 001 C


B
◦ Egyszerűsítésnél meg kell keresni a szomszédos, elfogadó értékpárokat.
◦ Ennél a párnál a közös az A és a B, a C,bár két értékkel is jelen van a párban, mindkettő
elfogadó. Tehát a C ebben az esetben nem számít!
◦ (A*B)
A
100 110 1 010 000

101 1 111 1 011 1 001 C


B

3
◦ Ugyanez a helyzet a 2. párral is, itt viszont B értéke nem számít!
◦ (A*C)
A
100 110 1 010 000

101 1 111 1 011 1 001 C


B
◦ Ugyanez, most a B értéke nem számít
A
100 110 1 010 000

101 1 111 1 011 1 001 C


B
◦ Az összes lehetséges pár vizsgálata után megkapjuk az eredményt:
▪ Y=(A*B)+(A*C)+(B*C)
• Algebrai egyszerűsítés
◦ A szavazógép egyenlete:
◦ Az összeadás a "vagy", a szorzás az "és"
◦ Y=(A*B*C)+(!A*B*C)+(A*!B*C)+(A*B*!C)
◦ Y=(A*B*C)+(!A*B*C)+(A*!B*C)+(A*B*!C)+(A*B*C)+(A*B*C)
◦ Kiemelések:
▪ (A+!A)*B*C → (A+!A) = 1 → B*C
▪ (B+!B)*A*C → (B+!B) = 1 → A*C
▪ (C+!C)*A*B → (C+!C) = 1 → A*B
◦ Y=(A*B)+(A*C)+(B*C)

Milyen jellemző regiszterek találhatók egy Neumann elvű processzor regiszterei között?
Ismertesse a végrehajtásban szerepüket!

MAR (Memory Address Register) A kiolvasandó címet küldi el a memóriának


MDR (Memory Data Register) A memóriából ide érkezik az adat, de NEM ITT TÁROLÓDIK!
PC (Program Counter) Következő végrehajtandó utasítás memóriacímét adja a MAR-nak
kiolvasásra, majd azonnal a következő parancscímre ugrik, így a következő kéréskor már azt fogja
adni (A memóriában az utasítások és az adatok keverten szerepelnek).
IR (Instruction Register)  Egy dedikált tároló a memóriából érkező utasításoknak.
DC vagy DP (Data Counter vagy Data Pointer)  Adatcímet ad a MAR-nak, régen a PC-hez
hasonlóan azonnal ugrott a következőre, ma már külön parancsra teszi ezt.
SP (Stack Pointer)  Létezik olyan utasítás, mely a programot egy külön utasítássorozatra
ugrasztja, majd ennek végeztével visszatér a főprogramba. Ezek a szeparált programrészek a
Rutinok (pl: faktoriális-számító Rutin). Egy rutin indulásakor a processzornak adatokat kell tárolnia
(A visszatérés helye, a program eddigi eredményei), ezeket kitelepíti a memóriába. A Stack Pointer
egy címhalmaz, ami ezen adatokra mutat rá, hogy a Rutin után újra be lehessen őket olvasni. A
Stack magyarul Verem vagy Halmaz, a felhalmozott adatokhoz fordított sorrendben tudunk
hozzáférni.
A (Accumlator)  Dedikált tárhely a memóriából érkező adatoknak. Kapcsolatban van az ALU-val,
az Accumlator értéke kerül változtatásra, felülírva a régi értéket.
FLAG  Az ALU és az A között van. Bitjei egyenként értelmezendőek és az A egyes
tulajdonságait adják meg
• Z-bit (Zero-bit): megadja, hogy az elvégzett A 0 vagy nem 0

4
• Cy-bit (Carry-bit): Az elvégzett A esetleges levágott bitje (8 bit esetén a 9. bit) 1 vagy 0
• P-bit (Parity-bit): Az elvégzett A ábrázolásához szükséges egyesek száma páros vagy páratlan
• S-bit (Sign-bit): Az elvégzett A legfelső bitjének másolata (előjeles szám esetén megadja az
előjelet)
• HC-bit (Half-Carry-bit): 8 bites összeadás esetén azt adja meg, hogy van-e átvitel az 1. négy
bitből a 2. négy bitbe
• O-bit (Overflow)  Az előjelesen végzett művelet eredménye nem fér el az adott bitszámon

• A processzor nem regiszter részei:


◦ ALU (Arithmetical Logical Unit) → Aritmetikai és logikai műveleteket hajt végre,
szorosan kapcsolódik a FLAG-hez és az A-hoz
◦ CU (Control Unit) → A vezérlő vezetékek kiindulópontja. A belső adatáramlásért
felelős.

5
3. Félvezetők, Cache felépítése

Miből és hogyan épülnek fel a félvezetők?

• A félvezetők legfőbb alapanyaga a Szilícium-dioxid, mely a homokból nyerhető ki.


• A Szilícium-dioxidból redukcióval eltávolítják az oxigénatomokat, így kapnak tiszta
szilíciumot.
• Ahhoz, hogy a szilíciumból félvezető lehessen, szabályos kristályszerkezetet kell
kialakítani, egykristály-állapotba kell hozni. Ezt különböző olvasztáson alapuló
módszerekkel valósítják meg.
• Az egykristály-állapotú szilícium önmagában egy szigetelő
◦ Egyes anyagok azért vezetik az áramot, mert vannak bennük az atommagjuktól könnyen
elszakadó elektronok, amik tudnak áramlani az anyagon belül.
◦ A szilíciumatom 4 külső elektront tartalmaz, amik a kristály rácsszerkezetében szorosan
kapcsolódnak egymáshoz és nem mozdulnak.
• A szilíciumot szennyezni kell. 1010 atomonként a kristályszerkezetbe egy másik anyag
atomját oltják.
◦ N-típusú (Donor) szennyezés: A szilíciumba egy 5 külső elektronnal rendelkező elemet
(Pl.: foszfor). Ekkor az anyag elektrontöbblettel fog rendelkezni, a rácsba be nem illő
ötödik foszforelektron könnyen elszakad és vándorol az anyagon belül.
◦ P-típusú (Acceptor) szennyezés: Ha egy 3 vegyértékű anyaggal szennyezünk, akkor a
szilícium elektronhiányos lesz. A rácsszerkezete ugyancsak megbomlik, de a szabad
elektronok mellett „lyukak” is keletkeznek benne, amik elektronokat tudnak fogadni
(rekombináció).
• Félvezetőt kapunk, ha P és egy N típusú szilíciumot egymás mellé rakunk. Ilyenkor a kapott
test vezetése az áram irányától fog függeni.

Milyen alapelemeket ismer?

• Dióda
◦ A fentebb említett módon egymás mellé helyezett P és N típusú szilícium (Vagy egy
egységes szilíciumdarab oldalait különböző módon szennyezik.)
◦ A határvonalon kialakul egy semleges zóna, ahol a donor elektronjai rekombinálódnak
az Acceptor elektronhiányaival („beleesnek a lyukakba”). A semleges zóna addig
növekszik, amíg az elektronoknak elég energiája van átugrani azt, hogy
rekombinálódhasson.
◦ A diódába áramot vezetünk
▪ Ha a P Acceptorra kötjük a negatív pólust, a vezeték elektronjai az anyag közepe felé
taszítják az anyag elektronjait, vagyis („magukhoz vonzzák a lyukakat”). A másik
oldalon az elektronhiány az anyag széléhez vonzza az elektronokat, de azok áramkör
híján nem tudnak az anyagból kilépni. Eredmény: A semleges zóna a belelökött
elektronok miatt megnőtt, az elektronok és a lyukak pedig az anyag szélén ülve
próbálnak kilépni abból.
• Az anyag szigetelő.
▪ Ha az N Donorra kötjük a negatív pólust, a taszítóerő miatt a donor elektronjai
átlökődnek a semleges zónán és megindul az áram folyása.
• Az anyag vezető.
◦ A feszültség és áram karakterisztikája nyitott állapotnál egy parabola, ami (szilícium
eletén) kb 0,6V feszültség körül éri el az 1A áramerősséget (Germánium félvezetőnél ez
kb 0,3V)

6
◦ A karakterisztika zárt állapotnál egy egyenes, ami több száv V feszültségig 0 A
áramerősséget ad, majd (kb 700V) a letörési feszültséget elérve megindul az áram
folyása. Ilyenkor a dióda pillanatok alatt tönkre megy.
◦ P(teljesítmény) = U(Feszültés)*I(Áramerősség)
▪ A dióda teljesítménye a hőleadás.
• Bipoláris tranzisztor
◦ 3 részből áll, P-N-P vagy N-P-N. A kettő működése ugyanaz, csak ellentétes
áramiránnyal.
◦ Manapság az NPN a gyakori.
◦ A részek neve: Collector, Bázis, Emitter
◦ Működése:
▪ Két áramkört kapcsolunk rá, Collector-Bázis és Emitter-Bázis kötéssel.
▪ Ha az Emitter-Bázis dióda kinyit (vagyis folyik áram a bázison), akkor az Emitter-
Collector vonalon is folyik áram.
▪ Jelentősége abban rejlik, A bázisáram 1mA-es változása 100mA-es Collectoráram-
változást idéz elő, tehát az Emitter-Bázis vonalon egy kis feszültség is elég ahhoz,
hogy a Collector-Bázis vonalon nagy feszültséget indukáljon.
▪ Hátránya, hogy melegszik, Mivel az Emitter-Bázis vonalon is folyik áram.
• Unipoláris tranzisztor
◦ MOSFET (Metal-Oxid Semiconductor Field-Effect Transistor)
◦ Elzáródásos MOSFET
▪ Egy félvezető blokkot (pl) P-típusúra szennyezünk és kialakítunk rajta két N típusú
szigetet, melyeket egy vékony N típusú csatorna köt össze, amit fém-oxiddal
szigeteltek.
▪ Ha a szigetekbe áramot vezetünk, azok az egységes szennyezés miatt vezetőként
viselkednek.
▪ Kötünk egy-egy elektródát a P blokkra és a fém-oxid szigetelésre.
• Bár az áram nem tud folyni a szigetelésen keresztül, az annak felületén
felgyülemlett elektronok eltaszítják a csatornában közlekedni akaró elektronokat,
elzárják a csatornák.
▪ Előnye, hogy a kapcsoló csak állapotváltásnál melegszik és igényel teljesítményt,
mivel a kapcsolóáramkörben nem folyik áram.
◦ Növekményes MOSFET(Ezt használják a gyakorlatban)
▪ Az alapja ugyanaz, mint a másiknak, de itt a sziketek nincsenek csatornával
összekötve. Az előzőhöz képest fordított kapcsolófeszültséggel működtetve az
elektronok a szigetelés alá vándorolnak, kialakítva ezzel a csatornát.
◦ Alkalmazásuk:
▪ NAND kapu → Két párhuzamosan kötött P csatornás MOSFET két N csatornás
MOSFET-el sorosan kötve
▪ NOR kapu → Két párhuzamosan kötött N csatornás MOSFET két P csatornás
MOSFET-el sorosan kötve

Hogyan illeszkedik a memória-hierarchiába a cache?


• A Memória-hierarchia szempontjai:
◦ Méret (Növekvő sörrend)
◦ Elérési idő, sebesség (Növekvő sorrend)
◦ Fajlagos ár (Csökkenő sorrend) (1 bájt egység ára)
• A memória-hierarchia
◦ 1. Regiszterek
▪ Néhány száz bájt

7
▪ Manapság nem ritka a 3,5 – 4 Ghz (x milliárd lépés másodpercenként)
▪ Elérési idő: ~0,2ns
▪ A legnagyobb fajlagos ár
◦ ½. Alaplapi gyorsítótár (Cache)
▪ A RAM egy részének másolata egy nála gyorsabb tárolóban. Ha a lemásolt rész kell
a CPU-nak, akkor a másolatot használja.
▪ Azért van rá szükség, hogy a lényegesen gyorsabb CPU-nak ne kelljen várnia a
RAM-ra.
▪ Manapság a CPU-kon belül is van egy Cache
◦ 3. Operatív tár (Ram)
▪ Néhány gigabájt
▪ Kb.: 2,1 Ghz
▪ Elérési idő: ~1ns
▪ Közepes fajlagos ár
◦ 2/3. Disc cache (Gyorsítótár)
▪ Köztes tároló, manapság a HDD-k hátuljára van építve, de szoftveresen a RAM egy
része is eképpen van használva.
▪ Ugyanúgy a sebességkülönbségeket hivatott tompítani azzal, hogy az adatok egy
részéről másolatot készít és ha a RAM-nak arra van szüksége, akkor a HDD helyett a
lényegesen gyorsabb gyorsítótárból nyeri ki az adatot.
◦ 4. Háttértár
▪ Terabájtos nagyságrend
▪ Kb.: 70Mhz
▪ Elérési idő: ~1ms
▪ A legkisebb fajlagos ár

Mi a felépítése és hogyan működik a cache?

• Működése (Hogyand dönti el, hogy melyik adatra lesz szüksége a felette álló egységnek
legközelebb?)
◦ Idő szerinti lokalitás: Ha egy adatot felhasznált a CPU, szinte biztos, hogy a
közeljövőben újra használni fogja
◦ Cím szerinti lokalitás: Ha egy adatot felhasznált a CPU, szinte biztos, hoy a körülötte
lévő adatokra is szüksége lesz.
• Felépítése (soronként)
◦ Adatblokk
▪ 2n bájt nagyságú egybefüggő memóriarész, amin a kimásolt adatok találhatóak
◦ Címtár
▪ Az egyes adatblokkot eredeti memóriacímét tárolja
▪ Mérete 32-n bit (n a cache egy sorban beolvasott adatainak első és utolsó címe
közötti eltérés)
◦ Valid-bit
▪ Érvényességi bit, azt jelzi, hogy egy adatról valóban található másolat az adott
memóriacímen, tehát hogy használatban van-e az adott sor. A gép bekapcsolásakor 0
értékű, majd az első adatfeltöltés után végig 1, az adatcserék kivételével, mert akkor
egy pillanatra visszaugrik 0-ra.
▪ Az adatfelszabadításkor a CPU lenullázza egy sor Valid-bitjét, így írhatóvá téve a
sort.
◦ Dirty-bit
▪ Azt jelzi, hogy az adott soron lévő adat lett-e írva a CPU által.

8
▪ Ha a CPU Write back paranccsal ír a Write through helyett, akkor csak a cache-ban
lévő másolatot írja át, ennek a parancsnak az elvégzését jelzi a Dirty-bit.
▪ Ha a bit 1, akkor az esetleges kiürítéskor az adatot előbb vissza kell írni a Címtárban
tárolt memóriacímre.
A Cache adatcseréje
• A Cache nem egy végtelen memória, ahhoz hogy folyamatosan elérhető legyen, egy idő után
a meglévő adatokat kell fölülírnia a rendszernek.
• Azt, hogy melyik adat fontos, a rendszer különböző módokon döntheti el.
◦ Last Recent Unit
▪ Mindig a legrégebben használt sor íródik felül.

9
4. Alapműveletek kettes számrendszerben, Cash elérése

Számábrázolás:

Méret(bájt) Előjeles Előjel nélküli


Értéktartomány Értéktartomány
1 -27 … 27-1 0 … 28-1
2 -215 … 215-1 0 … 216-1
4 -231 … 231-1 0 … 232-1
8 -263 … 263-1 0 … 264-1

Hogyan végezzük kettes számrendszerben az alapműveleteket?

•Az alapműveletek manuális elvégzése (ahogy ált. iskolában csináltuk) ugyanúgy működik,
mint tízes számrendszerben, egyedül a számrendszerek túlcsordulására kell figyelnünk.
• A továbbiakban a kettes számrendszerről lesz szó!
• Összeadás:
◦ 0+0 = 0
◦ 0+1 = 1
◦ 1+1 = 10
◦ 1+1+1 = 11
◦ Két x hosszúságú szám összeadásakor az eredmény maximum 2x hosszú lesz.
• Kivonás:
◦ Ugyanúgy összeadást végzünk, csak előtte a kivonandó kettes komplementerét vesszük!
• Szorzás:
◦ Úgyanúgy történik, mint tízes számrendszerben!
▪ 0*0=0
▪ 0*1=0
▪ 1*1=1
◦ Felírjuk egymás mellé a két összeszorzandó számot, majd a baloldali szám minden
számjegyét végigszorozzuk a jobboldali szám minden számjegyével, ezeket egymás alá
írjuk mindig eltolva egyel jobbra, majd a kapott számokat összeadjuk.
◦ Ha két előjeles számot szorzunk, meg kell nézni, hogy melyik negatív (az első bitje 1) és
annak vesszük a kettes komplemensét. Ha ez megtörtént, az eredmény előjelére
alkalmazzuk a matematikai szabályokat, vagyis különböző előjel negatívot eredményez.
234*120
240
360
480
28080

• Osztás:
◦ Szintén ugyanúgy történik, mint tízes számrendszerben!
◦ Az eredmény maximális hossza az osztandó hosszával egyenlő, a maradéké pedig az
osztó hosszával.
◦ A maradék mindig olyan előjelű, amilyen az osztandó, mert az osztás ismételt
kivonás.

10
Hogyan módosítja ezt az előjeles bináris számok alkalmazása?
• Az összeadást és kivonást, hiszen ott az előjelektől függ, hogy melyik műveletet végezzük
el!
• Szorzás
◦ Ha a szorzásban szerepel negatív szám, azt kettes komplementrré kell alakítani!
◦ Ha a szorzat az előjelek szerint negatív előjelű, akkor a kettes komplemens a valódi
eredmény

Ismertesse a cache memória elérési változatait!

• Full associative cache (FUC)


◦ Az új adatok bármelyik sorba kerülhetnek. A CPU a memóriacím keresésénél mindig az
egész címtárat vizsgálja (2m összehasonlító áramkör).  A cache méretével arányosan
csökken a sebesség. Bizonyos méretek fölött az összehasonlító kapuk száma már nem
megvalósítható számokat ölt.
◦ Címtár mérete = címbusz mérete-n, ahol n a cache egy sorban szereplő adatainak első és
utolsó címe közötti eltérés.
◦ Rugalmas, pontos
◦ Lassú, drága
• Direct mapping cache (DMC)
◦ Ennek megelőzésére a cache-sorok címeket kapnak és a cpu egy adatsorra megmondja,
hogy melyik címre másolódjon, a cím többi része pedig validálja az adat létezését. Így
egyetlen lekérdezéssel visszanyerhető a létező adat. Ettől gyorsabb, kisebb és olcsóbb
lesz a hardver.
◦ Címtár mérete = címbusz mérete-n-m, ahol m a cache sorainak száma.
◦ Olcsó, gyors.
◦ Néha felülírja önmagát.
• Set associative cache (SAC)
◦ A legjobb megoldás viszont ezek keresztezése volt. Blokkokra osztották a cache-
sorokat, 2k tagszámmal. A csoportok darabszáma 2m-k. k=2 esetén négyes csoportokra
osztottuk a sorokat, ekkor 28-2= 64 csoport alakult ki. A cpu már nem konkrét sorcímet,
hanem csoportcímet keres, így mindkét felső megoldás hátrányait kiiktathatjuk. Nem
kell sok összehasonlítást végeznünk és az egyes adatok nem lökik ki egymást
szükségtelenül (négyutas cache).
◦ A Címtár mérete: 32-n-m+k

Hogyan állapítható meg a felépítés ismeretében a tárolandó címbitek száma?

Kiidulási pontként lerögzítjük, hogy a cím hány biten tárolódik. Legyen sot 32 bit
• FUC-nál n-el csökkentjük a címbitek számát, ahol 2n az egy sorban szereplő adategységek
száma.
◦ 2n Bájtnyi soronkénti adathossznál a címbitek száma 32-n
• DMC-nél további m értékkel csökken a címhossz, ahol m a cache sorainak száma
◦ 2n Bájtnyi adatánl a címbitek száma 32-n-m
• SAC-nél a DMC számításához még hozzá kell adni k-t, ahol 2k = blokkok hossza
◦ 2n Bájtnyi adatánl a címbitek száma 32-n-m+k

Adjon konkrét példákat! (A címbitek méretére)

Leírás: 32 bites címbusz; 8 bájtos adattár; Soronkénti adathossz=23; 16 soros cache tehát 24 → m=4

11
FUC: 32 - 3 = 29 bit
DMC: 32 -3 -4 = 25 bit
SAC:
32 - 3 - 4 + 2 = 27 bit → 4 soros blokk esetén k = 2
32 - 3 - 4 + 3 = 28 bit → 8 soros blokk esetén k = 3

12
5. Logikai algebra, bináris számok, pipeline végrehajtás

Mi a logikai algebra?

• A logikai algebra a logikai értékek műveleteivel foglalkozik.


• Két lehetséges érték: Igaz és Hamis, ez jól ábrázolható a bináris számrendszer 0 és 1
értékével.
• Az igaz ellentéte a hamis, a hamis ellentéte az igaz.
• Az igaz érték ellentétének ellentéte igaz.
• Logikai alapműveletek:

A B Y Y Y Y Y Y Y Y Y Y
0 0 0 1 0 1 0 1 0 0 0 1
0 1 0 1 0 1 1 0 0 1 1 0
1 0 0 1 1 0 0 1 0 1 1 0
1 1 0 1 1 0 1 0 1 1 0 1
A !A B !B AandB(*) AorB(+) AxorB(®) AekB()

Logikai azonosságok:
• A and 0 = 0 A and !A = 0
• A or 0 = A A or !A = 1
• A and 1 = A A and/or A = A
• A or 1 = 1

Kommutativitás(az értékek felcserélhetők):


• A and/or B = B and/or A

Asszociativitás(A zárójelek felcserélhetők):


• A and/or (B and/or C) = (A and/or B) and/or C
• Akkor, ha mindenhol ugyanaz az operátor szerepel!

Disztributivitás:
• A and (B or C) = (A or B) and (A or C)
• A or (B and C) = (A and B) or (A and C)

de Morgan azonosság:
• !(A and B) = !A or !B
• !(A or B) = !A and !B

Hogyan rendelünk a logikai algebra értékeihez fizikai mennyiségeket?

• A legtakarékosabb számrendszer az e alapú számrendszer, ami kb 2,71, így a kettes és


hármas számrendszer között kellett választani. Bár hármas számrendszer közelebb áll az e
számhoz, elektronikailag azonban sokkal bonyolultabban kivitelezhető, három elfogadó és
két köztes mező kellene a működéséhez. Így közös megegyezés alapján lett az informatika
mai számrendszere a kettes (előtte a kezdetleges számítógépek tízes számrendszert is
használtak).
• A számítástechnikában az egyes logikai értékeket különböző feszültségtartományokkal
valósítják meg.
• Egy vezetékben az 1,5V alatti feszültség „Hamis” értéket, míg a 3,5V fölötti feszültség
„Igaz” értéket jelent.

13
• Azért van szükség az értékek közötti semleges feszültségsávra, hogy kiküszöböljék a
pontatlanságból adódó hibákat. A semleges értéktartományba eső jelekről biztosan meg lehet
állapítani, hogy hibásak, nem lehetséges az, hogy egy eszköz olyan gyenge „Igaz” jelet ad,
hogy az már lehet, hogy „Hamis”.
• A gyártók az eszközeiket nem pontosan 1,5 és 3,5 V leadására készítik. Távolságtartással
számolnak, a „Hamis” kicsit alacsonyabb, míg az „Igaz” kicsit magasabb, hogy egyértelmű
legyen a jelek jelentése.

Hasonlítsa össze egy hagyományos Neumann elvű végrehajtást egy pipeline szervezésű
végrehajtással.

A soros végrehajtás (CISC CPU-k)


• A Neumann-elv szerint a számítógép csak akkor kezd bele egy utasításba, ha az előzőt már
végrehajtotta, szalagszerűen dolgozza fel a programokat.
• Így működik a soros végrehajtás.
• Az utasításokat azonban szét lehet bontani alaplépésekké:
◦ Fetch → Utasítás beolvasása
◦ Data → A végrehajtáshoz szükséges adatok előkészítése
◦ Execution → Végrehajtás
◦ Write → Az eredmény rögzítése

F D E W F D E W

A Pipeline végrehajtás (RISC CPU-k)


• Nem párhuzamos végrehajtás, hiszen azt a Neumann-elv nem engedi.
• Azon alapul, hogy az egyes feladatmegoldási fázisokat a CPU-nak külön egységei végzik.
• A soros végrehajtásnál a CPU azon része, ami Pl.: a Fetch utasítást végzi, a feladata után
tétlenül várja, hogy a másik három utasításblokk végeztével újból rá kerüljön a sor. A
Pipeline végrehajtás ezt a várakozási időt szünteti meg, a CPU minden eleme folyamatosan
dolgozik.
• A Pipeline feltétele, hogy az egy utasításhoz tartozó bájtok száma és a végrehajtásuk ideje
mindig azonos kell legyen.
◦ Az ilyen CPU-kban eltűntek azok az utasítások, amiknek változó volt a hossza vagy a
vérgehajtási ideje.
◦ Megnőtt a regisztertár.
• Egy CPU-ba annyi Pipe építhető be, ahány részfeladatra oszthatóak szét az egyes feladatok,
tehát ahány alkatrész végzi a feladat egy-egy fázisát (manapság kb 17 Pipe-ot használnak).

F1 D1 E1 W1 F5 D5 E5 W5 F D
W F2 D2 E2 W2 F6 D6 E6 W6 F
E W F3 D3 E3 W3 F7 D7 E7 W7
D E W F4 D4 E4 W4 F8 D8 E8

Milyen előnyöket rejt az eltérő végrehajtás?


• Ezzel a technikával a processzor egységnyi idő alatt sokkal több utasítást tud végrehajtani,
jobban ki vannak használva az egységei.

14
Mik a hátrányok?
• Mivel az egymást követő utasítások sokszor egymásra épülnek, ezért előfordul, hogy az
egyik Pipe utasítása egy olyan adatot kér, ami még nem is létezik, mert egy másik Pipe még
nem hozta azt létre.
• A Pipeline-elv használata nem tette lehetővé a memóriahasználati és memóriareferenciás
utasításokat, helyette csa a LOAD és STORE parancsok működtek (memória írás és olvasás)
• A lokális változóknak a CPU-n belül külön regisztereket kellett létrehozni, nem lehetett őket
a Stack-ben tárolni, mint a CISC-nél.
• A fordítóprogram is sokkal bonyolultabb lett, gazdálkodnia kell a regisztertárral, figyelnie
kell az utasítások egymásutániságára, sorrendjük alkalmankénti felcserélésére a Data
Forwarding kivitelezésére és az Ugráselőrejelzésre is.
◦ 1Probléma:
▪ Add X2, X3 (Az X2-höz adjuk az X3-at, az eredmény az X2-be kerül)
▪ Add X4, X2  A pipeline technológia miatt egy olyan adatot kellene hozzáadnia,
ami még nem áll rendelkezésre (A fenti ábrán: A D2 eljárás igényli azt az adatot, ami
a W1-el kerül rögzítésre)

◦ 1.Megoldás: NOP (késleltetés)


▪ A két utasítás között végrehajtunk egy NOP utasítást, ekkor már rendelkezésre áll a
frissített R2 (A 2. pipe lesz a NOP, Így már a D3 igényli az értéket, ami már létezik)
◦ 2. Megoldás: Data Forwarding
▪ A D2 kérésekor az X2 adat már létezik csak még nem frissült. Ilyenkor a cpu-t data
forwardingra lehet kényszeríteni, az X2-t rögtön a belső adattárolóból kiszedni.
◦ 3. Megoldás: Utasítássorrend megváltoztatása
▪ Ha van a sorban független utasítás, ezek sorrendje megcserélhető:
▪ Pl.: van még egy Add X3, X1 utasítás. Ezt be lehet szúrni a kettő problémás
objektum közé, ezzel ugyanazt a hatást érjük el, mintha egy NOP-ot szúrtunk volna
be, időpocsékolás nélkül.

◦ 2. Probléma:
Add R2, R3
JC (Jump if Carry) Tucsor
Add R4, R2

Tucsor: Add R4+1

▪ (Adjuk össze R2 és R3 értékeket. Ha ezután a Carry bit nem üres, ugrunk a Tucsor
nevű programrészre, amivel hozzáadunk R4 értékhez 1-et. Ha nincs Carry, akkor R4
értékhez hozzáadjuk R2-t.)
▪ Elkezdődik a végrehajtás, a program bekéri R2 és R3 értékeket. Ekkor azonban
megakad a JC utasításon, mivel az előző utasításból még nem tudható, hogy van-e
Carry-bit, ezért nem tudja, melyik utasítást kéne betöltenie.
◦ Megoldás A CPU megjósolja az utasítás kimenetét:
▪ A CPU statisztikákat készít az egyes ugrásfajtákról és ez alapján dönt az
eredményről.
▪ Ha rosszul döntött, egyszerűen visszafordul és elindul a másik ágon, mikor az
eredmény kiderül.
▪ A döntéshozó algoritmus pontosságától sokban függ a CPU gyorsasága, így minden
processzorgyártó szigorúan őrzi a saját algoritmusát.

15
• A CPU része egy történeti tár, amibe lejegyzi az adatokat, amikből statisztikát
készít. Ez a tár szintén titkos.

16
6. Fél- és teljes összeadók, soros átvitel, perifériák kezelése, sínfoglalás

Ismertesse a bináris fél és teljes összeadók működési elvét, felépítését!

• Félösszeadó:
◦ Egy XOR és egy ÉS kapuból áll
◦ Az XOR felel az eredmény aktuális számjegyéért:
▪ A két szám 0-0 vagy 1-1, ilyenkor az adott helyi értékre 0 kerül.
▪ A két szám különbözik, ilyenkor csak az egyik 1, tehát a helyi értékre 1 kerül.
◦ Az ÉS felel a Carry bitért, ami eltárolja a túlcsordulást
▪ Ha a két szám 1-1, akkor a Carry értéke 1 lesz.
◦ Hátrányok: Bár létrehoz egy Carry bitet, nem képes az előző helyi érték Carry bitjét
számításba venni.
◦ A műveletek legelső helyi értékén használható!
A B S Cy
0 0 0 0
1 0 1 0
0 1 1 0
1 1 0 1

• Az XOR tégla után még egy karika kell!


• Teljes összeadó:
◦ A művelet további részében azonban előfordulhat, hogy a Carry is hoz egy értéket és
ilyenkor a legmagasabb felvehető érték a bináris 11.
◦ A teljes összeadó úgy működik, hogyha a hozott Carry 0, akkor az eredmény A xor B, ha
a hozott Carry 1, akkor pedig A ekvivalencia B.
◦ A Carry kiszámításához szükségünk van még egy szavazógépre, ami az aktuális Carryt
1-re állítja, ha legalább két érték egyes a háromból.
Cy0 A B S Cy
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
◦ A teljes összeadó használható az egész művelet elvégzésére, ha meggyőződünk róla,
hogy kezdéskor a Cy0 mindig 0.

Mit jelent a soros átvitel fogalma?

17
A teljes összeadókat a Cy-Cy0 szálon egymás mögé sorosan kötjük, tehát az összeadó nem tud
foglalkozni a saját számával, amíg az előtte lévő meg nem mondta neki a Carry bitet. Ezzel
növekszik a művelet elvégzésének ideje.
• Soros átvitelnél az összeadók két 32 bites számot egy darab összeadó működési idejének a
32-szerese alatt adnak össze.
• Olcsó, de lassú megoldás

Párhuzamos átvitel:

Egy darab teljes összeadó, aminek a bemeneteire léptető regiszter adja a biteket és tárolja az átvitelt
• Drága, de gyors megoldás.

Milyen programozási technikákkal kezelhetők a perifériák?

• POLL → A CPU folyamatosan kérdezgeti a perifériákat a változásokról


◦ Kezdetleges, nem programbarát.
◦ A CPU csak késleltetve veszi észre a változást.
• Interrupt, megszakítás → A periféria szól a CPU-nak, ha változás történik, adatot kér vagy
akar küldeni.
◦ Leveszi a kérdezgetés terhét a CPU-ról
◦ Nincs késleltetve az adat.
◦ A CPU minden kérésnél megszakítást végez, így a számítási folyamatok lassulnak.
▪ Olyan, mint egy rutinhívás
▪ Az adatokat, amikkel müveletet végez, kihelyezi a Stack-be, majd a megszakítás
végeztével visszahívja onnan és folytatja a munkát.
• DMA, Direct Memory Access
◦ A DMA-REQ parancsot kiadva leáll a CPU és közvetlen kapcsolat létesül a memória es
a periféria között. Ezzel a pusztán memóriát használó folyamatokba nem szól bele a
CPU, hiszen neki ott nincs érdemi feladata. Ilyenkor a DMA egység birtokolja az
adatbuszt, a címbuszt és a vezérlőbuszt is. Több DMA esetén el kell dönteni, hogy
melyiké legyenek a buszok, erre léteznek soros és párhuzamos sínfoglalási technikák.
▪ Memóriaátvitel típusai:
• Csomag átvitel (a processzor addig áll, míg a hossznak megfelelő adat át nem
jött (akkor jó, ha az adat gyorsan tud jönni))
• Cikluslopás (ha a DMA tudja hogy az adat lassan, sok ciklusonként fog érkezni
akkor nem várja meg míg az egész megérkezik, hanem két adatrész között
újraindítja a processzort, így gazdaságosabbá téve a folyamatot)
• Transzparens (nem sürgős adatátvitel esetén a DMA kihasználja a processzor
esetleges kimaradó memóriaciklusait (mikor a processzor sokat számol és nem
használja a memóriát). ekkor a DMA nem állítja le a processzort, hanem adatot
mozgat a háta mögött.)

Milyen sínfoglalási technikákat ismer? Ismertesse előnyeit, hátrányait!

• Soros sínfoglalás
◦ Olcsó megoldás, elméletileg végtelen számú eszköz csatlakoztatható.
◦ A Perifériák Request vonala egységes, a CPU válaszát az eszközök szétválogatják
maguk között.
◦ Az eszközök sorban való elhelyezkedésétől függ a prioritásuk, sok periféria esetén
előfordulhat, hogy az utolsó már egyáltalán nem tud a CPU-hoz szólni (kiéheztetés)

18
◦ A perifériák prioritása csak hardveresen, a sorban való áthelyezésükkel módosítható.
• Párhuzamos sínfoglalás
◦ Az egyes perifériák külön vezetéken küldik és kapják az adatot, így a prioritás
szoftveresen változtatható.
▪ Rotáló prioritás, ha egy periféria elvégezte a műveletét, a prioritási láncs végére
kerül
▪ Nincs kiéheztetés.

19
7. Sorrendi áramkörök, pipeline előnyei

Miket nevezünk sorrendi áramköröknek?


A Sorrendi áramköröket az különbözeti meg az különbözteti meg a kombinációs hálózat
kapuitól, hogy a kimenetüket a bemenetük mellett az előző futásuk kimenete is
meghatározza.
• A legegyszerűbb sorrendi áramkör: R-S Flip-Flop (Set-Reset; Két NOR kapu)
S R Q
0 0 0
1 0 1
0 0 1
0 1 0
• Az igazságtáblát fentről lefelé kell értelmezni!
• !Q-ra nem szabad 11 értéket vezetni, mert a kkor Q és !Q egyforma lesz, ez pedig anomáliát
okoz.

• D Flip-Flop
◦ Van egy D és egy CLK (órajel) bemenetünk
◦ Az órajelnek van magas és alacsony szintje, valamint
fel- és lefutó íve
◦ Az eszköz minden felfutó CLK értéknél frissíti Q
kimenet értékét D bemenet értékére.
◦ Ameddig nem jön a következő órajel, Q kimenet megtartja az értékét, bárhogy változzon
D.
◦ Alkalmazása:
▪ Kvarcórákban. A kvarc rezgését elektromos jelként D-flopot sorozatán vezetik át, így
lassítva a frekvenciát. 15 átvezetés után a frekvencia pontosan 1Hz, azaz egy jel
másodpercenként.
▪ A számítógépek memóriája
• Kihasználják az eszköz jeltartási képességét, létrehozva egy írható és újraírható
memóriát.

Mi a pipeline utasítás-feldolgozás előnye? (5. tétel vége)

Milyen feltételek esetén alkalmazható hatékonyan?


• A fázisok időben elkülöníthetőek.
• Az egyes fázisok azonos idő alatt hajtódnak végre
• Az egyes fázisok nem igénylik a másik fázisok erőforrásait.

20
8. Valid-flag, Dirty flag, visszaírás, processzorok utasításkészlete

Mi a szerepe a cache adatkezelésben az érvényességi flag-nek?


▪ Érvényességi bit, azt jelzi, hogy egy adatról valóban található másolat az adott
memóriacímen, tehát hogy használatban van-e az adott sor.
▪ Minden Cache adatsorhoz tartozik egy ilyen flag.
▪ Az adatfelszabadításkor a CPU lenullázza egy sor Valid-bitjét, így írhatóvá téve a
sort.
▪ A gép bekapcsolásakor 0 értékű, majd az első adatfeltöltés után végig 1, az
adatcserék kivételével, mert akkor egy pillanatra visszaugrik 0-ra.
▪ Ha a rendszer törölni akar a memóriából, akkor a törlendő sor valid-bitjét 0-ra állítja.

Mi a „dirty” flag szerepe?


▪ A Valid-bithez hasonlóan dirty-bit is tartozik minden adatsorhoz.
▪ Azt jelzi, hogy az adott soron lévő adat lett-e írva a CPU által.
▪ Ha a CPU Write back paranccsal ír a Write through helyett, akkor csak a cache-ban
lévő másolatot írja át, ennek a parancsnak az elvégzését jelzi a Dirty-bit.
▪ Ha a bit 1, akkor az esetleges kiürítéskor az adatot előbb vissza kell írni a Címtárban
tárolt memóriacímre.

Milyen visszaírási technikákat ismer?


• Write Trough
◦ A CPU a módosított adatot egyszerre írja ki a cache-ba és a memóriába is (átír a cache
fölött).
◦ A sebességkülönbség és a dupla művelet miatt lassú.
• Write Back
◦ A CPU a módosított adatot csak a cache-ba írja ki, majd a sor dirty-bitjét 1-re változtatja,
így a cache törléskor fogja az adatot a memóriába írni.
◦ Gyors.

Milyen típusú utasításkészlettel rendelkeznek a processzorok? Csoportosítsa, majd jellemezze


a csoportokat!
• Adatmozgató utasítások
◦ MOV/LOAD → Lényegében a „copy” utasítás a CPU-nak, a memóriában lévő adatot
lehet vele másolni. Az adat az új memóriacímre kerül, de a régi címen is megmarad.
◦ PUSH → Adat elhelyezése a Stack-ben. A rutinhívások alapeleme, egy rutin elvégzése
előtt a CPU-nak az épen aktuális adatokat a Stack-be raknia, ekkor kell kiadni az
utasítást.
▪ A Stack Pointer az utasítás hatására csökken, mert a Stack csökkenő
sorrendben tölti fel a celláit
◦ POP → a PUSH testvérművelete, a Stack-ből való visszaolvasás utasítása.
▪ A Stack Pointer az utasítás hatására nő, a fenti okok miatt.
◦ XCHG → Két tároló elemének megcseréli az adatait.
◦ I/O utasítások
▪ IN → beolvasás perifériáról
▪ OUT → adatküldés perifériára
• Logikai utasítások
◦ AND/NAND
◦ OR/IOR (hivatalosan „Inclusive or” a neve, vagyis „megengedő vagy”)
◦ XOR („Exclusive or”, „Kizáró vagy”)

21
◦ NOT → Az operandus minden bitjét negálja.
• Aritmetikai utasítások
◦ ADD → Összeadás
◦ ADC → (Add with Carry), Összeadás a Carry bit figyelembe vételével
◦ SUB → Kivonás
◦ SBC → Kivonás a Carry bit figyelembe vételével.
◦ NEG → Előjelváltás, a CPU az érték kettes komplemensét veszi
◦ CMP → Elvégzi a kivonást, de csak azt vizsgálja, hogy az eredmény 0 vagy sem. Az
eredményt eldobja, csak a Zero-bitet állítja be neki megfelelően.
◦ INC → (Increment) Az érték növelése eggyel
◦ DEC → (Decrement) Az érték csökkentése eggyel
◦ MUL, DIV → Szorzás, osztás (Nem minden CPU tudja)
• Ugró utasítások
◦ LOOP → Ciklusszervező utasítás, egy konkrét számszor végrehajt egy programrészt
◦ JMP → Feltétel nélküli ugrás, nincs visszatérési pont. Egyszerűen megváltoztatja a
Program Counter értékét.
◦ JIF → Feltételes ugrás, nincs visszatérési pont. Pl.: JIF Carry → ugorjon, ha a Carry bit
egyes.
◦ CALL/RET → Szubrutin hívás a Stackbe való mentéssel.
▪ CALL-nál PUSH van, tehát a Stack Pointer nő, RET-nél POP van, tehát ott csökken.
◦ SKIP → Egyetlen sor átugrása, ha egy adott feltétel teljesül. Nem minden CPU kezeli a
feltételes ugró utasításokat, helyette SKIP vagy SKIP if van bennük.
▪ Megpróbálhatunk feltételt megadni, amire a SKIP mindig hamis lesz, de ha
arra van szükségünk, hogy az a programsor soha ne fusson le, akkor inkább ne
írjuk bele a programba!
• Léptetés, forgatás
◦ SHIFT → Egy bitcsoportot jobbra vagy balra mozgathatunk. A megüresedett helyekre 0
értékek kerülnek.
◦ ROTATE → A kilépő bit újra a regiszterbe kerül, tehát körbemegy a rendszerben.
• Egyéb utasítások
◦ NOP → (No Operation) Késleltető utasítás a CPU pillanatnyi leállítására alkalmas. Jól
jöhet Pl.: Pipeline végrehajtás esetén, ha olyan adattal szeretnénk dolgozni, ami csak egy
későbbi lépésben lesz egy másik szálon elérhető.
◦ STC/CLC → A Carry-bit manuális beállítása/ törlése
◦ HLT → Teljes leállás, a CPU nem dolgozik tovább Csak a reset vagy egy megszakítás
tudja kibillenteni ebből az állapotból.
◦ DI/EI → Megszakítások letiltása/ engedélyezése.

22
9. Előjeles értékek, BCD, Flag regiszter

Hogyan használjuk a bináris számokat előjeles értékek kifejezésére?


• Kettes komplemens
◦ Egy szám kettes komplemense kifejezi a szám negatív párját.
◦ Kettes komplemens képzésnél először a szám bitjeit egyenként negálnunk kell (ez lesz
az egyes komplemens), majd ehhez hozzá kell adnunk 1-et.
◦ Hasznos megoldás a CPU számára a kivonás elvégzéséhez.
• Előjelbit
◦ A szám első bitje az előjelbit, ha 0, akkor +, ha egy, akkor -. A többi piten ábrázoljuk a
szám abszolút értékét.
◦ Elsősorban adattároláskor használják.

• Eltolt (feszített) ábrázolás:


◦ A sorba rendező elv kiegészítése, hogy előjeles számokkal is működjön.
◦ Az egy bájton tárolt előjeles számhoz hozzáadunk 128-at, így a legkisebb rendezendő
érték a 0 lesz. Ezek után már tudja rendezni az algoritmus az előjeles számokat.

Mi a BCD ábrázolás?
• Binárisan kódolt decimális ábrázolás
• A decimális számjegyeket binárisan kódoljuk 4 biten.
• Már szinte sehol nem használják
• Néha egy bájton ábrázolják a számjegyeket úgy, hogy a 4 ábrázolóbit elé beszúrnak még 4
bitet, ami mindig 0.
• Előnye:
◦ Gyors konverzió
• Hátránya:
◦ Nem lehet vele aritmetikai műveletet végezni.
◦ Még 4 biten is pocsékoló ábrázolás, mert 16 érték helyett csak 10-et tárolunk minden 4
biten.
◦ Nagyobb a redundanciája, mint a bináris ábrázolásnak (kevesebb adatot lehet közvetíteni
adott csatornán adott idő alatt.)

Mi a FLAG regiszter szerepe a processzorban?

• A CPU egy olyan eleme, ami az aritmetikai művelet után Akkumulátorba került eredmény
tulajdonságait jegyzi.
◦ Z-bit (Zero-bit): megadja, hogy az elvégzett A (a bit értéke 1) 0, vagy nem (a bit értéke
0)0.
◦ Cy-bit (Carry-bit): Az elvégzett A esetleges levágott bitje (8 bit esetén a 9. bit) 1 vagy 0
◦ P-bit (Parity-bit): Az elvégzett A ábrázolásához szükséges egyesek száma páros vagy
páratlan
◦ S-bit (Sign-bit): Az elvégzett A legfelső bitjének másolata (előjeles szám esetén megadja
az előjelet)
◦ HC-bit (Half-Carry-bit): 8 bites összeadás esetén azt adja meg, hogy van-e átvitel az 1.
négy bitből a 2. négy bitbe
◦ O-bit (Overflow)  Az előjelesen végzett művelet eredménye nem fér el az adott
bitszámon

23
10. Neumann-elvű mikroszámítógépek, I/O eszközök elérése és illeszkedése

Ismertesse a Neumann elvű mikroszámítógépek felépítését!


• A memória és a perifériák ugyanazon a vezérlőbuszon vannak, mert a kiadott parancsból
megállapítható, hogy melyikre vonatkozik. Ennek egy nagy hátránya, hogy nem tudja őket
egyszerre megszólítani.
• Némely rendszernél nem 4, hanem csak 3 vezérlőcsatorna van. Itt a Read és Write értékek
általánosak és a 3. szál egy M/IO bool értékkel jelzi, hogy egy adott parancs a memóriára
(1), vagy a perifériára (0) vonatkozik.
• Az egyes memóriacellákra a címükkel hivatkozunk, ami a sorszámukból adódik.
• A megcímezhető adatok száma és ezzel együtt a CPU által kezelhető memória mérete attól
függ, hogy hány bites a címvezeték.
Címbusz mérete (Bit) Kezelt memória mérete
8 256 Bájt
16 64 Kb
32 4 Gb (1989-ben bevezetett)

Ismertesse a memória és az I/O eszközök elérési jeleit, azok funkcióját!


• A CPU a vezérlőbuszon keresztül küld utasításokat. Egyszerre csak egy utasítást tud
küldeni, melyekből megállapítható, hogy a Memóriának vagy a Perifériáknak szólnak.
◦ MRD → Memory Read
◦ MWR → Memory Write
◦ IORD → I/O Read
◦ IOWR → I/O Write

Hogyan illeszkednek a perifériák egy mikroszámítógépes rendszerbe? Ezeket hogyan tudjuk


elérni?
• I/O illeszkedés

24
◦ Perifériaként illeszkedik az I/O csoportba, saját memóriával rendelkezik, amit csak írni
vagy olvasni lehet.
• Memóriába ágyazott illeszkedés
◦ A periféria egyes adatai az eszközben, más adatok a PC belső memóriájában, egy
elkülönített területen tárolódnak. Ez azért előnyös, mert míg a periféria saját memóriáját
csak írni és olvasni lehet, addig a belső memória adatainak kezelésére számtalan
lehetőség létezik.
▪ Pl.: a monitorok felbontása a periféria memóriában, míg a megjelenítésre váró adat a
belső memóriában tárolódik.

25
11. A CPU belső egységei, memóriatípusok

Mutassa be egy Neumann elvű CPU belső egységeit, a külső egységek elérésének folyamatát!

• MDR: Memory Dara Register  Az adatbuszról ide érkezik be/innen indul az adatbuszra az
adat
• IR: Instruction Register  a MDR-ből ide kerül a beolvasott UTASÍTÁS
• A (Akkumlátor)  Dedikált tárhely a memóriából érkező adatoknak. Kapcsolatban van az
ALU-val, az Accumlator értéke kerül változtatásra, felülírva a régi értéket. Az adat az MDR-
ből érkezik és ott is lép ki az eszközből.
• ALU (Aritmetical Logical Unit)  Az Akkumulátorból kapott adatokkal aritmetikai
műveleteket végez.
• SP (Stack Pointer)  Létezik olyan utasítás, mely a programot egy külön utasítássorozatra
ugrasztja, majd ennek végeztével visszatér a főprogramba. Ezek a szeparált programrészek a
Rutinon (pl: faktoriális-számító Rutin). Egy rutin indulásakor a processzornak adatokat kell
tárolnia (A visszatérés helye, a program eddigi eredményei), ezeket kitelepíti a memóriába.
A Stack Pointer egy címhalmaz, ami ezen adatokra mutat rá, hogy a Rutin után újra be
lehessen őket olvasni. A Stack magyarul Verem vagy Halmaz, a felhalmozott adatokhoz
fordított sorrendben tudunk hozzáférni.
• DC vagy DP (Data Counter vagy Data Pointer)  Nagyon hasonló a PC-hez. Adatcímet
ad a MAR-nak, régen a PC-hez hasonlóan azonnal ugrott a következőre, ma már külön
parancsra teszi ezt.
• PC (Program Counter) Következő végrehajtandó utasítás memóriacímét adja a MAR-
nak kiolvasásra, majd azonnal a következő parancscímre ugrik, így a következő kéréskor
már azt fogja adni (A memóriában az utasítások és az adatok keverten szerepelnek).
• MAR (Memory Address Register) Annyi bites, ahány bites a címbusz, a kiolvasandó
címet küldi el a memóriának.
• CU (Control Unit) A memória- és perifériaparancsokat küldi, a vezérlőbuszt használja.

Külső egységek elérésének folyamata:


• Ki kell választanunk, hogy melyik I/O egységet szeretnénk elérni, valamint hogy írni vagy
olvasni szeretnénk.

26
• Olvasáskor a CPU megcímzi az adott I/O egységet és a Vezérlőbuszra az IORD utasítást
rakja (Előfordulhat, hogy ilyen memóriacím is létezik, de a Vezérlőbusz tartalma
egyértelműen megadja, hogy I/O eszközről van szó). A megcímzett egység ráteszi az adatát
az adatbuszra, ami a CPU-n belül az MDR-ből az Akkumulátorba kerül.
• Íráskor a CPU az Adatbuszra helyezi az adatot, a Címbuszra pedig azt a címet, ahová az adat
kerüljön és kiadja a memória vagy periféria író parancsát.

Milyen külső jelek aktivizálódnak és mikor?

Adatátvitelt vezérlő jelek:


• M/IO → Az adatátvitel helyét adja meg (Memória vagy periféria)
• R/W → Az adatátvitel irányát adja meg (írás vagy olvasás)
• AS → A cím sínre helyezése a memória számára
• DS → Az adat sínre helyezése a memória számára
• RDY → Az adatátvitel befejeződött, az eszköz rendelkezésre áll
• Megszakítást vezérlő jelek
• Sínvezérlő jelek (sín kérése, foglalása)
• Egyéb jelek (pl.: órajel)

Milyen memóriatípusokat ismer? Sorolja fel, és röviden jellemezze az egyes típusokat!

ROM (Read-only Memory) → Legfontosabb tulajdonsága, hogy az adatokat feszültség nélkül is


megőrzi.
• (Alap) ROM → Elsőnek fizikailag volt kialakítva az információ úgy, hogy a nullák helyén
üres hely volt, az egyesek helyén pedig félvezető. Az ezen tárolt információt a gyárakban
sütötték rá a lapokra.
• PROM (Programable Read Only Memory) → Jött egy olyan eljárás, mikor a leendő
ROM lapkán minden helyen félvezető van, tehát minden bitje 1. Ezután bizonyos biteket
megcímzünk és nagy árammal tönkre tesszük őket, „beégetjük” az adatot. A PROM bitjei
csak egy irányba változtathatók!
• EPROM (Ereasable Programable Read Only Memory) → Ezután rájöttek, hogyha egy
MOSFET kapcsolóját rákötik egy kondenzátorra, az (az ilyenkor nem létező áramlás miatt)
nagyon sokáig tartani tudja a feszültséget, egy adott pontban tartva a MOSFETet. Ezután
egy kis kvarcablakot tettek a chip fölé, amin, ha bevilágítanak UV fénnyel, a kondenzátor
szigetelése ionizációt szenvedett el, a töltés elszökött és a MOSFETek alapállapotukba
ugrottak.(UVEPROM)
• EEPROM (Electrical Ereasable Programable Read Only Memory) → Később
létrehoztak amorf anyagokat, amiknek elektromos úton meg lehetett változtatni a
kristályszerkezetét és ehhez értéket rendelni. Ekkor már a gépből sem kellett kivenni a
ROMot, hogy töröljük.
• Flash EEPROM → Az EEPROM félvezetős változata, a PenDrive-ok memóriája
RAM- Random Access Memory
• A nevét a régi időkből kapta. Régen a magnószalagon csakis egymás után lehetett elérni az
adatokat, ez a memória már nem volt az adatsorra szorítva, bármilyen sorrendben kezel
adatot.
• Két csoport: Statikus és Dinamikus
◦ A statikus RAM adattároló képessége nem függ az időtől, csak mindig feszültség alatt
kell maradnia.

27
◦ A dinamikus RAM nem tartja jól az adatot, de olcsóbb és kisebb helyen elfér. A
felejtése miatt az érték kiolvasásakor egyaránt vissza is kell tölteni. Ez a memória van az
átlagos informatikai eszközökben.

28
12. Sínszervezésű memória, vezérlőjelek, Stack

Ismertesse a sínszervezésű memória használatának módját, előnyeit!


• A sínszervezésű memóriában egységes utasítások vannak a memória vagy a perifériák
kezelésére és egy külön sín dönti el, hogy melyik eszköznek szól az utasítás.
• Előnye, hogy nem kell minden memóriachipet a CPU-hoz kötni, mert az utasítások
elemeikre vannak bontva, amiket külön sínek hordoznak. Emellett ez a módszer szabványos
megoldásokkal dolgozik, így növelve a kompatibilis eszközök számát. Ez versenyt teremt a
memóriagyártók között, ami a vevők számára az árazásban nyilvánul meg.

Mutassa meg, milyen vezérlőjeleket használnak, és azoknak mi a szerepe!


• M/IO → Az adatátvitel helyét adja meg (Memória vagy periféria)
• R/W → Az adatátvitel irányát adja meg (írás vagy olvasás)
• AS → A cím sínre helyezése a memória számára
• DS → Az adat sínre helyezése a memória számára
• RDY → Az adatátvitel befejeződött, az eszköz rendelkezésre áll
• Megszakítást vezérlő jelek
• Sínvezérlő jelek (sín kérése, foglalása)
• Egyéb jelek (pl.: órajel)

Ismertesse a stack használat indokát, fajtáit!


• A Stack egy speciális memóriafajta, mely lehet a RAM elkülönített része, vagy a CPU egy
eleme (Memória Stack és Cascad Stack). Adatok ideiglenes tárolására szolgál.
• A Stackben adatot tudunk elhelyezni (Push) és adatot tudunk belőle kiolvasni (Pop). A Stack
tulajdonsága, hogy amilyen sorrendben az adatok belekerültek, csak fordított sorrendben
lehet őket kinyerni (LIFO, Last in first Out; Veremmemória).
• Mikor a CALL utasítással meghívunk egy Rutint és ezzel módosítjuk a Program Counter
értékét, a CPU által addig használt adatok a Stack-be másolódnak, hogy aztán a RET
utasítás során, a Rutin befejeztével visszakerüljenek a CPU-hoz.
• Fajtái:
◦ MS(Memory Stack)
▪ Fizikailag a Memória része, a lehető legtávolabb helyezkedik el a memóriában tárolt
többi adattól.
▪ Nagyméretű adatok tárolására alkalmas.
▪ Mérete dinamikus.
▪ A memóriacímeket csökkenő sorrendben osztja ki, egymás után. (Visszafelé tölti fel
a Memóriarészt)
◦ CS (Cascade Stack)
▪ kaszkád: Korlátozott számú
▪ Az eredeti Stack-megoldás.
▪ A CPU-ban helyezkedik el.
▪ Vészhelyzet esetén használatos, ha a Memóriában már nincs elég hely a Cash
számára.
▪ Körkörös, ha megtelik, a következő adat felülírja a legrégebbi adatot.

Hogyan kell használni és mi tárolható benne?


• Bármilyen numerikus adat tárolható benne, mivel az adathozzáféréstől eltekintve a Stack is
egy átlagos memóriarész. A tárolás értelmezése a programoktól függ.

29
13. CISC és RISC, adatcímzés

Hasonlítsa össze egy CISC és egy RISC processzor jellemzőit. Melyik változtatásnak milyen
előnye van? Mik a RISC elv hátrányai?

CISC → Complex Instruction Set Computing RISC → Reduced Instruction Set Computing
Régi megoldás Új megoldás
Neumann-elvű végrehajtás Pipeline-elvű végrehajtás
Változó beolvasási idő Állandó beolvasási idő
Változó hosszúságú utasítások Állandó hosszúságú utasítások
Sok memóriareferencia utasítás Csak két memóriareferencia utasítás: LOAD és
STORE
Kevés regisztere van. A lokális értékeket belső változókban tárolja,
emiatt sok regisztere van
Egyszerű fordítóprogram, a CPU hatékonyságát Bonyolult fordítóprogram, a CPU hatékonyságát
az eszköz architektúrája határozza meg a fordítóprogram optimalizációjától függ.
Összetett utasítások, több ciklussal Egyszerű utasításuk, egy ciklussal.
• A RISC processzorok létrejötte a Pipeline-elvnek köszönhető, az elv megszorításainak a
CISC processzorok nem tettek eleget (5. tétel, a Pipeline hátrányai).

A RISC CPU-k hátrányai


• A CPU csak magas szintű nyelven programozható normálisan, kevés assembly utasítást
tartalmaz.
• A fordítóprogram nagyon bonyolult és rajta múlik a CPU gyorsasága.

Milyen adatcímzési eljárásokat ismer? Mutassa be az adott címzési eljárást alkalmazási


példákon keresztül!

Abszolút címzés
• Tartalmazza a memória konkrét címét, fizikai elérési útját.
• Nem előnyös több futó program esetében, mert lehetséges, hogy ugyanazokat a
memóriacímeket fogják használni.
Relatív címzés
• Megad egy kezdőpontot (Tipikusan a PC tartalma) és ahhoz képest sorszámoz
• A használt memóriacímek folyamatosan változtatják a helyüket.

• DIREKT címzés:
◦ az utasítás tartalmazza a konkrét címet pl. 3FB
◦ pl. LD A,[3FB] Az akkumulátorba töltsük be a 3FB Memóriacímen szereplő
adatot
• INDIREKT címzés:
◦ a címet egy regiszter tartalmazza (mutató/pointer) pl. [DC]
◦ pl. LD A,[DC]Olvasd ki a Data Counter címét, majd az ott szereplő adat értékével töltsd
fel az Akkumulátort
• INDEXELT címzés:

30
◦ pl. LD A,[1234 + 1x]
◦ 1x: tároló, amely tartalmazza az indexértéket
◦ Az az érték fog az A-ba kerülni, amely az adott címzés összege
• INDIREKT INDEXELT címzés:
◦ pl. LD A,[DC + x] Az az érték fog az A-ba kerülni, amely a két adott belső tároló
összege


Az egyes memóriacellákra a címükkel hivatkozunk, ami a sorszámukból adódik.

A megcímezhető adatok száma és ezzel együtt a CPU által kezelhető memória mérete attól
függ, hogy hány bites a címvezeték.
Címbusz mérete (Bit) Kezelt memória mérete
8 256 Bájt
16 64 Kb
32 4 Gb (1989-ben bevezetett)

31

You might also like