Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 2. szemeszter. Készítette: Markó Imre 2005



Hasonló dokumentumok
Számítógép architektúrák

elektronikus adattárolást memóriacím

Máté: Számítógép architektúrák

Fábián Zoltán Hálózatok elmélet

Számítógép Architektúrák

Dr. Illés Zoltán

Számítógép felépítése

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Programozás alapjai. 10. előadás

Operációs rendszerek előadás Multiprogramozott operációs rendszerek

Operációs rendszerek III.

Problémák. Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve

Operációs rendszerek Memóriakezelés 1.1

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása:

Bevezetés az informatikába

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Digitális rendszerek. Mikroarchitektúra szintje

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

Utolsó módosítás:

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Az interrupt Benesóczky Zoltán 2004

BUSZ-ok. Az IBM PC-k buszrendszerei

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

A 32 bites x86-os architektúra regiszterei

Magas szintű optimalizálás

Operációs rendszerek. Az NT memóriakezelése

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

A mikroprocesszor felépítése és működése

OPERÁCIÓS RENDSZEREK. Elmélet

Adatelérés és memóriakezelés

Számítógép architektúrák. Tartalom. A memória. A memória

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

11. Gyakorlat. Az operációs rendszer szintje

Az operációs rendszer szerkezete, szolgáltatásai

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

SzA19. Az elágazások vizsgálata

Informatika érettségi vizsga

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

A számítógép egységei

Memóriakezelés (Memory management) folytatás Virtuális memória és kezelése

9. Virtuális memória kezelés

Számítógépek felépítése, alapfogalmak

Számítógépek felépítése

Architektúra, memóriák

Aritmetikai utasítások I.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Processzor (CPU - Central Processing Unit)

Mikrorendszerek tervezése

Mikrorendszerek tervezése

8. Memória management

Központi vezérlőegység

1. Az utasítás beolvasása a processzorba

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Számítógép Architektúrák (MIKNB113A)

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Digitális rendszerek. Utasításarchitektúra szintje

Máté: Számítógép architektúrák

A Számítógépek hardver elemei

Programozas 1. Strukturak, mutatok

Számítógép architektúrák 2. tétel

Operációs rendszerek. UNIX fájlrendszer

Mikrorendszerek tervezése

Memóriakezelés (Memory management)

Architektúra, címzési módok

Architektúra, megszakítási rendszerek

Bepillantás a gépházba

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

8. gyakorlat Pointerek, dinamikus memóriakezelés

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Adatszerkezetek 1. előadás

Számítógép Architektúrák

Adatok ábrázolása, adattípusok

Szekvenciális hálózatok és automaták

386 processzor címzés

2011 TAVASZI FÉLÉV 10. LABORGYAKORLAT PRÉM DÁNIEL ÓBUDAI EGYETEM NAT/PAT. Számítógép hálózatok gyakorlata

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék

Tervezte és készítette Géczy László

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Mikrorendszerek tervezése

Operációs rendszerek II. kidolgozott tételsor Verzió 1.0 (Build: )

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Memória és perifériák virtualizációja. Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

Tervezte és készítette Géczy LászlL. szló

Digitális Rendszerek és Számítógép Architektúrák

7.hét: A sorrendi hálózatok elemei II.

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

DSP architektúrák dspic30f család memória kezelése

Nem biztos, hogy mindenhol helytáll, helyenként hiányos, de az eddigi kérdések össze vannak gyűjtve őszi félév első zhval bezárólag.

7. Virtuális tárkezelés. Operációs rendszerek. Bevezetés. Motiváció 2. Motiváció A virtuális tárkezelés általános elvei

Átírás:

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

Memóriakezelés

A tárolókezelés alapfogalmai

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ő.

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ó

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 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

Regisztertárak

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

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

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.

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.

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

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 Globális változók CWP+1 R48 Bemenő paraméterek Lokális változók Kimenő paraméterek

Cache-tárak

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.

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.

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.

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 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.

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.

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.

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.

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

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ö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ö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ö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 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

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.

A cache karbantartása

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.

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)

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

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.

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

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

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)

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.

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.

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.

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.

Virtuális tárkezelés

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.

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

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 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 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.

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.

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

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

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.

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.

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

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 + 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 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 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 + 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 + 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 + 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

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 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é.

A tárolóhoz fordulás gyorsítása & 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.

Translation Lookaside Buffer TLB CPU TLB Lapcím fordítás 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.

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.

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.

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.

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á.

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á.

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á.

RAM fajtái SRAM Statikus RAM, az információt flip-flopok tárolják.

RAM fajtái SRAM

RAM fajtái SRAM - olvasási ciklus

RAM fajtái SRAM - írási ciklus

RAM fajtái SRAM fajtái - Aszinkron SRAM - Burst SRAM - Pipelined Burst SRAM

RAM fajtái DRAM Dinamikus RAM, a töltéseket a félvezető elektródák közötti kapacitások hordozzák.

RAM fajtái DRAM

RAM fajtái DRAM

RAM fajtái DRAM

RAM fajtái FPM DRAM Fast Page Mode RAM

RAM fajtái EDO RAM Extended Data-Out RAM

RAM fajtái Burst EDO RAM

RAM fajtái SDRAM

RAM fajtái SDRAM

RAM fajtái SDRAM

RAM fajtái DDR RAM

RAM fajtái DDR RAM

RAM fajtái DDR RAM

RAM fajtái RD RAM Rambus RAM

RAM fajtái RD RAM

RAM fajtái RD RAM

RAM fajtái VRAM