Prosessorin välimuisti toimii. Välimuistin vaikutus tietokoneen suorituskykyyn. Kaksitasoinen prosessorin välimuisti

Useimpien nykyaikaisten pöytätietokoneiden siruissa on neljä ydintä, mutta sirujen valmistajat ovat jo ilmoittaneet suunnitelmistaan ​​siirtyä kuuteen ytimiseen, ja 16-ytimiset prosessorit eivät ole vieläkään harvinaisia ​​huippuluokan palvelimissa.

Mitä enemmän ytimiä on, sitä suurempi ongelma on jakaa muistia kaikkien ytimien välillä samalla kun ne toimivat yhdessä. Ydinmäärän kasvaessa on entistä hyödyllisempää minimoida ytimien hallintaan menetetty aika datan käsittelyssä - koska tiedonvaihdon nopeus on jäljessä prosessorin ja muistin tietojenkäsittelyn nopeudesta. Voit käyttää fyysisesti jonkun muun nopeaa välimuistia tai omaa hidasta välimuistia, mutta säästää tiedonsiirtoaikaa. Tehtävää vaikeuttaa se, että ohjelmien pyytämä muistimäärä ei selvästi vastaa kunkin tyypin välimuistin määrää.

Fyysisesti vain hyvin rajallinen määrä muistia voidaan sijoittaa mahdollisimman lähelle prosessoria - prosessorin L1-välimuistia, jonka määrä on erittäin merkityksetön. Daniel Sanchez, Po-An Tsai ja Nathan Beckmann, Massachusetts Institute of Technologyn tietojenkäsittelytieteen ja tekoälylaboratorion tutkijat, opettivat tietokoneen konfiguroimaan erilaisia ​​muistityyppejä joustavaa ohjelmahierarkiaa varten reaaliajassa. Uusi järjestelmä, nimeltään Jenga, analysoi volyymitarpeita ja ohjelmien muistiin pääsyn tiheyttä ja jakaa uudelleen kunkin kolmen tyyppisen prosessorin välimuistin tehon yhdistelminä, jotka lisäävät tehokkuutta ja säästävät energiaa.


Aluksi tutkijat testasivat suorituskyvyn kasvua yhdistettäessä staattista ja dynaamista muistia työskennellessään yhden ytimen prosessorin ohjelmien parissa ja saivat ensisijaisen hierarkian - milloin on parempi käyttää kumpaa yhdistelmää. 2 muistityypistä tai yhdestä. Arvioitiin kaksi parametria: signaalin viive (latenssi) ja energiankulutus kunkin ohjelman toiminnan aikana. Noin 40 % ohjelmista alkoi toimia huonommin yhdistelmällä muistityyppejä, loput - paremmin. Kun tutkijat rakensivat Jenga-järjestelmänsä, mitkä ohjelmat "tykkäsivät" sekavasta suorituskyvystä ja mitkä muistin koosta.

He testasivat virtuaalisesti 4 tyyppistä ohjelmaa virtuaalisessa tietokoneessa, jossa oli 36 ydintä. Testatut ohjelmat:

  • omnet - Objective Modular Network Testbed, C-simulaatiokirjasto ja verkon simulointityökalujen alusta (sininen kuvassa)
  • mcf - Meta Content Framework (punainen väri)
  • astar - virtuaalitodellisuuden näyttöohjelmisto (vihreä)
  • bzip2 - arkistointi (violetti väri)


Kuvassa näkyy missä ja miten kunkin ohjelman tiedot on käsitelty. Kirjaimet osoittavat, missä kukin sovellus toimii (yksi per kvadrantti), värit osoittavat, missä sen tiedot sijaitsevat, ja varjostus ilmaisee virtuaalisen hierarkian toisen tason, kun se on olemassa.

Välimuistin tasot

CPU-välimuisti on jaettu useisiin tasoihin. Yleisprosessoreille - jopa 3. Nopein muisti on ensimmäisen tason välimuisti - L1-välimuisti, koska se sijaitsee samassa sirussa kuin prosessori. Koostuu käskyvälimuistista ja datavälimuistista. Jotkut prosessorit ilman L1-välimuistia eivät voi toimia. L1-välimuisti toimii prosessorin taajuudella ja sitä voidaan käyttää joka kellojakso. Usein on mahdollista suorittaa useita luku-/kirjoitustoimintoja samanaikaisesti. Äänenvoimakkuus on yleensä pieni - enintään 128 kt.

Toisen tason välimuisti, L2, on vuorovaikutuksessa L1-välimuistin kanssa. Se on toiseksi nopein. Se sijaitsee yleensä joko suulakkeessa, kuten L1, tai ytimen välittömässä läheisyydessä, kuten prosessorin kasetissa. Vanhemmissa prosessoreissa joukko siruja emolevyllä. L2-välimuistin määrä 128 kt - 12 megatavua. Nykyaikaisissa moniytimisissä prosessoreissa samassa sirussa sijaitseva toisen tason välimuisti on erillinen muisti - välimuistin kokonaiskoko on 8 Mt, jokainen ydin vastaa 2 Mt. Tyypillisesti ydinsirun L2-välimuistin latenssi on 8 - 20 ydinkellojaksoa. Tehtävissä, joihin liittyy lukuisia pääsyä rajoitetulle muistialueelle, esimerkiksi DBMS, sen täysi käyttö lisää tuottavuutta kymmenkertaiseksi.

L3-välimuisti on yleensä vielä suurempi, vaikkakin hieman hitaampi kuin L2-välimuisti (johtuen siitä, että L2-L3-väylä on kapeampi kuin L1-L2-väylä). L3 sijaitsee yleensä erillään CPU-ytimestä, mutta voi olla suuri - yli 32 MB. L3-välimuisti on hitaampi kuin aiemmat välimuistit, mutta silti nopeampi kuin RAM. Moniprosessorijärjestelmissä se on yleisessä käytössä. Kolmannen tason välimuistin käyttö on perusteltua hyvin kapealla alueella, ja se ei välttämättä vain lisää suorituskykyä, vaan päinvastoin johtaa järjestelmän suorituskyvyn yleiseen heikkenemiseen.

Toisen ja kolmannen tason välimuistin poistaminen käytöstä on hyödyllisintä matemaattisissa ongelmissa, kun tiedon määrä on pienempi kuin välimuistin koko. Tässä tapauksessa voit ladata kaikki tiedot L1-välimuistiin kerralla ja käsitellä ne.


Jenga määrittää ajoittain uudelleen virtuaalisia hierarkiat käyttöjärjestelmätasolla minimoidakseen tiedonvaihdon ottaen huomioon resurssirajoitukset ja sovellusten käyttäytymisen. Jokainen uudelleenkonfigurointi koostuu neljästä vaiheesta.

Jenga ei jaa tietoja vain sen mukaan, mitä ohjelmia lähetetään - niille, jotka rakastavat suurta yksinopeuksista muistia tai niitä, jotka rakastavat sekavälimuistin nopeutta, vaan myös riippuen muistisolujen fyysisestä läheisyydestä käsiteltävään dataan. Riippumatta siitä, minkä tyyppistä välimuistia ohjelma vaatii oletuksena tai hierarkian mukaan. Tärkeintä on minimoida signaalin viive ja energiankulutus. Riippuen kuinka monesta muistityypistä ohjelma "tykkää", Jenga mallintaa kunkin virtuaalihierarkian latenssia yhdellä tai kahdella tasolla. Kaksitasoiset hierarkiat muodostavat pinnan, yksitasoiset hierarkiat muodostavat käyrän. Jenga heijastaa sitten minimiviiveen VL1:n mittoihin, jolloin tuloksena on kaksi käyrää. Lopuksi Jenga käyttää näitä käyriä parhaan hierarkian (eli VL1-koon) valitsemiseen.

