Professional Documents
Culture Documents
Szar
Szar
• 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.
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ű.
2
2. Kombinációs hálózat, hálózat jellemzőinek leírása, egyszerűsítések, regiszterek
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
Milyen jellemző regiszterek találhatók egy Neumann elvű processzor regiszterei között?
Ismertesse a végrehajtásban szerepüket!
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
5
3. Félvezetők, Cache felépítése
• 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
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
• 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:
•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
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
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 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
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
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.
F D E W F D E W
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
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)
◦ 2. Probléma:
Add R2, R3
JC (Jump if Carry) Tucsor
Add R4, R2
▪ (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
• 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
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.
• 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
•
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.
20
8. Valid-flag, Dirty flag, visszaírás, processzorok utasításkészlete
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
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.)
• 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
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.
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.
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
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).
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