Rýchla vyrovnávacia pamäť

Caching je termín používaný v informatike. Myšlienka cache (vyslovuje sa "cash" /ˈkæʃ/ KASH ) je veľmi jednoduchá: Získanie výsledku výpočtu je veľmi často časovo náročné, takže uloženie výsledku je vo všeobecnosti dobrý nápad. Používajú sa dva druhy pamäťových médií: Jeden je zvyčajne dosť veľký, ale prístup k nemu je "pomalý"; druhý je prístupný oveľa rýchlejšie, ale spravidla je malý. Úplne základnou myšlienkou ukladania do vyrovnávacej pamäte je použiť na kópie údajov médium, ku ktorému je rýchly prístup. Medzi kópiou a originálom nie je žiadny rozdiel. Prístup k pôvodným údajom môže trvať dlho alebo môže byť nákladný (napríklad: výsledky náročného problému, ktorého riešenie trvá dlho). Z tohto dôvodu je oveľa "lacnejšie" jednoducho použiť kópiu údajov z vyrovnávacej pamäte. Inak povedané, vyrovnávacia pamäť je dočasný úložný priestor, v ktorom sa nachádzajú kópie údajov, ktoré sa často používajú. Ak sa v tejto vyrovnávacej pamäti nachádza kópia údajov, je rýchlejšie použiť túto kópiu, než znovu načítať alebo vypočítať pôvodné údaje. Tým sa skráti priemerný čas potrebný na prístup k údajom. Vloženie novej hodnoty do vyrovnávacej pamäte často znamená, že je potrebné nahradiť staršiu hodnotu. Existujú rôzne predstavy (zvyčajne nazývané "stratégie"), ako vybrať hodnotu, ktorá sa má nahradiť.

Vyrovnávacia pamäť je veľmi podobná vyrovnávacej pamäti. Líši sa tým, že klient pristupujúci k údajom vo vyrovnávacej pamäti vie, že existuje vyrovnávacia pamäť; vyrovnávaciu pamäť spravuje aplikácia. Pri vyrovnávacej pamäti klient pristupujúci k údajom nemusí vedieť, že existuje vyrovnávacia pamäť.

Typické počítačové aplikácie pristupujú k údajom veľmi podobným spôsobom. Predpokladajme, že údaje sú štruktúrované do "blokov", ku ktorým možno pristupovať jednotlivo. Keď aplikácia pristupuje k bloku, je veľmi pravdepodobné, že bude pristupovať aj k bloku, ktorý je "blízky" pôvodnému bloku (alebo naň odkazuje). Toto je známe ako lokálnosť referencie. Existujú rôzne druhy takejto "lokality". Lokalita referencie je jedným z dôvodov, prečo vyrovnávacie pamäte dobre fungujú v mnohých oblastiach výpočtovej techniky.

Aby mohli dobre fungovať, sú vyrovnávacie pamäte v porovnaní s celým objemom údajov malé. Čím väčšia je vyrovnávacia pamäť, tým dlhšie trvá vyhľadávanie záznamu. Väčšie vyrovnávacie pamäte sú tiež drahšie na vytvorenie.

Ako funguje vyrovnávacia pamäť

Vyrovnávacia pamäť je blok pamäte na ukladanie údajov, ktoré sa pravdepodobne použijú znova. Procesor a pevný disk často používajú vyrovnávaciu pamäť, rovnako ako webové prehliadače a webové servery.

Medzipamäť sa skladá z mnohých záznamov, ktoré sa nazývajú fond. Každá položka obsahuje údaj (bit údajov), ktorý je kópiou údaju na inom mieste. Cache zvyčajne používa tzv. záložné úložisko. Prístup k záložným úložiskám je v porovnaní s vyrovnávacou pamäťou pomalý alebo drahý. Napríklad disková vyrovnávacia pamäť používa ako záložné úložisko pevný disk. Ku každému záznamu je pripojená aj malá informácia, ktorá sa nazýva tag. Táto značka sa používa na vyhľadanie miesta, kde sú uložené pôvodné údaje.

Cache na čítanie

Ak chce klient (procesor, webový prehliadač, operačný systém) získať prístup k údaju, o ktorom sa domnieva, že sa nachádza v záložnom úložisku, najprv skontroluje, či sa údaj nachádza v medzipamäti. Ak sa údaje nachádzajú v medzipamäti, klient ich môže použiť a nemusí používať hlavnú pamäť. Tento postup sa nazýva zásah do vyrovnávacej pamäte. Takže napríklad program webového prehliadača môže skontrolovať svoju lokálnu vyrovnávaciu pamäť na disku, aby zistil, či má lokálnu kópiu obsahu webovej stránky na konkrétnej adrese URL. V tomto príklade je adresa URL značkou a obsah webovej stránky je údajom.