Jengan käytöllä on ollut huomattava vaikutus. Virtuaalinen 36-ytiminen siru alkoi toimia 30 prosenttia nopeammin ja käytti 85 prosenttia vähemmän energiaa. Tietenkin toistaiseksi Jenga on vain simulaatio toimivasta tietokoneesta ja kestää jonkin aikaa ennen kuin näet todellisia esimerkkejä tästä välimuistista ja jopa ennen kuin siruvalmistajat ottavat sen käyttöön, jos he pitävät tekniikasta.

Perinteisen 36 ydinkoneen kokoonpano

  • Prosessorit. 36 ydintä, x86-64 ISA, 2,4 GHz, Silvermontin kaltainen OOO: 8B-leveä
    ifetch; 2-tasoinen bpred 512 × 10-bittisellä BHSR:llä + 1024 × 2-bittisellä PHT:lla, 2-suuntainen dekoodaus/annos/uudelleennimeä/toteutus, 32-merkinnän IQ ja ROB, 10-merkinnän LQ, 16-merkinnän SQ; 371 pJ/ohje, 163 mW/ydin staattinen teho
  • L1-välimuistit. 32 kt, 8-suuntainen joukkoliittyvä, jaettu data- ja käskyvälimuisti,
    3-jakson latenssi; 15/33 pJ per osuma/virhe
  • Prefetchers-palvelu. 16 merkinnän streamin esihakijat mallinnettu ja validoitu vastaan
    Nehalem
  • L2-välimuistit. 128 kilotavua yksityinen ydintä kohti, 8-suuntainen joukkoliittyvä, mukaan lukien, 6-jakson latenssi; 46/93 pJ per osuma/virhe
  • Koherenssitila. 16-suuntaiset, 6-jaksoiset latenssihakemistopankit Jengalle; välimuistissa olevat L3-hakemistot muille
  • Globaali NoC. 6 × 6 mesh, 128-bittiset flitit ja linkit, X-Y-reititys, 2-vaiheiset liukuhihnareitittimet, 1-jaksoiset linkit; 63/71 pJ per reititin/linkki flit traversal, 12/4mW reititin/linkki staattinen teho
  • Staattinen muisti estää SRAM-muistin. 18 Mt, yksi 512 kt:n pankki ruutua kohden, 4-suuntainen 52-ehdokas zcache, 9-jaksoinen pankkiviive, Vantage-osiointi; 240/500 pJ per osuma/virhe, 28 mW/pankki staattinen teho
  • Monikerroksinen pinottu DRAM. 1152 Mt, yksi 128 Mt:n varasto 4 ruutua kohti, seos MAP-I DDR3-3200:lla (1600 MHz), 128-bittinen väylä, 16 riviä, 8 pankkia/sijoitus, 2 kt rivipuskuri; 4,4/6,2 nJ osumaa/virhettä kohden, 88 mW/holvin staattinen teho
  • Päämuisti. 4 DDR3-1600 kanavaa, 64-bittinen väylä, 2 riviä/kanava, 8 pankkia/sijoitus, 8 kt rivipuskuri; 20 nJ/käyttö, 4W staattinen teho
  • DRAM-ajoitukset. tCAS=8, tRCD=8, tRTP=4, tRAS=24, tRP=8, tRRD=4, tWTR=4, tWR=8, tFAW=18 (kaikki ajoitukset tCK:ssa; pinotulla DRAM:lla on puolet tCK:sta päämuistina )

Hyvää päivää kaikille. Tänään yritämme selittää sinulle välimuistin käsitteen. Prosessorin välimuisti on erittäin nopea tietojenkäsittelyjärjestelmä, jonka nopeus ylittää normaalin RAM-muistin 16–17 kertaa, jos puhumme DDR4:stä.

Tästä artikkelista opit:

Se on välimuistin määrä, jonka avulla CPU voi toimia maksiminopeuksilla odottamatta RAM:n käsittelevän mitään tietoja ja lähettävän valmiiden laskelmien tulokset sirulle jatkokäsittelyä varten. Samanlainen periaate näkyy kiintolevyssä, vain se käyttää 8–128 Mt:n puskuria. Toinen asia on, että nopeudet ovat paljon pienemmät, mutta työprosessi on samanlainen.

Mikä on prosessorin välimuisti?

Miten laskentaprosessi yleensä toimii? Kaikki tiedot tallennetaan RAM-muistiin, joka on suunniteltu tärkeiden käyttäjä- ja järjestelmätietojen väliaikaiseen tallentamiseen. Prosessori valitsee itselleen tietyn määrän tehtäviä, jotka ohjataan erittäin nopeaan välimuistiksi kutsuttuun lohkoon ja alkaa hoitaa suoria velvollisuuksiaan.

Laskentatulokset lähetetään jälleen RAM-muistiin, mutta paljon pienempiä määriä (tuhannen lähtöarvon sijaan saamme paljon vähemmän), ja uusi taulukko otetaan käsittelyyn. Ja niin edelleen, kunnes työ on tehty.

Toimintanopeus määräytyy RAM-muistin tehokkuuden mukaan. Mutta yksikään moderni DDR4-moduuli, mukaan lukien ylikellotusratkaisut alle 4000 MHz:n taajuuksilla, ei pääse lähellekään kivuisimman prosessorin ominaisuuksia sen "hitaalla" välimuistilla.

Tämä johtuu siitä, että suorittimen nopeus ylittää RAM-muistin suorituskyvyn keskimäärin 15 kertaa tai jopa enemmän. Ja älä katso vain taajuusparametreja, niiden lisäksi on paljon eroja.
Teoriassa käy ilmi, että jopa supertehokkaat Intel Xeon ja AMD Epyc pakotetaan olemaan tyhjäkäynnillä, mutta itse asiassa molemmat palvelinsirut toimivat kykyjensä rajoilla. Ja kaikki siksi, että ne keräävät tarvittavan määrän tietoa välimuistin koon mukaan (jopa 60 Mt tai enemmän) ja käsittelevät tiedot välittömästi. RAM toimii eräänlaisena varastona, josta piirretään taulukoita laskelmia varten. Tietokoneen laskentateho paranee ja kaikki ovat tyytyväisiä.

Lyhyt retki historiaan

Ensimmäiset maininnat välimuistista juontavat juurensa 80-luvun lopulta. Tähän asti prosessorin ja muistin nopeus olivat suunnilleen samat. Sirujen nopea kehitys edellytti jonkinlaisen "sauvojen" keksimistä RAM-suorituskyvyn tason nostamiseksi, mutta erittäin nopeiden sirujen käyttö oli erittäin kallista, ja siksi he päättivät tyytyä taloudellisempaan vaihtoehtoon - ottamalla käyttöön korkean nopeusmuistiryhmä CPU:hun.

Välimuistimoduuli ilmestyi ensimmäisen kerran Intel 80386:ssa. Tuolloin DRAMin toimintaviiveet vaihtelivat noin 120 nanosekuntia, kun taas nykyaikaisempi SRAM-moduuli vähensi latenssin vaikuttavaan 10 nanosekuntiin noihin aikoihin. Likimääräinen kuva näkyy selvemmin kiintolevyn ja SSD:n vastakkainasettelussa.

Aluksi välimuisti juotettiin suoraan emolevyille tuolloin teknisen prosessin tason vuoksi. Intel 80486:sta alkaen 8 kilotavua muistia upotettiin suoraan prosessorin suuttimeen, mikä lisäsi suorituskykyä ja pienensi suulakkeen pinta-alaa.

