sv.phhsnews.com


sv.phhsnews.com / När är en CPU-cache spolad tillbaka till huvudminne?

När är en CPU-cache spolad tillbaka till huvudminne?


Om du just börjat lära dig hur flera kärnprocessorer, cache, cache-koherens och minne fungerar kan det verka lite lite förvirrande först. Med det i åtanke har dagens SuperUser Q & A-post svar på en nyfiken läsarens fråga.

Dagens Frågor och svar sessions kommer till vår tjänst med SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Frågan

SuperUser-läsare CarmeloS vill veta när en CPU-cache spolas tillbaka till huvudminne:

Om jag har en CPU med två kärnor och varje kärna har sin egen L1-cache, är det möjligt att Core1 och Core2 både cachar samma del av minnet samtidigt? Om det är möjligt, vad kommer värdet av huvudminne att vara om både Core1 och Core2 har redigerat sina värden i cacheminnet?

När är en CPU-cache spolad tillbaka till huvudminnet?

Svaret

SuperUser-bidragsgivare David Schwartz, Sleske och Kimberly W har svaret för oss. Först upp, David Schwartz:

Om jag har en CPU med två kärnor och varje kärna har sin egen L1-cache, är det möjligt att Core1 och Core2 båda cachar samma del av minnet samtidigt?

Ja, prestanda skulle vara hemskt om det inte var fallet. Tänk på två trådar som kör samma kod. Du vill ha den koden i båda L1-cacherna.

Om det är möjligt, vad kommer värdet av huvudminne att vara om både Core1 och Core2 har redigerat sina värden i cacheminnet?

Det gamla värdet kommer i huvudminnet, vilket spelar ingen roll eftersom ingen kärna kommer att läsa den. Innan du matar ut ett modifierat värde från cacheminnet måste det skrivas till minnet. Vanligtvis används en viss variant av MESI-protokollet. I det traditionella genomförandet av MESI, om ett värde ändras i en cache, kan det inte alls finnas i någon annan cache på samma nivå.

Följd av svaret från sleske:

Ja, med två cacheminnor samma minnesregion kan hända och är faktiskt ett problem som uppstår mycket i praktiken. Det finns olika lösningar, till exempel:

  • De två cacherna kan kommunicera för att se till att de inte håller med varandra.
  • Du kan ha någon form av handledare som övervakar alla cacher och uppdaterar dem följaktligen.
  • Varje processor övervakar minnesområdena att det har cachat, och när det upptäcker en skriv, slänger den ut sin (nu ogiltiga) cache

Problemet kallas cachekoherens och Wikipedia-artikeln om ämnet har en fin översikt över problemet och möjliga lösningar.

Och vårt sista svar från Kimberly W:

För att svara på frågan i din inläggets titel beror det på vad cacheprotokollet är. Om det är återkoppling spolas cacheminnet bara tillbaka till huvudminnet när cachecontrollern inte har något annat val än att lägga ett nytt cacheblock i redan upptaget utrymme. Det block som tidigare rymde utrymmet tas bort och dess värde skrivs tillbaka till huvudminnet.

Det andra protokollet är genomskrivning. I så fall uppdateras klockblocket på nivå n , motsvarande block på nivå n + 1 . Det är liknande i koncept att fylla i en blankett med kolpapper under vad du skriver överst kopieras på arket nedan. Detta är långsammare eftersom det uppenbarligen innebär fler skrivoperationer, men värdena mellan cacher är mer konsekventa. I återkopplingsschemat skulle endast cachen med högsta nivå ha det mest aktuella värdet för ett visst minnesblock.


Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in den fullständiga diskussionsgängan här.

Bildkrediter: Lemsipmatt (Flickr)


Hur man testar din internethastighet från kommandoraden

Hur man testar din internethastighet från kommandoraden

Vill du snabbt kontrollera hastigheten på din nuvarande Internetanslutning? Med speedtest-cli kan du köra ett test i kommandotolken, på vilket operativsystem som helst. Vi har visat dig hur du testar din internetanslutningshastighet med en webbläsare, men det finns några anledningar att du kanske vill ha ett kommando linje verktyg istället.

(how-top)

Konsolidera filminsamlingar i Kodi med filmuppsättningar

Konsolidera filminsamlingar i Kodi med filmuppsättningar

Börja rippa dina DVD-skivor och Blu-Rays till Kodi och din samling kan bli överväldigande snabbt. Lyckligtvis låter Kodi du sortera filmer i set. Satsar organiserar filmer i en samling som fungerar nästan som om de var en tv-serie, som sätter varje del av serien i ordning. Det är bra för trilogier, men också för sprawlande serier av serietidningar som du skulle vilja titta på igen.

(how-top)