Podėliavimas

Spartinančioji atmintinė - tai kompiuterių moksle vartojamas terminas. Spartinančiosios atmintinės (tariama "cash" /ˈkæʃ/ KASH ) idėja yra labai paprasta: Labai dažnai skaičiavimo rezultato gavimas užima daug laiko, todėl paprastai verta rezultatą saugoti. Naudojamos dviejų rūšių laikmenos: Viena jų paprastai yra gana didelė, tačiau prie jos prieiga yra "lėta"; kita gali būti pasiekiama daug greičiau, tačiau paprastai ji yra maža. Pati pagrindinė spartinimo idėja - duomenų kopijoms laikyti naudoti laikmeną, prie kurios prieiga yra greita. Tarp kopijos ir originalo nėra jokio skirtumo. Prieiga prie originalių duomenų gali užtrukti ilgai arba gali būti brangi (pavyzdžiui, sudėtingo uždavinio, kuriam išspręsti reikia daug laiko, rezultatai). Dėl šios priežasties daug "pigiau" yra tiesiog naudoti duomenų kopiją iš talpyklos. Kitaip tariant, talpykla yra laikina saugojimo sritis, kurioje yra dažnai naudojamų duomenų kopijos. Kai šioje talpykloje yra duomenų kopija, greičiau naudoti šią kopiją, o ne iš naujo ieškoti ar skaičiuoti originalius duomenis. Taip sutrumpėja vidutinis laikas, reikalingas duomenims pasiekti. Naujos reikšmės įtraukimas į talpyklą dažnai reiškia, kad reikia pakeisti senesnę reikšmę. Yra įvairių idėjų (paprastai vadinamų "strategijomis"), kaip parinkti vertę, kurią reikia pakeisti.

Buferis labai panašus į talpyklą. Jis skiriasi tuo, kad klientas, kuris kreipiasi į buferio duomenis, žino, kad yra buferis; buferį valdo programa. Naudojant talpyklą, klientas, norėdamas pasiekti duomenis, neprivalo žinoti, kad yra talpykla.

Tipinės kompiuterių programos prie duomenų prieina labai panašiais būdais. Tarkime, kad duomenys yra suskirstyti į "blokus", kuriuos galima pasiekti atskirai. Kai programa kreipiasi į bloką, labai tikėtina, kad ji taip pat kreipsis į bloką, kuris yra "artimas" pirminiam blokui (arba pateiks nuorodą į jį). Tai vadinama nuorodų lokalumu. Yra įvairių tokio "lokalumo" rūšių. Nuorodos lokalumas yra viena iš priežasčių, kodėl talpyklos gerai veikia daugelyje kompiuterijos sričių.

Kad talpyklos veiktų gerai, jos turi būti mažos, palyginti su visu duomenų kiekiu. Kuo didesnė talpykla, tuo ilgiau užtrunka ieškoti įrašo. Didesnes talpyklas taip pat brangiau sukurti.

Kaip veikia talpyklos

Spartinančioji atmintinė - tai atminties blokas, skirtas duomenims, kurie, tikėtina, bus naudojami dar kartą, saugoti. Dažnai talpyklą naudoja centrinis procesorius ir kietasis diskas, taip pat žiniatinklio naršyklės ir žiniatinklio serveriai.

Talpyklą sudaro daug įrašų, vadinamų telkiniu. Kiekviename įraše yra duomenų bitas, kuris yra kitoje vietoje esančio duomenų bito kopija. Talpyklose paprastai naudojama vadinamoji atsarginė saugykla. Palyginti su talpykla, prie atsarginių saugyklų prieiga yra lėta arba brangi. Pavyzdžiui, diskinėje talpykloje kaip atsarginė saugykla naudojamas kietasis diskas. Prie kiekvieno įrašo taip pat pridedama nedidelė informacija, vadinama žyma. Ši žyma naudojama norint rasti vietą, kurioje saugomi pirminiai duomenys.

Skaitymo talpyklos

Klientas (procesorius, interneto naršyklė, operacinė sistema), norėdamas pasiekti duomenų bitą, kuris, jo manymu, yra atsarginėje saugykloje, pirmiausia patikrina, ar duomenų bitą galima rasti talpykloje. Jei duomenis galima rasti talpykloje, klientas gali jais naudotis ir jam nereikia naudoti pagrindinės atminties. Tai vadinama patekimu į talpyklą. Taigi, pavyzdžiui, žiniatinklio naršyklės programa gali patikrinti savo vietinę talpyklą diske, kad sužinotų, ar turi vietinę tam tikro URL adreso tinklalapio turinio kopiją. Šiame pavyzdyje URL adresas yra žymė, o tinklalapio turinys - duomenų bazė.

