Vi presenterar en metod för konstruktion av applikationsspecifika processorkärnor från en given C-kod. Vår strategi består av tre faser. Vi börjar med att kvantifiera egenskaperna hos C-koden i termer av verksamhetstyper, tillgänglig parallellism och andra mått. Vi skapar sedan en första dataväg för att utnyttja den tillgängliga parallellismen. Vi tillämpar sedan konstruktörsstyrda begränsningar på en interaktiv datavägförfiningsalgoritm som försöker minska antalet av de dyraste komponenterna samtidigt som vi uppfyller begränsningarna. Våra experimentella resultat visar att vår teknik skalar sig mycket bra med storleken på C-koden. Vi demonstrerar effektiviteten av vår teknik på ett brett spektrum av tillämpningar, från standard akademiska riktmärken till industriella storlek exempel som MP3-dekoder. Varje processorkärna byggdes och förfinades på under en minut, vilket gör det möjligt för konstruktören att utforska flera olika konfigurationer på mycket mindre tid än vad som behövs för manuell design. Vi jämförde vårt urvalsalgoritm med det manuella urvalet i fråga om kostnad/prestanda och visade att vår optimeringsteknik uppnår bättre kostnads/prestanda-avsättning. Vi syntetiserade också vår design med programmerbar controller och i genomsnitt har den förfinade kärnan endast 23% latency overhead, dubbelt så många block RAM-minnen och 36% färre skivor jämfört med respektive manuella konstruktioner.
Trajkovic m.fl. REF genererar automatiskt processorkärnor från C-koden, inklusive separat generering av databanan och den personuppgiftsansvarige.
Automated generation of custom processor core from C code
{'venue': 'J. Electrical and Computer Engineering', 'journal': 'J. Electrical and Computer Engineering', 'mag_field_of_study': ['Computer Science']}