Tämä järjestelytekniikka säilyi merkityksellisenä vain Pentium MMX:n julkaisuun asti, jonka jälkeen SRAM-muisti korvattiin edistyneemmällä SDRAM:illa.
Ja prosessoreista on tullut paljon pienempiä, joten ulkoisia piirejä ei tarvita.

Välimuistin tasot

Nykyaikaisten prosessorien merkinnöistä löytyy ja lisäksi tasojen 1, 2 ja 3 välimuistin koon käsite. Miten se määritellään ja mihin se vaikuttaa? Ymmärretään se yksinkertaisin sanoin.

  • Tason 1 välimuisti (L1) on CPU-arkkitehtuurin tärkein ja nopein siru. Yhteen prosessoriin mahtuu yhtä monta moduuleja kuin ytimiä. On huomionarvoista, että siru voi tallentaa muistiin suosituimmat ja tärkeimmät tiedot vain sen ytimestä. Taulukon koko on usein rajoitettu 32–64 kilotavuun.
  • Toisen tason välimuisti (L2) - nopeuden lasku kompensoidaan puskurin määrän kasvulla, joka saavuttaa 256 tai jopa 512 kt. Toimintaperiaate on sama kuin L1:ssä, mutta muistipyyntöjen taajuus on pienempi, koska siihen on tallennettu alemman prioriteetin dataa.
  • Kolmannen tason välimuisti (L3) on hitain ja laajin osa niistä kaikista. Ja silti tämä joukko on paljon nopeampi kuin RAM. Palvelinsirujen koko voi olla 20 ja jopa 60 megatavua. Matriisin edut ovat valtavat: se on keskeinen linkki tiedonvaihdossa järjestelmän kaikkien ytimien välillä. Ilman L3:a sirun kaikki elementit olisivat hajallaan.

Myynnistä löytyy sekä kaksi- että kolmitasoisia muistirakenteita. Kumpi on parempi? Jos käytät prosessoria vain toimistoohjelmiin ja arkipeleihin, et tunne eroa. Jos järjestelmä on koottu monimutkaisia ​​3D-pelejä, arkistointia, renderöintiä ja grafiikan käsittelyä varten, kasvu vaihtelee joissakin tapauksissa 5-10%.
Kolmannen tason välimuisti on perusteltu vain, jos aiot säännöllisesti työskennellä monisäikeisten sovellusten kanssa, jotka vaativat säännöllisiä monimutkaisia ​​laskelmia. Tästä syystä palvelinmalleissa käytetään usein suuria L3-välimuistia. Vaikka on tapauksia, joissa tämä ei riitä, ja siksi sinun on asennettava lisäksi niin sanotut L4-moduulit, jotka näyttävät erilliseltä emolevyyn kytketyltä sirulta.

Kuinka saan selville prosessorini tasojen määrän ja välimuistin koon?

Aloitetaan siitä, että tämä voidaan tehdä kolmella tavalla:

  • komentorivin kautta (vain L2- ja L3-välimuisti);
  • etsimällä teknisiä tietoja Internetistä;
  • käyttämällä kolmannen osapuolen apuohjelmia.

Jos otamme perustana sen, että useimmissa prosessoreissa L1 on 32 kt ja L2 ja L3 voivat vaihdella suuresti, tarvitsemme kaksi viimeistä arvoa. Voit etsiä niitä avaamalla komentorivin "Käynnistä" (kirjoita arvo "cmd" hakupalkkiin).

Järjestelmä näyttää epäilyttävän korkean arvon L2:lle. Sinun on jaettava se prosessoriytimien lukumäärällä ja selvitettävä lopputulos.

Jos aiot etsiä tietoja verkosta, selvitä ensin suorittimen tarkka nimi. Napsauta hiiren kakkospainikkeella "Oma tietokone" -kuvaketta ja valitse "Ominaisuudet". "Järjestelmä" -sarakkeessa on "Prosessori" -kohde, jota todella tarvitsemme. Kirjoita sen nimi uudelleen samaan Googleen tai Yandexiin ja katso merkitys sivustoilla. Luotettavaa tietoa varten on parempi valita valmistajan viralliset portaalit (Intel tai AMD).
Kolmas menetelmä ei myöskään aiheuta ongelmia, mutta vaatii lisäohjelmistojen, kuten GPU-Z:n, AIDA64:n ja muiden apuohjelmien asentamisen kiven teknisten tietojen tutkimiseksi. Vaihtoehto niille, jotka pitävät ylikellotuksesta ja yksityiskohtien puuhastelusta.

Tulokset

Nyt ymmärrät, mikä välimuisti on, mistä sen koko riippuu ja mihin tarkoituksiin erittäin nopeaa tietojoukkoa käytetään. Tällä hetkellä markkinoiden kiinnostavimmat ratkaisut suurilla välimuistimäärillä ovat AMD Ryzen 5 ja 7 -laitteet 16 MB L3:lla.

Seuraavissa artikkeleissa käsittelemme aiheita, kuten prosessorit, sirujen edut ja paljon muuta. ja pysy kuulolla. Seuraavaan kertaan, hei.

Kaikissa prosessoreissa 90-luvun lopulta lähtien on sisäinen välimuisti (tai yksinkertaisesti välimuisti). Välimuisti on nopea muisti, johon siirretään prosessorin suoraan käsittelemät käskyt ja tiedot.

Nykyaikaisissa prosessoreissa on sisäänrakennettu kahden tason välimuisti - ensimmäinen (L1) ja toinen (L2). Prosessori on hieman nopeampi L1-välimuistin sisällöllä, kun taas L2-välimuisti on yleensä hieman suurempi. Välimuistiin päästään ilman odotustilaa, ts. Tason 1 välimuisti (sirun välimuisti) toimii prosessorin nopeudella.

Tämä tarkoittaa, että jos prosessorin tarvitsemat tiedot ovat välimuistissa, käsittelyssä ei ole viiveitä. Muussa tapauksessa prosessorin on noudettava tiedot päämuistista, mikä heikentää merkittävästi järjestelmän suorituskykyä.

Ymmärtääksemme laadullisesti molempien tasojen välimuistin toimintaperiaatetta, tarkastellaan esimerkkinä jokapäiväistä tilannetta.

Tulet kahvilaan lounaalle joka päivä samaan aikaan ja istut aina samassa pöydässä. Tilaa aina vakio kolmen ruokalajin setti.

Tarjoilija juoksee keittiöön, kokki laittaa ne tarjottimelle ja sitten he tuovat tilauksesi. Ja niin sanotaan kolmantena päivänä tarjoilija, jotta ei enää tarvitsisi juosta keittiöön, tapaa sinut sovittuna aikana valmiin lämpimän lounaan kanssa tarjottimella.

Sinun ei tarvitse odottaa tilaustasi ja säästät paljon aikaa. Tarjotin astioineen on ensimmäisen tason välimuisti. Mutta neljäntenä päivänä haluat yhtäkkiä lisätä toisen annoksen, sano jälkiruoka.

Vaikka tarjotin tilauksesi kanssa odotti sinua jo sovittuna aikana, tarjoilija joutui silti juoksemaan keittiöön jälkiruoalle.

Ja viidentenä - jälleen kolmen kohteen valikko. Kuudentena - jälkiruoka jälleen, mutta erilainen kuin edellinen. Ja tarjoilija, joka ei tiedä, mitä jälkiruokaa haluat tilata (eikä edes tiedä, tilaatko mitään), päättää ottaa seuraavan askeleen: pöytäsi viereen hän laittaa kaapin, jossa on useita erilaisia ​​jälkiruokia.