Kita situacija, kuri gali susiklostyti, yra ta, kad duomenų bazės su žyma negalima rasti talpykloje. Tai vadinama talpyklos praleidimu. Duomenis reikia paimti iš atsarginės saugyklos. Paprastai jis nukopijuojamas į talpyklą, kad kitą kartą jo nebereikėtų imti iš atraminės saugyklos.

Talpyklos dydis yra ribotas. Norint padaryti vietos anksčiau neįrašytam įrašui, iš talpyklos gali tekti ištrinti kitą talpyklos įrašą. Įrašui, kurį geriausia ištrinti, rasti naudojamos specialios taisyklės. Šios taisyklės paprastai vadinamos euristinėmis. Euristika, naudojama įrašui rasti, vadinama pakeitimo politika. Naudojama labai paprasta taisyklė, vadinama mažiausiai neseniai naudota (arba LRU). Ji tiesiog paima įrašą, kuris buvo naudotas ilgiausiai. Kitos euristikos išvardytos talpyklos algoritmo sąraše.

Rašymo talpyklos

Spartinančiąsias talpyklas taip pat galima naudoti duomenims įrašyti; to privalumas tas, kad klientas gali tęsti operaciją, kai įrašas įrašytas į spartinančiąją talpyklą; jam nereikia laukti, kol įrašas bus įrašytas į atraminę saugyklą.

Tačiau tam tikru metu įrašas turi būti įrašytas į atraminę saugyklą. Laikas, kada tai įvyks, kontroliuojamas pagal įrašymo politiką.

Įrašymo per spartinančiąją talpyklą kiekvienas įrašas iš karto įrašomas į atsarginę saugyklą ir saugomas talpykloje.

Kita galimybė - rašyti tik į talpyklą, o į atsarginę saugyklą rašyti vėliau. Tai vadinama atgaline (arba užpakaline) spartinančiąja atmintine. Spartinančioji atmintinė žymi įrašus, kurie dar nebuvo įrašyti į atraminę saugyklą; naudojama žyma dažnai vadinama purvina vėliava. Prieš ištrinant įrašus iš talpyklos, jie įrašomi į atraminę saugyklą. Tai vadinama tingiuoju rašymu. Praleidus įrašymo į atsarginę talpyklą (kai reikia pakeisti bloką kitu), dažnai prireikia dviejų kreipimųsi į atmintį: vieno, kad būtų gautas reikiamas duomenų kiekis, ir kito, kad pakeisti duomenys būtų įrašyti iš talpyklos į saugyklą.

Spartinančiosios atminties politikoje taip pat gali būti nurodyta, kad tam tikri duomenys turi būti įrašyti į spartinančiąją atmintį. Klientas gali būti padaręs daug duomenų, esančių talpykloje, pakeitimų. Baigęs darbą, jis gali aiškiai nurodyti talpyklai įrašyti atgal šį duomenį.

Skirstymas be rašymo - tai talpyklos politika, kai talpykloje talpinami tik skaitymai. Taip išvengiama įrašymo atgal arba įrašymo per spartinančiąją atmintinę. Įrašai į atsarginę saugyklą atliekami visą laiką.

Klientas nėra programa, kuri keičia duomenis atsarginėje saugykloje. Jei duomenys pasikeitė atsarginėje saugykloje, kopija talpykloje bus pasenusi arba pasenusi. Arba, kai klientas atnaujina duomenis talpykloje, tų duomenų kopijos kitose talpyklose pasensta. Yra specialūs ryšio protokolai, leidžiantys talpyklų tvarkytojams bendrauti tarpusavyje, kad duomenys išliktų prasmingi. Jie vadinami darnos protokolais.

Procesoriaus atminties talpyklos schemaZoom
Procesoriaus atminties talpyklos schema

Pakeičiamo įrašo pasirinkimas

Talpykla yra nedidelė ir dažniausiai būna pilna arba beveik pilna. Taigi, kai pridedama nauja reikšmė, senąją reikia pašalinti. Šį pasirinkimą galima atlikti įvairiais būdais:

  • Pirmas įeina, pirmas išeina: Tiesiog pakeiskite įrašą, kuris į talpyklą buvo įtrauktas ilgiausiai.
  • Mažiausiai naudotas: Ši idėja yra panaši į pirmiau minėtą FIFO, tačiau, kai įrašas naudojamas, jo laiko žyma ir amžius atnaujinami.
  • Rečiausiai naudojamas: Vėlgi, panašiai kaip ir FIFO atveju, vietoj laiko žymos naudojamas skaitiklis, kuris didinamas kiekvieną kartą, kai naudojamas įrašas.
  • Atsitiktine tvarka pasirinkite įrašą

