Vad är falsk delning?

False Sharing är en situation som kan inträffa i ett datorprogram när två applikationer som kör samtidigt försöker få tillgång till information i samma logiska minnesregion som varje program eller process har lagrat i sin egen cache. Uppgifterna i varje applikations cache kopieras från en gemensam källa, så att en cache gör att den andra måste laddas om från källan. Den falska aspekten av delningen uppstår när ändringarna som gjorts på cachelinjen av ett program faktiskt inte påverkar de uppgifter som det andra programmet använder, i vilket fall att tvinga cachen att laddas om är slöseri med systemresurser och kan påverka programmets prestanda negativt. Problemet med falsk delning är svårt att upptäcka, eftersom det inte är ett direkt resultat av någon kod som finns i applikationerna, även om det finns effektiva sätt att förhindra falsk delning, till exempel att flytta data som är i en för närvarande cachad linje till en separat rad.

En av de främsta orsakerna till att falsk delning kan inträffa finns i hur ett operativsystem eller hårdvara hanterar läsning och skrivdata. När information från en hårddisk eller annan källa läses eller skrivs av ett program laddas den vanligtvis i en tillfällig cache så att den kan nås snabbt. Mängden information som cachas från källplatsen kallas en cachelinje och är ett logiskt minneblock som normalt kan vara mellan 2 byte och 256 byte i längd. Under vissa operativsystem eller systemarkitekturer kan program köras samtidigt, till exempel i parallell bearbetning. Detta innebär att det är möjligt för två separata program att försöka få åtkomst till information i samma cachelinje, så varje program kommer att ha sin egen kopia av källdata, vilket potentiellt kan orsaka förändringar i en cache att inte återspeglas i den andra cachen, ogiltigförklarar data som den har.

Det finns ett antal mekanismer som används för att haNDLE situationen när två program försöker komma åt samma cachelinje, men resultatet är oftast att ett program tvingas ladda om sin cache med den uppdaterade informationen som det andra programmet har modifierat. Denna typ av incident kallas falsk delning när data inom cachelinjen som varje program har åtkomst till inte är relaterade, så att tvinga ett program att ladda om cachen är ett slöseri med bearbetningskraft och andra resurser. Detta är oftast ett problem för ett program som aldrig kommer att ändra informationen i sin cache, så det finns ingen risk för att applikationens överskrivning ändrar den andra processen har gjort.

Två rådande sätt finns antingen för att förhindra eller mildra effekterna av falsk delning. Den första är att lägga till tom information före eller efter data i minnet, i huvudsak tvinga dem till en separat cache -linje som inte nås av ett annat program. Den andra metoden är att begränsa frekvensen för läsning och skriva till cachelinjen så att den laddas om som litee som möjligt. Mer komplexa lösningar involverar cache-nivåhantering eller till och med ändringar i hur ett operativsystem hanterar delning.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?