Ja jos ilmaiset toiveen, kaikki on käsillä, ei tarvitse juosta keittiöön. Jälkiruokakaappi on toisen tason kätkö.

Prosessorin suorituskyky riippuu merkittävästi L1-välimuistin koosta (16 - 128 KB) ja L2-välimuistin koosta (64 - 512 kt, Pentium III Heopissa ja AMD Opteronissa jopa 4 Mt).

Intel Pentium III -suorittimissa ja siihen perustuvissa Celeron-prosessoreissa on 32 kilotavua L1-välimuistia. Intel Pentium 4:ssä sekä siihen perustuvissa Celeron- ja Cheop-versioissa on vain 20 kt. AMD Duron-, Athlon- (mukaan lukien XP/MP) ja Opteron-prosessorit sekä VIA SZ sisältävät 128 kt L1-välimuistia.

Nykyaikaisissa kaksiytimisissä prosessoreissa on ensimmäisen tason välimuisti jokaiselle ytimelle erikseen, joten joskus välimuistin kuvauksessa voimme nähdä numeron 128x2. Tämä tarkoittaa, että jokaisessa prosessoriytimessä on 128 kt L1-välimuistia.

L1-välimuistin koko on tärkeä korkean suorituskyvyn saavuttamiseksi yleisimmissä tehtävissä (toimistosovellukset, pelit, useimmat palvelinsovellukset jne.). Sen tehokkuus on erityisen vahva säikeistetyssä laskennassa (esimerkiksi videonkäsittelyssä).

Tämä on yksi syy siihen, että Pentium 4 on suhteellisen tehoton useimmissa yleisissä sovelluksissa (vaikka tämän kompensoi sen korkea kellonopeus). L1-välimuisti toimii aina (vaihtaa tietoja prosessorin ytimen kanssa) sisäisen prosessorin taajuudella.

Sitä vastoin L2-välimuisti eri prosessorimalleissa toimii eri taajuuksilla (ja vastaavasti suorituskyvyllä). Intel Pentium II:sta lähtien monet prosessorit käyttivät L2-välimuistia, joka toimi puolella prosessorin sisäisestä taajuudesta.

Tätä ratkaisua käytettiin vanhentuneissa Intel Pentium III -prosessoreissa (jopa 550 MHz) ja vanhentuneissa AMD Athlonissa (joissakin niistä sisäinen L2-välimuisti toimi kolmanneksella prosessorin ydintaajuudesta). L2-välimuistin koko vaihtelee myös prosessorien välillä.

Vanhemmissa ja joissakin uudemmissa Intel Pentium III -suorittimissa L2-välimuistin koko on 512 kt, muissa Pentium III -prosessoreissa 256 kt. Pentium III -pohjainen Intel Celeron -prosessori oli saatavana 128 ja 256 kilotavulla L2-välimuistilla, kun taas Pentium 4 -pohjainen prosessori oli saatavana vain 128 kilotavulla. Intel Pentium 4:n Xeon-versioiden eri versioissa on jopa 4 Mt L2-välimuistia.

Uusissa Pentium 4 -prosessoreissa (jotkut sarjat taajuudella 2000 MHz ja kaikki korkeammille taajuuksille) on 512 kt L2-välimuistia, muissa Pentium 4:ssä on 256 kt. Xeop-suorittimissa (Pentium 4:ään perustuvissa) on 256 tai 512 kt L2-välimuisti.

Lisäksi heillä on myös kolmannen tason L3-välimuisti. Integroitu L3-välimuisti yhdistettynä nopeaan järjestelmäväylään muodostaa nopean tiedonsiirtokanavan järjestelmämuistin kanssa.

Pääsääntöisesti vain palvelinratkaisujen prosessorit tai "työpöytä"-prosessorien erikoismallit on varustettu L3-välimuistilla. Esimerkiksi suoritinlinjoilla, kuten Xeon DP, Itanium 2 ja Xeon MP, on L3-välimuisti.

AMD Duron -prosessorissa on 128 kilotavua L1-välimuistia ja 64 kilotavua L2-välimuistia. Athlon-prosessoreissa (paitsi vanhin), Athlon MP:ssä ja useimmissa Athlon XP -versioissa on 128 kt L1-välimuistia ja 256 kt L2-välimuistia, ja uusimmassa Athlon XP:ssä (2500+, 2800+, 3000+ ja uudemmat) on 512 kt L2-välimuistia. kätkö. AMD Opteron sisältää 1 Mt L2-välimuistia.

Uusimmat Intel Pentium D-, Intel Pentium M- ja Intel Core 2 Duo -suorittimet ovat saatavilla 6 Mt L2-välimuistilla ja Core 2 Quad - 12 Mt L2-välimuistilla.

Tämän kirjan kirjoitushetkellä uusimmassa Intel Core i7 -prosessorissa on 64 kt L1-välimuistia jokaista neljää ydintä kohden sekä 256 kt L2-muistia jokaista ydintä kohti. Ensimmäisen ja toisen tason välimuistin lisäksi prosessorissa on myös kaikille ytimille yhteinen kolmannen tason välimuisti, joka on 8 Mt.

Prosessoreille, joilla voi olla eri L2-välimuistin koot (tai Intel Xeon MP - L3:n tapauksessa) samalle mallille, tämä koko on ilmoitettava myyntihetkellä (tietysti prosessorin hinta riippuu siitä). Jos prosessori myydään "laatikossa" (In-Box toimitus), välimuistin koko ilmoitetaan yleensä siihen.

Tavallisissa käyttäjätehtävissä (mukaan lukien pelit) L2-välimuistin nopeus on tärkeämpi kuin sen koko; palvelintehtävissä volyymi on päinvastoin tärkeämpi. Tuottavimmat palvelimet, erityisesti ne, joissa on paljon RAM-muistia (useita gigatavuja), vaativat L2-välimuistin enimmäiskoon ja enimmäisnopeuden.

Pentium III -prosessorien Cheop-versiot ovat näissä parametreissa lyömättömiä. (Xeon MP -prosessori osoittautuu edelleen tuottavammaksi palvelintehtävissä kuin Pentium III Xeon, mikä johtuu itse prosessorin ja muistiväylän korkeammasta kellotaajuudesta.) Edellä esitetystä päätämme: välimuisti parantaa vuorovaikutusta nopea prosessori ja hitaampi RAM, ja voit myös minimoida tietojenkäsittelyn aikana esiintyvät odotusajat. Prosessorisirun L2-välimuistilla on tässä ratkaiseva rooli.

Yksi tärkeimmistä prosessorin suorituskykyä lisäävistä tekijöistä on välimuistin läsnäolo, tai pikemminkin sen määrä, pääsynopeus ja jakautuminen tasojen välillä.

Melkein kaikki prosessorit on jo jonkin aikaa varustettu tämän tyyppisellä muistilla, mikä jälleen kerran todistaa sen olemassaolon hyödyllisyyden. Tässä artikkelissa puhumme välimuistin rakenteesta, tasoista ja käytännön tarkoituksesta prosessorin erittäin tärkeänä ominaisuutena.

Mikä on välimuisti ja sen rakenne

Välimuisti on erittäin nopea muisti, jota prosessori käyttää tilapäisesti useimmin käytettyjen tietojen tallentamiseen. Näin voimme kuvata lyhyesti tämän tyyppistä muistia.

