Gábor Dénes Főiskola Győr
Mikroszámítógépek Előadás vázlat 102 2004/2005 tanév 2. szemeszter Készítette: Markó Imre 2005
Memóriakezelés
Készítette: Markó Imre 2005
A tárolókezelés alapfogalmai
Készítette: Markó Imre 2005
Alapfogalmak A tárolószervezésnek legfontosabb elve, hogy a gyakran használt adatokat a processzor közelében kell elhelyezni. Elérési idő: az cím kiadása és az adat megjelenése között eltelt idő. Feléledési idő: a befejezősött művelet és a következő művelet közötti idő. Ciklusidő: Elérési idő + Feléledési idő.
Készítette: Markó Imre 2005
Tárhierarchia A társzervezés elve: a processzorhoz közelebb gyorsabb, de kisebb méretű memória helyezkedik el. Szintjei – Regiszterek: gyors, kis méretű tárak, méretük megegyezik általában a sínszélességgel – Cache: n*10-m*100 kB méretű gyors tároló – Operatív tár: n*MB méretű 1-70 ns elérési idejű tár – Háttértár: n GB méretű 5-15 ms elérési idejű tár – Archiváló tár: 0,5-100 GB méretű lassú tároló
Készítette: Markó Imre 2005
Tárhierarchia Átvitel vezérlése Regiszterek Operandusok,
utasítások
Cache Blokkok
Főtár Lapok
Lemezblokkok
Háttértár Állományok
Archiváló tár Készítette: Markó Imre 2005
Program (1-32 B) Cache vezérlés (8-256 B) Operációs rendszer (512 B – 32 KiB) Felhasználó n MiB
Tárolókezelés feladata 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 Készítette: Markó Imre 2005
Regisztertárak
Készítette: Markó Imre 2005
Regisztertárak A regisztertárak regiszterek összesége. Beletartoznak a felhasználó által elérhető és nem elérhető regiszterek is. A regisztertárakkal szemben támasztott követelmények: – Adat forgalom csökkentése a memória és a processzor között – Lehető legnagyobb méret – 3-címes elérési lehetőség (2 operandus+ eredmény) – Általános felhasználású legyen
Készítette: Markó Imre 2005
Regisztertárak 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 átlapó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 Készítette: Markó Imre 2005
Regisztertárak Á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.
Készítette: Markó Imre 2005
Regisztertárak Az ablaktechnika (register windowing) során a regisztertömböt egyforma részekre (window) osztjuk, amelyek közül mindig csak egy érhető el. Az ablakok átlapolhatják egymást. Az ablak kezdetét az ablakmutató (Current Window Pointer, CWP) jelöli ki. A megoldás elsősorban a paraméterátadást könnyíti meg. A bloktechnika (register blocking) során a regisztertömböt tetszőleges méretű átlapolható részekre osztjuk fel. Az aktuális blokk kezdetét a blokk-mutató (Current Block Pointer, CBP) jelöli ki. Előnye a rugalmasság, hátránya, hogy ügyelni kell az alul és túlcsordulásra is. Készítette: Markó Imre 2005
Regisztertárak kezelése Regiszterbank CBP
Ablaktechnika
Blokktechnika
CWP
CBP
000
000
000
128
128
128
256
256
256
384
384
384
512
512
512
Készítette: Markó Imre 2005
Ablaktechnika CWP-1 R0 R7 R8 R16 R24 R32
Globális változók Bemenő paraméterek Lokális változók Kimenő paraméterek
R0 R7 R8
R0 Globális változók CWP
R7 R8
R16
R16
R24
R24
R32
Bemenő paraméterek Lokális változók Kimenő paraméterek
R32 R40
R40
R40
R48
R48
R56
R56
R56
R64
R64
R64
Készítette: Markó Imre 2005
Globális változók CWP+1
R48
Bemenő paraméterek Lokális változók Kimenő paraméterek
Cache-tárak
Készítette: Markó Imre 2005
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. Készítette: Markó Imre 2005
Cache-tárak jellemzői –
– –
–
Tárolhatnak csak utasítást, adatot és utasítást együtt, vag ykü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ükel 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. Készítette: Markó Imre 2005
Cache-tárak jellemzői –
– – – –
A cache tároló tartalmának megfelelő időben és módon kell az operatív tárba visszaíródnia. Ez fontos az adategyezőségek miatt. A folyamat, ami ezt megvalósítja, a visszaírási stratégia. A cache tartalmának cseréjekor fontos a megfelelő helyettesítési stratégia kialakítása. Nagyon fontos, hogy a cache és a processzor működési sebessége minél közelebb legyen egymáshoz. A megfeleő teljesítmény érdekében ajánlott a dedikált sínrendszer használata. A találatot cache-hit-nek, a sikertelenséget cache-missnek nevezzük. Készítette: Markó Imre 2005
A cache működése Cache-hit Processzor
Cache 200
Főtár 200
Adat
Adat
Címsín Adatsín
Cache-miss Processzor
Főtár
Cache 200
200
Adat
Címsín Adatsín Készítette: Markó Imre 2005
Adat
Cache-tárak típusai 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.
Készítette: Markó Imre 2005
Cache-tárak típusai 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'. Legalább minden adatblokk rendelkezni kell ilyen bittel. – 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.
Készítette: Markó Imre 2005
Cache-tárak jellemzői – – –
– – –
A cache mérete, amely 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. Készítette: Markó Imre 2005
Cache típusai A továbbiakban a példákban az alábbi rendszerstruktúrát használjuk: – A blokkok mérete 4 szó. vagyis 16 bájt. Ebből következik, hogy a blokkok csak 16-tal osztható címen kezdődhetnek. – A cache összesen 256 blokk + cím + jelzőbitek tárolására képes. – A tárolóhelyek fizikai (vagy virtuális) címe 32 bites.
Készítette: Markó Imre 2005
Teljesen asszociatív cache CÍM
szó bájt
blokk sorszám
16831
2 1 2
28 blokk sorszám 0
V D
tag-rész
16831
2 0. szó 0 1 2 adatrész
1. szó 3 0 1 2
2
3 0 1 2
0 1
3
2. szó 0 1 2
3. szó 3 0 1 2
3
3
0 1 2
3 0 1 2
3
megcímzett bájt 255 Készítette: Markó Imre 2005
Asszociatív (fully associative) cache A beolvasott blokk bárhova (sorba) tehető. A sort a helyettesítési algoritmus szabja meg. Keresés a fizikai cím felső 28 bitje alapján történik. Cache-miss esetén azt a memóriábol beolvassa és a cacheben is eltárolja. Az összes összehasonlítás egyidőben töré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. A V bit az adat érvényességét adja meg. A D bit mutatja meg, hogy történt-e módosítás a sor valamelyik bájtjában. Készítette: Markó Imre 2005
Közvetlen lek. (direct mapping) cache CÍM
lapsorszám
sorindex
20 lap sorszám 0
2 sorindex
tag-rész
0. szó 0 1 2 adatrész
168
0 1 2
V D
2 1
31
168
szó bájt
8 1. szó 3 0 1 2
2
3 0 1
2
3
2. szó 0 1 2
3. szó 3 0 1 2
3
3
0 1 2
3 0 1 2
3
megcímzett bájt 255 Készítette: Markó Imre 2005
Közvetlen lek. (direct mapping) cache Egy-egy blokk csak meghatározott helyre kerülhet. A blokk sorát a blokksorszám jelöli ki. A példában a 28 bit alsó 8 bitje (256 sor). A 28 bites cím egy 20 bites lap- (tag) és a egy 8 bites sorindexre bomlik. Keresés esetén a címből előállított sorindex alapján kikeresi a keresett sort, majd a felső 20 bitet összehasonlítja. Cache-hit esetén az alsó 4 bit kijelöli a bájtot. Cache-miss esetén a memóriából beolvassa és a cache-ben is eltárolja. 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. Készítette: Markó Imre 2005
Közvetlen lek. (direct mapping) cache 0000000 0 0000001 0 0 0 0 0 1 0 blokk 0000011 0000100 0 0 0 0 1 0 1 1. 0 0 0 0 1 1 0 blokk 0000111 tag Blokk offset Cache index Készítette: Markó Imre 2005
0001000 0010000 2. 0 0 1 0 0 0 1 0001001 0 0 0 1 0 1 0 blokk 0 0 1 0 0 1 0 0001011 0010011 0001100 0010100 3. 0 0 1 0 1 0 1 0001101 0 0 0 1 1 1 0 blokk 0 0 1 0 1 1 0 0001111 0010111 tag tag Blokk Blokk offset offset Cache index Cache index
Csoport asszociatív (set associative) c. CÍM
lapsorszám
csoportindex
lap sorszám 0
2 1
31
168 22
szó bájt 2
csoportindex
6 2
V D
tag-rész
168
0. szó 0 1 2 adatrész
1. szó 3 0 1 2
2
3 0 1 2
0 1
3
2. szó 0 1 2
3. szó 3 0 1 2
3
3
0 1
2
3 0 1 2
3
megcímzett bájt 255 Készítette: Markó Imre 2005
Csoport asszociatív (set associative) c. A két előző átmenete. 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 hasnlítja össze az összes sorban egyszerre. Cache-miss esetén a memóriából beolvassa az adatot, majd eltárolja a cache-ben is. Előnye, hogy rugalmasságban és költségekben is a két előző között helyezkedik el. Készítette: Markó Imre 2005
A cache karbantartása
Készítette: Markó Imre 2005
Tartalom betöltése Aktuális igény felmerülésekor (demand fetching) ez MMU kikeresi a főtárból az adatot tartalmazó blokkot és beírja cache-be. A processzor is automatikusan megkapja. Legegyszerűbb és leggyakoribb megoldás. Előkészítéses (prefetching) megoldás során egy blokk cache-be írása során a következő is beírásra kerül. Kis blokkméretnél célszerű alkalmazni. Célszerű előrevetítési stratégia alkalmazása. A szelektív előkészítés (selective fetching) során az írható adatokat a memóriában tartjuk, a cache-ben pedig csak az olvashatókat tároljuk. Rugalmatlan megoldás, nem használják. Készítette: Markó Imre 2005
Aktualizálás Az egyik legfontosabb művelet. A cache módosítása során a lehető legrövidebb időn belül a memóriát is át kell írni. Azonnali átírás (write through) módszer során a változtatott bájt azonnal átírásra kerül függetlenül attól, hogy az adott blokk a cache-ben van-e. Pufferrel gyorsítható. – Ha a módosított bájthoz tartozó blokk a cache-ben van, a cache tartalma is aktualizálódik – Ha a módosított bájthoz tartozó blokk nincs cache-ben: – Az átírást követi egy visszaolvasás (read-miss) – A blokk betöltése után aktualizálja a cache-t és a memóriát (write through with write allocation) Készítette: Markó Imre 2005
Aktualizálás Visszaírási (write-back) eljárás alkalmazásakor: – Ha a módosított bájthoz tartozó blokk a cache-ben van, csak a cache tartalma aktualizálódik, a főtárat csak a blokk cseréjekor aktualizálja – Ha a módosított bájthoz tartozó blokk nincs cache-ben: – Csak a memóriában aktualizál, a blokkot nem tölti be – A blokkot beolvasás után (fetch first) aktualizálja, visszaírás csak a blokk cseréjekor Általában a fetch first eljárást alkalmazzák a gyakorlatban. A megoldás hátránya, hogy a főtár és a cache egyezősége nem mindig biztosítható, viszont Készítette: Markó Imre 2005
Aktualizálás Egyszeri beírásos (write once) módszer: A főtár tartalmát is aktualizálja a módosított bájt blokkjának első cache-be írásakor. A továbbiakban már csak a cache tartalmát módosítja. Az aktualizálás csak a blokk cseréjekor történik meg.
Készítette: Markó Imre 2005
Helyettesítési eljárások A célja, hogy a hatékonyság növelése érdekében a lehető legkevesebbszer kelljen a cache tartalmát cserélni. A leggyakrabban használt módszer a legkevésbé mostanában használt blokkok cseréje (Last Recently Used, LRU). A blokkcserék követéséhez a változásmátrix-szal van lehetőség. A mátrix sorai blokkonként jelzik a blokk korát, azaz milyen régen nem használták. A mátrixnak annyi sora és oszlopa van, amennyi blokk van a cache-ben. A blokk sorában annyiadik helyen áll '1'-es, ahányadik a használat gyakoriságában a blokk. Ha a blokkot igénybe veszik, akkor az összes többi megelőzött blokkhoz '1'-est egy pozícióval hátrébb toljuk. Készítette:tartozó Markó Imre 2005
Helyettesítési eljárások 0
1
2
3
4
5
0
7
1
2
1 Blokksorszám
1
4
1
5
1
6
1
7
1
8 kor
Számlálóregiszter
8
1
1
3
6
1 0
1
2
3
4
5
6
7
8
3
4
1
2
5
7
0
8
6
5
3
4
1
2
7
0
8
6
0
6
6
1
2
3
2
3
4
3
0
1
4
1
2
5
4
0
6
8
8
7
5
5
8
7
7
Léptető regiszter Módosítás után cserélhető blokk
Készítette: Markó Imre 2005
Helyettesítési eljárások Az eljárás megvalósítható: Számláló regiszterrel, amely blokkonként a blokkok korát tárolja. A legmagasabb értékű blokkot lehet cserélni. Léptetőregiszterrel, amelyben az adott blokk sorszáma annyiadik pozíción található, amennyi a kora. A legutolsó blokk cserélhető. Megelőzési mátrix alapján a mátrix (i,j)-dik eleme =1. Ha az i-edik blokk gyakrabban használt, mint a j-dik. Ha az i-dik blokkot használja a processzor, akkor az i-dik sor minden elemét '1'-re, az i-dik oszlop minden elemét pedig '0'-ra kell állítani. Azt a blokkot kell cserélni, amelynek Készítette: Markó Imre 2005
Adategyezőség biztosítása Fontos, hogy cache és a főtár azonos adatokat tartalmazzon. Oka, hogy a memóriához más eszköz is hozzáférhet. Szerepet játszik: – az alkalmazott visszaírási technika – a cache struktúrális elhelyezkedése Visszaírási módszerek: – Közvetlen visszaírás – Pufferelt visszaírás – Visszaírásí módszer (write back) Készítette: Markó Imre 2005
Adategyezőség biztosítása Címfordítás miatt a virtuális memóriakezeléshez kapcsolódik szorosan. 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.
Készítette: Markó Imre 2005
Adategyezőség biztosítása Előfordulhat, hogy az MMU ugyanazt a fizikai címet két virtuális címhez rendelte, ami ütközést okoz. Ezeket a címeket nevezik szinoníma címeknek. A probléma feloldására hazsnálják az inverz címfordító egységet (Inverz Translation Buffers, ITB). Cache hiba esetén TLB átalakítja a virtuális címet fizikaivá, amit az ITB visszaalakít. Ha nincs olyan, beolvassa az adatot a memóriából.
Készítette: Markó Imre 2005
Adategyezőség biztosítása I/O átvitelek szempontjából fontos ezek lebonyolítása. Ha az IO átvitel közvetlenül a főtárba irányul, akkor problémák adódhatnak. Ilyenkor alkalmaznak egy olyan figyelő rendszert (snoop logic, bus watcher), amely minden címet ellenőriz. Ha az IO folyamat átír a főtárban valamit, a felügyelő ellenőrzi, hogy benn van-e a cache-ben. Ha igen érvényteleníti azt. Olvasáskor ha a cache-ben megvan a kért adat, akkor onnan továbbítja azt. Készítette: Markó Imre 2005
MESI protokoll Multiprocesszoros rendszerekben alkalmazzák az adategyezőség biztosítására. A megnevezés egy rövidítés a Modified, Exclusive, Shared, Invalid szavak kedőbetűinek rövidítése. A MESI a cache tár állpotára vonatkozó információkat tárolja a blokkok mellett: Modified esetben a cache tár tartalma a főtárhoz képest módosítva lett. Exclusive állapotban a blokk tartalma egyezik a főtárral és másik cache-ben nem szerepel. Shared jelzésű blokkok tartalma egyezik a főtárral ls legalább még egy cache-ben megtalálható. Invalid blokkok érvénytelen adatokat tartalmaznak. Készítette: Markó Imre 2005
Virtuális tárkezelés
Készítette: Markó Imre 2005
Problémák Minden program az operatív tárból hajtható végre. Kicsi az operatív tár mérete. Az aktuálisan nem használt programokat, adatokat lassú háttértátolókon kell tárolni, majd onnan betölteni akkor, amikor szükség van rá. A betöltésnél a leggyakoribb az OVERLAY technika, ahol az új programrész a már nem használtat felülírja. Hártánya, hogy nehéz a kezelése, a programozónak kell figyelni a részek betöltésére. A lapozásos tárolókezelési rendszer tulajdonképpen automatikus overlay technika, amely lehetővé teszi a kívánt részek automatikus betöltését. Készítette: Markó Imre 2005
Problémák A lapozás segítségével a teljes tároló folyamatosan címezhető. Azt, ami ezt magvalósítja a virtuális címzés. Az így rendelkezésre álló címterületet virtuális címtartománynak nevezzük. A virtuális cím bármely részében elhelyezkedő blokkot használat előtt át kell vinnni az operatív tárba. Az átvitt blokk mérete lehet változó és rögzített egyaránt. A processzornak ismernie kell a virtuális cím valódi helyét az operatív tárban, tehát a valós címtartományban. A valós cím az alábbiak szerint számítható: valós cím = átvitt blokk fizikai kezdőcíme + relatív cím Készítette: Markó Imre 2005
Virtuális cím átszámítása valós címmé 0 lap0
Teljes tárterület
4 lap1 8 lap2 12 lap3
0 4
Lap keret
8 12
Főtár
Relatív cím = 1995 Fizikai cím = 1995 + 8 * 1024 = 10187
52 56 60 64 68
Készítette: Markó Imre 2005
Leképzés : 60 * 1024
⇒
4 * 1024
Virtuális cím = 63435 Relatív cím = 63435 – 60 * 1024 = 1995
Fizikai cím kiszámítása A fizikai cím táblázatok felhasználásával kerülnek kiszámításra. A szegmens-, illetve laptáblázatok az alábbi információkat tárolják: – Logikai blokk sorszáma, kezdőcíme. A sorszámot általában a felső helyiértékű bitek adják meg – Blokk memóriabeli kezdőcímem ha a blokk a memóriában található – Blokk mérete (csak szegmensnél) – Hozzáférési jogok – Állapotjelzők – A blokk másodlagos tárbeli fizikai címe A táblázatok egy sorát deszkriptornak nevezzük. Készítette: Markóegy Imre 2005
Fizikai cím kiszámítása Virtuális cím sorszám
14
1780
offset
20 Sorszám
blokk fiz. kezdőcíme 12 14
4069
1 M-1 32
+
32 Készítette: Markó Imre 2005
Fizikai cím
5876
Lapozás A lapok azonos és rögzített méretű adatblokkok! – A lapok mérete 512 bájt és 8 KiB közötti lehet. – A lapok nem átlapolhatók és meghatározott, a lappal megegyező méretű helyre kerülhetnek be a memóriába. Ezeket nevezik lapkeretnek. – A fizikai cím kiszámítása: logikai cím = lap logikai sorszáma + relatív cím fizikai cím = lapkeret fizikai címe (báziscím) + relatív cím – A lapkeret sorszámának megadásával a fizikai cím konkatenálással kerül előállításra. – A lapok fizikai kezdőcímét a laptáblázatból lehet kikeresni aImre lap2005 logikai sorszáma alapján. Készítette: Markó –
Lapok betöltése Új lap betöltésére mindig a felmerülő igény (demand fetching) alapján kerül sor, mert nehéz megjósolni a következő lap sorszámát. Az igény felmerülése a lapváltási eljárást indítja el (page fault trap). A lapváltási igény felmerülésekor az utasításvégrehajtást fel kell függeszteni, majd folytatni. Ennek két módja lehet: – Utasítás folytatása a felfüggesztési fázistól (általában az operanduselőkészítési fázis). Ebben az esetben az állapotjelzőket el kell menteni, majd visszatölteni. A mikroprogramozott műveleti vezérlésnél ez bonyolult. – Az utasítás újrakezdése során vissza kell állítani az Készítette: Markó Imre állapotot. 2005 utasítás előtti
Helyettesítési eljárások A felszabadítandó lapkeret kiválasztása történhet – A lapok használatára alapozva, ahol a gyakori lapokat tartjuk a memóriában. – A lapok nem használatára alapozva, amelynél a legkevésbé használt lapokat kíséreljük meg kicserélni. – A cserélendő lapok körének meghatározása: – A cserélhető lapok körébe minden lapot belevonunk. – A cserélhető lapok körét csak a folyamathoz tartozó lapok alkotják.
Készítette: Markó Imre 2005
Helyettesítési eljárások A laphasználat gyakoriságának vizsgálatakor nagyon fontos az aktuálisan használt lapok köre (working set). Ebbe tartozó lapoknál azt vizsgáljuk, hogy mely lapok lettek a leggyakrabban használva. – Véletlenszerű választás csak gyakori lapváltásoknál alkalmazzák – Legrégebben bent lévő lap cseréje (FIFO) az eginybevételtől függetlenül a legrégebbi lapot cseréljük.
Készítette: Markó Imre 2005
Helyettesítési eljárások –
–
–
Legrégebbi nem használt lap cseréje módzsernél a legrégebbi lapokból a legkevésbé használtat viszi ki. Az eljárás a használatot jelző bitet vizsgálja és nullázza ki, ha az nem nulla, és az első 0 értékű jelzőbittel rendelkező lapot cseréli ki. Adott idő alatt nem használt lap cseréje azokat a lapokat cseréli ki, amelyek egy időszak alatt nem lettek használva Legkevésbé használt lapok cseréje (Least Recently Used, LRU) a leggyakoribb módszer
Készítette: Markó Imre 2005
Szegmentálás Olyan adatblokk, amely mérete nem fix, választható – Átlapolhatják egymást, tehát két szegmensben is elérhető ugyanaz az adat – A cím számítása: logikai cím = szegmens logikai sorszáma + relatív cím fizikai cím = szegmens fizikai címe (báziscím) + relatív cím – A szegmens fizikai kezdőcíme a szegmenstáblázatból kerül kikeresésre a szegmens logikai sorszáma alapján – A szegmetálás során sok üresen maradt hely keletkezik az operatív tárban ez nehezíti az új szegmensek betöltését. Ennek feloldásához időnként –
Készítette: Markó Imre 2005
Szegmensek betöltése –
–
Az első szabad helyre (first fit) során a memória kezdetététől számítva a szegmens a legelső szabad helyre kerül. Kisebb szegmensek során kevésbé töredezik a memória. A következő szabad helyre (next fit) az üres hely keresése az előző szegmens elhelyezésétől kezdődően indul. A teljes memória egyenletes kihasználását célozza meg.
Készítette: Markó Imre 2005
Szegmensek betöltése –
–
A legjobb hely (best fit) kiválasztásakor a szegmenst arra a helyre töltik be, amelyet a lehető legjobban kitölt. Ezzel a megoldással összefüggő memóriaterületek alakulnak ki. A legrosszab hely (worst fit) során a cél, hogy a lehető legnagyobb hely maradjon szabadon a betöltött szegmens mellett.
Készítette: Markó Imre 2005
Virutális címek leképzése A lapok- és szegmensek kezdőcímeit a tárolórendszer táblázatokban tárolja más kiegyészítő adatokkal együtt. Az MMU feladata a táblázatok tartalmának kialakítása, karbantartása, valamint a virtuális és logikai címek átalakítása valós címmé. Tulajdonképpen többlépcsős indirekt címzés. A memóriakezelésnek tulajdonképpen három különböző módja lehetséges: – Lapozás – Szegmentálás – Szegmentált lapozás Készítette: Markó Imre 2005
Egylépcsős lapozás Valós tároló Virtuális cím lapsorszám
offset
20 Lapsorszám
lapkeret sorszám 12
1 M-1 20
Készítette: Markó Imre 2005
+
32 Fizikai cím
Kétlépcsős lapozás Valós tároló
Virtuális cím laptábla ssz. Laptábla sorszám
lapsorszám
offset
10
Lapsorszá m 10 1023
lapkeret sorszám 12
1023
Laptábla katalógus laptábla lapkeret ssz.
Lapsorszá m
1023
Készítette: Markó Imre 2005
lapkeret sorszám
+
32
20
Háromlépcsős lapozás Valós tároló
Virtuális cím RP
lapkat. ssz.
20(32) Lapkat. sorszám
7
laptábla ssz. Főkat.
lapkat kezd.
127
lapkat kezd.
Lapsorszá m
lapkeret sorszám 12
+
63
Lapsorszá m
lapkeret sorszám
63 Laptábla katalógus
127 Készítette: Markó Imre 2005
offset
6
7
Laptábla sorszám
lapsorszám
20
32
Egylépcsős szegmetálás Valós tároló Virtuális cím sorszám
offset
8 Sz.sorszám
Szegmens fiz. címe 24
max 255 32
Készítette: Markó Imre 2005
+
32 Fizikai cím
Kétlépcsős szegmetálás Valós tároló
Virtuális cím relatív cím Szegmens sorszám regiszter
állapot jelző 2 16
Sz.sorszám
Szegmens fiz. címe 32
max 64K – 1 32 Készítette: Markó Imre 2005
+
32 Fizikai cím
Kétlépcsős szegmetált lapozás Valós tároló relatív cím
állapot jelző Virtuális cím
2
sz.ssz.
16
Sz. ssz. regiszter
sz.kezdőcíme
32
32
64k – 1
+ 32
Virtuális cím lapsorszám
offset
20 lapsorszám
Lapkeret sorszám 12
1M – 1 20 Készítette: Markó Imre 2005
+
32 Fizikai cím
Háromlépcsős szegmetált lapozás Virtuális cím
relatív cím
állapot jelző 2
Sz. ssz. regiszter
sz.ssz.
16
64k – 1
sz.kezdőcím e
32
32
+ 32
Új virtuális cím
Készítette: Markó Imre 2005
Háromlépcsős szegmetált lapozás – II Új virtuális cím
32
kat.tábla lapkeret sorsz. Virtuális cím
20
laptábla ssz. Laptábla sorszám
lapsorszám
Valós tároló offset
10
Lapsorszá m 10 1023
lapkeret sorszám 12
1023
Laptábla katalógus laptábla lapkeret ssz.
Lapsorszá m
1023 Készítette: Markó Imre 2005
lapkeret sorszám
+
32
20
A tárolóhoz fordulás gyorsítása Memóriatömbök használata A folyamatok párhuzamosításán alapul a memóriatömbök átlapolása, a memory interleaving. A memóriát címzés szempontjából blokkokra osztják, mindegyikhez külön hozzáférési lehetőséggel. A felbontás 2, 4 és 8 tömbre történhet. A memória blokkokra osztásának címzési lehetőségei: – Alacsony szintű megosztással (low order interleaving) a memóriaolvasás gyorsítására szolgál. – Magas szintű megosztással (high order interleaving) modularizált, egymástól független memóriablokkok használatát teszi lehetővé. Készítette: Markó Imre 2005
A tárolóhoz fordulás gyorsítása
Készítette: Markó Imre 2005
&
3. blokk
&
2. blokk
1. blokk
&
&
0. blokk
A tárolóhoz fordulás gyorsítása Átlapolt címzés A DRAM-ok esetén fellépő feléledési időt (recovery time) használják fel egy újabb címzés indítására. Ez természetesen nem hivatkozhat ugyanarra a tárolótömbre, hiszen az nem tud címet fogadni. A módszer alkalmazásához a tárolót tömbökre kell osztani (bankokra). Két tömb esetén míg az egyiket írjuk, amásik már olvasható és fordítva. Ezt az elérést használják ki aza EDO RAM-ok is.
Készítette: Markó Imre 2005
Translation Lookaside Buffer – TLB CPU
TLB
Lapcím fordítás
Készítette: Markó Imre 2005
Cache
Főtár
Eszközök címzése Az perifériák elérése is címek alapján történik. Általános esetben ki kell választani aperifériát, majd közölni kell az adatátvitel irányát is. Két eltérő módon valósulhat ez meg: Memóriába ágyazott címzés során a fizikai címtartomány egy érsézbe építjük be az IO eszközöket. Minden memóriát kezelő utasítás képes elérni a perifériákat is. Közvetlen perifériacímzés során a memória és a periféria is ugyanazt a címtartományt használja. A címek érvényességét mindegyik eszköz számára vezérlőjelek határozzák meg. Gyakran a perifériák esetében a címtartomány csak egy részét használják ki. Készítette: Markó Imre 2005
Tárolóvédelem megvalósítása A tárolóvédelem az alábbi területekre terjed ki: – A memóriaterület védelme, ami a címzések helyességének ellenőrzését jelenti. Ezt a feladatot az MMU hajtja végre minden memóriaművelet esetén. Ez a feladat már hardveresen biztosítva van minden esetben. – Rendszerprogramok védelme a felhasználói beavatkozásoktól. – A felhasználók feladatainak egymástól való védelme. – A tárolt adatokhoz történő hozzáférési lehetőségek ellenőrzése. Készítette: Markó Imre 2005
Programok és felh. adatok védelme A védelemnek két fajtája használatos: Hierarchikus védelmi rendszerben védelmi szinteket A koncentrikus körök a használnak. programok egyes kiszolgáló I/O védelmi szintjét rutinok jelentik. A legbelső kör operációs rendszer a legprivilegizált alkalamzói programok (operációs rendszer). Kifelé haladva csökkennek a lehetőségek és a védelmek is. Progrmaok más rutinokat csak saját szintjükön hívhatnak. Magasabb védelmi szintet csak kapukon keresztül lehet elérni. A szintek közötti védelmet a saját veremtároló valósít meg. A taszkok védelmét a feladatotk deszkriptorai valósítják meg. Készítette: Markó Imre 2005
Programok és felh. adatok védelme Nem-hierarchikus védelmi rendszer Minden feladathoz egy műveleti tábla van hozzárendelve, amely meghatározza a task által végezhető műveleteket, amelyek más feladatokat érintenek. Bonyolult megoldás.
Készítette: Markó Imre 2005
Programok és felh. adatok védelme Adatok védelme Az adatok védelme érekében a szegmensekez, lapokhoz hozzáférési jogokat rendelünk hozzá, amit deszkriptorok tartalmaznak. Ezek a jogok: Olvasási jog esetén a tárolóhoz forduló tetszőleges adatot kiolvashat. Írási jog esetén a folyamat átírhatja a tárolóterület adatait. Végrehajtási jog esetén a folyamat elindíthat kódot. Ez a jog adatszegmenshez nem rendelhető hozzá. Készítette: Markó Imre 2005
PC-kben használatos memóriatípusok ROM Az adatok védelme érekében a szegmensekez, lapokhoz hozzáférési jogokat rendelünk hozzá, amit deszkriptorok tartalmaznak. Ezek a jogok: Olvasási jog esetén a tárolóhoz forduló tetszőleges adatot kiolvashat. Írási jog esetén a folyamat átírhatja a tárolóterület adatait. Végrehajtási jog esetén a folyamat elindíthat kódot. Ez a jog adatszegmenshez nem rendelhető hozzá. Készítette: Markó Imre 2005
PC-kben használatos memóriatípusok RAM Az adatok védelme érekében a szegmensekez, lapokhoz hozzáférési jogokat rendelünk hozzá, amit deszkriptorok tartalmaznak. Ezek a jogok: Olvasási jog esetén a tárolóhoz forduló tetszőleges adatot kiolvashat. Írási jog esetén a folyamat átírhatja a tárolóterület adatait. Végrehajtási jog esetén a folyamat elindíthat kódot. Ez a jog adatszegmenshez nem rendelhető hozzá. Készítette: Markó Imre 2005
RAM fajtái SRAM Statikus RAM, az információt flip-flopok tárolják.
Készítette: Markó Imre 2005
RAM fajtái SRAM
Készítette: Markó Imre 2005
RAM fajtái SRAM - olvasási ciklus
Készítette: Markó Imre 2005
RAM fajtái SRAM - írási ciklus
Készítette: Markó Imre 2005
RAM fajtái SRAM fajtái - Aszinkron SRAM - Burst SRAM - Pipelined Burst SRAM
Készítette: Markó Imre 2005
RAM fajtái DRAM Dinamikus RAM, a töltéseket a félvezető elektródák közötti kapacitások hordozzák.
Készítette: Markó Imre 2005
RAM fajtái DRAM
Készítette: Markó Imre 2005
RAM fajtái DRAM
Készítette: Markó Imre 2005
RAM fajtái DRAM
Készítette: Markó Imre 2005
RAM fajtái FPM DRAM Fast Page Mode RAM
Készítette: Markó Imre 2005
RAM fajtái EDO RAM Extended Data-Out RAM
Készítette: Markó Imre 2005
RAM fajtái Burst EDO RAM
Készítette: Markó Imre 2005
RAM fajtái SDRAM
Készítette: Markó Imre 2005
RAM fajtái SDRAM
Készítette: Markó Imre 2005
RAM fajtái SDRAM
Készítette: Markó Imre 2005
RAM fajtái DDR RAM
Készítette: Markó Imre 2005
RAM fajtái DDR RAM
Készítette: Markó Imre 2005
RAM fajtái DDR RAM
Készítette: Markó Imre 2005
RAM fajtái RD RAM Rambus RAM
Készítette: Markó Imre 2005
RAM fajtái RD RAM
Készítette: Markó Imre 2005
RAM fajtái RD RAM
Készítette: Markó Imre 2005
RAM fajtái VRAM
Készítette: Markó Imre 2005