Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Digitális technika VIII.) Tárolókezelés.

Hasonló előadás


Az előadások a következő témára: "Digitális technika VIII.) Tárolókezelés."— Előadás másolata:

1 Digitális technika VIII.) Tárolókezelés

2 Általános számítógép felépítése
CPU Regiszter tár Cache Operatív tár Cache Háttértár Archiváló tár Jedec memória modulok Telérési = 1 – 70ns Kapacitás = 16MB – 2GB Merevlemez, Floppy Telérési = 10 – 100ms Kapacitás = 0.1GB – 1TB Mágnesszalag, lyukszalag telérési= 1s – 10min Kapacitás=100GB – 10TB

3 Regisztertárak

4 Regiszter: ideiglenes tárolásra alkalmastárolóegység Alkothatják:
Statikus memória elemek (flip - flop-ok) RAM elemek 1 regiszter 1 gépi szó tárolására alkalmas 1 mai processzor 10 – általános célú regisztert tartalmaz A regiszterek általában nagyobb egységet alkotnak, melyeket regisztertáraknak nevezünk Á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.

5 A) Regiszterbank (register banking)
A regisztertömb egyforma méretű részekre (bank-okra) 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.

6 B) Ablaktechnika (register windowing)
A regisztertömböt egyforma részekre (window-kra) osztjuk, amelyek közül mindig csak egy érhető el. Az ablakok átlapolhatják egymást. Az átlapoltság miatt megkönnyebbül az adatok "átvitele„ egyik folyamattól a másoknak. Az ablak kezdetét az ablakmutató (Current Window Pointer, CWP) jelöli ki. Tegyük fel, hogy a regisztertár processzor számára látható tartományát négy ablakra osztjuk, s minden ablakban 8 regiszter található. Az első ablakban található 8 regiszter a globális változók tömbje, vagyis minden progam használhatja. Van olyan konstrukció, melyben a 0. regiszterben fixen huzalozott (áramkörileg meghatározott) módon a nulla számkonstans található. A 2. 8 regisztert a kimenő változók tömbje, a 3. a lokális -helyi- változók tömbje, míg a 4. a bejövő, vagyis input változók tömbje. a 2. ill. 4. tömb utolsó regisztere(r15,r31) a szubrutin (egy futó programból hívott alprogram) visszatérési értékeit (a kiinduló program szubrutinhívást követő utasításának címe, és adatai) tárolja. Az ablakok fontos jellemzője, hogy a bennük tárolt értékek adatátvitel nélkül az ablak kezdetére mutató pointer megváltoztatásával történik.

7 C) Blokktechnika (register blocking)
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 az ablaktechnikával szemben, a rugalmasság (az ablakok nagysága meghatározott, s néha túl nagy vagy túl kicsi). Hátránya, hogy további problémákat vetett. A blokkok méretét ugyanis ellenőrizni kell, ügyelve a túlcsordulásra (overflow – mikor egy adott adatmennyiség a rendelkezésre álló tárolóhelyen nem fér el; túlcsordul) és az alulcsordulásra. Ez olyan figyelőrendszer létét igényli, melynek kialakítása több plusz igénnyel rendelkezik, mint az ablaktechnikákból adódó kellemetlenségek.

8 Regisztertár szervezések összehasonlítása
Regiszterbank Ablaktechnika Blokktechnika CBP CWP CBP 0D 0D 0D 4kD 4kD 4kD 8kD 8kD 8kD 12kD 12kD 12kD 16kD 16kD 16kD

9 Cache (gyorsítótár)

10 Az átmeneti információtároló elemeket jelenti, melyek célja az információ-hozzáférés gyorsítása. A gyorsítás egyszerűen azon alapul, hogy a gyorsítótár gyorsabb tárolóelem, mint a hozzá kapcsolt, gyorsítandó működésű elemek, így ha ezen területek tartalma korábban már bekerült a gyorsítótárba (mert már valaki/valami hivatkozott rá korábban), az ilyen adatokat nem a lassú működésű területről, hanem a gyors cache tárolóból lehet előhívni. Alkalmazás: CPU – Központi memória (operatív memória) Háttértárolók Egyéb (software, stb.)

