Välimuistin yhtenäisyys

Välimuistia voidaan käyttää parantamaan tietyn resurssin käytön suorituskykyä. Kun samalle resurssille on useita tällaisia välimuisteja, kuten kuvassa näkyy, tämä voi johtaa ongelmiin. Välimuistin koherenssilla tai välimuistin yhtenäisyydellä tarkoitetaan useita tapoja varmistaa, että resurssin kaikissa välimuisteissa on samat tiedot ja että välimuistissa olevat tiedot ovat järkeviä (tätä kutsutaan tietojen eheydeksi). Välimuistin koherenssi on muistin koherenssin erikoistapaus.

Ongelmia voi syntyä, jos yhteisen muistiresurssin välimuisteja on useita, sillä välimuistissa olevilla tiedoilla ei ehkä ole enää merkitystä tai yhdessä välimuistissa ei ehkä ole enää samoja tietoja kuin muissa välimuisteissa. Yleinen tapaus, jossa ongelma ilmenee, on moniprosessorijärjestelmän suorittimien välimuistit. Kuten kuvasta näkyy, jos ylimmällä asiakkaalla on kopio muistilohkosta edellisestä lukemisesta ja alempi asiakas vaihtaa kyseisen muistilohkon, ylimmälle asiakkaalle voi jäädä muistin virheellinen välimuisti,tietämättään. Välimuistin koherenssin tehtävänä on hallita tällaisia ristiriitoja ja ylläpitää johdonmukaisuutta välimuistin ja muistin välillä.

Useita jaetun resurssin välimuistejaZoom
Useita jaetun resurssin välimuisteja

Määritelmä

Koherenssi määrittelee samaan muistipaikkaan tapahtuvan lukemisen ja kirjoittamisen käyttäytymisen. Välimuistit ovat koherentteja, jos kaikki seuraavat ehdot täyttyvät:

  1. Kun prosessori P lukee paikkaa X kirjoitettuaan siihen, P:n on saatava kirjoittamansa arvo, jos mikään muu prosessori ei ole kirjoittanut kyseiseen paikkaan toista arvoa. Tämä pätee myös monoprosessorijärjestelmissä, se tarkoittaa, että muisti pystyy pitämään kirjoitetun arvon.
  2. Oletetaan, että on kaksi prosessoria, P 1ja P2, ja P1 kirjoitti arvon X1, ja sen jälkeen P2 kirjoitti arvon X2. Jos P1 lukee arvoa, sen on saatava P2:n kirjoittama arvo X2 eikä sen kirjoittamaa arvoa X1, jos näiden kahden välillä ei ole muita kirjoituksia. Tämä tarkoittaa, että muistinäkymä on koherentti. Jos prosessorit voivat lukea saman vanhan arvon P2:n tekemän kirjoituksen jälkeen, muisti ei olisi koherentti.
  3. Tiettyyn muistipaikkaan voidaan kirjoittaa vain yksi kirjoitus kerrallaan. Jos kirjoituksia on useita, niiden on tapahduttava peräkkäin. Toisin sanoen, jos paikka X saa kaksi eri arvoa A ja B tässä järjestyksessä kahdelta prosessorilta, prosessorit eivät voi koskaan lukea sijaintia X arvona B ja sitten lukea sitä arvona A. Sijainti X on nähtävä arvoilla A ja B tässä järjestyksessä.

Nämä ehdot on määritelty olettaen, että luku- ja kirjoitusoperaatiot suoritetaan välittömästi. Näin ei kuitenkaan tapahdu tietokonelaitteistoissa muistin viiveen ja muiden arkkitehtuuriin liittyvien seikkojen vuoksi. Prosessori X:n tekemä kirjoitus ei välttämättä näy prosessorin Y lukemassa, jos lukeminen tapahtuu hyvin lyhyen ajan kuluessa kirjoituksen tekemisestä. Muistin yhdenmukaisuusmallissa määritellään, milloin kirjoitetun arvon on oltava nähtävissä muiden prosessoreiden tekemässä seuraavassa lukukäskyssä.

