De prestatie en energie-efficiëntie van een microprocessor kan verbeterd worden m.b.v. zogenaamde Custom Instructions (CIs). Dit zijn instructies die specifieke functies implementeren. Omwille van de kost dient het aantal CIs echter beperkt te worden. De moeilijkheid bestaat erin maximale prestatiewinst te boeken met een beperkt aantal CIs. Door CIs in te zetten om een aantal computerapplicaties uit een ruim domein te versnellen wordt de toepasbaarheid verhoogd. In dit doctoraatswerk onderzoeken we geautomatiseerde manieren om domeinspecifieke CIs te ontwerpen.
Ten eerste stellen we een analyse voor die CIs identificeert op het niveau van een basisblok binnen een enkele applicatie alsook tussen verschillende applicaties. We stellen hiertoe een canonieke representatie voor, alsook heuristieken om de beste CIs te identificeren. We besluiten dat, met een beperkte chipoppervlakte voor specialisatie, een mix van applicatie- en domeinspecifieke instructies de beste prestatie oplevert.
Om de herbruikbaarheid van CIs te verbeteren, introduceren we vervolgens een canonieke representatie over verschillende basisblokken, en stellen we een mechanisme voor dat CIs identificeert die slechts deels gelijkaardig zijn. Voor kleine chipoppervlaktes stelt dit ons in staat hoge prestatie en energie-efficiëntie te bereiken voor een applicatiedomein. | |