1 / 3
文档名称:

基于静态划分的代码Cache管理方法.docx

格式:docx   大小:18KB   页数:3页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于静态划分的代码Cache管理方法.docx

上传人:开心果 2022/6/26 文件大小:18 KB

下载得到文件列表

基于静态划分的代码Cache管理方法.docx

相关文档

文档介绍

文档介绍:基于静态划分的代码Cache管理方法
专利名称:基于静态划分的代码Cache管理方法
技术领域:
本发明涉及计算机应用领域的动态二进制翻译技术,特别涉及一种基于静态划分的代码Cache管理方法。
背景技术:
动态二进制翻译技术是解rear+size) % L2_MAX_SIZE。作为优选,如果所述L1_PR0P0RT10N〈50%,令 L1_PR0P0RT10N = MAX_CACHE_SIZE,L2_MAX_SIZE = O。本发明由于采用了以上技术方案,具有显著的技术效果:代码Cache管理灵活,LI级Cache和L2级Cache大小及各自占有比例可通过配置文件静态配置,以适应不同环境下不同应用程序的特性。管理开销低。全清空策略和FIFO策略是常用Cache管理策略中开销最低的两种策略,本发明提出的方案将两种策略结合,以最低的管理开销降低Cache缺失率。考虑程序的执行特征。本发明将执行次数多且最近执行的代码尽量驻留在代码Cache中,从程序执行局部性的角度降低Cache缺失率。
图1为实施例1QEMU动态二进制翻译流程示意图。图2为实施例1QEMU中的实现框架示意图。图3为本发明的流程示意图。
具体实施例方式下面结合实施例对本发明作进一步的详细描述。实施例1本实施例中所采用的动态二进制翻译系统为开源的QEMU系统,但本方法也可以推广到其他二进制翻译系统中。QEMU系统将源目标体系结构(如ARM,X86,MIPS)
的可执行文件翻译到中间代码,然后再翻译到目标体系结构ISA (Instruction SetArchitecture)(如 X86, PowerPC, ARM, Sparc, Alpha, MIPS)上执行。翻译单位为基本块,TB (Translation Block,简称TB)数组保存了所有基本块的翻译信息,其元素数据结构为struct TranslationBlock,表示一个基本块的翻译信息(或者称为TB信息)。QEMU采用TCG作为中间代码,每条源体系结构指令会在前端被翻译为一条或者多条TCG指令,后端会将这些TCG指令翻译为目标体系结构代码。TCG具有简单、清晰的语法结构。QEMU的动态二进制翻译流程如图1所示。QEMU首先加载源体系结构二进制文件,并找到程序的入口地址,开始翻译。每次翻译前,QEMU会首先根据当前指令PC(即基本块的地址,该基本块的地址会在该基本块被加载前保存在CPU的程序计数器,简称PC中,因此,本实施例中直接以PC来指代基本块的地址,下同)在代码Cache中进行查找,若找到该基本块所对应的目标体系代码块,则表示该基本块已经翻译过,则取出相应的目标体系代码块进行执行,如果代码Cache中未找到该基本块所对应的目标体系代码块,则执行翻译过程。翻译前端针对当前指令PC,首先译码判断指令功能,然后将其翻译为对应的TCG指令,缓存在TCG Cache中,然后继续翻译下一条指令,直至遇到基本块结束指令,则结束当前基本块翻译。后端将当前基本块对应的TCG指令翻译为目标体系结构代码,即目标体系代码块,并缓存在代码Cache中,同时执行该目标体系代码块。QEMU代码Cache管理采用全清空策略,Cache查找采用哈希表的方式。为实现本发明的代码Cache管理方法,需要对QEMU进行如下几个方面的修改:1、