11 Cache-ben tárolt információk
Adat / utasítás Annak teljes vagy részleges fizikai vagy virtuális címe (Fontos, hogy ha a cím csak egy része van letárolva, akkor a teljes cím visszakereshető legyen az adat és a részletcím információ segítségével). A címinformáció cache-ben tárolt része a tag. Példa: a cache-ben tároljunk 256 db blokkot. Minden egyes blokk tároljon 16 byte információt. Így a cache-ben 256 x 16B adat + cím (tag) + egyéb (jelző bitek) információt tárolunk.

12 Cache leképezések típusai: 1.) Teljesen asszociatív
FUC (= Fully Associative Cache) A gyorsítandó memóriaegység beolvasott blokkjának tartalma átkerülhet a gyorsítótár bármelyik blokkjának területére. A beolvasott blokk bárhova elhelyezhető, bármelyik sorba. Az elhelyezés sorát helyettesítési algoritmus határozza meg. Amikor a processzor egy adatot keres a cache-ben, akkor a memóriabeli cím felső 28 bitjét összehasonlítja a cache-beli blokkszámokkal az összes sorban egyidejűleg. Ha sikeres a keresés, akkor kijelöli az adott sorbeli byte-ot, ha sikertelen, akkor a memóriában keresi. előnye: rugalmas betöltés, de a visszakereséshez annyi áramkör szükséges, ahány találati sor van, egyúttal jó találati arány jellemzi; hátránya: szükséges helyettesítési eljárás;

13 Blokk sorszáma 0. dszó 1. dszó 2. dszó 3. dszó V D 16123 1 2 3
Cache CÍM felépítése: 32 bit = 28 bit blokk sorszám + 2 bit dszó + 2 bit byte kiválasztó bitek 1 Cache felépítése: Blokk sorszáma V D 16123 0. dszó 1. dszó 2. dszó 3. dszó 0. byte 1. byte 2. byte 3. byte 1 2 3 152 255 Megcímzett byte Tag rész Adat rész

14 2.) Közvetlen leképezésű
DMC (= Direct Mapping Cache) A gyorsítandó memóriaegység beolvasott blokkja a cache meghatározott blokkjára kerülhet csak. A blokk helyét a cache-ben a blokksorszám alsó 8 bitje határozza meg. Ebben a megoldásban a blokk csak abba a sorba kerülhet, amelyet a sorindexe meghatároz. A cache-ben a 16 adatbyte mellett a lapsorszám 20 bites mint "tag", valamint a jelzőbitek kerülnek tárolásra. Kereséskor a memóriacímből előálított sorindex alapján keresi a sort, majd a felső 20 bitet összehasonlítja a cache-beli lapsorszámmal. előnye: rövidebb tag, gyors keresés és olcsóság jellemzi; hátránya: merevség és alacsony találati arány;

15 Lap sorszáma 0. dszó 1. dszó 2. dszó 3. dszó V D 320 1 2 3
Cache CÍM felépítése: 32 bit = 20 bit lapsorszám + 8 bit sorindex + 2 bit dszó + 2 bit byte kiválasztó bitek 1 Cache felépítése: Lap sorszáma V D 320 0. dszó 1. dszó 2. dszó 3. dszó 0. byte 1. byte 2. byte 3. byte 1 2 3 31 255 Megcímzett byte Tag rész Adat rész

16 3.) Csoport asszociatív SAC (= Set Associative Cache)
A gyorsítandó memóriaegység egy-egy blokkja a gyorsítótár egy blokkcsoportjára képeződhet. E típus átmenet az előző két típus között, mivel adott blokk csak egy adott blokkcsoportra képeződhet, de ezen belül a blokkcsoport bármely blokkjára, vagyis olyan ez, mintha teljesen asszociatív cache-memóriák halmazával lenne dolgunk, melyek egymáshoz képest azonban közvetlen leképzéssel működnek. A cache nagyobb, n csoportokra van osztva, amelyek önmagukban teljesen asszociatívak, azaz a csoporton belül bárhova kerülhet az adatblokk. 22 bit lapsorszám, bit csoportsorszám (alsó 6 bit) 16 adatbyte, 2 jelzőbit. Kereséskor a memóriabeli címből képzett csoportindex alapján kijelöli a csoportot, majd a felső 22 bit alapján a cache-beli lapsorszámot. Áramköre: 4 párhuzamos összehasonlítású, egyben rugalmas, közvetlen leképezésű. Kis számú összehasonlítás és az áramkör viszonylag gyorsasága jellemzi.