Välimuisti on rakennettu flip-flopseihin, jotka puolestaan ​​koostuvat transistoreista. Ryhmä transistoreja vie paljon enemmän tilaa kuin samat kondensaattorit, jotka muodostavat RAM-muistin. Tämä aiheuttaa monia tuotantoongelmia sekä volyymirajoituksia. Tästä syystä välimuisti on erittäin kallis muisti, vaikka sen volyymit ovat mitättömät. Mutta tästä rakenteesta tulee tällaisen muistin tärkein etu - nopeus. Koska flip-flopit eivät tarvitse regenerointia ja sen portin viiveaika, johon ne on asennettu, on pieni, aika kiikun vaihtamiseen tilasta toiseen tapahtuu hyvin nopeasti. Tämä mahdollistaa välimuistin toiminnan samoilla taajuuksilla kuin nykyaikaiset prosessorit.

Tärkeä tekijä on myös välimuistin sijainti. Se sijaitsee itse prosessorisirussa, mikä vähentää merkittävästi käyttöaikaa. Aiemmin joidenkin tasojen välimuisti sijaitsi prosessorisirun ulkopuolella, erityisellä SRAM-sirulla jossain emolevyn päällä. Nyt lähes kaikissa prosessoreissa on välimuisti, joka sijaitsee prosessorin sirulla.

Mihin prosessorin välimuistia käytetään?

Kuten edellä mainittiin, välimuistin päätarkoitus on tallentaa prosessorin usein käyttämiä tietoja. Välimuisti on puskuri, johon data ladataan, ja pienestä koostaan ​​(noin 4-16 Mt) huolimatta nykyaikaisissa prosessoreissa se tarjoaa merkittävän suorituskyvyn lisäyksen kaikissa sovelluksissa.

Ymmärtääksesi paremmin välimuistin tarpeen, kuvitellaan, että tietokoneen muisti järjestetään toimiston tapaan. RAM on kaappi, jossa on kansioita, joita kirjanpitäjä ajoittain käyttää hakeakseen suuria tietolohkoja (eli kansioita). Ja taulukosta tulee välimuisti.

Kirjanpitäjän pöydälle sijoitetaan elementtejä, joihin hän viittaa useita kertoja tunnin sisällä. Nämä voivat olla esimerkiksi puhelinnumeroita, joitain esimerkkejä asiakirjoista. Tämän tyyppiset tiedot sijaitsevat suoraan taulukossa, mikä puolestaan ​​​​nopeuttaa pääsyä niihin.

Samalla tavalla näistä suurista tietolohkoista (kansioista) voidaan lisätä tietoja taulukkoon nopeaa käyttöä varten, esimerkiksi dokumentti. Kun tätä asiakirjaa ei enää tarvita, se asetetaan takaisin kaappiin (RAM-muistiin), jolloin taulukko tyhjennetään (välimuisti) ja tämä taulukko vapautuu uusille asiakirjoille, joita käytetään seuraavan ajanjakson aikana.

Myös välimuistin kanssa, jos on tietoja, joita todennäköisimmin käytetään uudelleen, nämä tiedot RAM-muistista ladataan välimuistiin. Hyvin usein tämä tapahtuu lataamalla yhdessä tiedot, joita todennäköisimmin käytetään nykyisten tietojen jälkeen. Eli on oletuksia siitä, mitä käytetään "jälkeen". Nämä ovat monimutkaisia ​​toimintaperiaatteita.

Prosessorin välimuistin tasot

Nykyaikaiset prosessorit on varustettu välimuistilla, joka koostuu usein 2 tai 3 tasosta. Toki poikkeuksiakin löytyy, mutta usein näin on.

Yleensä voi olla seuraavat tasot: L1 (ensimmäinen taso), L2 (toinen taso), L3 (kolmas taso). Nyt hieman tarkemmin jokaisesta niistä:

Ensimmäisen tason välimuisti (L1) on nopein välimuistitaso, joka toimii suoraan prosessorin ytimen kanssa. Se on puskuri prosessorin ja toisen tason välimuistin välillä.

Harkitsemme volyymeja korkean suorituskyvyn Intel Core i7-3770K -prosessorilla. Tämä prosessori on varustettu 4 x 32 kt L1-välimuistilla 4 x 32 kt = 128 kt. (32 kt per ydin)

Toisen tason välimuisti (L2) – toinen taso on suurempi kuin ensimmäinen, mutta sen seurauksena sen "nopeusominaisuudet" ovat alhaisemmat. Näin ollen se toimii puskurina L1- ja L3-tasojen välillä. Jos katsomme uudelleen esimerkkiämme Core i7-3770 K, niin L2-välimuistin koko on 4x256 KB = 1 MB.

Kolmannen tason välimuisti (L3) – kolmas taso on jälleen hitaampi kuin kaksi edellistä. Mutta se on silti paljon nopeampi kuin RAM. L3-välimuistin koko i7-3770K:ssa on 8 Mt. Jos jokainen ydin jakaa kaksi edellistä tasoa, tämä taso on yhteinen koko prosessorille. Luku on melko vankka, mutta ei kohtuuton. Koska esimerkiksi Extreme-sarjan prosessoreissa, kuten i7-3960X, se on 15 Mt ja joissakin uusissa Xeon-prosessoreissa yli 20.

we-it.net

Mihin välimuistia käytetään ja kuinka paljon sitä tarvitaan?

Emme puhu rahasta, vaan prosessorin välimuistista ja muusta. Kauppiaat ovat tehneet välimuistikapasiteetista toisen kaupallisen fetissin varsinkin keskusprosessorien ja kiintolevyjen välimuistilla (näyttökorteissa sekin on, mutta siihen ei ole vielä päästy). On siis olemassa XXX-prosessori 1 Mt:n L2-välimuistilla ja täsmälleen sama XYZ-prosessori 2 Mt:n välimuistilla. Arvaa kumpi on parempi? Ah - älä tee sitä heti!

