We use cookies to improve your experience with our site.

创建一种适应于多处理器的动态二进制翻译系统

Partitioning the Conventional DBT System for Multiprocessors

  • 摘要: 1.本文的创新点
    ? 对传统的动态二进制翻译系统进行全局与模块间的定性和定量分析,通过分析得出二进制翻译系统中存在的内在并行特性;
    ? 重构动态二进制翻译系统的系统框架。引入profile、超级块以及执行线程,并利用多核处理器的优势和多线程执行的优点获得性能加速;
    ? 结合多核多线程编程技术,通过和现有多线程优化系统的比较从技术细节上分析本文提出的系统的优缺点和适用场景;
    ? 创新地提出了动态二进制翻译系统中的线程间参数传递的方法。并设计多重目标缓存架构以达到多线程系统的高度并行性。另外,提出线程间的调度机制,为多线程间的协同工作提供了强有力的依据。2.实现方法
    ? 首先,论文对于传统二进制翻译系统从多个阶段进行了定性分析,比如查找阶段,上下文切换阶段,翻译阶段,执行阶段,链接阶段,profile 阶段以及构建超级块的阶段。论文中对于每个阶段的overhead以及各个阶段间的联系做了详细分析,最终得出影响二进制翻译系统的最重要的几个阶段。根据定性分析的结果,论文又对这些阶段进行了实验,通过实验分析得出执行阶段、翻译阶段以及优化阶段是动态二进制翻译系统的核心,具有可并行性的特性。
    ? 根据上述分析的结论,论文提出了基于多线程的动态二进制翻译系统,与传统的动态二进制翻译系统相比,该系统不限于一个线程完成翻译执行优化的操作,而是采用翻译线程、超级块线程、profile线程以及执行线程并行执行的多线程动态二进制翻译系统。另外,该系统可以高效利用多核资源提升系统的整体性能。
    ? 在创建该系统的过程中,一些难题急需解决。比如,多个线程之间的调度问题,论文中提出了跳转数模型,用于系统中多个线程的调度以及各线程间的协调工作问题;另外,为了解决线程间的参数传递问题,论文中提出了高效的汇编级语言的传递方法,并将该方法与传统的monitor模型、P/C模型进行了详细的比较;论文还提出了多缓存机制,防止读写冲突带来的额外开销;最后论文分析了该系统对于上下文切换的消除带来的重大意义。3.结论及未来待解决的问题
       多线程化的动态二进制翻译系统具有更加优秀资源利用率,可以高效的利用多核资源,与传统动态二进制翻译系统相比,该多线程化的系统更具有多方面的适应性和可扩展性,适应多核时代的发展。
      对于该多线程化的系统还有很多值得去研究的点。比如,论文中提出多线程调度策略并不是最优的调度策略,该策略的优劣直接影响整个系统的性能;在对传统动态二进制翻译系统的定量分析过程中,可以看到占整个系统开销最大的执行部分,并没有在本论文的研究范围之内,这也是目前课题组研究的一个盲点。在未来的工作开展过程中,我们将以提升执行性能为目标。4.实用价值或应用前景
      本论文设计和实现的基于多核平台的多线程动态二进制翻译系统优化框架,正是针对传统动态二进制翻译系统性能较差和动态优化过程中开销对性能加速比影响的问题,结合近年来相对成熟的多核多线程编程技术,提出的一种在提高动态二进制翻译器性能的同时,降低动态优化开销对原有系统开销影响的方法。这种方法会随着未来动态优化技术和线程级并行计算技术的发展,为动态二进制翻译技术提供更大的性能提升空间。

     

    Abstract: Noticeable performance improvement via ever-increasing transistors is gradually trapped into a predicament since software cannot logically and efficiently utilize hardware resource, such as multi-core resource. This is an inevitable problem in dynamic binary translation (DBT) system as well. Though special purpose hardware as aide tool, through some interfaces, provided by DBT enables the system to achieve higher performance, the limitation of it is significant, that is, it is impossible to be used widely by another one. To overcome this drawback, we focus on building compatible software architecture to acquire higher performance without platform dependence. In this paper, we propose a novel multithreaded architecture for DBT system through partitioning distinct function module, which is to adequately utilize multiprocessors resource. This new architecture devides couples the common DBT system (DBTs) working routine into dynamic translation, optimization, and translated code execution phases, and then ramifies them into different threads to enable them concurrently executed. In this new architecture, several efficient novel methods are presented to cope with intractable work that puzzles most researchers, such as communication mechanism, cache layout, and mutual exclusion between threads. Experimental results using SPECint 2000 indicate that this new architecture for DBT system can achieve higher performance — speed up the traditional DBT system by about average 10.75%, with better CPU utilization.

     

/

返回文章
返回