Istorija

Pirmą kartą žodis "talpykla" kompiuterijos srityje buvo pavartotas 1967 m., kai buvo parengtas mokslinis straipsnis, kurį ketinta paskelbti žurnale "IBM Systems Journal". Straipsnyje buvo rašoma apie naują atminties patobulinimą 85 modelyje. Modelis 85 buvo IBM System/360 produktų linijos kompiuteris. Žurnalo redaktorius pageidavo geresnio žodžio greitajai buferinei atminčiai, kuri buvo naudojama straipsnyje, pavadinti. Nesulaukęs pasiūlymų, jis pasiūlė žodį cache, kilusį iš prancūzų kalbos cacher, reiškiantį "slėpti". Straipsnis buvo išspausdintas 1968 m. pradžioje, o autoriai buvo pagerbti IBM. Jų darbas buvo palankiai įvertintas ir patobulintas. Cache netrukus tapo standartine kompiuterių literatūros vartosena.

Kur naudojamos talpyklos

Procesoriaus spartinančioji atmintinė

Mažos atmintinės, esančios procesoriaus luste arba šalia jo, gali būti greitesnės už daug didesnę pagrindinę atmintinę. Daugumoje procesorių nuo devintojo dešimtmečio naudojama viena ar kelios spartinančiosios atmintinės. Šiuolaikiniuose asmeniniuose kompiuteriuose esančiuose bendrosios paskirties procesoriuose jų gali būti net pusė tuzino. Kiekviena spartinančioji atmintinė gali būti specializuota skirtingai programų vykdymo užduoties daliai.

Disko talpyklos

Procesoriaus spartinančiąją atmintinę paprastai valdo tik aparatinė įranga, o kitas spartinančiąsias atmintines valdo kitokios rūšies programinė įranga. Operacinė sistema paprastai valdo puslapių talpyklą pagrindinėje atmintyje. Vartotojai, nesusiję su kompiuterių mokslu, šią talpyklą paprastai vadina virtualia atmintimi. Ją valdo operacinės sistemos branduolys.

Šiuolaikiniuose kietuosiuose diskuose yra disko buferiai. Jie kartais vadinami "disko talpykla", tačiau tai klaidinga. Pagrindinė šių buferių funkcija - tvarkyti disko įrašymą ir valdyti skaitymą. Pakartotinai į talpyklą patenkama retai, nes buferis yra labai mažas, palyginti su kietojo disko dydžiu.

Vietiniai kietieji diskai yra greiti, palyginti su kitais saugojimo įrenginiais, pavyzdžiui, nuotoliniais serveriais, vietiniais juostiniais įrenginiais arba optiniais grotuvais. Vietinių standžiųjų diskų naudojimas kaip talpyklų yra pagrindinė hierarchinio saugojimo valdymo koncepcija.

Interneto talpyklos

Žiniatinklio naršyklės ir žiniatinklio tarpiniai serveriai naudoja talpyklą ankstesniems žiniatinklio serverių atsakymams, pvz., žiniatinklio puslapiams, saugoti. Žiniatinklio talpyklos sumažina informacijos, kurią reikia perduoti tinklu, kiekį. Anksčiau talpykloje saugota informacija dažnai gali būti naudojama pakartotinai. Tai sumažina žiniatinklio serverio duomenų srauto pralaidumą ir apdorojimo reikalavimus bei padeda pagerinti interneto naudotojų atsako greitį.

Šiuolaikinėse žiniatinklio naršyklėse naudojama integruota žiniatinklio talpykla, tačiau kai kurie interneto paslaugų teikėjai ar organizacijos taip pat naudoja talpyklos tarpinį serverį. Tai žiniatinklio talpykla, kuria dalijasi visi to tinklo naudotojai.

Paieškos varikliai taip pat dažnai pateikia indeksuotus tinklalapius iš savo talpyklos. Pavyzdžiui, "Google" prie kiekvieno paieškos rezultato pateikia nuorodą "Cached". Tai naudinga, kai žiniatinklio puslapiai laikinai nepasiekiami iš žiniatinklio serverio.

Spartinimas naudojant nepatikimus tinklus

Įrašymo per tinklą operacija yra įprasta nepatikimuose tinkluose (pvz., Ethernet LAN). Tokiu atveju protokolas, naudojamas siekiant užtikrinti, kad duomenys rašymo talpykloje būtų prasmingi, kai naudojamos kelios rašymo talpyklos, yra labai sudėtingas.

Pavyzdžiui, tinklalapių talpyklos ir kliento tinklo failų sistemos talpyklos (pvz., NFS ar SMB) paprastai yra tik skaitymo arba įrašymo, kad tinklo protokolas būtų paprastas ir patikimas.