Välimuisti on puskuri, joka tallentaa mitä voidaan ja/tai pitää siirtää myöhempään. Prosessori tekee työtä ja syntyy tilanteita, kun välidataa täytyy tallentaa jonnekin. No, tietysti kätkössä! - loppujen lopuksi se on suuruusluokkaa nopeampi kuin RAM, koska... se on itse prosessorissa ja toimii yleensä samalla taajuudella. Ja sitten jonkin ajan kuluttua hän kalastaa nämä tiedot takaisin ja käsittelee ne uudelleen. Karkeasti sanottuna se on kuin perunalajittelija liukuhihnalla, joka joka kerta kun törmää johonkin muuhun kuin perunaan (porkkanaan), heittää sen laatikkoon. Ja kun se on täynnä, hän nousee ylös ja vie sen viereiseen huoneeseen. Tällä hetkellä kuljetin seisoo paikallaan ja seisokkeja havaitaan. Laatikon tilavuus on välimuisti tässä analogiassa. Ja kuinka paljon tarvitaan - 1 Mt vai 12? On selvää, että jos sen tilavuus on pieni, joudut viettämään liian paljon aikaa poistamiseen ja se on yksinkertaista, mutta tietyn tilavuuden jälkeen sen lisääminen ei tuota mitään. No, lajittelijalla on laatikko 1000 kilolle porkkanoita - mutta hänellä ei ole niin paljon koko työvuoronsa aikana, eikä se tee hänestä KAKSIN KERTAA NOPEAMPI! On vielä yksi hienovaraisuus - suuri välimuisti voi ensinnäkin lisätä viiveitä siihen pääsyssä, ja samalla virheiden todennäköisyys siinä kasvaa esimerkiksi ylikellotuksen aikana - toiseksi. (Voit lukea MITEN määrittää prosessorin vakaus/epävakaus tässä tapauksessa ja selvittää, että virhe tapahtuu sen välimuistissa ja testata L1 ja L2 täältä.) Kolmanneksi, välimuisti kuluttaa kohtuullisen määrän sirualuetta ja prosessoripiirin transistoribudjetti. Sama koskee kiintolevyjen välimuistia. Ja jos prosessorin arkkitehtuuri on vahva, sillä on 1024 kt:n tai enemmän välimuistia monissa sovelluksissa. Jos sinulla on nopea kiintolevy, 16 Mt tai jopa 32 Mt on sopiva. Mutta mikään 64 Mt:n välimuisti ei tee siitä nopeampaa, jos kyseessä on vihreäksi versioksi kutsuttu trimmi (Green WD), jonka nopeus on 5900 vaaditun 7200:n sijaan, vaikka jälkimmäisessä olisi 8 Mt. Sitten Intel- ja AMD-prosessorit käyttävät tätä välimuistia eri tavalla (yleensä AMD on tehokkaampi ja niiden prosessorit ovat usein mukavia pienempiin arvoihin). Lisäksi Intelillä on jaettu välimuisti, mutta AMD:llä on se erikseen jokaiselle ytimelle. AMD-suorittimien nopein L1-välimuisti on 64 kt dataa ja ohjeita varten, mikä on kaksi kertaa enemmän kuin Intelin. Kolmannen tason L3-välimuisti löytyy yleensä huippuprosessoreista, kuten AMD Phenom II 1055T X6 Socket AM3 2,8GHz tai kilpailija Intel Core i7-980X. Ensinnäkin pelit rakastavat suuria välimuistimääriä. Ja monet ammattisovellukset EIVÄT pidä välimuistista (katso. Tietokone renderöintiin, videoeditointiin ja ammattikäyttöön). Tarkemmin sanottuna vaativimmat ovat yleensä välinpitämättömiä hänelle. Mutta mitä sinun ei ehdottomasti pitäisi tehdä, on valita prosessori välimuistin koon perusteella. Vanhassa Pentium 4:ssä oli uusimmissa ilmenemismuodoissaan 2 Mt välimuistia reilusti yli 3 GHz:n toimintataajuuksilla - vertaa sen suorituskykyä halvalla kaksiytimisellä Celeron E1:llä***, joka toimii noin 2 GHz:n taajuuksilla. Hän ei jätä kiveä kääntämättä vanhasta miehestä. Asiallisempi esimerkki on korkeataajuinen kaksiytiminen E8600, joka maksaa lähes 200 dollaria (ilmeisesti johtuen 6 Mt:n välimuistista) ja Athlon II X4-620 2,6 GHz, jossa on vain 2 Mt. Tämä ei estä Athlonea teurastamasta kilpailijaansa.

Kuten kaavioista näkyy, mikään välimuisti ei voi korvata lisäytimiä monimutkaisissa ohjelmissa tai prosessoria vaativissa peleissä. Athlon 2 Mt:n välimuistilla (punainen) päihittää helposti Cor2Duon 6 Mt:n välimuistilla jopa pienemmällä taajuudella ja lähes puolet halvemmalla. Lisäksi monet ihmiset unohtavat, että välimuisti on läsnä näytönohjaimissa, koska yleisesti ottaen heillä on myös prosessoreita. Tuore esimerkki on GTX460-näytönohjain, jossa he onnistuvat leikkaamaan paitsi väylän ja muistikapasiteetin (mitä ostaja arvaa) - myös Shader-välimuistin vastaavasti 512kb:sta 384Kb:iin (mitä ostaja EI arvaa ). Ja tämä lisää myös sen negatiivista vaikutusta tuottavuuteen. On myös mielenkiintoista selvittää suorituskyvyn riippuvuus välimuistin koosta. Tarkastellaan, kuinka nopeasti se kasvaa välimuistin koon kasvaessa saman prosessorin esimerkillä. Kuten tiedät, E6***-, E4***- ja E2***-sarjojen prosessorit eroavat toisistaan ​​vain välimuistin koon osalta (kukin vastaavasti 4, 2 ja 1 Mt). Samalla 2400 MHz:n taajuudella ne näyttävät seuraavat tulokset.

Kuten näette, tulokset eivät ole kovin erilaisia. Sanon lisää - jos prosessori, jonka kapasiteetti on 6 Mt, olisi ollut mukana, tulos olisi kasvanut hieman enemmän, koska prosessorit saavuttavat kyllästymisen. Mutta 512 kt:n malleissa pudotus olisi huomattava. Toisin sanoen 2MB riittää jopa peleihin. Yhteenvetona voimme tehdä seuraavan johtopäätöksen - välimuisti on hyvä, kun kaikkea muuta on JO paljon. On naiivia ja tyhmää muuttaa kiintolevyn nopeutta tai prosessoriytimien määrää välimuistin koon mukaan samalla hinnalla, sillä tilavin lajittelulaatikko ei korvaa toista lajittelijaa. Mutta hyviäkin esimerkkejä löytyy Esimerkiksi Pentium Dual-Coressa 65 nm:n prosessin varhaisessa versiossa oli 1 Mt välimuistia kahdelle ytimelle (E2160-sarja ja vastaavat), ja myöhemmässä 45 nm:n versiossa E5200-sarjasta on edelleen 2 Mt, kaikkien muiden asioiden ollessa sama ( ja mikä tärkeintä - HINTA). Tietysti sinun tulee valita jälkimmäinen.

compua.com.ua

Mikä on välimuisti, miksi sitä tarvitaan ja miten se toimii?

Mikä on likaisin paikka tietokoneessa? Onko se mielestäsi kori? Käyttäjäkansiot? Jäähdytysjärjestelmä? Arvasit väärin! Likaisin paikka on kätkö! Loppujen lopuksi sinun on puhdistettava se jatkuvasti!

Itse asiassa tietokoneessa on paljon välimuistia, eivätkä ne toimi kaatopaikkana, vaan laitteiden ja sovellusten kiihdyttiminä. Mistä he saivat "järjestelmän roskakorin" maineen? Selvitetään, mikä välimuisti on, mikä se on, miten se toimii ja miksi se on puhdistettava aika ajoin.

Välimuisti tai välimuisti on usein käytetyn tiedon erityinen tallennustila, jota käytetään kymmeniä, satoja ja tuhansia kertoja nopeammin kuin RAM-muistia tai muita tallennusvälineitä.

Sovelluksilla (verkkoselaimet, ääni- ja videosoittimet, tietokantaeditorit jne.), käyttöjärjestelmän komponenteilla (pikkukuvavälimuisti, DNS-välimuisti) ja laitteistoilla (CPU-välimuisti L1-L3, grafiikkakehyspuskuri) on oma välimuisti, tallennuspuskurit. . Se toteutetaan eri tavoin – ohjelmistossa ja laitteistossa.

  • Ohjelmavälimuisti on yksinkertaisesti erillinen kansio tai tiedosto, johon ladataan esimerkiksi kuvat, valikot, skriptit, multimediasisältö ja muu vierailtujen sivustojen sisältö. Juuri tähän kansioon selain sukeltaa ensimmäisenä, kun avaat verkkosivun uudelleen. Tietyn sisällön haku paikallisesta tallennustilasta nopeuttaa sen lataamista ja vähentää verkkoliikennettä.

  • Tallennuslaitteissa (erityisesti kiintolevyissä) välimuisti on erillinen RAM-siru, jonka kapasiteetti on 1-256 Mt ja joka sijaitsee elektroniikkakortilla. Se vastaanottaa magneettikerrokselta luettuja tietoja, joita ei ole vielä ladattu RAM-muistiin, sekä tiedot, joita käyttöjärjestelmä useimmiten pyytää.

  • Nykyaikainen keskusprosessori sisältää 2-3 päätasoa välimuistia (kutsutaan myös ultra-random access -muistiksi), jotka sijaitsevat laitteistomoduulien muodossa samalla sirulla. Nopein ja kooltaan pienin (32-64 Kb) on välimuistitaso 1 (L1) - se toimii samalla taajuudella kuin prosessori. L2 sijaitsee keskimääräisellä nopeudella ja kapasiteetilla (128 Kb - 12 Mb). Ja L3 on hitain ja tilavin (jopa 40 Mb), ja sitä ei ole joissain malleissa. L3:n nopeus on alhainen vain nopeampiin veljiinsä verrattuna, mutta se on myös satoja kertoja nopeampi kuin tuottavin RAM.

