no.phhsnews.com


no.phhsnews.com / Når er en CPU-cache spylt tilbake til hovedminne?

Når er en CPU-cache spylt tilbake til hovedminne?


Hvis du nettopp begynner å lære hvordan flere kjerne-CPUer, caching, cache-sammenheng og minne fungerer, kan det virke litt litt forvirrende først. Med det i betraktning har dagens SuperUser Q & A-post svar på et nysgjerrig lesers spørsmål.

Dagens Spørsmål og svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppe av Q & A-nettsteder.

Spørsmålet

SuperUser-leser CarmeloS vil vite når en CPU-cache blir spylt tilbake til hovedminne:

Hvis jeg har en CPU med to kjerner, og hver kjerne har sin egen L1-buffer, er det mulig at Core1 og Core2 både cache samme del av minnet på samme tid? Hvis det er mulig, hva vil verdien av hovedminne være hvis både Core1 og Core2 har redigert sine verdier i cachen?

Når er en CPU-cache spylt tilbake til hovedminnet?

Svaret

SuperUser-bidragsytere David Schwartz, Sleske og Kimberly W har svaret for oss. Først opp, David Schwartz:

Hvis jeg har en CPU med to kjerner, og hver kjerne har sin egen L1-buffer, er det mulig at Core1 og Core2 begge cache samme del av minnet samtidig?

Ja, ytelse ville være forferdelig hvis dette ikke var tilfelle. Tenk på to tråder som kjører samme kode. Du vil ha den koden i begge L1-cachene.

Hvis det er mulig, hva vil verdien av hovedminne være hvis både Core1 og Core2 har redigert sine verdier i cachen?

Den gamle verdien vil være i hovedminnet, hvilket spiller ingen rolle siden ingen av kjerne vil lese den. Før du sender ut en endret verdi fra hurtigbufferen, må den skrives til minnet. Vanligvis brukes noen variant av MESI-protokollen. I den tradisjonelle implementeringen av MESI, hvis en verdi er endret i en cache, kan den ikke være til stede i en hvilken som helst annen hurtigbuffer på samme nivå.

Etterfulgt av svaret fra sleske:

Ja, å ha to caches cache Det samme minnesområdet kan skje og er faktisk et problem som skjer mye i praksis. Det finnes forskjellige løsninger, for eksempel:

  • De to cachene kan kommunisere for å sikre at de ikke er uenige.
  • Du kan ha en slags veileder som overvåker alle caches og oppdaterer dem tilsvarende.
  • Hver prosessor overvåker minnesområdene at den har cachet, og når den oppdager en skrive, kaster den ut sin (nå ugyldige) cache

Problemet kalles cache-sammenheng, og Wikipedia-artikkelen om emnet har en fin oversikt over problemet og mulige løsninger.

Og vårt endelige svar fra Kimberly W:

For å svare på spørsmålet i tittelens innlegg, avhenger det av hva cacheprotokollen er. Hvis det er tilbakekalling, blir cachen bare skyllet tilbake til hovedminnet når hurtigbufferen ikke har annet valg enn å sette en ny hurtigbuffer i allerede opptatt plass. Blokken som tidligere okkuperte rommet er fjernet, og verdien er skrevet tilbake til hovedminnet.

Den andre protokollen er gjennomskrivning. I dette tilfellet, når cacheblokken er skrevet på nivå n , oppdateres den tilsvarende blokk på nivå n + 1 . Det er likt i konsept å fylle ut et skjema med karbonpapir under; hva du skriver på toppen, kopieres på arket under. Dette er tregere fordi det åpenbart innebærer flere skriveoperasjoner, men verdiene mellom caches er mer konsistente. I tilbakestillingsprogrammet vil bare cache på høyeste nivå ha den mest oppdaterte verdien for en bestemt minneblokk.


Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Se full diskusjonstråd her.

Bilde Kreditt: Lemsipmatt (Flickr)


Slik får du beskjed når du forlater tastene dine eller Wallet Bak med Trackr

Slik får du beskjed når du forlater tastene dine eller Wallet Bak med Trackr

Trackr er en praktisk liten enhet som du kan bruke til å finne dine nøkler, lommebok eller noe annet du mister ofte. Hvis du er tilbøyelig til å forlate dine ting bak, kan du også sette opp Trackr for å varsle deg når du kommer for langt fra ting, slik at du ikke lar det ligge igjen. Slik bruker du Trackr-meldinger.

(how-top)

Slik sjekker du etter Windows-oppdateringer

Slik sjekker du etter Windows-oppdateringer

Irriterende som de er, er det viktig å holde Windows oppdatert ... bare spør ofrene for det siste ransomware-angrepet. Hvis du ikke har brukt PCen en stund, eller du bare vil forsikre deg om at du er oppdatert med den nyeste programvaren, er det enkelt å manuelt sjekke og forsikre deg om i Windows. Trykk på Windows-knappen eller Søk-knappen, og skriv inn "Sjekk etter oppdateringer" i boksen.

(how-top)