Ďalšou situáciou, ktorá môže nastať, je, že údaj so značkou nemožno nájsť v cache. Táto situácia je známa ako zlyhanie vyrovnávacej pamäte. Údaj sa musí načítať zo záložného úložiska. Zvyčajne sa skopíruje do vyrovnávacej pamäte, takže nabudúce sa už nemusí načítať zo záložného úložiska.

Medzipamäť má len obmedzenú veľkosť. Aby sa uvoľnilo miesto pre predtým neuložený záznam, môže byť potrebné odstrániť z vyrovnávacej pamäte iný uložený záznam. Na vyhľadanie záznamu, ktorý by sa mal najlepšie odstrániť, sa používajú špeciálne pravidlá. Tieto pravidlá sa zvyčajne nazývajú heuristika. Heuristika použitá na nájdenie položky sa nazýva politika nahradenia. Veľmi jednoduché používané pravidlo sa nazýva najmenej používané (alebo LRU). Jednoducho sa vyberie záznam, ktorý bol použitý pred najdlhším časom. Ďalšie heuristiky sú uvedené v algoritme vyrovnávacej pamäte.

Medzipamäte na písanie

Medzipamäte sa môžu používať aj na zápis údajov; výhodou je, že klient môže pokračovať v operácii po zápise záznamu do medzipamäte; nemusí čakať, kým sa záznam zapíše do záložného úložiska.

Záznam však musí byť v určitom okamihu zapísaný do záložného úložiska. Čas, kedy sa tak stane, je riadený zásadami zápisu.

Pri priebežnom zápise do vyrovnávacej pamäte sa každý záznam okamžite zapíše do záložného úložiska a zároveň sa uloží do vyrovnávacej pamäte.

Druhou možnosťou je zapisovať len do vyrovnávacej pamäte a do záložného úložiska zapisovať neskôr. Tento postup sa nazýva spätný zápis (alebo zápis za) do vyrovnávacej pamäte. Vyrovnávacia pamäť označuje záznamy, ktoré ešte neboli zapísané do záložného úložiska; značka, ktorá sa používa, sa často označuje ako dirty flag. Pred vymazaním záznamov z vyrovnávacej pamäte sa tieto záznamy zapíšu do záložného úložiska. Tento postup je známy ako lenivý zápis. Pri chýbajúcom zápise do vyrovnávacej pamäte (ktorý si vyžaduje nahradenie bloku iným) budú často potrebné dva prístupy do pamäte: jeden na získanie potrebného údaja a druhý na zápis nahradených údajov z vyrovnávacej pamäte do úložiska.

Zásady ukladania do vyrovnávacej pamäte môžu tiež stanoviť, že určitý údaj sa musí zapísať do vyrovnávacej pamäte. Klient mohol vykonať mnoho zmien v danom údaji v medzipamäti. Po skončení môže výslovne povedať vyrovnávacej pamäti, aby sa údaj zapísal späť.

Prideľovanie bez zápisu je zásada vyrovnávacej pamäte, pri ktorej sa do vyrovnávacej pamäte ukladá iba čítanie. Tým sa zabráni potrebe spätného zápisu alebo zápisu do vyrovnávacej pamäte. Zápisy sa vykonávajú do záložného úložiska po celý čas.

Klient nie je aplikácia, ktorá mení údaje v záložnom úložisku. Ak sa údaje v záložnom úložisku zmenili, kópia v medzipamäti bude neaktuálna alebo zastaraná. Prípadne, keď klient aktualizuje údaje v medzipamäti, kópie týchto údajov v iných medzipamätiach sa stanú neaktuálnymi. Existujú špeciálne komunikačné protokoly, ktoré umožňujú správcom vyrovnávacej pamäte komunikovať medzi sebou, aby sa zachovala zmysluplnosť údajov. Tieto protokoly sú známe ako protokoly koherencie.

Schéma vyrovnávacej pamäte CPUZoom
Schéma vyrovnávacej pamäte CPU

Výber položky, ktorá sa má nahradiť

Medzipamäť je malá a väčšinu času bude plná alebo takmer plná. Takže keď sa pridá nová hodnota, stará sa musí odstrániť. Tento výber sa dá vykonať rôznymi spôsobmi:

  • First in First out: Jednoducho nahraďte záznam, ktorý bol pridaný do vyrovnávacej pamäte pred najdlhším časom.
  • Najmenej používané v poslednom čase: Táto myšlienka je podobná vyššie uvedenému FIFO, ale keď sa položka použije, aktualizuje sa jej časová značka/stáročie.
  • Najmenej používané: Opäť, podobne ako v prípade FIFO, namiesto časovej značky sa použije čítač, ktorý sa inkrementuje pri každom použití položky.
  • Náhodne vyberte položku