Prosessorin flash-muistiin tallennetaan jatkuvasti käytettyä RAM-muistista pumpattua dataa ja konekoodikäskyjä. Mitä enemmän sitä on, sitä nopeampi prosessori.

Nykyään kolme välimuistitasoa ei ole enää rajana. Sandy Bridge -arkkitehtuurin tultua käyttöön Intel otti tuotteisiinsa ylimääräisen välimuistin L0:n (joka on tarkoitettu salattujen mikrokäskyjen tallentamiseen). Ja tehokkaimmissa suorittimissa on myös neljännen tason välimuisti, joka on tehty erillisen sirun muodossa.

Kaavamaisesti välimuistitasojen L0-L3 vuorovaikutus näyttää tältä (käyttämällä Intel Xeonin esimerkkiä):

Ihmiskielellä siitä, miten se kaikki toimii

Ymmärtääksesi kuinka välimuisti toimii, kuvitellaan pöydän ääressä työskentelevää henkilöä. Kansiot ja asiakirjat, joita hän käyttää jatkuvasti, ovat pöydällä (välimuistissa). Päästäksesi niihin käsiksi, ojenna vain kätesi.

Paperit, joita hän tarvitsee harvemmin, säilytetään lähellä hyllyillä (RAM-muistissa). Saadaksesi ne, sinun täytyy nousta seisomaan ja kävellä muutaman metrin. Ja se, minkä kanssa henkilö ei tällä hetkellä työskentele, arkistoidaan (tallennettu kiintolevylle).

Mitä leveämpi taulukko, sitä enemmän asiakirjoja siihen mahtuu, mikä tarkoittaa, että työntekijä pääsee nopeasti käsiksi suurempaan tietomäärään (mitä suurempi välimuistikapasiteetti, sitä nopeammin ohjelma tai laite toimii teoriassa).

Joskus hän tekee virheitä - hän pitää pöydällään papereita, jotka sisältävät virheellistä tietoa ja käyttää niitä työssään. Tämän seurauksena hänen työnsä laatu heikkenee (välimuistivirheet johtavat ohjelmien ja laitteiston toimintahäiriöihin). Tilanteen korjaamiseksi työntekijän tulee heittää pois virheelliset asiakirjat ja laittaa oikeat paikoilleen (tyhjentää välimuisti).

Taulukon alue on rajoitettu (välimuistin kapasiteetti on rajoitettu). Joskus sitä voidaan laajentaa esimerkiksi siirtämällä toista taulukkoa, joskus ei (välimuistin kokoa voidaan kasvattaa, jos ohjelma tarjoaa tällaisen mahdollisuuden; laitteistovälimuistia ei voi muuttaa, koska se on toteutettu laitteistossa) .

Toinen tapa nopeuttaa pääsyä useampaan asiakirjoihin kuin pöytään mahtuu on pyytää avustajaa palvelemaan työntekijän paperit hyllystä (käyttöjärjestelmä voi varata osan käyttämättömästä RAM-muistista laitteen tietojen välimuistiin). Mutta se on silti hitaampaa kuin niiden ottaminen pöydästä.

Käsillä olevien asiakirjojen on liityttävä nykyisiin tehtäviin. Työntekijän on itse valvottava tätä. Asiat on laitettava järjestykseen säännöllisesti (epäolennaisten tietojen poistaminen välimuistista jää sitä käyttävien sovellusten harteille; joissakin ohjelmissa on automaattinen välimuistin tyhjennystoiminto).

Jos työntekijä unohtaa ylläpitää järjestystä työpaikalla ja pitää asiakirjat ajan tasalla, hän voi tehdä itselleen työpöydän siivousaikataulun ja käyttää sitä muistutuksena. Viimeisenä keinona uskoa tämä avustajalle (jos välimuistista riippuvainen sovellus on hidastunut tai lataa usein epäolennaisia ​​tietoja, käytä välimuistin puhdistustyökaluja aikataulussa tai suorita tämä käsittely manuaalisesti muutaman päivän välein).

Käytämme itse asiassa "välimuistitoimintoja" kaikkialla. Tämä sisältää päivittäistavaroiden ostamisen tulevaa käyttöä varten ja erilaisia ​​toimintoja, joita teemme ohimennen, samaan aikaan jne. Pohjimmiltaan tämä säästää meidät tarpeettomilta hälyiltä ja turhilta liikkeiltä, ​​virtaviivaistaa elämäämme ja helpottaa työtämme. Tietokone tekee samoin. Lyhyesti sanottuna, jos välimuistia ei olisi, se toimisi satoja ja tuhansia kertoja hitaammin. Ja luultavasti emme tykkäisi siitä.

f1comp.ru

Välimuisti, välimuisti, käteinen - muisti. Mihin välimuistia käytetään? Välimuistin koon ja nopeuden vaikutus suorituskykyyn.

Välimuisti - muisti (välimuisti, käteinen, puskuri - eng.) - käytetään digitaalisissa laitteissa nopeana leikepöydänä. Välimuisti löytyy tietokonelaitteista, kuten kiintolevyistä, prosessoreista, näytönohjaimista, verkkokorteista, CD-asemista ja monista muista.

Välimuistin toimintaperiaate ja arkkitehtuuri voivat vaihdella suuresti.

Välimuisti voi toimia esimerkiksi tavallisena leikepöydänä. Laite käsittelee tiedot ja siirtää ne nopeaan puskuriin, jossa ohjain välittää tiedot rajapintaan. Tällainen välimuisti on suunniteltu estämään virheet, tarkistamaan laitteiston eheystiedot tai koodaamaan laitteesta tuleva signaali ymmärrettäväksi signaaliksi rajapinnalle ilman viiveitä. Tätä järjestelmää käytetään esimerkiksi CD/DVD-asemissa.

Toisessa tapauksessa välimuistia voidaan käyttää usein käytetyn koodin tallentamiseen ja siten tiedonkäsittelyn nopeuttamiseen. Eli laitteen ei tarvitse laskea tai etsiä tietoja uudelleen, mikä kestäisi paljon kauemmin kuin sen lukeminen välimuistista. Tässä tapauksessa välimuistin koolla ja nopeudella on erittäin tärkeä rooli.


Tämä arkkitehtuuri löytyy useimmiten kiintolevyistä, SSD-asemista ja keskusyksiköistä (CPU).

Kun laitteet ovat toiminnassa, välimuistiin voidaan ladata erityisiä laiteohjelmistoja tai välitysohjelmia, jotka toimisivat hitaammin ROM-muistin (vain lukumuisti) kanssa.

Useimmat nykyaikaiset laitteet käyttävät sekatyyppistä välimuistia, joka voi toimia sekä leikepöydänä että tallentaa usein käytettyä koodia.

Prosessorien ja videosirujen välimuistiin on toteutettu useita erittäin tärkeitä toimintoja.

