Nyligen föreslagna processor mikroarkitekturer för hög Memory Level Parallelism (MLP) lovar betydande prestandavinster. Tyvärr, nuvarande cachehierarkier har Miss-Handling Architectures (MHA) som är alltför begränsade för att stödja de nödvändiga MLP de behöver omdesignas för att stödja 1-2 storleksordningar mer utestående missar. Det är dock svårt att utforma skalbara MHA:s: designen måste minimera tiden för cachelåsning och leverera hög bandbredd samtidigt som areaförbrukningen hålls rimlig. Detta papper presenterar en ny skalbar MHA-design för högMLP-processorer. Vår design introducerar två huvudsakliga innovationer. För det första är det hierarkiskt, med en liten MSHR-fil per cachebank, och en större MSHR-fil som delas av alla banker. För det andra använder den ett Bloom filter för att minska sökningar i den större MSHR-filen. Resultatet är en högpresterande, områdeseffektiv design. Jämfört med en toppmodern MHA på en högMLP-processor, vår design snabbar upp vissa SPECint, SPECfp, och flerprogrammerade arbetsbelastningar med ett geometriskt medelvärde på 32%, 50%, respektive 95%. Dessutom, jämfört med två extrapoleringar av nuvarande MHA-konstruktioner, nämligen en stor monolitisk MSHR-fil och en stor bankad MSHR-fil, som alla konsumerar samma område, vår design snabbar upp arbetsbelastningen med ett geometriskt medelvärde på 1-18% respektive 10-21%. Slutligen, vår design utför mycket nära en obegränsad storlek, perfekt MHA. En rad nya förslag till nya superskalära mikroarkitekturer hävdar att de stöder ett mycket stort antal instruktioner under flygning och därmed avsevärt ökar prestandan [1, 3, 7, 12, 16, 22, 25]. Dessa mikroarkitekter är vanligtvis beroende av processorkontroll, lång spekulativ exekvering och ibland till och med spekulativ pensionering. De försöker ofta överlappa cache missar genom att använda förutsedda värden för den saknade data, genom att buffra bort saknade laster och deras beroende, eller genom att tillfälligt använda en ogiltig token i stället för den saknade data. Inte förvånande kräver dessa mikroarkitekturer dramatiska ökningar av minnesnivåparallellism (MLP) - brett definierat som antalet samtidiga minnessystem åtkomster stöds av minnesdelsystemet [5]. Till exempel, en av dessa konstruktioner förutsätter stöd för upp till 128 utestående L1 missar åt gången [22]. För att dra nytta av dessa mikroarkitekturer måste cachehierarkier utformas för att stödja denna nivå av MLP. * Detta arbete stöddes delvis av National Science Foundation under bidrag EIA-0072102, EIA-0103610, CHE-0121357, och CCR-0325603; DARPA under bidrag NBCH30390004, DOE under bidrag B347886, och gåvor från IBM och Intel. Luis Ceze fick stöd av IBM Ph.D. Fellowship. Nuvarande cachehierarki design är bedrövligt olämpligt att stödja denna nivå av efterfrågan. Även i design för high-end processorer, är normen för L1 cache för att stödja endast ett mycket blygsamt antal enastående missar i taget. Till exempel stöder Pentium 4 endast 8 utestående L1 missar åt gången [2]. Om inte arkitekturen som hanterar missar (dvs. Miss Handling Architecture (MHA)) är omdesignad för att stödja 1-2 storleksordningar mer enastående missar, kommer det att finnas liten vinst att inse från de nya mikroarkitekterna. En brute-force-strategi för att öka de resurser som för närvarande ägnas åt hantering av missar är inte den bästa vägen. Den viktigaste hårdvarustrukturen i MHA är Miss Status Holding Register (MSHR), som innehåller information om alla utestående missar för en given cache linje [9, 13]. Att stödja många, hög-associativa MSHRs i en enhetlig struktur kan sluta med att orsaka en bandbredd flaskhals. Alternativt, om vi försöker säkerställa hög bandbredd genom att i stor utsträckning banka strukturen, kan vi få slut på MSHRs i en bank, vilket orsakar cache bank lock-up och eventuellt processor stall. I samtliga fall, eftersom MHA ligger nära processorkärnan, är det önskvärt att använda chipområdet effektivt. För att uppfylla kraven på hög bandbredd och låg låstid på ett områdeseffektivt sätt presenterar detta dokument en ny skalbar MHA-design för L1-cachen. Närmare bestämt ger dokumentet följande tre bidrag. För det första visar det att toppmoderna MHA är oförmögna att utnyttja de nya hög-MLP-processor mikroarkitekturer. För det andra föreslås en ny, skalbar MHA-design för dessa mikroarkitekturer som ger högsta prestanda för en given arealförbrukning. Den föreslagna organisationen, som kallas Hierarki, introducerar två huvudsakliga innovationer. För det första är det en hierarkisk design som består av en liten MSHR-fil per cache-bank och en större MSHR-fil som delas av alla cachebanker. Per bank ger hög bandbredd, medan den delade minimerar cachelåsning i närvaro av obalanser mellan bankers åtkomst på ett områdeseffektivt sätt. Den andra innovationen är ett Bloom-filter som eliminerar den stora majoriteten onödiga åtkomst till den delade MSHR-filen och därmed avlägsnar en eventuell flaskhals. För det tredje utvärderar tidningen Hierarki i samband med en högMLP-processor för vissa SPECint, SPECfp och flerprogrammerade arbetsbelastningar. Jämfört med en toppmodern MHA liknande den i Pentium 4, ökar Hierarki-hastigheten arbetsbelastningen med ett geometriskt medelvärde på 32%, 50% respektive 95%. Vi jämför också Hierarki med två intuitiva extrapoleringar av nuvarande MHA-designer, nämligen en stor monolitisk MSHR-fil och en stor bankad MSHR-fil. För samma område är Hierarkien snabbare med ett geometriskt medelvärde på 1-18 % respektive 10-21 %. Slutligen utför Hierarki mycket nära en obegränsad storlek, idealisk MHA. Dokumentet är organiserat enligt följande: Avsnitt 2 presenterar en bakgrund och motivation; Avsnitt 3 utvärderar de nya MHA-utmaningarna; Det 39:e årliga IEEE/ACM:s internationella symposium om mikroarkitektur (MICRO'06) 0-7695-
REF Adaptive Miss Handling Architecture (AMHA)
Scalable Cache Miss Handling for High Memory-Level Parallelism
{'venue': "2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06)", 'journal': "2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06)", 'mag_field_of_study': ['Computer Science']}