Moderna chip-nivå multiprocessorer (CMP) innehåller flera processorkärnor som delar en gemensam sista nivå cache, minne länkar, och andra hårdvaruresurser. Arbetsbelastningar på separata borrkärnor konkurrerar om dessa resurser, vilket ofta leder till mycket varierande resultat. För att förbättra rättvisa och prestanda är det bra att samplanera arbetsbelastningar med minimal cache och andra former av resursbestridande. I detta arbete utvecklar vi flera cachemodelleringsmetoder för att hjälpa till att fatta välgrundade resurshanteringsbeslut. Med hjälp av endast allmänt tillgängliga prestandaräknare på befintliga processorer, introducerar vi en effektiv online-teknik för att uppskatta cache occupancies av programvarutrådar. Vi härleder en analytisk modell som tar hänsyn till effekterna av set-associativitet, linjeersättningspolitik och minneslokalitetseffekter. Vi demonstrerar effektiviteten av beläggningsuppskattning med en rad CMP-simuleringar med SPEC-riktmärken. Vår inflyttningsberäkningsteknik används för närvarande för att utveckla allmännyttiga onlinefunktioner, såsom miss-ratio kurvor (MRCs), som fångar prestandaeffekter som en funktion av resursanvändning. Vi använder oss av både online-uppskattning av cachebeläggning och MRC-konstruktion i våra pågående studier av cache-medvetet schemaläggning.  Kategorier och ämnesdeskriptorer För att använda vår modell, anser vi att en delad sista nivå cache som kan vara direkt-mappad eller n-way uppsättning associativ. Vårt mål är att bestämma hur mycket cacheutrymme som används av någon tråd, τ, vid tiden t, givet argument för cachelinjer av flera konkurrerande trådar. Eftersom hårdvara caches avslöjar mycket lite information till programvara, använder vi hårdvara prestanda räknare för att sluta cache tillstånd. Med hjälp av två vanligt tillgängliga maskinvaruprestandahändelser, nämligen upphovsrätten, hålls av upphovsmannen/ägarna. PACT'10 september 11-15 2010, Wien, Österrike. ACM 978-1-4503-0178-7/10/09. lokala och globala sista nivån cache missar, uppskattar vi antalet cache rader, E, som ockuperas av τ vid tidpunkten t. Global cache missar ackumuleras över alla kärnor, snarare än bara den lokala kärnan. Vi börjar med att anta att den delade cache nås jämnt på måfå och senare slappna av detta krav i Avsnitt 1.1. Vi antar också att varje cacherad allokeras till en enda tråd när som helst. Datadelning beaktas inte i detta dokument, även om det är en del av vårt pågående arbete. Cache beläggning dikteras effektivt av antalet missar upplevt av en tråd, eftersom cache linjer tilldelas som svar på sådana missar. I huvudsak påverkar den nuvarande genomförandefasen av en tråd τ i dess cacheinvestering, eftersom någon av dess linjer som den inte längre kommer åt kan vräkas genom motstridiga hänvisningar till samma cacheindex av andra trådar. Avsvimmade linjer som inte längre är relevanta för den aktuella genomförandefasen av τ i kommer inte att drabbas av efterföljande missar som skulle få dem att återvända till cache. I vad som följer, låt m l representera antalet missar upplevt av den lokala tråden, τ l, under observation över vissa provtagningsintervall. Denna term representerar också det antal cacherader som tilldelats på grund av fel. Vi betecknar m o för att representera det sammanlagda antalet missar av varje tråd annat än τ l, på alla kärnor av en CMP som orsakar cache linjer att fördelas som svar på sådana missar. Slutligen representerar τ o alla andra trådar, som om de fungerade som en enda aggregerad tråd. Den linjära modell som beskrivs ovan består av en billig beräkning som endast kräver förmågan att mäta per-kärna och per-CMP cache missar, som tillhandahålls av de flesta moderna processor arkitekturer.
I REF använder författarna prestandaräknare för att fånga prestandaeffekter som en funktion av resursanvändning.
Online cache modeling for commodity multicore processors
{'venue': "PACT '10", 'journal': None, 'mag_field_of_study': ['Computer Science']}