Abstract-Rampant dynamik på grund av belastningsfluktuationer, corunner förändringar, och olika nivåer av störningar utgör ett hot mot applikationens kvalitet på tjänsten (QoS) och har begränsat vår förmåga att tillåta samlokaliseringar i moderna lagervågsdatorer (WSC). Instruktionsuppsättning funktioner som icke-temporella minnesaccess tips som finns i moderna ISAs (både ARM och x86) kan vara användbara för att mildra dessa effekter. Men trots utmaningen med denna dynamik och tillgängligheten av en instruktionsuppsättning mekanism som kan hjälpa till att ta itu med problemet, en nyckel förmåga saknas i systemprogram stacken i moderna WSCs är förmågan att dynamiskt omvandla (och åter-transform) den verkställande tillämpningskoden för att tillämpa dessa instruktionsuppsättning funktioner när det behövs. I detta arbete introducerar vi proteisk kod, en ny metod för att anta godtyckliga kompilator transformationer på runtime för inhemska program som körs på råvaruhårdvara med försumbar (<1%) overhead. Den grundläggande insikten bakom den underliggande mekanismen för proteisk kod är att, i stället för att upprätthålla full kontroll genom hela programmets utförande som med traditionella dynamiska optimerare, Protean kod tillåter den ursprungliga binära att köra kontinuerligt och avleder kontrollflödet endast vid en uppsättning virtualiserade punkter, vilket möjliggör snabb och sömlös omdirigering till de nya kodvarianterna. Dessutom bäddar den proteiska kodkompilatorn in IR med semantisk information på hög nivå i programmet, vilket ger den dynamiska kompilatorn möjlighet att utföra rik analys och transformationer online med lite overhead. Med hjälp av en fullt fungerande protean kodkompilator och körtid byggd på LLVM, designar vi PC3D, Protean kod för Cache Contention i datacenter. PC3D använder dynamiskt icke-temporal åtkomst tips för att uppnå utnyttjande förbättringar på upp till 2,8x (1,5x i genomsnitt) högre än state-of-the-art contensions runtime tekniker vid QoS mål på 98 %.
Till exempel Protean Code REF är en samdesignad kompilator och körtid byggd ovanpå LLVM som möjliggör kompilator transformationer vid drifttid med mindre än 1% overhead.
Protean Code: Achieving Near-Free Online Code Transformations for Warehouse Scale Computers
{'venue': '2014 47th Annual IEEE/ACM International Symposium on Microarchitecture', 'journal': '2014 47th Annual IEEE/ACM International Symposium on Microarchitecture', 'mag_field_of_study': ['Computer Science']}