A gyorsítótár típusai - kivonat, 2. oldal
Az OP szektorainak megjelenítése a gyorsítótárban.
Ezt a fajta leképezést minden modern számítógépen használják, és abból áll, hogy az egész OP-t olyan szektorokra osztják fel, amelyek fix számú egymást követő blokkból állnak. A gyorsítótár ugyanazon számú sorral rendelkező szektorokba van osztva. A blokkok elhelyezkedése az OP-szektorban és a cache szektorban teljesen azonos. Az ágazat asszociatív módon van leképezve a cache memóriába, az OU bármely szektora elhelyezhető a cache bármelyik szektorában. Így működés közben az ALU készült keresve a következő utasítás az OP, így a cache van betöltve (hiányában van egy blokk, amely ezt a parancsot), egy adat szektor OP, amely szerint az elv településen, ezáltal jelentős növelje a rendszer sebességét.
Hierarchikus gyorsítótár modell
A cache memória általában többszintű architektúrát tartalmaz. Például, egy 32 Kbyte belső (a mag CPU) és 1 Mbyte külső (a CPU burkolatba vagy az alaplapon) gyorsítótár első tekinthető gyorsítótár szint 1 (L1), és a második - a cache memória 2 (L2). A modern szerverrendszerekben a gyorsítótár szintje legfeljebb négy lehet, bár a leggyakoribb egy két- vagy háromszintű séma.
Néhány processzoros architektúrában az 1. szintű gyorsítótár utasításkézzel (oktató gyorsítótár, I-gyorsítótár) és adatcache-re (D-cache) oszlik, nem feltétlenül azonos méretű. Abból a szempontból, áramkör tervezés könnyebb és olcsóbb, hogy tervezzen egy külön I-cache és a D-cache: utasításlehívó hordoz I-box, és az adatok visszanyerését - E-box és az F-box, jóllehet mindkét esetben alkalmazunk A-box és a C-box. Mindezek a blokkok nagyok, és gondoskodnak arról, hogy egy gyorsítótárral egyszerre és gyors hozzáféréssel rendelkezzenek. Ezenkívül elkerülhetetlenül szükség lenne a hozzáférési portok számának növelésére, ami szintén bonyolítja a tervezési feladatot.
Mivel az I-gyorsítótár és a D-gyorsítótár nagyon alacsony hozzáférési késleltetést biztosít (ez minden L1 gyorsítótárra érvényes), fel kell áldoznia a kötetet - általában 16 és 32 KB között. Végül is, minél kisebb a gyorsítótár mérete, annál könnyebb elérni a hozzáférési késleltetést.
A 2. szintű gyorsítótár, mint általában, egységes, vagyis tartalmazhat mind parancsokat, mind adatokat. Ha ez be van építve a CPU mag, beszélünk a S-cache (gyorsítótár Másodlagos, másodlagos cache), egyébként - a B-cache (gyorsítótár Backup, tartósított cache). A modern szerver-CPU-kban az S-cache összege egy-több megabyte, a B-cache pedig akár 64 MB. Ha a CPU kialakítása biztosítja a 3. szint beépített gyorsítótárát, akkor T-cache (Ternary Cache, tercier gyorsítótár). Rendszerint a gyorsítótár minden további szintje lassabb, de nagyobb, mint az előző, kötetenként. Ha a B-cache a rendszerben van (mint a cache-modell utolsó szintje), akkor mind a CPU, mind a rendszerlogika figyelemmel kísérhető.
Ha a nyilvántartások valamelyik parancsának végrehajtásakor nincs adat, akkor a gyorsítótár legközelebbi szintjéről, vagyis a D-gyorsítótárból kell kérni őket. Ha nincsenek jelen a D-gyorsítótárban, akkor a kérelmet S-gyorsítótárba küldi stb. A legrosszabb esetben az adatok közvetlenül a memóriából kerülnek továbbításra. Azonban lehetséges, és még szomorúbb verzió, amikor az operációs rendszer (OS) virtuális memória-kezelő alrendszerének ideje kicserélni őket a merevlemezen lévő swap fájlba. Abban az esetben, szállítási memóriazavar idő megszerzésére vonatkozó adatok származhatnak tíz több száz CPU, és abban az esetben a megállapítás adatok a merevlemezen, hogy keres több millió cikluson keresztül.
Cache sorméret és címke
A gyorsítótár címkéjének mérete három fő tényezőtől függ: a gyorsítótár összege, a gyorsítótár maximális összege és a gyorsítótár asszociativitása. Matematikailag ezt a méretet a képlet adja meg:
ahol a Stag egy cache címke nagysága bitben; Smem - a memória maximális tárolt mennyisége, bájtban; Scache - a cache memória mennyisége, bájtban; A - cache memória asszociativitása, csatornákban.
Ebből következik, hogy egy 1 GB RAM-mal és 1 MB gyorsítótárral rendelkező, kétcsatornás asszociativitású rendszer esetében minden egyes címkéhez 11 bit szükséges. Érdemes megjegyezni, hogy a cache-vonal tényleges mérete semmilyen módon nem befolyásolja a címke méretét, de fordítottan befolyásolja a címkék számát. Meg kell érteni, hogy a gyorsítótár méretének vonal nincs értelme, hogy kisebb a bites rendszer adatbusz, de az ismétlődő méretének növekedése okoz túlzott elszennyeződését cache felesleges információt, és a felesleges terhelés a rendszerbusz és a memória busz. Ezenkívül a gyorsítótárban tárolt maximális tárolási mennyiségnek nem kell megfelelnie a rendszerben telepített RAM maximális lehetséges mennyiségének. Ha van olyan helyzet, amikor több RAM van elmentve, akkor a gyorsítótár csak a RAM alsó szegmenséből származó adatokat tartalmazza. Ez volt a helyzet a Socket7 / Super7 platformmal. lapkakészletet ez a platform lehetővé teszi a használatát nagy mennyiségű RAM (256 MB 1 GB), míg a tárolt mennyiség gyakran csak az első 64 MB (ez egy B-gyorsítótár található, amely az alaplapon) használata miatt az olcsó 8 bites mikrochipek címkézett SRAM (2 bitet tartalmaz, amelyek a vonal érvényességi és variációs mutatói számára vannak fenntartva). Ez a termelékenység jelentős csökkenéséhez vezetett.
Tekintsük a különböző típusú asszociativitás cache-memória működésének mechanizmusát. Tegyük fel, hogy van egy absztrakt modell, amelyben nyolc sornyi gyorsítótár és 64 egyenértékű RAM sor van. Meg kell adni a RAM cache-9-es sorát (vegye figyelembe, hogy minden sorszám nulla és növekvő számozás). Egy modell közvetlen leképezés, ez a karakterlánc csak akkor kerülhet sor az egyik: .. 9 mod 8 = 1 (a számítás a fennmaradó osztás), m-edik sor 1. Ha vesszük a modell egy kétcsatornás set asszociatív, a vonal egyikét veheti két helyen : 9 mod 4 = 1, vagyis bármely csatorna (szegmens) 1 vonala. A teljesen asszociatív modell biztosítja az elhelyezés szabadságát, és ez a sor a nyolc rendelkezésre álló bármelyik helyére tehető. Más szóval, valójában van 8 csatorna, amelyek mindegyike 1 vonalból áll.
Egyik fenti modellek nem engedi, természetesen, a cache több sort fizikailag képes befogadni, csak kínál különféle lehetőségeket, más egyensúlyt hatékony felhasználása cache és sebessége hozzáférést.
A gyorsítótár-kapcsolatok típusai
A gyorsítótárban lévő olvasási / írási portok száma azt jelzi, hogy hány egyidejű olvasási / írási műveletet lehet feldolgozni. Bár nincsenek szigorú követelmények, a CPU funkcionális eszközeinek bizonyos megfelelését nyomon kell követni, mivel a parancs végrehajtása során a szabad port hiánya kényszeres leálláshoz vezet.
A cache-memória CPU-hoz történő csatlakoztatásának két fő módja van: olvasás: keresztül és átnézve (Look-Through és Look-By). A lényege az első, hogy ha szükséges az adatok első ízben kérte a cache vezérlő a legmagasabb szinten, amely ellenőrzi állapotát csatlakoztatott tag, és visszaadja a szükséges információkat, vagy negatív választ, és ebben az esetben a kérés átirányítása az alacsonyabb szintű cache-hierarchia vagy az operatív memóriában. Amikor a második olvasási módot hajtja végre, a kérelmet egyidejűleg a legmagasabb szintű gyorsítótár-vezérlőhöz, valamint a többi gyorsítótár-vezérlőhöz és a memóriavezérlőhöz is elküldi. Az első módszer hátránya nyilvánvaló: a magas szintű gyorsítótárban lévő információk hiányában a kérést meg kell ismételni, és a CPU üresjárati ideje megnő. A második megközelítés hátránya a műveletek magas redundanciája, és ennek következtében a CPU és a rendszerbusz belső buszainak "eltömődése" felesleges információkkal. Logikus feltételezni, hogy ha az L1 cache-ok optimálisak a lineárisan, akkor a T-cache vagy a B-cache esetében az oldalsáv sokkal jövedelmezőbb lehet. Az S-gyorsítótár esetében a választás nem egyértelmű.
Vannak helyi és távoli gyorsítótárak is. A helyi név egy gyorsítótár, amely vagy a CPU magjában, vagy ugyanazon a szilícium szubsztráton vagy a CPU eseten található, az alaplapon távoli helyen. Ennek megfelelően a helyi gyorsítótárat a processzor magjában a vezérlő és a távoli - az alaplap NMS-je vezérli. A helyi gyorsítótár előnyben részesíthető a teljesítmény szempontjából, mivel a távoli gyorsítótár felületét általában a rendszerbuszba multiplexelik. Egyrészt, ha egy másik CPU rögzíti a közös rendszerbuszot, vagy bármely perifériás vezérlő közvetlenül hozzáfér a memóriához, a távoli gyorsítótár ideiglenesen nem érhető el. Másrészt viszont ez a gyorsítótár könnyebben használható többprocesszoros rendszerekben.
A gyorsítótárba kétféle módon lehet írni: átírás és visszaírás. Az első esetben az információ egyidejűleg tárolódik a gyorsítótár memória hierarchiájának jelenlegi és alsó szintjén (vagy közvetlenül a RAM-ban, annak hiányában). A második - az adatok csak a cache aktuális szintjén kerülnek mentésre, és van olyan helyzet, amikor a cache és a RAM információi eltérnek, és az utóbbi elavult. Annak érdekében, hogy az információ visszavonhatatlanul elvész, amikor a gyorsítótár újraindul, minden cache-vonalhoz egy "piszkos bit" (más néven módosított) kerül hozzáadásra. Szükség van annak jelzésére, hogy az információs gyorsítótárban lévő információ megegyezik-e a RAM-ban, és azt, hogy a gyorsítótár visszaállításakor fel kell-e írni a memóriába.
Emellett meg kell említeni az íráselosztás módját. Amikor adatokat ír a RAM-ba, akkor gyakran van olyan helyzet, amikor a rögzített adatok hamarosan szükségessé válnak, majd elég hosszú ideig kell letölteni őket. A rekord mentése lehetővé teszi, hogy részben megoldja ezt a problémát: az adatok nem RAM-ra, hanem a gyorsítótárra íródnak. A cache sor, amely helyett az adatokat írja, teljesen ki van töltve a fő memóriába. Mivel az újonnan rögzített adatok általában nem elegendőek a teljes cache-vonal létrehozásához, a hiányzó adatokat a RAM-ból kell kérték. Amikor beérkezik, egy új sort ír és a címke frissül. Vannak előnyei vagy hátrányai ennek a megközelítésnek - ez néha enyhe teljesítménynövekedést eredményezhet, de a gyorsítótár eltömődéséhez vezethet szükségtelen információkkal.
Gyorsítótár növelése és teszteléseINELAMD
A beépített gyorsítótár méretének növeléséhez az elsődleges oka az lehet, hogy a modern processzorok cache memóriája ugyanolyan sebességgel fut, mint maga a processzor. A processzor frekvenciája ebben az esetben legalább 3200 MHz. A nagyobb gyorsítótár lehetővé teszi a processzor számára, hogy a kód nagy részét készenléti állapotba állítsa. A processzorok ezen architektúrája a processzor leállási idejével járó késedelmek csökkentésére koncentrál az adatok előrejelzésénél. A modern programok, beleértve a játékokat is, a kód nagy részeit használják, amelyeket a processzor első kérésénél ki kell venni a rendszer memóriájából. Az adatoknak a memóriából a processzorra történő átvitelére fordított idő csökkentése megbízható módszer a memóriával való intenzív interakciót igénylő alkalmazások teljesítményének növelésére. Az L3 gyorsítótárnak kissé nagyobb késése van, mint az L 1 és a 2, ami teljesen természetes. Bár lassabb, még mindig sokkal gyorsabb, mint a rendszeres memória. Nem minden alkalmazás élvezheti a gyorsítótár mennyiségének vagy sebességének növelését. Jelentősen függ az alkalmazás jellegétől.
Ha nagy mennyiségű beépített gyorsítótár van, akkor mi tartotta korábban az Intel és az AMD ebből a stratégiából? Az egyszerű válasz az ilyen megoldás magas költsége. A tárhely fenntartása nagyon drága. A standard 3.2GHz Northwood 55 millió tranzisztort tartalmaz. A 2048 KB-os L3 gyorsítótár hozzáadásával az Intel növelni fogja a tranzisztorok számát 167 millióra. Egy egyszerű matematikai számítás azt mutatja, hogy az EE az egyik legdrágább processzor.
Oldal AnandTech végzett összehasonlító vizsgálatok a két rendszer, amelyek mindegyike két processzort - Intel Xeon 3,6 GHz egy esetben és az AMD Opteron 250 (2,4 GHz) - a másik. A tesztelés a ColdFusion MX 6.1, a PHP 4.3.9 és a Microsoft .NET 1.1 alkalmazásokra készült. A konfigurációk a következők voltak:
- Dual Opteron 250;
- 2 GB DDR PC3200 (Kingston KRX3200AK2);
- Tyan K8W alaplap;
- 1 kemény IDE 40 GB 7200 rpm, gyorsítótár 8 MB
- Dual Xeon 3,6 GHz;
- alaplap Intel SE7520AF2;
- 1 kemény IDE 40 GB 7200 rpm, gyorsítótár 8 MB
A ColdFusion és PHP alkalmazások nem optimalizált adott architektúra, egy kicsit gyorsabb (2,5-3%) volt Opteron'y, de tesztet .NET bizonyította következetes elkötelezettség a Microsoft platform az Intel, amely lehetővé tette a pár, hogy húzza előre a Xeon'ov 8%. A következtetés egyértelmű: a Microsoft szoftver webes alkalmazások, akkor van értelme, hogy válasszon az Intel processzorok, más esetekben több legjobb választás az AMD.
Elemzés az anyag a fenti arra enged következtetni, hogy összhangban kanonikus elméletek modern gyártó teszi széles körben alkalmazza a cache memória az építőiparban az új processzorok. Számos szempontból kiváló teljesítményjellemzőit a második, sőt a harmadik szint gyorsítótárának köszönhetően érik el. Ez megerősíti a elméleti számítások, a Harvard Egyetem, hogy tekintettel az elve helyi információkat modern számítógépek vegyes típusú cache memória lehetővé teszi, hogy kitűnő eredményeket érnek el a processzor teljesítményt és csökkenti a frekvenciát, hogy menjen a fő memóriát.
Van széles kilátások további alkalmazás-gyorsítótár egy új generációs gépek, de a meglévő problémákat, hogy lehetetlen a végtelen növekedés a cache, valamint a magas termelési költségek a cache egyetlen chip a processzor beállítja a tervezők kérdéseket inkább minőségi, mint mennyiségi módosítás, vagy ugrik az elvek, vagy gyorsítótárazási memória a jövőbeli processzorok számára.
A következő anyagokat használták ehhez a munkához:
---- 9. Előadás: A számítógépes rendszer memóriájának megszervezése