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.
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?
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 kopplar ett Bluetooth-headset med Android Wear
Android Wear har möjligheten att lagra musik på klockan för att du ska kunna lyssna på din mobil. Men du behöver inte använda sina små lilla högtalare (om din klocka till och med har högtalare) - du kan faktiskt koppla ett Bluetooth-headset med klockan och lämna telefonen hemma. På din klocka , dra ner från toppen för att visa Wear-menyn och skjut över till Inställningar.
Så här laddar du DRM-fria e-böcker på din Kindle
The Kindle är en fantastisk läsningsenhet, men det är nästan helt beroende av Amazons slutna detaljhandelssystem för att köpa böcker. Det är självklart, det är en Amazon-gadget, de vill att du ska spendera pengar på sin butik. Men om du har en samling e-böcker som du har fått någon annanstans, utformad för läsning i ett annat format utan den typiska DRM-enheten, kan du enkelt ladda dem på din Kindle.