17 Lap sorszáma 0. dszó 1. dszó 2. dszó 3. dszó V D 1280 1 2 3
Cache CÍM felépítése: 32 bit = 22 bit lapsorszám + 6 bit csoportindex + 2 bit dszó + 2 bit byte kiválasztó bitek 1 Cache felépítése: Lap sorszáma V D 1280 0. dszó 1. dszó 2. dszó 3. dszó 0. byte 1. byte 2. byte 3. byte 1 2 3 51 13. csoport 52 53 255 Megcímzett byte Tag rész Adat rész

18 4.) Szektor leképezésű SMC (= Sector Mapping Cache)
Ritkábban használt megoldás, melynél a beolvasott memóriablokk szintén egy-egy blokkcsoportra képeződik, de az előző esethez képest épp fordítva, a beolvasott blokk tetszőleges blokkcsoportra képeződhet, azon belül azonban csak meghatározott blokkra. Azaz az ilyen gyorsítótár úgy működik, mintha közvetlen leképezésű cache-memóriák halmazával lenne dolgunk, melyek egymáshoz képest azonban asszociatív módon működnek. A processzor a csoport helyét jelöli ki asszociatív módon, és azon belül a blokk helye a lapon belüli elhelyezkedésének megfelelően kötött.

19 Cache tárak tartalmának karbantartása I.
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. 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: 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ásos (write through): a változtatott byte azonnal átírásra került, függetlenül attól, hogy az adott blokk a cache-ben van-e. Pufferelt azonnali átírásos (buffered write through): a változatott byte egy írási pufferbe kerül, ahonnan a memóriavezérlő kiírja a főmemóriába. Visszaírási (write back): a cache-t azonnal, a főmemóriát pedig csak a blokk cseréjekor aktualizálja. Egyszeri beírásos (write once): 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.

20 Cache tárak tartalmának karbantartása II.
Helyettesítési eljárások: célja, hogy a hatékonyság növelése érdekében a legkevesebbszer kelljen a cache tartalmát cserélni. Leggyakrabban használt módszer a legkevésbé mostanában használt blokkok cseréje (last recently used, LRU) 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.

21 Virtuális tárkezelés

22 Operatív tár működési elve
Minden program az operatív tárból (memóriából) hajtható végre. Az operatív tár mérete kicsi. Emiatt az aktuálisan nem használt programokat, adatokat lassú háttértárolókon kell tárolni, majd onnan betölteni akkor, amikor szükség van rá.

23 Virtuális címzés Háttértár Operatív tár
(felosztva 4KB –os lapokra) Operatív tár (ugyanúgy 4KB –os lapok) Lapkeret: memória lapokkal megegyező méretű „cellái” 4 8 12 16 20 24 4 8 12 lap0 lap1 lap2 lap3 lap4 lap5 lap13 lap14 lap15 lap0 lap1 lap2 Fizikai cím = relatív cím + blokk kezdőcíme = x 1024 = 9426 52 56 60 64 Virtuális cím = 62674 Relatív cím = virtuális cím – átvitt blokk fizikai kezdőcíme = – 60 x 1024 = 1234

24 Lapozás (háttértár lapokra osztása)
Rögzített és azonos méretű adatblokkok Lapok mérete 512B – 4kB lehet Nem átlapolhatóak, memóriában meghatározott lapkeretbe kerülnek Logikai cím = lap sorszáma + relatív cím Fizikai cím = lapkeret fizikai címe (báziscím) + relatív cím A lapok fizikai kezdőcímét a laptáblázatból lehet kikeresni a lap logikai sorszáma alapján

25 B) Szegmentálás (háttértár szegmensekre osztása)
Választható méretű adatblokkok Átlapolhatják egymást (2 szegmensben is elérhető ugyanaz az adat) Logikai cím = szegmens 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

26 Virtuális címek leképezése
A lapok- és szegmensek kezdőcímeit a tárolórendszer táblázatokban tárolja más kiegészítő adatokkal együtt. Az MMU (Memory Management Unit /memória vezérlő) 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 ez egy többlépcsős (1 /2 /3 lé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

27 Címzés általánosítása

28 Átlapolt címzés Interleaved addressing


Letölteni ppt "Digitális technika VIII.) Tárolókezelés."

Hasonló előadás


Google Hirdetések