In the design of embedded systems, hardware and software need to be co-explored together to meet targets of\nperformance and energy. With the use of application-specific instruction-set processors, as a stand-alone solution or\nas a part of a system on chip, the customization of processors for a particular application is a known method to reduce\nenergy requirements and provide performance. In particular, processor designs with exposed data paths trade\ncompile time complexity for simplified control hardware and lower running costs. An exposed data path also allows\nthe removal of unused components of interconnection network, once the application is compiled.\nIn this paper, we propose the use of a compiler technique for processors with exposed data paths, called software\nbypassing. Software bypassing allows the compiler to schedule data transfers between execution units directly,\nbypassing the use of a general-purpose register file, increasing scheduling freedom, with reduced dependencies\ninduced by the reuse of registers, decreasing the number of read and write accesses to register files, and allowing the\nuse of register files with less read and write ports while maintaining or improving performance and maintaining\nreprogrammability. We compare our proposal against an architecture exploration technique, connectivity reduction,\nwhich finds in compiled application all interconnection network components that are used and removes those which\nare not, leading to an energy-efficient application-specific instruction-set processor.\nWe observe that the use of software bypassing leads to improvements in application speed, with architectures having\nthe smallest number of register file ports consistently outperforming architectures with larger number of ports, and\nreduction in energy consumption. In contrast, connectivity reduction maintains the same application speed, reduces\nenergy consumption, and allows for increase in processor frequency; however, with the clock frequency increased to\nmatch the performance of software bypassing, energy consumption grows. We also observe that in case\nreprogrammability is not an issue, the most energy-efficient solution is a combination of software bypassing and\nconnectivity reduction.
Loading....