近年来,专用指令集处理器(application specific instruction set processor,ASIP)在嵌入式系统中得到了越来越广泛的应用.这些ASIP提供了面向某个领域定制硬件计算加速器的功能.通过利用加速器提供的扩展指令,可以大幅提升ASIP面向领域的处理能力.然而,这些计算加速器只能加速那些在编译时加入了扩展指令的应用程序.对于在编译时没有加入扩展指令的应用而言,得不到任何性能提升.利用软件动态二进制翻译来解决这一问题,即将计算加速器虚拟化.与传统的静态编译方法所不同的是,以动态虚拟化方式利用计算加速器面临许多新的问题.针对这些问题,提出了一系列解决方法,并用实验加以验证.
In recent years, many embedded systems must meet the increasing demand of performing computation intensive tasks, such as video decoding, signal processing and so on. General purpose processors (GPPs), although inexpensive, may fail to meet the performance and power cost demands of embedded applications. Thus, it is increasingly common to use application specific instruction set processors (ASIPs) in embedded system designs. These ASIPs can customize hardware computation accelerators for an application domain. Along with instruction set extensions (ISEs), the customized accelerators can significantly improve the performance of embedded processors, which has already been exemplified in previous research work and industrial products. However, these accelerators in ASIPs can only accelerate the applications that are compiled with ISEs. Those applications compiled without ISEs can not benefit from the hardware accelerators at all. Software dynamic binary translation (DBT) is a technique typically used in virtual machines (VMs) to solve the binary compatibility problem and improve the performance. In this paper, we propose using software DBT to overcome this problem, i. e. computation accelerator virtulization. Unlike a static approach, dynamically utilizing accelerator poses many new problems. This paper comprehensively explores the techniques and design choices for dynamic accelerator utilization, and demonstrates the effectiveness by the experimental results.