klänning) spår och en (cache) simulator. Ett spår är loggen över en dynamisk serie av minnesreferenser, inspelade under utförandet av ett program eller arbetsbelastning. Den information som registreras för varje referens skall innehålla referensens adress och får innehålla referensens typ (instruktion hämta, data läsa, eller data skriva), längd och annan information. En simulator är ett program som accepterar ett spår och parametrar som beskriver en eller flera caches, imiterar beteendet hos dessa caches som svar på spårningen, och beräknar prestandamått (t.ex. miss ratio) för varje cache. Vi analyserar associativitet i cache med spårdriven simulering av samma skäl som diskuteras i [28]. Den främsta fördelen med spårdriven simulering över slumpmässig taldriven simulering eller analytisk modellering är att det inte finns någon allmänt accepterad modell för programbeteende (vid cachenivå) med bevisad giltighet och prediktiv kraft. Den största nackdelen är att arbetsbelastningsprover måste vara relativt korta på grund av diskutrymme och simuleringstider. Processorn tid som krävs för att simulera många alternativa caches med många spår kan vara enorm. Mattson och Al. [I91 tog upp ett liknande problem för virtuell minnessimulering genom att utveckla en teknik som vi kallar stacksimulering, vilket gör det möjligt att beräkna felförhållanden för alla minnesstorlekar samtidigt, under ett pass genom adressspårningen, med förbehåll för flera begränsningar inklusive en fast sidstorlek. Stacksimulering kan tillämpas på cacheminnen, men varje cachekonfiguration med olika antal uppsättningar kräver en separat simulering. Av denna anledning undersöker detta dokument först bättre algoritmer för simulering av alternativa direkt-mappade och set-associativa caches, och sedan använder dessa algoritmer för att studera associativitet i caches. Resten av detta dokument är organiserat enligt följande. Avsnitt I1 går igenom tidigare arbete med cachesimuleringsalgoritmer och associativitet i cache. I Avsnitt 111 förklarar vi våra metoder mer i detalj och beskriver våra spår. I avsnitt IV diskuteras cachesimuleringsalgoritmer, inklusive egenskaper som underlättar snabb simulering, en ny algoritm för simulering av alternativa direktmappade caches, och en förlängning till en algoritm för simulering av alternativa caches med godtyckliga setmapping-funktioner. I avsnitt V undersöks effekten av associativitet på missförhållandet, inklusive kategorisering av orsaken till missar i set-associativa cacher, relaterade set-associative miss ratios till fullt-associative, jämförelse miss ratios från liknande set-associative cacher, och utvidgning av konstruktionsmålet miss ratios från [28] och [30] till cacher med reducerad associativitet. Läsare som är intresserade av associativitetens effekt på missförhållandet men inte i cachesimuleringsalgoritmer kan hoppa över sektion IV, eftersom sektion V är skriven för att stå ensam. Andra stycket ska ersättas med följande: RELATERAT ARBETE Originalartikeln om minneshierarkisimulering är Mattson et al. [19]................................................................................................................ De introducerar inkludering, visar när inkluderingen håller, och utveckla stack simulering, som använder inkludering för att snabbt simulera alternativa caches. Inkludering är den egenskap som efter någon serie av referenser, större alternativa caches alltid innehåller en superuppsättning av blocken i mindre alternativa caches." Mattson och Al. Visa inkludering innehar mellan alternativa caches som har samma blockstorlek, gör ingen förhämtning, använda samma set-mapping funktion (och därför har samma antal uppsättningar), och använda ersättningsalgoritmer som innan varje referens framkallar en total prioritet beställning på alla tidigare refererade block (den kartan till varje uppsättning) och använda endast denna prioritet beställning för att göra nästa byte beslut. Ersättningsalgoritmer som uppfyller ovanstående villkor, kallade stackalgoritmer, omfattar LRU, OPTIMUM och (om de definieras korrekt) RANDOM [6]. FIFO kvalificerar sig inte eftersom cachekapaciteten påverkar ett blocks ersättningsprioritet. I Avsnitt IV-A, kommer vi att bevisa när inkludering innehar för cacher som använder godtyckliga set-mapping funktioner och LRU ersättning. Mattson och Al. Utveckla stacksimulering för att simulera alternativa cache som har samma blockstorlek, gör ingen förhämtning, använd samma set-mapping-funktion och använd en stackersättningsalgoritm. Eftersom inkludering innehar, en enda lista per uppsättning, kallas en stack, kan användas för att representera caches av alla associativ, med de första n elementen i varje stack som representerar blocken i en n-way set-associativ cache. För varje referens utför stackssimulering tre operationer: 1) lokalisera referensen i stacken, 2) uppdatera en eller flera mätvärden för att ange vilka cacheminnen som innehöll referensen, och 3) uppdatera stacken för att återspegla innehållet i cacherna efter referensen. Vi ` Integrering skiljer sig från flernivå inkludering definieras av Baer och Wang [ 5 ]. Även om inklusion är en egenskap som hänför sig till alternativa cacheminnen, avser flernivåinclusion caches i samma cachehierarki.
År 1989, Hill et al. I REF studerades effekten av asso-advisor ciativitet i cacher.
Evaluating Associativity in CPU Caches
{'venue': 'IEEE Trans. Computers', 'journal': 'IEEE Trans. Computers', 'mag_field_of_study': ['Computer Science']}