Toteutusyksiköiden yhdistäminen. Keskusyksiköt ja videoprosessorit käyttävät usein nopeaa jaettua välimuistia ytimien välillä. Vastaavasti, jos yksi ydin on käsitellyt tietoja ja se on välimuistissa ja samalle toiminnolle tai näiden tietojen kanssa työskentelyyn vastaanotetaan komento, prosessori ei käsittele tietoja uudelleen, vaan ne otetaan välimuisti jatkokäsittelyä varten. Ydin puretaan muiden tietojen käsittelemiseksi. Tämä parantaa merkittävästi suorituskykyä vastaavissa mutta monimutkaisissa laskelmissa, varsinkin jos välimuisti on suuri ja nopea.

Jaettu välimuisti antaa myös ytimille mahdollisuuden toimia suoraan sen kanssa ohittaen hitaan RAM-muistin.

Välimuisti ohjeita varten. Ohjeita ja muita toimintoja varten on joko jaettu, erittäin nopea L1-välimuisti tai niille oma välimuisti. Mitä enemmän käskyjä prosessoriin on tallennettu, sitä suuremman käskyvälimuistin se vaatii. Tämä vähentää muistin latenssia ja antaa käskylohkon toimia lähes itsenäisesti Kun se on täynnä, käskylohko alkaa ajoittain jäädä tyhjäksi, mikä hidastaa laskentanopeutta.

Muut toiminnot ja ominaisuudet.

On huomionarvoista, että CPU:issa (keskusyksiköissä) käytetään laitteistovirheen korjausta (ECC), koska pieni virhe välimuistissa voi johtaa yhteen jatkuvaan virheeseen näiden tietojen jatkokäsittelyn aikana.

CPU:ssa ja GPU:ssa on välimuistihierarkia, jonka avulla voit erottaa tiedot yksittäisille ytimille ja yleisille ytimille. Vaikka lähes kaikki tiedot toisen tason välimuistista kopioidaan edelleen kolmannelle, yleiselle tasolle, mutta ei aina. Ensimmäinen välimuistitaso on nopein, ja jokainen seuraava on hitaampi, mutta kooltaan suurempi.

Prosessoreille kolme tai vähemmän välimuistitasoa pidetään normaalina. Tämä mahdollistaa tasapainon nopeuden, välimuistin koon ja lämmön haihtumisen välillä. Videoprosessoreista on vaikea löytää enemmän kuin kaksi välimuistitasoa.

Välimuistin koko, vaikutus suorituskykyyn ja muihin ominaisuuksiin.

Luonnollisesti mitä suurempi välimuisti, sitä enemmän tietoja se voi tallentaa ja käsitellä, mutta tässä on vakava ongelma.

Suuri välimuisti tarkoittaa suurta transistorin budjettia. Palvelinkäsittelyyksiköissä (CPU:t) välimuisti voi käyttää jopa 80 % transistorin budjetista. Ensinnäkin tämä vaikuttaa loppukustannuksiin, ja toiseksi energiankulutus ja lämmöntuotto lisääntyvät, mikä ei ole verrattavissa useilla prosenteilla kasvaneeseen tuottavuuteen.

CPU-välimuisti- Prosessorin sisällä oleva erityinen muisti nopeuttaa RAM-muistin käyttöä. Joskus prosessorin välimuistia kutsutaan päämuistiksi, koska sitä voidaan käyttää hyvin lyhyessä ajassa. Tyypillisesti prosessorien välimuisti perustuu klassisiin flip-flopseihin - niin kutsuttuun staattiseen muistiin (SRAM). Esimerkiksi RAM on rakennettu kondensaattoreille, joita ladataan aika ajoin. Triggerit tarjoavat lähes välittömän pääsyn itseensä, mutta niillä on kaksi pääasiallista haittaa:

  • suhteellisen korkeat valmistuskustannukset
  • jatkuvaa energiankulutusta
  • Juuri nämä SRAM:n rajoitukset eivät salli RAM-muistin tekemistä sen perusteella.

    Prosessorin välimuistin tasot

    Nykyaikaisissa prosessoreissa välimuisti on jaettu useisiin tasoihin

    Välimuistin algoritmi

    Välimuistin toiminta-algoritmia ohjaa prosessorissa oleva erityinen ohjain. Se voi muuttaa toimintamalliaan dynaamisesti olosuhteista riippuen. Mutta yleinen välimuistialgoritmi on:

    Kun prosessori tekee lukupyynnön, välimuistin ohjain etsii arvon välimuistista ja lähettää sen prosessorille, jos se löytyy. Jos arvoa ei löydy, ohjain lähettää pyynnön edelleen: joko alemman tason välimuistiin tai RAM-muistiin. Lukettuaan arvon alemmalta tasolta välimuisti lisää tämän arvon itselleen ja seuraavan kerran kun sitä käytetään, se antaa sen välittömästi prosessorille.

    Kun prosessori tekee kirjoituspyynnön RAM-muistiin, se välimuistin ohjain päivittää arvon itselleen ja siirtää sen alemmille tasoille. Lopulta arvo päätyy RAM-muistiin. Kirjoitusvälimuisti toimii yleensä tällä algoritmilla. Voit tietysti tallentaa arvon vain välimuistiin, mutta silloin muut komponentit (esimerkiksi DMA - suora muistin käyttö) ovat vaarassa saada vanhentuneen arvon RAM-muistia käytettäessä.

    Välimuistin taajuus

    Koska SRAM-muisti voi toimia erittäin korkeilla taajuuksilla, prosessorin välimuisti toimii yleensä samalla taajuudella kuin prosessori itse. Tämä lisää entisestään tämäntyyppisen muistin kanssa työskentelyn nopeutta.

    Älykäs välimuisti

    Nykyaikaiset välimuistiohjaimet voivat arvata, mihin muistisoluihin prosessori pääsee pian ja ladata ne välimuistiin etukäteen. Esimerkiksi, jos prosessori käytti solua 42, sitten 43, silloin on suuri todennäköisyys, että kolmas pääsy tulee soluun 44. Siksi ohjain lataa solun 44 arvon ultranopeaan muistiinsa etukäteen.

    Ensimmäinen välimuisti

    8086-prosessorissa oli jonkin verran välimuistia. Siinä oli 6-tavuinen käskyvälimuisti. Pieni määrä, ilman suuria älyllisiä kykyjä, mutta se lisäsi merkittävästi järjestelmän suorituskykyä. Mutta todellista välimuistia alettiin käyttää 80386-prosessorin kanssa. Siihen aikaan RAM-muistin käyttö vaati 120 ns aikaa. Mutta prosessorin vieressä asennettu erikois välimuistisiru ja pääsy siihen oli 12 kertaa nopeampi kuin RAM. Mutta tämä muisti (SRAM) oli melko kallis ja suuren välimuistisirun asentaminen oli kannattamatonta. Siksi ensimmäisen prosessorin välimuistit rajoitettiin 64 kilotavuun ja ne asennettiin erikseen. Alkaen 80486-prosessorista CPU-välimuisti alkoi täyttää nimensä, koska se asennettiin suoraan prosessoriin.

    Välimuistin asennuspaikka

    Kuten edellä mainittiin, 80386-prosessorissa ei ollut sisäistä välimuistia. Välimuisti asennettiin emolevyn erilliselle sirulle. 80486-prosessoriin perustuvissa tietokoneissa, kuten ennenkin, välimuisti sijaitsi emolevyllä, mutta se oli toinen taso. Ensimmäinen välimuistin taso asetettiin suoraan prosessorissa. Ajan ja sirunvalmistustekniikan kehityksen myötä prosessorin välimuisti on siirtynyt kokonaan prosessoriin sekä RAM-ohjaimeen.

    CPU-välimuisti on tehokas tapa lisätä prosessorin suorituskykyä lisäämällä RAM-muistin kanssa työskentelyn nopeus.