Gyorsítótár [1] [2] [3] [4] vagy gyorsítótár [5] [6] [7] ( angol gyorsítótár , francia nyelvből cacher - "elrejtés"; ejtsd: [ kæʃ ] - "gyorsítótár") - közbenső puffer gyors hozzáférést biztosít hozzá, amely a legnagyobb valószínűséggel kérhető információkat tartalmaz. A gyorsítótárban lévő adatokhoz való hozzáférés gyorsabb, mint az eredeti adatok lekérése lassabb memóriából vagy távoli forrásból, de mennyisége jelentősen korlátozott a forrásadattárhoz képest.
A "gyorsítótár" szót először 1967 -ben használták számítógépes környezetben, amikor egy cikket készítettek elő az IBM Systems Journalban való közzétételre . A cikk a fejlesztés alatt álló IBM System/360 85-ös modell memóriafejlesztéseivel foglalkozott . A folyóirat szerkesztője, Lyle Johnson a "nagysebességű puffer" helyett inkább leíró kifejezést kért, de ötlethiány miatt ő maga javasolta a "gyorsítótár" szót. A cikk 1968 elején jelent meg, a szerzőket az IBM díjazta , munkájukat terjesztették, majd továbbfejlesztették, és a "gyorsítótár" szó hamarosan általános kifejezéssé vált a számítógépes szakirodalomban [8] .
A gyorsítótár gyorsabb elérési sebességű memória, amelyet arra terveztek, hogy felgyorsítsa a memóriában állandóan tárolt adatokhoz való hozzáférést alacsonyabb hozzáférési sebességgel (a továbbiakban: "fő memória"). A gyorsítótárazást a CPU , a merevlemezek , a böngészők , a webszerverek , a DNS és a WINS szolgáltatások használják .
A gyorsítótár egy sor bejegyzésből áll. Minden bejegyzés hozzá van rendelve egy adatelemhez vagy adatblokkhoz (egy kis adatdarabhoz), amely az adatelem másolata a fő memóriában. Minden bejegyzésnek van egy azonosítója , amelyet gyakran címkének neveznek , és amely meghatározza a gyorsítótárban lévő adatelemek és a fő memóriában lévő megfelelőik közötti megfelelést.
Amikor egy gyorsítótár-kliens (CPU, webböngésző, operációs rendszer) hozzáfér az adatokhoz, először a gyorsítótárat vizsgálja meg. Ha a gyorsítótárban olyan bejegyzés található, amelynek azonosítója megegyezik a kért elem azonosítójával, akkor a rendszer a gyorsítótárban lévő elemeket használja. Az ilyen eseményt gyorsítótár találatnak nevezik . Ha a kért adatelemet tartalmazó bejegyzés nem található a gyorsítótárban, akkor a rendszer a fő memóriából beolvassa a gyorsítótárba, és elérhetővé válik a későbbi hozzáférésekhez. Az ilyen esetet úngyorsítótár hiányzik . A gyorsítótárban elért találatok százalékos arányát találati aránynak vagy gyorsítótár találati arányának nevezzük .
Például egy webböngésző ellenőrzi a helyi gyorsítótárat a lemezen, keresve egy weboldal helyi másolatát, amely megegyezik a kért URL-lel. Ebben a példában az URL az azonosító, a weboldal tartalma pedig az adatelemek.
Ha a gyorsítótár mérete korlátozott, akkor kihagyás esetén előfordulhat, hogy eldobunk néhány bejegyzést, hogy helyet szabadítson fel. Különböző kilakoltatási algoritmusokat használnak annak kiválasztására, hogy melyik rekordot kell elvetni .
Ha a gyorsítótárban lévő adatelemek módosulnak, azok a fő memóriában frissülnek. A gyorsítótárban lévő adatok módosítása és a fő memória frissítése közötti késleltetést az úgynevezett írási politika szabályozza .
A csak írható gyorsítótárban minden változás a fő memóriában lévő adatok szinkron frissítését okozza.
A visszaírási (vagy visszaírási ) gyorsítótárban frissítés történik, amikor egy adatelemet kiürítenek, időszakonként vagy az ügyfél kérésére. A módosított adatelemek nyomon követéséhez a gyorsítótár bejegyzései módosítási jelzőt tárolnak ( módosított vagy "piszkos" ). A visszaírással járó gyorsítótár-hiány két hozzáférést igényelhet a fő memóriához: az első a helyettesített adatok gyorsítótárból történő kiírásához, a második a szükséges adatelem beolvasásához.
Abban az esetben, ha a fő memóriában lévő adatok a gyorsítótártól függetlenül módosíthatók, a gyorsítótár-bejegyzés elavulttá válhat . Az adatkonzisztenciát fenntartó gyorsítótárak közötti kommunikációra szolgáló protokollokat gyorsítótár-koherencia protokolloknak nevezzük .
A processzorok működési gyakoriságának növekedése és a RAM alrendszer ( RAM) teljesítményének növekedése miatt az adatátviteli interfész a számítási rendszer szűk keresztmetszetévé vált.
A gyorsítótár jelentős teljesítményelőnyökkel járhat, ha a RAM órajele lényegesen alacsonyabb, mint a processzor órajele. Számos processzormodell rendelkezik saját gyorsítótárral, amely minimalizálja a véletlen elérésű memóriához (RAM) való hozzáférési időt, amely lassabb, mint a regiszterek (ezek a regiszterek és az I/O pufferek nulla gyorsítótárszintnek tekinthetők). A cache memória órajele általában nem sokkal kisebb, mint a CPU frekvencia.
A virtuális címzést támogató processzorok gyakran tartalmaznak kisméretű, gyors címfordító puffert (TLB). A sebessége azért fontos, mert minden memóriaeléréskor lekérdezik.
A különböző gyorsítótárak (egy és több processzor) közötti szinkronizálás problémáját a gyorsítótár koherenciája oldja meg .
Három lehetőség van a különböző szintű gyorsítótárak, vagy ahogy mondani szokás, a cache architektúrák közötti információcserére: inkluzív, kizárólagos és nem kizárólagos.
Az exkluzív gyorsítótár a gyorsítótár különböző szintjein található információk egyediségét feltételezi (az AMD által preferált ).
A nem kizárólagos gyorsítótárak tetszés szerint viselkedhetnek.
Processzor gyorsítótár szintjeiA CPU gyorsítótár több szintre oszlik. A gyorsítótárak maximális száma négy. Egy univerzális processzorban a szintek száma jelenleg legfeljebb három lehet. Az N+1 szintű gyorsítótárak általában nagyobbak és lassabbak a hozzáférésben és az adatátvitelben, mint az N szintű gyorsítótárak.
A cache memória egyik alapvető jellemzője - az asszociativitás szintje - a logikai szegmentációját tükrözi, amelyet az okoz, hogy az összes gyorsítótár-sor szekvenciális felsorolása a szükséges adatok keresése során több tíz ciklust igényelne, és semmissé tenné az ebből származó nyereséget. a CPU-ba épített memória használatával. Ezért a RAM-cellák a gyorsítótár-sorokhoz vannak kötve (minden sor tartalmazhat adatokat rögzített címkészletből), ami jelentősen csökkenti a keresési időt.
Azonos gyorsítótár-méret mellett egy nagyobb asszociativitással rendelkező séma lesz a legkevésbé gyors, de a leghatékonyabb (négyszálas implementáció után a szálonkénti „fajlagos hatékonyság” növekedése alig nő).
Sok tárolóperiféria belső gyorsítótárat használ a dolgok felgyorsítására, különösen a merevlemezek 1 MB-tól 256 MB-ig terjedő gyorsítótárat használnak (az NCQ / TCQ modellek tárolásra és lekérdezések feldolgozására használják), a CD/DVD/BD-lemezek az olvasási információkat is gyorsítótárazzák a felgyorsítás érdekében. visszakeresés.
Az operációs rendszer a RAM egy részét gyorsítótárként is használja a lemezműveletekhez (például olyan külső eszközökhöz, amelyek nem rendelkeznek saját gyorsítótárral, beleértve a merevlemezeket, a flash memóriát és a hajlékonylemezeket). A merevlemezek gyorsítótárazásához gyakran az összes ingyenes (a folyamatokhoz nem rendelt) RAM rendelkezésre áll.
A gyorsítótárazott külső meghajtók használata a következő tényezőknek köszönhető:
Olvasáskor a gyorsítótár lehetővé teszi a blokk egyszeri beolvasását, majd a blokk egy példányának eltárolását a RAM-ban az összes folyamat számára, és "azonnal" visszaadja a blokk tartalmát (a lemezkéréshez képest). Van egy "pre-request" technika - a háttérben az operációs rendszer a következő néhány blokkot is beolvassa (a szükséges után) a gyorsítótárba.
Íráskor a gyorsítótár lehetővé teszi a rövid rekordok nagyobb rekordokba csoportosítását, amelyeket a meghajtók hatékonyabban dolgoznak fel, illetve elkerülhető a közbenső módosítások írása. Ebben az esetben a blokk összes köztes állapota látható a RAM-ból származó folyamatok számára.
A külső tároló gyorsítótárazása nagymértékben javítja a rendszer teljesítményét az I/O használat optimalizálásával. A technológia előnye a lemezmemória használatának átlátható (programok számára láthatatlan) automatikus optimalizálása, miközben a fájlokkal dolgozó alkalmazások logikája változatlan marad.
Az írási gyorsítótárazás hátránya az, hogy mennyi idő telik el a programtól érkező írási kérés és a blokk tényleges lemezre írása, valamint az írások újrarendezése között, ami áramkimaradás vagy rendszer esetén információvesztéshez vagy szerkezeti inkonzisztenciákhoz vezethet. lóg. Ezt a problémát enyhíti a kényszerített időszakos szinkronizálás (megváltozott gyorsítótár sorok írása) és a fájlrendszer naplózása.
Adatok olvasásakor a gyorsítótár egyértelmű teljesítménynövekedést ad. Adatíráskor nyereség csak a megbízhatóság csökkenése árán érhető el. Ezért a különböző alkalmazások eltérő gyorsítótár írási házirendeket választhatnak.
Két fő gyorsítótár-írási szabályzat létezik: az átírás és a visszaírás:
Kezdetben az összes pufferfejléc a pufferek szabad listájára kerül. Ha egy folyamat egy blokkot kíván olvasni vagy módosítani, akkor a következő algoritmust hajtja végre:
A folyamat beolvassa az adatokat a fogadott pufferbe, és felszabadítja azokat. Módosítás esetén a folyamat a puffert "piszkosnak" jelöli, mielőtt felszabadítaná. Felszabadításkor a puffer a szabad pufferlista élére kerül.
Ilyen módon:
Ha a szabad pufferek listája üres, akkor a puffer-öblítési algoritmus végrehajtásra kerül. A kilakoltatási algoritmus jelentősen befolyásolja a gyorsítótár teljesítményét. A következő algoritmusok léteznek:
Az egyik vagy másik algoritmus használata az adatgyorsítótárazási stratégiától függ. Az LRU akkor a leghatékonyabb, ha az adatok a lehető leghamarabb újrafelhasználhatók. Az MRU akkor a leghatékonyabb, ha az adatok egyhamar nem használhatók fel újra. Ha az alkalmazás kifejezetten gyorsítótárazási stratégiát ad meg bizonyos adatkészletekhez, akkor a gyorsítótár fog a leghatékonyabban működni.
A RAM gyorsítótár a következő elemekből áll:
A hálózaton keresztüli információátvitel során a weboldal gyorsítótárazása használható - a gyakran kért dokumentumok (köztes) proxyszervereken vagy a felhasználó gépén történő tárolásának folyamata, hogy megakadályozzák azok folyamatos letöltését a forrásszerverről és csökkentsék a forgalmat . Így az információ közelebb kerül a felhasználóhoz. A gyorsítótárazást a HTTP - fejlécek vezérlik .
Alternatív megoldásként a weboldalak gyorsítótárazása elvégezhető egy adott webhely CMS -jével, hogy csökkentse a szerver terhelését nagy forgalom esetén. A gyorsítótárazás mind a memóriában, mind a fájl gyorsítótárban történhet [9] . A gyorsítótárazás hátránya, hogy az egyik böngészőben végrehajtott változtatások nem feltétlenül jelennek meg azonnal egy másik böngészőben, amely az adatokat a gyorsítótárból tölti le.
Sok program írja valahova a munka közbenső vagy segéderedményeit, hogy ne számítsa ki minden alkalommal, amikor szükség van rájuk. Ez felgyorsítja a munkát, de további memóriát (RAM vagy lemez) igényel. Ilyen gyorsítótárazásra példa az adatbázis-indexelés .
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |