Skip to main content

Vad är falsk delning?

Falsk delning är en situation som kan uppstå 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 görs på cachelinjen av ett program inte faktiskt 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 negativt negativtprogrammets prestanda.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 komma åt 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örklararData som den innehåller.

Det finns ett antal mekanismer som används för att hantera situationen när två program försöker få åtkomst till samma cachelinje, men resultatet är oftast att ett program tvingas ladda om sin cache med den uppdaterade informationen det andra programmethar modifierat.Denna typ av incident kallas falsk delning när data inom cachelinjen som varje program har tillgång till inte är relaterade, så att tvinga ett program att ladda upp 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.

Det finns två rådande sätt antingen för att förhindra eller mildra effekterna av falskadelning.Den första är att lägga till tom information före eller efter data i minnet, i huvudsak tvinga dem till en separat cachelinje 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 så lite som möjligt.Mer komplexa lösningar involverar cache-nivåhantering eller till och med ändringar i hur ett operativsystem hanterar delning.