História

Slovo cache bolo prvýkrát použité v oblasti výpočtovej techniky v roku 1967, keď bol pripravený vedecký článok na uverejnenie v časopise IBM Systems Journal. Článok sa týkal nového vylepšenia pamäte v modeli 85. Model 85 bol počítač z produktového radu IBM System/360. Redaktor časopisu Journal chcel lepší výraz pre vysokorýchlostnú vyrovnávaciu pamäť, ktorý sa v článku použil. Nedostal žiadny návrh a navrhol cache, z francúzskeho cacher, čo znamená "schovávať". Článok bol uverejnený začiatkom roka 1968 a autori boli spoločnosťou IBM ocenení. Ich práca bola všeobecne prijatá a vylepšená. Cache sa čoskoro stala štandardným používaním v počítačovej literatúre.

Kde sa používajú vyrovnávacie pamäte

vyrovnávacia pamäť CPU

Malé pamäte na čipe procesora alebo v jeho blízkosti môžu byť rýchlejšie ako oveľa väčšia hlavná pamäť. Väčšina procesorov od 80. rokov minulého storočia využíva jednu alebo viac vyrovnávacích pamätí. Moderné univerzálne procesory vo vnútri osobných počítačov ich môžu mať až pol tucta. Každá vyrovnávacia pamäť môže byť špecializovaná na inú časť úlohy vykonávania programov.

Diskové vyrovnávacie pamäte

Medzipamäte procesora sú spravované výlučne hardvérom, ostatné medzipamäte sú spravované rôznymi druhmi softvéru. Operačný systém zvyčajne spravuje vyrovnávaciu pamäť stránok v hlavnej pamäti. Používatelia mimo informatiky túto vyrovnávaciu pamäť zvyčajne nazývajú virtuálna pamäť. Spravuje ju jadro operačného systému.

Moderné pevné disky majú vyrovnávaciu pamäť disku. Tie sa niekedy nazývajú "disková vyrovnávacia pamäť", ale to je nesprávne. Hlavnou funkciou týchto vyrovnávacích pamätí je zoraďovanie zápisov na disk a riadenie čítania. Opakované zásahy do vyrovnávacej pamäte sú zriedkavé, pretože vyrovnávacia pamäť je v porovnaní s veľkosťou pevného disku veľmi malá.

Miestne pevné disky sú rýchle v porovnaní s inými úložnými zariadeniami, ako sú vzdialené servery, miestne páskové jednotky alebo optické jukeboxy. Používanie miestnych pevných diskov ako vyrovnávacích pamätí je hlavnou koncepciou hierarchickej správy úložísk.

Webové vyrovnávacie pamäte

Webové prehliadače a webové proxy servery používajú vyrovnané pamäte na ukladanie predchádzajúcich odpovedí z webových serverov, napríklad webových stránok. Webové vyrovnávacie pamäte znižujú množstvo informácií, ktoré sa musia prenášať cez sieť. Informácie, ktoré boli predtým uložené v medzipamäti, sa často môžu opätovne použiť. Tým sa znižuje šírka pásma a nároky webového servera na spracovanie a pomáha sa zlepšiť odozva používateľov webu.

Moderné webové prehliadače používajú zabudovanú webovú vyrovnávaciu pamäť, ale niektorí poskytovatelia internetových služieb alebo organizácie používajú aj vyrovnávací proxy server. Ide o webovú vyrovnávaciu pamäť, ktorá je zdieľaná všetkými používateľmi danej siete.

Vyhľadávače tiež často sprístupňujú webové stránky, ktoré indexovali, zo svojej vyrovnávacej pamäte. Napríklad Google poskytuje odkaz "Cached" pri každom výsledku vyhľadávania. To je užitočné, keď sú webové stránky dočasne nedostupné z webového servera.

Ukladanie do vyrovnávacej pamäte pri nespoľahlivých sieťach

Zápis cez sieť je bežný v nespoľahlivých sieťach (ako je sieť Ethernet LAN). Protokol používaný na zabezpečenie zmysluplnosti údajov v zapisovacej medzipamäti, keď sa používa niekoľko zapisovacích medzipamätí, je v takomto prípade veľmi zložitý.

Napríklad vyrovnávacie pamäte webových stránok a vyrovnávacie pamäte sieťových súborových systémov na strane klienta (ako sú pamäte NFS alebo SMB) sú zvyčajne určené len na čítanie alebo na zápis, aby sa zachovala jednoduchosť a spoľahlivosť sieťového protokolu.

Rozdiel medzi vyrovnávacou pamäťou a cache

