Heterogena multiprocessorer är utformade för att överbrygga klyftan mellan prestanda och energieffektivitet i moderna inbyggda system. Detta uppnås genom att koppla ihop Out-of-Order (OoO) kärnor, vilket ger prestanda genom aggressiv spekulation och latency maskering, med In-Order (InO) kärnor, som bevarar energi genom enklare design. Genom att utnyttja migreringar mellan dem kan arbetsbördan därför välja den bästa inställningen för en given energi-/fördröjningsram. Migrationen inför dock verkställande overheads som kan skada prestanda om de händer alltför ofta. Att hitta den optimala migrationsfrekvensen är avgörande för att maximera energibesparingarna samtidigt som man bibehåller en godtagbar prestanda. Vi utvecklar en simuleringsmetod som kan 1) isolera hårdvarueffekterna av migreringar från programvaran, 2) direkt jämföra prestanda för olika kärntyper, 3) kvantifiera prestandanedbrytning och 4) beräkna kostnaden för migreringar för varje fall. För att visa upp vår metodik kör vi mibench, en microbenchmark svit, och visar att migrationer kan ske lika snabbt som varje 100k instruktioner med liten prestandaförlust. Vi visar också att hypotetiska mönster, till skillnad från många nya studier, inte behöver dela alla sina interna komponenter för att kunna migrera vid den frekvensen. I stället föreslår vi ett genomförbart system som delar nivå 2 cache och en översättningslookabor-buffert som matchar prestanda och effektivitet. Våra resultat visar att det finns faser som omfattar upp till 10 % att en övergång till OoO-kärnan leder till prestandafördelar utan några extra energikostnader när man kör på InO-kärnan, och upp till 6 % av faser där en övergång till InO-kärnan kan spara energi utan att påverka prestandan. När man överväger en politik som fokuserar på att förbättra energifördröjningsprodukten, visar resultaten att i genomsnitt 66% av faserna kan migreras för att leverera lika eller bättre systemdrift utan att aggressivt dela hela minnessystemet eller återgå till migreringsperioder finare än 100k instruktioner. Tillstånd att göra digitala eller papperskopior av hela eller delar av detta arbete för personligt bruk eller klassrum beviljas utan avgift, förutsatt att kopiorna inte görs eller distribueras för vinst eller kommersiella fördelar och att kopiorna är försedda med detta meddelande och den fullständiga hänvisningen på första sidan. Upphovsrätt till delar av detta verk som ägs av andra än ACM måste hedras. Abstraktering med kredit är tillåten. För att kopiera på annat sätt, eller återpublicera, för att posta på servrar eller för att omfördela till listor, krävs tidigare specifik behörighet och/eller avgift. Begär tillstånd från authoritys@acm.org.  I dagens inbyggda enheter är prestanda alltid knuten till kraftbegränsningar och energieffektivitet. Detta beror på att, medan processteknikskalning möjliggör större transistortätheter, har kraft per område visat sig öka över ett visst tröskelvärde i transistorstorlek. Denna senare effekt kallas vanligen uppdelningen av Dennards skalning, som tvingar konstruktioner att endast driva en bråkdel av hela systemet, vilket lämnar den återstående konstruktionen i ett mörkt kiseltillstånd [8, 10]. För att ta itu med detta har heterogena multiprocessorer (HMP) dykt upp över andra konstruktioner, särskilt i mobila enheter [17, 33], där det är avgörande att hålla sig inom ett strikt energihölje samtidigt som man fortfarande kan leverera prestanda på begäran. För att kunna leverera hög prestanda genom Memory Level Parallelism (MLP) och instruktionsnivå parallellism (ILP), en Out-of-Order (OoO) kärna används ofta som har stora caches, gör aggressiv spekulation (gren prediktorer, prefetchers) och masker minne latens på bekostnad av betydligt ökad design komplexitet, område och effekt krav. Å andra sidan syftar InOrder (InO) kärnor till att bevara energi genom en enklare och mindre design, på bekostnad av prestanda och lägre driftsfrekvens. En karakteristisk implementation av en HMP-arkitektur är till exempel ARM:s big.LITTLE [1], som använder två typer av kärnor som delar samma instruktionsuppsättning. Arbetsbelastningar kan delas upp i faser, varav en del visar hög ILP-potential och därför kan ge hög prestanda medan andra har stor tillgång till minne och därför ger lägre instruktioner per cykel (IPC). Att välja den lämpligaste kärnan leder till en optimal prestanda och energiprofil, samtidigt som ett felaktigt beslut kan leda till onödig avmattning eller energislöseri. Nyligen genomförda studier hävdar att mikrofaser i storleksordningen tusentals instruktioner finns [12, 30], som visas i figur 1, och kan utnyttjas för att minska energiförbrukningen och öka prestanda genom finkorniga migreringar. I teorin bör perfekt kärnmatchning leda till optimalt beteende, men varje gång en migration utförs måste arbetstillståndet överföras till den operativa kärnan, vilket lägger till både en programvara och maskinvaruutförande overhead. Från programvarusidan hanterar operativsystemet (OS) schemaläggningen till lämplig kärna och skickar de signaler som krävs för att utföra migreringen. Komplexiteten hos schemaläggaren och programvarukontextomkopplaren påverkar avsevärt mängden overhead som läggs till ett system, vilket är i storleksordningen tio miljoner instruktioner [7, 19, 32, 35]. Ur ett hårdvaruperspektiv är overheaderna beroende av hur mycket av staten som behöver överföras och hur mycket som delas mellan de två migrerande kärnorna. Ju mer staten delar och bevarar, desto mindre uppvärmningstid krävs, vilket är den period som krävs för att uppnå maximal prestanda. Till skillnad från programvara, hårdvara overheads kan vara betydligt mindre, så lågt som tusentals instruktioner, beroende på mängden resurser som delas. För att minska den totala systemavmattningen vid migrering, föreslår flera studier införandet av dedikerad hårdvara för att effektivt hantera överföringen utan någon programvara ingripande [12, 13, 18, 21, 26] och även sammansmältning kärnor för att dela fronten [20, 22, 24]. Eftersom hybridkonstruktioner är alltför komplicerade att genomföra är det dock värt att undersöka ett enklare tillvägagångssätt för att avgöra vilka komponenter som bidrar mest till fördelarna och endast delar med sig av dem. De frågor som vi vill besvara är därför:
Andra arbeten, nämligen REF visar att även när applikationer har alla sina data i cachen, kan prestandan som orsakas av grenen prediktor vara så mycket som 20% för 100k instruktion byta frekvenser för Out-of-Order kärnor medan In-Order kärnor visar liten nedbrytning.
Nucleus: Finding the Sharing Limit of Heterogeneous Cores
{'venue': 'TECS', 'journal': None, 'mag_field_of_study': ['Computer Science']}