Skirtumas tarp buferio ir talpyklos

Buferis ir spartinančioji atmintinė nėra vienas kitam prieštaraujantys dalykai; jie taip pat dažnai naudojami kartu. Tačiau jų naudojimo priežastys skiriasi. Buferis - tai atminties vieta, kuri tradiciškai naudojama todėl, kad procesoriaus instrukcijos negali tiesiogiai adresuoti periferiniuose įrenginiuose saugomų duomenų. Kompiuterio atmintis naudojama kaip tarpinė saugykla.

Be to, tokį buferį galima naudoti, kai didelis duomenų blokas yra surenkamas arba išardomas (kaip to reikalauja atminties įrenginys) arba kai duomenys gali būti pristatomi kitokia tvarka, nei jie buvo sukurti. Be to, visas duomenų buferis paprastai perduodamas nuosekliai (pvz., į kietąjį diską), todėl pats buferis kartais padidina duomenų perdavimo našumą. Šie privalumai pasireiškia net ir tuo atveju, jei buferiniai duomenys į buferį įrašomi vieną kartą, o iš buferio perskaitomi vieną kartą.

Spartinančioji atmintinė taip pat padidina perkėlimo našumą. Dalis padidėjimo taip pat atsiranda dėl galimybės, kad keli maži perdavimai susijungs į vieną didelį bloką. Tačiau pagrindinis našumo padidėjimas atsiranda dėl to, kad yra didelė tikimybė, jog tie patys duomenys iš talpyklos bus perskaityti kelis kartus arba kad netrukus bus perskaityti įrašyti duomenys. Vienintelė talpyklų paskirtis - sumažinti kreipimųsi į pagrindinę lėtesnę saugyklą. Be to, talpykla paprastai yra abstrakcijos sluoksnis, kuris sukurtas taip, kad būtų nematomas iš kaimyninių sluoksnių perspektyvos. Tokiu būdu taikomosios programos arba klientai gali nežinoti, kad yra talpykla.

Klausimai ir atsakymai

K: Kas yra spartinančioji atmintis?


A: Spartinančioji atmintinė - tai kompiuterijos moksle vartojamas terminas, reiškiantis dažnai naudojamų duomenų kopijų saugojimo praktiką, siekiant juos pasiekti greičiau, nei iš naujo ieškant ar skaičiuojant originalius duomenis.

K: Kaip veikia spartinančioji atmintinė?


A: Spartinančioji atmintinė veikia naudojant dviejų rūšių laikmenas: vieną, kuri paprastai yra gana didelė, bet lėtai pasiekiama, ir kitą, kuri gali būti pasiekiama daug greičiau, bet paprastai yra mažesnė. Spartinančiosios laikmenos idėja - naudoti greitąją laikmeną duomenų kopijoms saugoti, kad priėjimas prie originalių duomenų užtruktų trumpiau arba būtų pigesnis.

K: Kas yra buferis?


A: Buferis panašus į talpyklą, nes jame saugomos duomenų kopijos, kad juos būtų galima pasiekti greičiau, tačiau naudojant buferį klientas, norintis pasiekti duomenis, žino, kad yra buferis, ir jį valdo programa, o naudojant talpyklą klientai neturi žinoti, kad yra talpykla.

K.: Ką reiškia nuorodos lokalumas?


A: Nuorodos lokalumas reiškia, kad kai programa kreipiasi į tam tikrus struktūrizuotų duomenų blokus, tikėtina, kad ji kreipsis ir į kitus blokus, esančius netoli tų, į kuriuos buvo kreiptasi iš pradžių. Tai padeda spartinančiosioms atmintinėms gerai veikti, nes jos paprastai yra mažos, palyginti su visais prieinamais duomenimis.

Klausimas: Kodėl didesnėse talpyklose įrašai ieškomi ilgiau?


A: Didesnėms talpykloms reikia daugiau laiko, nes jose saugoma daugiau informacijos, todėl reikia daugiau laiko paieškai. Jos taip pat brangesnės, nes joms saugoti reikia daugiau išteklių.

K.: Kaip vietovės gali padėti pagerinti talpyklų veikimą?


A. Lokalumas padeda užtikrinti geresnį talpyklų veikimą, nes kai programos naudojasi tam tikrais struktūrizuotų duomenų blokais, joms greičiausiai reikės ir kitų netoliese esančių blokų, kuriuos galima greitai gauti iš talpyklos, užuot juos paėmus iš kitur arba iš naujo perskaičiavus.

AlegsaOnline.com - 2020 / 2023 - License CC3