Vyrovnávacia pamäť a vyrovnávacia pamäť sa navzájom nevylučujú; často sa používajú aj spoločne. Dôvod, prečo sa používajú, je však odlišný. Vyrovnávacia pamäť je miesto v pamäti, ktoré sa tradične používa preto, lebo inštrukcie procesora nemôžu priamo adresovať údaje uložené v periférnych zariadeniach. Pamäť počítača sa používa ako medzipamäť.

Okrem toho môže byť takáto vyrovnávacia pamäť použiteľná v prípade, keď sa zostavuje alebo rozoberá veľký blok údajov (ako to vyžaduje pamäťové zariadenie), alebo keď sa údaje môžu dodávať v inom poradí, než v akom sa vytvárajú. Aj celá vyrovnávacia pamäť s údajmi sa zvyčajne prenáša postupne (napríklad na pevný disk), takže samotná vyrovnávacia pamäť niekedy zvyšuje výkonnosť prenosu. Tieto výhody sú prítomné aj vtedy, ak sa údaje z vyrovnávacej pamäte zapíšu do vyrovnávacej pamäte raz a raz sa z nej prečítajú.

Vyrovnávacia pamäť tiež zvyšuje výkon prenosu. Časť zvýšenia podobne pochádza z možnosti, že sa viacero malých prenosov spojí do jedného veľkého bloku. Hlavný nárast výkonu však nastáva preto, že je veľká pravdepodobnosť, že ten istý údaj bude z vyrovnávacej pamäte načítaný viackrát, alebo že zapísané údaje budú čoskoro načítané. Jediným účelom vyrovnávacej pamäte je znížiť počet prístupov k základnému pomalšiemu úložisku. Cache je zvyčajne aj abstrakčná vrstva, ktorá je navrhnutá tak, aby bola neviditeľná z pohľadu susedných vrstiev. Takto si aplikácie alebo klienti nemusia byť vedomí, že existuje vyrovnávacia pamäť.

Otázky a odpovede

Otázka: Čo je to vyrovnávacia pamäť?


Odpoveď: Ukladanie do vyrovnávacej pamäte je termín používaný v informatike, ktorý označuje postup ukladania kópií často používaných údajov s cieľom získať k nim rýchlejší prístup ako opätovné načítanie alebo prepočítavanie pôvodných údajov.

Otázka: Ako funguje ukladanie do vyrovnávacej pamäte?


Odpoveď: Ukladanie do vyrovnávacej pamäte funguje tak, že sa používajú dva druhy pamäťových médií, jedno, ktoré je zvyčajne pomerne veľké, ale prístup k nemu je pomalý, a druhé, ku ktorému sa dá pristupovať oveľa rýchlejšie, ale ktoré je spravidla menšie. Myšlienka ukladania do vyrovnávacej pamäte spočíva v použití rýchleho média na ukladanie kópií údajov, aby prístup k pôvodným údajom trval kratšie alebo bol menej nákladný.

Otázka: Čo je vyrovnávacia pamäť?


Odpoveď: Vyrovnávacia pamäť je podobná vyrovnávacej pamäti v tom, že ukladá kópie údajov na rýchlejší prístup, avšak pri vyrovnávacej pamäti klient pristupujúci k údajom vie, že existuje vyrovnávacia pamäť, a spravuje ju aplikácia, zatiaľ čo pri vyrovnávacej pamäti klienti nemusia vedieť, že existuje vyrovnávacia pamäť.

Otázka: Čo znamená lokálnosť referencie?


Odpoveď: Lokalita referencie znamená, že keď aplikácia pristupuje k určitým blokom štruktúrovaných údajov, je pravdepodobné, že bude pristupovať aj k iným blokom, ktoré sú blízko tých, ku ktorým pôvodne pristupovala. To pomáha vyrovnávacím pamätiam dobre fungovať, pretože sú zvyčajne malé v porovnaní so všetkými dostupnými údajmi.

Otázka: Prečo väčším vyrovnávacím pamätiam trvá vyhľadávanie záznamov dlhšie?


Odpoveď: Väčšie vyrovnávacie pamäte trvajú dlhšie, pretože obsahujú viac uložených informácií, a preto vyžadujú viac času na vyhľadávanie. Sú tiež drahšie, pretože vyžadujú viac zdrojov na ukladanie.

Otázka: Ako môže lokálnosť pomôcť zlepšiť fungovanie vyrovnávacích pamätí?


Odpoveď: Lokalita pomáha zlepšiť fungovanie vyrovnávacích pamätí, pretože keď aplikácie pristupujú k určitým blokom štruktúrovaných údajov, pravdepodobne budú potrebovať aj iné blízke bloky, ktoré sa potom môžu rýchlo načítať z vyrovnávacej pamäte namiesto toho, aby ich museli načítať odinakiaľ alebo ich znovu prepočítať.

AlegsaOnline.com - 2020 / 2023 - License CC3