Sammanfattning Vi utvecklar en mikroprocessordesign som tolererar hårda fel, inklusive fabrikationsfel och in-field Eftersom tekniska trender fortsätter att leda mot mindre enhet och tråddimensioner i integrerade kretsar ökar sannolikheten för hårda (permanenta) fel i mikroprocessorer. Dessa fel kan införas under tillverkning, som defekter, eller de kan uppstå under mikroprocessorns driftstid. Välkända fysiska fenomen som leder till operativa svåra fel är grindoxid nedbrytning, elektromigration, och termisk cykling. Mikroprocessorer blir mer mottagliga för alla dessa fenomen som enhet dimensioner krympa [28], och halvledarindustrins färdplan har identifierat både operativa hårda fel och fabrikationsdefekter (som vi kollektivt kommer att kalla "hårda fel") som kritiska utmaningar [13]. Inom en nära framtid kanske det inte längre är en kostnadseffektiv strategi att kasta bort en mikroprocessor med ett eller flera svåra fel, vilket är vad vi för det mesta gör i dag. Traditionella metoder för att tolerera svåra fel har maskerat dem med hjälp av makroskal redundans, såsom trippel modulär redundans (TMR). TMR är ett effektivt tillvägagångssätt, men det medför en 200% overhead när det gäller hårdvara och strömförbrukning. Det finns några andra, lätta metoder som använder marginella mängder redundans för att skydda specifika delar av mikroprocessorn, såsom cache [36, 18] eller buffertar [5], men ingen av dessa är heltäckande. Vårt mål i detta arbete är att skapa en mikroprocessordesign som tål svåra fel utan att lägga till betydande redundans. Den viktigaste observationen, som också gjorts av tidigare forskning [25, 27, 29], är att moderna superskalar mikroprocessorer, särskilt samtidigt multitrådade (SMT) mikroprocessorer [32], redan innehåller betydande mängder redundans för att utnyttja ILP och förbättra prestanda. Vi vill använda denna redundans för att maskera hårda fel, till priset av en graciös försämring i prestanda för mikroprocessorer med hårda fel. I detta dokument överväger vi inte att lägga till extra redundans strikt för feltolerans, eftersom kostnaden är en så viktig faktor för råvarumikroprocessorer. Livsdugligheten i vår strategi beror endast på om, med tanke på en felaktig mikroprocessor, att kunna använda den med något försämrad prestanda ger någon nytta över att behöva kasta den. För att uppnå vårt mål måste mikroprocessorn kunna göra tre saker medan den körs. • Den måste upptäcka och korrigera fel orsakade av fel (både svåra och övergående). • Den måste diagnostisera var ett hårt fel är, vid granulariteten i fältet dekonfigurerbar enhet (FDU). • Den måste dekonfigurera en felaktig FDU för att förhindra att dess fel utövas. Även om det tidigare arbetet på detta område har undersökt aspekter av detta problem har ingen av dem utvecklat någon integrerad lösning. Vissa arbeten har använt dekonfigurering för att tolerera strikt fabricering defekter och därmed antas pre-shipment testning i stället för online feldetektering och diagnos [25]. Andra arbeten har undersökt dekonfigurering och har lämnat detektion och diagnos som öppna problem [29]. I detta dokument diskuterar vi integrerade designalternativ för mikroprocessorer som uppnår alla dessa tre mål, och vi presenterar en särskild mikroprocessor i detta designutrymme. För det första upptäcker och korrigerar vår mikroprocessor fel, både på grund av övergående fel och svåra fel, med hjälp av tidigare utvecklad DIVA-stil [2] dynamisk verifiering. För det andra använder den en nyutvecklad mekanism för att diagnostisera svåra fel när systemet körs. För det tredje, efter att ha diagnostiserat ett svårt fel, dekonfigurerar mikroprocessorn den felaktiga FDU på ett FDU-specifikt sätt. I detta dokument presenterar och utvärderar vi tidigare utvecklade dekonfigureringssystem för funktionella enheter och delar av arraystrukturer (t.ex. omordningsbuffert, belastnings-/lagerkö osv.).), och vi visar att vårt integrerade tillvägagångssätt också gör det möjligt för mikroprocessorn att dekonfigurera felaktiga DIVA-kontroller. Våra experimentella resultat visar att vår nya diagnosmekanism snabbt och exakt diagnostiserar svåra fel. Dessutom kan vår pålitliga mikroprocessor fungera ganska bra i närvaro av hårda fel, trots att den inte använder redundans utöver vad som redan finns i en modern mikroprocessor. Denna teknik kan förvandla annars värdelösa mikroprocessorer till mikroprocessorer som kan fungera på en graciöst försämrad prestandanivå. Denna förmåga kan förbättra tillförlitligheten genom att tolerera operativa svåra fel. Vi kan förbättra avkastningen genom att frakta mikroprocessorer med defekter som vi har tolererat-det är som om de är vanliga mikroprocessorer som kommer att få "bined" i en lägre prestanda bin. Även om binning är typiskt för klockfrekvens, nyligen förslag har föreslagit mer allmän prestanda binning [25]. Så länge dessa soptunnor inte har så låga prestanda att de är värdelösa, då är vår förbättring av avkastningen en fördel. Vårt system överträffar också i hög grad ett system med endast DIVA eller ett jämförbart återvinningsbaserat system, eftersom kostnaderna för återvinning är ganska höga för svåra fel som används ofta; dessutom kan vårt system tolerera ett hårt fel i en DIVA-kontroll. Bidragen från detta arbete är: • En dynamisk, omfattande hårdvarumekanism för att diagnostisera svåra fel i mikroprocessorer, inklusive fel i DIVA-kontroller. • En mikroprocessorkonstruktion som integrerar vår nya mekanism för feldiagnos med DIVA feldetektering och en blandning av befintliga och nya dekonfigureringssystem. • En experimentell utvärdering som visar att en mikroprocessor med våra förbättringar kan tolerera svåra fel med en graciös försämring i prestanda. I Avsnitt 2 diskuterar vi svåra fel och varför de berör mikroarkitekter. I avsnitten 3, 4 och 5 beskriver vi feldetektering och korrigering, feldiagnos och dekonfigurering av felaktiga komponenter. I avsnitt 6 diskuteras kostnader och begränsningar för vårt specifika genomförande. Avsnitt 7 presenterar vår experimentella utvärdering. Vi diskuterar därmed sammanhängande arbete i Avsnitt 8 och avslutar i Avsnitt 9. I detta avsnitt diskuterar vi de svåra fel som motiverar detta arbete. Vi fokuserar särskilt på de tekniska trender som leder till större förekomster av dessa brister. Med allt mindre mått på apparater och ledningar och högre temperaturer får dessa trender oss att dra slutsatsen att antalet svåra fel kommer att öka. Det har förekommit flera färska studier av operativa hårda fel [28, 14], det vill säga svåra fel som inträffar under mikroprocessorns livstid. Srinivasan m.fl. [28] fastställa att elektromigration [31, 3] och gasoxidnedbrytning [10] sannolikt kommer att vara de två dominerande fenomen som orsakar operativa svåra fel. Elektromigration resulterar i mycket resistiva sammanlänkningar eller kontakter och leder så småningom till öppna kretsar. Elektromigrationen ökar när tråddimensionerna krymper och temperaturen ökar. Nedbrytning av portoxid (OBD) resulterar i fel i en enda transistor på grund av skapandet av en mycket ledande väg mellan dess grind och dess bulk. En nytillverkad oxid innehåller inneboende elektronfällor på grund av brister i tillverkningsprocessen. Under apparatens livstid ökar antalet sådana fällor på grund av elektrisk fältstress och elektrontunnlar. Vid något tillfälle kan elektronfällorna rada upp sig och utgöra en ledande väg mellan grinden och större delen av anordningen, vilket så småningom leder till OBD. OBD-frekvensen ökar när oxidtjockleken krymper och temperaturen ökar. Eftersom OBD ökar växlingsfördröjningen, kan det leda till fördröjningsfel som manifesterar sig som lite flips [6]. Defekter som introduceras under chip tillverkning är en annan källa till svåra fel. Deras orsaker skiljer sig från orsakerna till de svåra felen i verksamheten, men de visar sig ofta på ett liknande sätt. Till exempel, en fabricering defekt kan leda till ett avbrott i en tråd,
I REF föreslås en mikroprocessorkonstruktion som är integrerad med en dynamisk verifieringsbaserad feldetekteringsmekanism för att diagnostisera svåra fel i FU.
A Mechanism for Online Diagnosis of Hard Faults in Microprocessors
{'venue': "38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05)", 'journal': "38th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'05)", 'mag_field_of_study': ['Computer Science']}