Välimuistin koherenssimekanismit

  • Hakemistopohjaiset koherenssimekanismit ylläpitävät keskushakemistoa välimuistissa olevista lohkoista.
  • Snooping on prosessi, jossa kukin välimuisti valvoo osoiteriviä, jotta sen välimuistissa oleviin muistipaikkoihin voidaan päästä käsiksi. Kun havaitaan kirjoitusoperaatio paikkaan, josta välimuistissa on kopio, välimuistinohjain mitätöi oman kopionsa nuuskimasta muistipaikasta.
  • Snarfing tarkoittaa sitä, että välimuistiohjain tarkkailee sekä osoitetta että dataa yrittäessään päivittää oman kopionsa muistipaikasta, kun toinen pääkäyttäjä muuttaa paikkaa keskusmuistissa.

Hajautetut jaetun muistin järjestelmät jäljittelevät näitä mekanismeja, jotta ne voivat ylläpitää johdonmukaisuutta muistilohkojen välillä löyhästi kytketyissä järjestelmissä.

Kaksi yleisintä koherenssityyppiä, joita tyypillisesti tutkitaan, ovat Snooping ja Directory-based. Kummallakin on omat hyötynsä ja haittansa. Snooping-protokollat ovat yleensä nopeampia, jos kaistanleveys on riittävä, koska kaikki transaktiot ovat pyyntöjä ja vastauksia, jotka kaikki prosessorit näkevät. Haittapuolena on, että snooping ei ole skaalautuva. Jokainen pyyntö on lähetettävä kaikille järjestelmän solmuille. Kun järjestelmä kasvaa, (loogisen tai fyysisen) väylän ja sen tarjoaman kaistanleveyden on kasvettava. Toisaalta hakemistojen viiveet ovat yleensä pidempiä (kun pyyntöä/edelleenlähetystä/vastausta on kolme hyppyä), mutta ne käyttävät paljon vähemmän kaistanleveyttä, koska viestit lähetetään pisteestä pisteeseen, eikä niitä lähetetä. Tästä syystä monissa suuremmissa järjestelmissä (> 64 prosessoria) käytetään tämäntyyppistä välimuistien koherenssia.

Kysymyksiä ja vastauksia

Kysymys: Mikä on välimuistitiedoston koherenssi?


V: Välimuistin koherenssilla tarkoitetaan sen varmistamista, että resurssin kaikissa välimuisteissa on samat tiedot ja että välimuisteissa olevat tiedot ovat yhdenmukaisia (tietojen eheys).

K: Mikä on välimuistin koherenssin tarkoitus?


V: Välimuistin koherenssin tarkoituksena on hallita yhteisen muistiresurssin useiden välimuistien välisiä ristiriitoja ja ylläpitää johdonmukaisuutta välimuistin ja muistin välillä.

K: Mitä seurauksia voi olla siitä, ettei välimuistien koherenssia ole?


V: Ilman välimuistin koherenssia välimuistissa olevat tiedot eivät ehkä enää ole järkeviä tai yhdessä välimuistissa ei enää ole samoja tietoja kuin muissa, mikä voi johtaa epäjohdonmukaisuuksiin ja virheisiin.

K: Mikä on yleinen tapaus, jossa välimuistin koherenssin kanssa esiintyy ongelmia?


V: Yleinen tapaus, jossa välimuistin koherenssissa esiintyy ongelmia, on moniprosessorijärjestelmän suorittimien välimuisti.

K: Miten välimuistin koherenssi toimii?


V: Välimuistin koherenssi toimii varmistamalla, että resurssin kaikissa välimuisteissa on samat tiedot ja että välimuisteissa olevat tiedot ovat yhdenmukaisia eri menetelmien avulla.

K: Mitä tarkoitetaan muistikoherenssilla?


V: Muistikoherenssilla tarkoitetaan tietojen yhdenmukaisuutta jaetussa muistiresurssissa.

K: Miten välimuistien koherenssi voi parantaa suorituskykyä?


V: Välimuistin koherenssi voi parantaa suorituskykyä mahdollistamalla nopeamman ja tehokkaamman pääsyn tiettyyn resurssiin.

AlegsaOnline.com - 2020 / 2023 - License CC3