Journal of Computer Applications ›› 2014, Vol. 34 ›› Issue (5): 1404-1407.DOI: 10.11772/j.issn.1001-9081.2014.05.1404

Previous Articles     Next Articles

Co-design optimization approach based on static register allocation in system emulation

JIANG Liehui,CHEN Huichao,DONG Weiyu,ZHANG Yanwen   

  1. State Key Laboratory of Mathematical Engineering and Advanced Computing, Information Engineering University,Zhengzhou Henan 450001, China
  • Received:2013-11-26 Revised:2013-12-18 Online:2014-05-01 Published:2014-05-30
  • Contact: CHEN Huichao

基于静态寄存器分配的系统仿真协同优化方法

蒋烈辉,陈慧超,董卫宇,张彦文   

  1. 信息工程大学 数学工程与先进计算国家重点实验室,郑州 450001
  • 通讯作者: 陈慧超
  • 作者简介:蒋烈辉(1967-),男,浙江东阳人,教授,博士生导师,博士,主要研究方向:体系结构、系统虚拟化; 陈慧超(1988-),男,河南开封人,硕士研究生,主要研究方向:系统虚拟化; 董卫宇(1976-),男,辽宁沈阳人,副教授,博士研究生,主要研究方向:操作系统、系统虚拟化;张彦文(1987-),男,湖南娄底人,硕士研究生,主要研究方向:逆向工程、二进制翻译。〖HJ〗〖HT〗〖FQ)〗
  • 基金资助:

    国家863计划项目

Abstract:

To reduce the expand rate of translated code and the cost of switching between translation engine and execution engine based on static register allocation strategy in X86 system emulation, a co-design optimization approach based on register mapping, custom instruction and shadow register was proposed. The operation to the emulated source registers in memory was transformed into the operation to local registers by optimization of static register allocation and the expand rate of translated object code was reduced; the backup and restore operation between engine switching were simplified to two custom instructions by co-design optimization of custom instructions and shadow registers. After co-design optimization of X86 emulation system Linux-0.2, the average expand rate of translated code comes down by 21.9%, the period of the emulation system’s boot and shutdown obtains speed-up of 1.35. Evaluation demonstrates the feasibility and effectiveness of the proposed co-design optimization approach.

摘要:

针对X86系统仿真中基于静态寄存器分配的代码翻译机制导致的目标代码膨胀率高、翻译引擎和执行引擎间切换开销大两方面问题,提出了以寄存器映射、自定义指令和影子寄存器为基础的软硬协同优化方法。寄存器映射优化将对内存中模拟的源机器寄存器的操作转化为对本地机器寄存器操作,降低了翻译后目标代码膨胀率;自定义指令和影子寄存器优化将引擎切换时上下文的备份和恢复操作简化为2条自定义指令,提升了引擎切换效率。相比协同优化前,X86仿真系统Linux-0.2的翻译后目标代码膨胀率降低了21.9%,开关机时间获得了1.35的加速比。测试结果表明了该协同优化方法对于提升系统仿真效率具有可行性和有效性。

CLC Number: