Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Tárolókezelés-memóriakezelés
2
Témakörök-Tárkezelés
Tárolási alapok Tárhierarchia elemei Tárolókezelő egység Virtuális tárkezelés (logikai-fizikai címek) Szegmentálás Lapozás
3
A tárolókezelés feladatai
A tárhierarchia megfelelő és optimális működtetése A rendelkezésre álló memóriaterület szétosztása a feladatok között Az adatok biztonságának védelme. Három szintjét különböztethetjük meg: Rendszerprogramok védelme a felhasználótól Felhasználói adatok egymástól való védelme Futó program eljárásainak egymástól való védelme – A felhasználók és programok elkülönítése
4
Tárolási szempontok A számítógépek teljesítményének növekedéséhez, fontos a használt tárolók jobb kihasználása Utasítások és adatok használati gyakoriságuknak megfelelő elhelyezése Tárhierarchia: Az adatok kellő időben és idő alatt való elérésének és elhelyezésének strukturális eszköze.
5
Alapfogalmak A tároló-szervezésnek a legfontosabb elve, hogy a gyakran használt adatokat a processzor közelében kell elhelyezni. Elérési idő: a cím kiadása és az adat megjelenése között eltelt idő. Feléledési idő: a befejeződött művelet és a következő művelet közötti idő. Ciklusidő: Elérési idő + Feléledési idő.
6
Tárhierarchia elemei Regiszterek Kis kapacitás (néhány 100 bájt)
Rövid elérési idő (2ns) Cache Kis kapacitás (néhány 100 KB) Nem túl hosszú elérési idő (4ns) Központi tár Közepes kapacitás (néhány 100 MB) Hosszabb elérési idő (10ns) Háttértárak Nagy kapacitás (néhány 10 GB) Hosszú elérési idő (10ms) Tömegtárolók (TB), (100ms)
7
Regisztertárak A processzorban egy-egy szónyi adat tárolására több, gyors működésű tár szolgál, melyek együttesen alkotják a regisztertárat. 1 CPU ált több regisztert tartalmaz, meghatározott feladatokkal. Akkumulátor regiszter (A) Adatszámláló regiszter (Data Counter DC) Utasítás-regiszter (Instruction I) Programszámláló regiszter (Program Counter PC) Buffer regiszter Indexregiszter stb.
8
ALU Állapot-reg. ADATBUSZ léptető Komplement. Összeadás és Boole log.
akkumulátor Állapot-reg. ADATBUSZ Adat-számláló léptető programszámláló Komplement. Utasítás-számláló Összeadás és Boole log. VEZÉRLŐEGYSÉG BUFFER
9
Néhány főbb követelmény a regisztertárakkal szemben:
Az adatforgalom csökkentése a memória és a processzor között (pl: szubrutin változók, szubrutin visszatérési címek elhelyezése) Minél nagyobb méret ( regiszter) Háromcímes elérési lehetőség (egy időben egy utasításon belül 2 operandus és az eredmény címe) – Akkumulátor regiszter Általános felhasználású célú legyen.
10
Regisztertárak kezelése
Nagyon fontos a regisztertömb kezelésének hatékonysága, ezért különböző technikák alakultak ki. A regisztertárakat ciklikus táraknak tekintjük folyamatos címtartománnyal. Kezelési lehetőségek Nagyobb méretű regisztertár átlapolódó adatblokkal Nagyobb méretű tár ablaktechnika nélkül regiszterbankokkal Nagyobb méretű lineáris regisztertár Kisebb méretű lineáris regisztertár
11
Kezelési technikák - Regiszterbank
Általában a regisztertár csak egy részét képes egy egy folyamat elérni. Ezek a regiszterek tulajdonképpen a folyamat szempontjából egy ablaknak tekinthetők. Regiszterbank (register banking) alkalmazása során a regisztertömb egyforma méretű részekre (bank) van felosztva, melyek nem lapolhatják át egymást. A bank mérete mindig 2 valamelyik hatványa. Az aktuális bank kezdőcímét a bank-mutató (Current Bank Pointer, CBP) tartalmazza.
12
Kezelési technikák – Ablaktechnika, blokktechnika
Ablaktechnika: A regisztertömb egy-egy azonos méretű, de átlapolható része látható a processzor számára. A méret 2 valamely hatványa. Az aktuális ablak méretét az ablak-mutató (current window pointer) jelöli ki. A szubrutinok közötti paraméterátadás megkönnyítésére használható ez a technika. Blokktechnika: A regisztertömb tetszőleges méretű átlapolható részekre van felosztva. Aktuális blokk kezdete - blokk-mutató (current block pointer) Előnye a rugalmasság, hátránya az alul és- túlcsordulás lehetősége!
13
Overlay technika (átlapolásos technika)
Probléma : nagy program, kis memória Program feldarabolása, csak a szükséges darab(ok) a memóriában program data memória p p1 data data data p p p p2 p1 p2 p3 idő p3
14
Cache-tárak Feladatuk az adatforgalom gyorsítása a processzor számára az operatív tárhoz fordulás esetén. A cache gyors, kis méretű tároló, melyben az operatív tár egy része található meg, lehetőleg az, amelyre a processzornak szüksége lesz. Megtalálhatók itt mind az adatok, mind az utasítások. Jellemzői: Elhelyezkedése szempontjából megkülönböztetünk első, második és harmadik szintű tárolót Az adatátvitel a cache és a memória között mindig blokkosan történik (4-32 bájt). A blokkok csak egymást követő bájtokból állhatnak. Oka, hogy általában a következő címről történik meg lehívás.
15
Cache-tárak jellemzői
Belső (on chip, 8-32KB) és külső (off chip, KB) cache Az adatátvitel blokkos formában történik, azaz egyszerre több bájtot visz át a processzor Együtt és külön is tárolhatják az utasításokat és az adatokat A cache-tárban a memória egyes egymást követő rekeszeinek tartalmát tároljuk a tárolóbeli hely címével együtt.
16
Cache-tárak jellemzői
A cache mérete, amely ált. 8 kB és 8 MB között lehet. Blokk-méret megadja, hogy a főtár és a cache között mekkora adatblokkok mozgathatók. Értéke 1-16 szó. Sorméret az az adatmennyiség, amely egy-egy összehasonlítással kijelölhető és amelynek mérete a blokk méreténél nem nagyobb. Helyettesítési algoritmus meghatározza a felesleges blokk kicserélésének módját. Adataktualizálási módszer adja meg az adat tárba visszaírásának szabályait. Adategyezőség biztosítási mód adja meg a főtár és a cache adategyezőségének biztosítását.
17
Cache-tárak jellemzői
Tárolhatnak csak utasítást, adatot és utasítást együtt, vagy külön tároló szolgálhat az adatok és az utasítások számára is. A cache-ben a memória egymást követő rekeszeinek tartalmát tároljuk az eredeti címükkel együtt. A visszakeresés tartalom szerinti (asszociatív, Content Address Memory, CAM), ami azt jelenti, hogy a vizsgált adatnak a cache-ben tárolt adattal való egyezését vizsgálja a processzor. A keresés cím alapján történik. A cache megfelelő működésekor a találati arány (cachehit) legalább 95 %-os.
18
Cache-tárak Lokalitás elve Időbeli lokalitás Helyi lokalitás
A programok meghatározott időintervallumban a főtár egy címtartományát használják. Időbeli lokalitás Ha egy adatra, vagy utasításra hivatkozás történik, nagy valószínűséggel rövid időn belül ez újra megtörténik (ciklus). Helyi lokalitás Ha egy adatra, vagy egy utasításra hivatkozás történik, akkor ez nagy valószínűséggel a környezetében lévő címekre is megtörténik (soros végrehajtás).
19
Cache tárak A cache tárak tartalom szerinti visszakeresést tesznek lehetővé A visszakeresés a keresett adat címe alapján történik – a cache tárban el kell helyezni A cím tárolásakor, annak csak egy részét szükséges magában a cache-ben elhelyezni, akkora részét, amelynek alapján közvetlenül (a tárolt értékből), vagy közvetve (a tárolt értékből és annak cache-beni helyéből, sorából) a blokk kezdőcíme meghatározható. A címnek azt a részét, amit a cache tárban elhelyez a processzor „tag”-nak nevezzük. „tag” származhat virtuális címből ill. fizikai címből
20
Cache-tárak A visszakeresés módja tartalom szerint (asszociatív), azaz a keresett adat címét összehasonlítja a processzor a cache-ben tárolt címekkel. Ha a keresett adat a cache-ben található (cache-hit), akkor onnan veszi ki a processzor. Ha nincs a cache-ben (cache-miss), akkor a memóriából olvassa ki és egyúttal beteszi a cache-be. A cache tartalmának frissítésekor a találati arány fenntartása érdekében megfelelő helyettesítési stratégiát kell alkalmazni. Biztosítani kell a cache-tár és a központi tár azonos részeinek az egyezőségét.
21
FONTOS! Nagyon fontos, hogy a cache és a processzor működési sebessége minél közelebb legyen egymáshoz. A megfelelő teljesítmény érdekében ajánlott a dedikált sínrendszer használata.
22
Cache tárak tartalmának karbantartása
Csak akkor tudnak teljesítménynövelő hatást kifejteni, ha a tartalmuk és a memória tartalma megegyezik és megfelel a valóságnak. Utasítás esetén nincs gond – csak kiolvasás Adatok estén gond, ha több feldolgozás fut a gépen (multitasking), így adott memóriarészhez több program is hozzáférhet és módosíthat.
23
Cache tárak tartalmának karbantartása - Tartalom betöltése
Demand fetching - Aktuális igény felmerülésekor kikeresi a memóriából a kért byte-ot tartalmazó blokkot. A blokk cache-be töltésével párhuzamosan a processzor azonnal megkapja a keresett byte-ot. Prefetching – Azzal a feltételezéssel élünk, hogy egy blokk használata nagy valószínűséggel maga után vonja a következő blokk használatát is. N-edik blokk betöltésekor automatikusan az n+1. blokk is betöltődik. (Kis blokkméret esetén célszerű) Selective fetching (szelektív előkészítés): az írható adatokat a memóriában tároljuk, a cache-be csak olyan adatok kerülnek, amelyeknél nincs szükség az átírásra.
24
Cache tárak tartalmának karbantartása Aktualizálás
Azonnali átírás: a módosított byte azonnal átírásra kerül a memóriába, függetlenül attól, hogy a blokk a cache-ben van-e. Módosított byte-hoz tartozó blokk a cache-ben van, a cache tartalma is aktualizálódik. A blokk nincs a cache-ben: az átírást követheti egy visszaolvasás (módosított blokk betöltése) A blokk betöltése után aktualizálja a cachet és a memóriát is
25
Cache tárak tartalmának karbantartása Aktualizálás
Visszaírás, visszamásolás Adott byte-hoz tartozó blokk a cache-ben van: csak a cache-ben aktualizál, a főtár tartalmát csak a blokk cseréjekor módosítja Nincs a cache-ben: Csak a memóriában aktualizál, cache-be nem tölt Blokk beolvasás után aktualizálja, visszaírás csak a blokk cseréjekor
26
Cache tárak tartalmának karbantartása Aktualizálás
Helyettesítési eljárás: A cache tárak hatékonyságát az biztosítja, ha a lehető legkevesebbszer kell a tartalmát cserélni. Legkevésbé mostanában használt blokkok cseréje (változás mátrix-sorai blokkonként jelzik a blokk korát-mióta nem használták)
27
Tárolás a cache-ben A cache-ben az adat és az utasítás mellett annak címét is el kell tárolni. (Nem feltétlenül kell a teljes fizikai címet, elég csak annyit, amely alapján közvetlenül vagy közvetetten (tárolt érték+tárolás helye) alapján egyértelműen azonosítható. A címnek az a része, amely a cache-ben kerül tárolásra, a tag. Származhat fizikai és virtuális címből egyaránt attól függően, hogy a cache a processzor és az MMU, vagy az MMU és az operatív tár között helyezkedik el.
28
A cím mellett a tárolt adatok állapotára vonatkozó információk is tárolásra kerülnek:
V (valid) bit jelzi az adatok érvényességét a cache-ben. A cache törlésekor minden V bit '0' értéket vesz fel és az új adat beírásakor lesz az értéke '1'. D (dirty) bit a blokk valamely részének a felülírását jelzi. Ha a D=1, akkor annak a blokknak a helyére nem lehet új blokkot betölteni.
29
Cache tárak típusai Teljesen asszociatív Közvetlen leképezésű
A beolvasott blokkok bárhova elhelyezhetőek, bármelyik sorba kerülhetnek. Az elhelyezés sorát a helyettesítési algoritmus határozza meg. Keresés a fizikai cím felső 28 bitje alapján történik. Egyszerűen és rugalmasan kezelhető, de mivel annyi keresését kell elvégezni, ahány sora van, ezért nagy cache esetén költséges. Előnye a jó találati arány lehetősége, hátránya a helyettesítési eljárás alkalmazása. Közvetlen leképezésű Egy –egy blokk csak meghatározott helyre kerülhet. A blokkok sorát a blokksorszám jelöli Előnye a rövidebb tag rész, a gyors keresés, az egyszerűség és az olcsóság. Hátránya a kötött blokkhelyek miatti merevség, melyből adódik, hogy az azonos indexű helyek adatainak elérése lelassul, a találati arány kisebb.
30
Cache tárak típusai Csoport asszociatív
Átmenet a teljesen asszociatív és a közvetlen leképezésű cache tár között. Az elhelyezést a választott helyettesítési algoritmus határozza meg. A cache 'n' sorból álló csoportokra van osztva. Ezek asszociatív tárként működnek. A memóriacím felső bitje jelöli ki a lapsorszámot (tag), a következő 'm' bit a csoportot azonosítja. Az alsó 4 bit a bájtot azonosítja. Keresés során először csoportot keresi ki, azon belül pedig a lapsorszámot hasonlítja össze az összes sorban egyszerre. Előnye, hogy rugalmasságban és költségekben is a két előző között helyezkedik el. (Szektor leképezésű – ma már ritka csoport helyének kijelölése, azon belül a blokk helye kötött)
31
Mikroszámítógépek tárolóhierarchiája
Elérési idők(s) 10-20*10-9 70-100*10-9 10*10-3 *10-3 Kapacitás nagyságrend GB GB-TB By MB regisztertár főtár háttértár tömegtárolók Cache-tár Regisztertár:kevés adat, legkisebb elérési idő (ns) Főtár: A program végrehajtásához közvetlenül szükséges programrészek, adatok Háttértárolók: Éppen nem szükséges adatok tárolása (msec) Cache-tár:Adatáramlás folyamatosságának biztosítása
32
Tárolókezelés feladatai
a CPU által megcímzett címen lévő érték elérése tárhierarchia hatékony működtetése : virtuális-logikai címek kezelése, lapozás, szegmentálás memória „szétosztása” (több program, több felhasználó között...) „védelem” rendszer programok a felhasználótól felhasználók adatai felhasználók programjai (de közös eljárások)
33
Cím, címtartomány, címszélesség
memória értékek memória címek 000000 000001 000010 000011 ... ... Címszélesség cím érték 011010 ... ... Címtartomány 111111
34
Virtuális tárkezelés Használata esetén egy egységnek tekintjük a központi tárat és a merevlemez területét – ez képezi a virtuális címtartományt. A viruális címtartomány bármely részében elhelyezkedő blokkot a feldolgozáshoz a központi tár területére kell átvinni. Az átvitt blokk mérete lehet változó (szegmens) Rögzített (lap) A végrehajtáshoz a processzornak ismernie kell az eredeti virtuális cím valódi helyét a központi tárban, a valós címtartományban. Valós cím = Átvitt blokk fizikai kezdőcíme + relatív cím
35
Virtuális tárkezelés - Fogalmak
Fizikai címek tartománya: a főtár processzor által közvetlenül címezhető tárolóterületének címei Logikai,-vagy virtuális címtartomány :a programok a teljes tárolóterületet lefedő címtartománnyal dolgoznak ez a ~ Tényleges cím: a programutasításokban használt különböző címmódosító eljárások alapján kiszámolt cím (effective adress) Szegmens: olyan adatblokk melynek mérete nem rögzített Lap: olyan adatblokk melynek mérete azonos és rögzített (4KB)
36
Logikai - fizikai címek
Logikai cím(tartomány) Fizikai cím(tartomány) a CPU által címezhető, programban használható központi memória mérete... logikai - fizikai címek megfeleltetése ?! TÁRKEZELŐ rendszer
37
MMU (Memory Management Unit)
A tárolókezelés feladatainak megoldására szolgál a processzor tárkezelő egysége(MMU): Lehet a processzorba beépített (on-chip) Intel80286, i386/486 Processzoron kívüli (off-chip) Motorola MC68020-as processzor A tárolókezelő egység címképzési munkáját segíti a lapozó cache-tár (TLB-Translation Lookaside Buffers)
38
MMU i j program központi memória logikai cím fizikai MMU cím fizikai
címtartomány logikai címtartomány
39
Adategyezőség biztosítása
Ha az MMU a cache és a processzor között van, akkor a cache már fizikai címeket kap. Itt nincs a címfordításból adódó adategyezőségi probléma, valamint lassulás. Ha az MMU a cache és a memória között van, akkor a sebesség nagyobb, de a cache virtuális címekkel dolgozik.
40
Virtuális tárkezelés
41
Virtuális tárkezelés - Fogalmak
Fizikai címek tartománya: a főtár processzor által közvetlenül címezhető tárolóterületének címei Logikai,-vagy virtuális címtartomány :a programok a teljes tárolóterületet lefedő címtartománnyal dolgoznak ez a ~ Tényleges cím: a programutasításokban használt különböző címmódosító eljárások alapján kiszámolt cím (effective adress) Szegmens: olyan adatblokk melynek mérete nem rögzített Lap: olyan adatblokk melynek mérete azonos és rögzített (4KB)
42
Virtuális tárkezelés legfontosabb eljárásai: Szegmentálás
A szegmens fizikai kezdőcímét a szegmenstáblázat tartalmazza, ebből lehet kikeresni a konkrét szegmens főtárbeli kezdőcímét. Az átlapolódó és nem egyforma hosszú szegmensek miatt idővel sok nem használt, üres hely keletkezik a központi tárban – memória átrendezése, vagy „szemétgyűjtés”(garbage collection) Szegmentálás előnye: a rugalmasság(váltakozó blokkméret) és az osztott felhasználás (átlapolás) Szegmentálás hátránya: a nagyméretű szegmensek cseréje rontja a hatékonyságot
43
Szegmensek főtárba való betöltése
Első szabad hely keresése: a memória kezdetétől keresi a megfelelő szabad helyet Következő szabad hely keresése: a legutóbb betöltött szegmens elhelyezésétől kezdi a keresést Legjobb hely: a szegmenst betöltve a lehető legkevesebb hely marad szabadon Legrosszabb hely: a lehető legnagyobb hely maradjon szabadon
44
Virtuális tárkezelés legfontosabb eljárásai: Lapozás
A lapok mérete azonos, nem átlapolhatók A lappal egyező méretű helyekre kerülnek a főtárban, ezek a lapkeretek (FRAME) Címszámítás módja: Logikai cím = lap logikai sorszáma + relatív cím Fizikai cím = lap fizikai kezdőcíme +relatív cím A lap fizikai (főtárbeli) kezdőcíme a laptáblázatból kerül meghatározásra. Lapváltásnál nem okoz gondot az elaprózódó tárterület, mert a lapok csak a lapkeretek helyére kerülnek, így legfeljebb a nem használt lapkeretek üresek. Ha nincs üres lapkeret, akkor lapbetöltéskor ki kell választani a kiürítendő lapkeretet.
45
Lapbetöltés Felmerülő igény esetén pl: nincs meg a hivatkozott lap a főtárban – laphiba Lapváltási eljárás elindítása: memóriába tölti a kívánt lapot – utasítás végrehajtását fel kell függeszteni, majd később visszatérni rá. Utasítás folytatása: az állapotjelzőket el kell menteni, folytatáskor visszatölteni Utasítás újrakezdése: a felfüggesztett utasítás mikroprogramját előről indítja. - egyszerűbb
46
Lapcsere stratégiák Véletlenszerű választás
A legrégebben bent lévő lap cseréje (FIFO) A legrégebben nem használt lap cseréje Adott idő alatt nem használt lap cseréje Legkevésbé használt lapok cseréje
47
Memóriák és csatlakoztatásuk a mikroproceszorhoz
48
Memória Információt őriz meg későbbi kiolvasás céljára
Adatok, programok, eredmények tárolása (bináris formában) Információ beírása és kiolvasása címezhetőség vagy tartalom alapján történik A tárkapacitást a tárolható szavak, bytok vagy bitek számával mérik
49
Memóriák paraméterei Kapacitás Hozzáférési idő Belépési ill. memorális ciklus Adatbeviteli sebesség
50
Felosztásuk Információk elérése szerint:
- Soros (tároló-helyek időben egymás után-rekesz hozzáférési idő) - Közvetlen hozzáférésű (bevitel sorrendjétől független elérés) Asszociatív (információk adott jellemzői kereshetők meg) Tárolt információ átírhatósága szempontjából: - Állandó - Programozható
51
Memóriák működésük alapján lehetnek:
- dinamikus - statikus Információ rögzítése alapján: -Végleges rögzítés (ROM,PROM) -Módosítható rögzítés (RAM,REPROM)
52
Memóriacímzés Az információt kiolvashatóvá kell tenni!! EZÉRT:
Memóriák cellákat tartalmaznak Cellák mindegyikének van száma Egy cella k bitet tartalmaz, akkor 2k bitkombinációt tárolhat Szó a legkisebb címezhető információs egység Egy memóriamodul általában több chipből áll Chipkiválasztó bit szükséges
53
Egy chipből álló memóriamodul
Pl.:256 memóriaszó kapacitás esetén a szó címe 8 bináris digitből áll. Legkisebb cím: =0016=0010 Legnagyobb: =FF16=25510
54
chipkiválasztó szó-címező bináris digitek bináris digitek
Egy 16 bites memóriaszó: cccccccc ssssssss chipkiválasztó szó-címező bináris digitek bináris digitek 16 bites memória szó
55
Címezhető memória R/W vonalon érkező jel vezérli azt, hogy:
olvasás (R) vagy írás (W) történjen
56
Példa címek előállítására
1.példa:címzés 16 bittel. A szó címe : = 1AE16 A chip címe : = 0716 chip szó A teljes cím: = 1DAE16 D A E
57
ROM TOK csatlakozó pontjai
Tápfeszültség és föld óra Címkiválasztó bemenetek (A0-A9) Adat kimenet (D0-D7) Read Chip kiválasztó bemenetek (S0-S5)
58
ROM TOK csatlakozó pontjai
Igényelt információ (rekesz tartalmának) kiolvasása: Címbemenetek (A0-A9) Memória-chip-kiválasztó bemenetek (S0-S5) Read jel bemenet (R) Műveletvégzéskor CPU és ROM szinkron működése: Órajel bemenet Adatkimenetek (D0-D7) Tápfeszültség és föld csatlakozók
59
ROM csatlakoztatása a mikroprocesszorhoz
VezV Külső buszr. Write Read AdatV CímV óra adat CPU ROM
60
Read-utasítás művelete
Minden művelet egy logikai 1-be menő órajellel kezdődik (A) A CPU kimenetein a címvezetéken egy cím jelenik meg. – Ugyanekkor a READ jel logikai 1-be vált. A jeleket a ROM a külső busz-rendszeren keresztül fogadja A ROM chip logikája az A0-A9 által címzett memóriarekesz tartalmát az adatsínre (D0-D7) helyezi. (B) Az adat addig marad az adatbuszon, amíg a 0 órajel 1-be nem ugrik. A B A B
61
RAM TOK csatlakozó pontjai
Tápfeszültség és föld óra Címkiválasztó bemenetek (A0-A9) Adat Read Chip kiválasztó Bemenetek (S0-S5) Write
62
RAM tok csatlakozó pontjai
A csatlakozások funkciói részben megegyeznek a ROM-nál megismertekkel Eltérés- írási művelet! Az adatbusz kétirányú adatátvitelt tesz lehetővé a CPU és a RAM között Beírás WRITE vezérlőjel hatására megy végbe. Egy szó tárolására ált több RAM chipet használ A Ram chipek 1-1 adatvezetékkel csatlakoznak az adatbuszra
63
Adatátvitel a mikroszámítógép és a perifériás egységek között
Bemenő adat mikroprocesszor I/O eszköz Kimenő adat VEZÉRLŐ ADAT Parancs szó Állapot szó
64
Interface A CPU és a hozzá csatlakozó egységek közötti információátvitel céljából biztosítani kell az egységek illesztését és a rendszer összehangolt működését. INTERFACE: két rendszer, vagy egy rendszer egyes egységei közötti képzelt felületnek az a része, amelyen keresztül az információ átvitele az igényelt illesztés biztosításával (kódátalakítás, sebességváltoztatás stb.) történik. Interface rendszer: kábelek, csatlakozók, meghajtó-és vevő áramkörök, jelvezeték előírások, időzítési és vezérlési egyezmények olyan készlete, amely biztosítja az egységek közötti egyértelmű, rendezett és szervezett információcserét.
65
Mikroszámítógép és külső logika közötti adatátviteli megoldások
Programozott I/O adatátvitel Az összes adatátvitellel kapcsolatos műveletet a számítógép program vezérli. Megszakítással kezdeményezett I/O adatátvitel Az adatátvitelt egy megszakítás indítja. Egy külső eszköz rákényszeríti a mikroszámítógépet, hogy félbeszakítsa a futó programot, hogy a külső eszköz kérését végrehajtsa. Közvetlen memória-hozzáférés (DMA) Közvetlen adatátvitel a memória és az I/O eszköz között, a CPU igénybevétele nélkül.
66
Megszakítás okai Ki kell szolgálni egy megszakítást kérő készüléket
A jelenleg futó program folytatása valamilyen akadály miatt nem lehetséges, az akadály elhárításához szoftveres beavatkozás szükséges
67
Megszakítás-kiszolgálás
Meg kell állítani a jelenleg futó programot Tárolni kell a jelenleg futó programra vonatkozó információkat El kell indítani a megszakítást kiszolgáló rutint Be kell fejezni a megszakítást Vissza kell állítani az eredeti állapotot
68
Megszakítás fő típusai
Külső megszakítások Egy vagy több I/O eszköz generálja Belső megszakítások Maga a mikroprocesszor generálja, hogy sajátos feltételek, vagy hibák előfordulását jelezze Pl: energia kimaradás, rendszer hibásodása, adattovábbításkor előforduló hiba Szoftver által generált (szimulált megszakítások) Programhiba kiküszöbölése Szervízteszt futtatás megszakítása
69
I/O portok címzése Az I/O PORT bufferek úgy címezhetők mint a memória rekeszek. föld tápfeszültség óra I/O PORT cím I/O port A I/O PORt választása Külső eszközök I/O port B adat WRITE READ
70
DMA adatátvitel
71
Gyakorlati példa Zuhanyzó vízhőmérsékletének szabályozása mikroszámítógépes rendszerrel:
Hideg-meleg víz keverékének hőmérsékletét mérjük Feladat: a mért hőmérséklet összehasonlítása az előre megadott kívánt hőmérséklettel, a különbségtől függően szabályozza a melegvíz hozzáadás mennyiségét. A beállítást szabályozó program neve: „BEALLIT” °C SZ.G.
72
I/O portra küldött jel nem jó, adatvesztés
Program: START memória 0400 Memória címek BEALLIT 073E Program END A hőmérséklet érzékelőtől belépő adatok befolyásolják a szabályozásban résztvevő eszközök működését. Megszakítási program „MEGSZAKIT” I/O portra küldött jel nem jó, adatvesztés
73
Hogyan tudja meg a mikroszámítógép, hogy új hőmérsékleti adat szerint kell szabályozni?
Program: memória „MEGSZAKIT” program elhelyezi az adatot az adatbufferbe adat START MEGSZAKIT END START BEALLIT END A BEALLIT program kiolvashatja az adatbufferből
74
Programmegszakítás lépései
A hőmérséklet érzékelő átviszi a külső buszrendszer vezérlővonalain lévő megszakítás jelet (IREQ- Interrupt REQuest) a mikroszámítógépbe A mikroszámítógép „dönti el”, hogy fogadja, vagy visszautasítja a megszakítás kérést. Ha fogadja, akkor a külső buszrendszer vezérlő vonalain keresztül jelzi azzal, hogy kiküld egy megszakítás nyugtázó IACK (Interrupt AC Knowlendge) jelet A hőmérséklet érzékelő az IACK jelet engedélyező jelként értelmezi
75
Megszakítás Megszakítás-kérés BEALLIT Végrehajtás folytatása
D végrehajtás BEALLIT végrehajtás C B MEGSZAKIT A hőmérésklet-érzékelő megváltozott adata a mikroszámítógépbe kerül
76
Megszakítás utasítás-sorozat lépései
A CPU-ban folyik a „beállít” program végrehajtása Megszakítás-kérés érzékelésekor a CPU a program megszakításával kapcsolatos teendőket végzi pl: regiszterek tartalmának megőrzése, megszakítás nyugtázása A CPU-ban megkezdődik a „Megszakít” program végrehajtása „Megszakít” program befejezése 1. lépésbeli állapot visszaállítása „Beállít” program folytatása Egy megszakítási utasítás sorozat min. 50µs-ig tart! IDŐVESZTESÉG! RAM külső eszköz
77
Mit kell megőrizni? Az éppen futó program fontos információi az:
Állapotjelzőben (status flag) Adatszámlálóban (DC) Akkumulátorban(A) vannak, amelyeket az új program „kisepri”. Az információ megőrzéséről, beleértve a programszámláló (PC) tartalmát is ,a megszakítás program indítása előtt gondoskodni kell. A megszakítás program befejeztével, a megőrzött programszámláló (PC) érték annak az utasításnak a címe, amelyik éppen végrehajtás alatt volt a megszakításkor.
78
Megszakítás-cím vektor
A CPU annak a programnak kapja meg a címét, amelynek a végrehajtását a megszakítás-logikával előírjuk. Ez a cím megszakítás-cím vektor. Jelentősége, ha több program kér megszakítást.
79
Időzítés kérdése Az egyes hőmérsékleti adatok továbbítása a számítógép felé nem egyenletes időközönként történik a rendszer aszinkron módon bekövetkező eseményeket érzékel. Ha a bevitel idejét megszabtuk volna, akkor az adatok egy részét elveszítenénk. bejut elvész M M B M M B t(idő)
80
Emlékeztető: A programozott IO hátrányai
az IO átvitel sebessége attól függ, hogy a CPU milyen gyorsan tudja az IO eszközt vizsgálni és kiszolgálni... a CPU (feleslegesen) sok időt „veszít” az az eszköz állapotának a vizsgálatával és az adatátvitellel... ha több (vizsgálandó) eszköz van... az adat a CPU-n halad keresztül, ahelyett hogy közvetlenül a memóriába jutna...
81
DMA adatátvitel A DMA közvetlen adatátvitelt eredményez a memória és az I/O készülék között, a CPU igénybevétele nélkül. A periféria közvetlen memória-hozzáféréssel rendelkezik Cél: a közvetlen vezérléssel nagysebességű adatátvitel elérése
82
DMA (Direct Memory Access)
Közvetlen kapcsolat a memóriával. Sok esetben az adatokat egy ellenőrző- vagy port-kártya (CD-ROM Interface, merevlemezellenőrző, I/O-kártya) szállítja el a számítógép memóriájának egy meghatározott helyére. Normál esetben ezt a feladatot a számítógép főprocesszora látja el. Azért, hogy kevésbé legyen terhelt a processzor, és hogy az adatközvetítés gyorsabb legyen, néhány ilyen kártya a DMA-eljárást használja: miközben a főprocesszor egy teljesen más feladattal van elfoglalva, ez az eljárás közvetlenül hozzákapcsolódik a RAM-hoz, és a kívánt címen tárolja az adatokat. E feladat elvégzéséhez a kártyának meg kell adni azt a lehetőséget, hogy csak ő kapcsolódhasson hozzá a számítógépen kijelölt DMA-csatornához.
83
DMA sematikus ábra
84
DMA adatátvitel A CPU, az I/O készülékek és a memória közös buszon osztozkodnak. A CPU és az I/O készülékek azonos ciklusban nem férhetnek hozzá a memóriához A DMA végezhet memória-memória, vagy I/O-I/O adatátvitelt is.
85
DMA adatátvitel folyamata
86
DMA adatátviteli eljárások
CPU leállítás (CPU halt): a DMA kérésére a CPU leáll, és lekapcsolódik a buszról a DMA adatátvitel tartama alatt. CPU működésének lassítása! Memória időszelet: a memória ciklus két időtartamra oszlik. Az egyik a CPU-é, a másik a DMA-é. Ez a módszer nagy CPU végrehajtási és nagy DMA adatátviteli sebességet eredményez. CPU és DMA memória-hozzáférés minden ciklusban van. (Nagy sebességű memóriát igényel)
87
DMA adatátvitel processzor leállításával
88
DMA adatátviteli eljárások
Ciklus lopás: kompromisszum a CPU halt és a memória időszelet között, ami átlapoláshoz vezet a CPU program végrehajtása és a DMA adatátvitele között. Ha a CPU-nak és a DMA-nak azonos időben lenne szüksége memóriára, a DMA-nak prioritása van a CPU-val szemben. A CPU működését lassítja, de nem állítja le.
89
DMA által használt regiszterek
Címregiszter: azokat a memória-rekesz címeket tárolja, amelyek a következő írási/olvasási műveletekhez szükséges információkat, adatokat tárolják. Számláló regiszter: a szavakat számlálja Állapot regiszter: tartalma meghatározza az adatáramlás irányát, vagyis a hardware üzemmódját. A CPU szempontjából nézve ezek a regiszterek úgy kezelhetők, mint az I/O portok, vagy a címezhető memória rekeszek.
90
címregiszter 0080 Számláló-regiszter 007F 003 Állapot-regiszter Az ábráról leolvasható a szószám, vagyis, hogy az adatbuffer 7F16 byte hosszú és a külső eszközről érkező adat a memóriarekeszbe kerül tárolásra.
91
Állapot-regiszter 7 6 5 4 3 2 1 0 Bit szám
0 = Adatbemenet külső eszközről Nem használt 1 = Adatkimenet külső eszközre 1 = DMA logika aktív 0 = DMA logika inaktív
92
DMA művelet kezdeményezésekor a következő program-lépéseket kell végrehajtani
Be kell tölteni az induló cím alacsonyabb helyértékű felét a DMA címregiszterébe Be kell tölteni az induló cím magasabb helyértékű felét a DMA címregiszterébe Be kell tölteni a szószámra vonatkozó adatokat a DMA számláló regiszterébe Be kell tölteni egy vezérlő-kódot (pl:0316) a DMA állapotregiszterébe. A vezérlő-kód megállapítja az adatátvitel irányát és annak megfelelően állítja be a DMA-t
93
A DMA rendelkezik olvasás és írás vezérlő vonalakkal
A DMA rendelkezik olvasás és írás vezérlő vonalakkal. WRITE vezérlés hatására a DMA adatokat ír be a RAM-ba, READ vezérlés hatására pedig adatokat olvas ki a RAM vagy ROM memóriából. A DMA adatátvitel irányát az állapot-regiszter tartalmának átírásával változtatjuk meg. Ha az állapot-regiszter 1-es bithelyére 0 kerül, akkor a végrehajtás alatt lévő művelet leáll.
94
DMA művelet végrehajtása
A DMA vezérlő egy adatszót fogad az I/O interface-től és kéri a rendszerbusz használatát a DMA átvitelhez Amint megkapta a buszt, kiküldi a memória-rekesz címét és az adatszót A memória kész jel vételekor a DMA vezérlő megvizsgálja a szószámot Ha a szószám ≠ 0-val, akkor : a számláló-regiszter tartalmát 1-gyel csökkenti, A címregiszter tartalmát pedig 1-gyel növeli így a perifériából memóriába egy újabb adatszó átvitele megy végbe Ha a szószámláló = 0, akkor a DMA befejezi az adatátvitelt és közli a CPU-val, hogy az adatátvitel kész.
95
READ művelet időzítése
órajel DMAREQ INHIBIT CPU 0 A0-A15 DMACK DMARW D0-D7 WRITE DMA Óra ciklus
96
Események sorrendje Amikor a DMA érzékeli a logikai 1-et, a DMA REQ vonalon az INHIBIT jel logikai 0 lesz. Az INHIBIT logikai 0 marad, amíg a második logikai 1-be menő óraimpulzus meg nem jelenik Egy óraciklus ideig a CPU műveletek szünetelnek, mert az INHIBIT a CPU órajel vonalat logikai 0-n tartja. Ilyenkor a CPU nagy ellenállással kapcsolódik a cím és az adatbuszokra, vagyis gyakorlatilag lekapcsolja magát a buszról. Ha az INHIBIT 0, akkor a címregiszter tartalma megjelenik a buszregiszter címvonalon. A DMA eszköz a DMAC logikai 1 szintre helyezésével nyugtázza a DMA kérést A DMA állapotregiszter tartalma határozza meg a DMARW vezérlő vonal beállítását (0-külső eszközről kell adatot vinni a buszrendszer adatvonalaira) Az állapotregiszter 0 bithelye határozza meg a WRITE vezérlővonal beállítását. A címvonalon lévő címet minden RAM interface dekódolja és a címnek megfelelően kerül kiválasztásra a megcímzett RAM. Amikor a WRITE vezérlőjel logikai1, az adat a megcímzett memóriarekeszbe kerül.
97
DMA vezérlő funkciók Címvonal vezérlés Adatátviteli vezérlés
Cím tárolás Szószám-tárolás Üzemmód-vezérlés
98
Címvonal vezérlés A DMA rendszerben a memória-címbuszt vagy a CPU, vagy a DMA hajtja meg attól függően, hogy az adott ciklusban a memóriát melyik eszköz használja. A DMA ciklusban a DMA vezérlőnek a kívánt DMA művelet elvégzéséhez szükséges címet kell a címbuszra adni.
99
Adatátviteli vezérlés
A DMA vezérlőnek a memória és az I/O készülék közötti közvetlen adatátvitelhez –megfelelő időzítéssel- vezérlőjeleket kell szolgáltatni. Ezek a vezérlőjelek csak a DMA ciklusban kapcsolódnak a vezérlő-buszra.
100
Cím-tárolás A DMA vezérlő címregisztere tartalmazza a következő írásra vagy olvasására kerülő szó címét. Ezt minden szó-átvitelénél inkrementálni vagy dekrementálni kell.
101
Szószám-tárolás A DMA adatátvitel indításakor a CPU betölti a DMA vezérlő számláló-regiszterébe az átvitelre kerülő szavak számát. A DMA adatátvitel alatt a DMA vezérlő számlálja az átvitt szavakat és a megadott számú szó átvitele után befejezi az adatátvitelt.
102
DMA vezérlés Elosztott DMA: mindegyik I/O készülékben van egy DMA vezérlő Centralizált DMA: Egyetlen DMA szolgál az összes I/O készülék vezérlésére. DMA adatátvitel indításakor a CPU előírja: az üzemmódot, a kezdő memória-címet az átviendő szavak számát az átvitel irányát
104
Repeatitive DMA Néhány alkalmazásnál igény a DMA adatátvitel többszöri ismétlése a CPU beavatkozása nélkül. Ez a ~ A funkció megvalósításához 2 regiszter kell. Az egyik tárolja kezdőcímet A másik az induló szószámot Így lehetővé válik, hogy a DMA vezérlő automatikusan újra induljon a CPU beavatkozása nélkül.
105
Multiplex DMA/CPU A nagy sebességű DMA adatátvitel mellett lehetővé teszi a nagysebességű CPU működést is. A leggyorsabb DMA működés a CPU megállításával jön létre Multiplex esetben 20%-kal csökken, de CPU leállás helyett tovább dolgozik Hátrány: jobb hardware igény. (nagysebességű RAM, két háromállapotú és kétirányú buszmeghajtó szükséges)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.