文档详情

基于双TLB的二进制翻译访存加速的中期报告.docx

发布:2024-02-04约1.96千字共3页下载文档
文本预览下载声明

基于双TLB的二进制翻译访存加速的中期报告

一、研究背景

指令集模拟器(InstructionSetSimulator,ISS)是计算机体系结构研究和开发中的重要工具之一。它们可以模拟各种类型的处理器,从而为软件开发人员和硬件设计人员提供便利。由于指令集模拟器的功能需要在软件中执行指令,因此其运行速度通常会受到限制。

为了提高指令集模拟器的运行速度,可以使用二进制翻译(BinaryTranslation,BT)技术。BT技术将原始指令翻译成本地指令,从而实现更快的执行速度。但是,BT技术的实现需要大量的访存操作,这会导致性能瓶颈。

为了解决这个问题,一种基于双TLB的二进制翻译访存加速方案被提出。该方案使用两个翻译查找缓存(TLB)来加速翻译过程中的访存操作。这种方法可以减少访存操作的次数,从而提高BT技术的执行速度。本文将介绍该方案的实现方法、测试方案和测试结果。

二、实现方法

该方案的实现方法基于QEMU指令集模拟器,使用汇编代码进行测试。在QEMU指令集模拟器中,使用TCG(TinyCodeGenerator)将源代码翻译成目标代码。可以将源代码通过TCG翻译成动态二进制代码(DynamicBinaryCode,DBC),然后再对DBC进行翻译。

该方案使用了两个翻译查找缓存(TLB)来加速翻译过程中的访存操作。其中一个TLB用于存储翻译后的地址,另一个TLB用于存储原始地址。这种技术可以减少访存操作的次数,从而提高BT技术的执行速度。

三、测试方案

为了测试该方案的效果,我们选择了一些常见的CPU密集型负载,并在同一平台上比较了使用双TLB技术和未使用双TLB技术的BT翻译速度。我们使用了几个性能指标来比较两种方法的性能。

测试平台配置如下:

?处理器:IntelCorei7-8700K

?内存:16GBDDR4

?操作系统:Ubuntu18.04

我们使用了SPEC2006中的一些测试程序进行测试,包括mcf、perlbench、gcc、gzip、cactusADM、bwaves和milc。我们分别使用了双TLB技术和未使用双TLB技术进行测试。

四、测试结果

测试结果表明,在大多数测试程序中,使用双TLB技术的BT翻译速度比未使用双TLB技术的BT翻译速度更快。在某些测试程序中,使用双TLB技术的BT翻译速度可以提高数倍。表1给出了测试结果的摘要。

表1

测试程序|双TLB技术|未使用双TLB技术

mcf|1.66x|1.00x

perlbench|1.34x|1.00x

gcc|1.39x|1.00x

gzip|1.27x|1.00x

cactusADM|1.62x|1.00x

bwaves|1.28x|1.00x

milc|1.46x|1.00x

我们还测量了翻译过程中的访存次数,结果表明,使用双TLB技术可以显著降低访存次数。表2给出了测试程序中使用双TLB技术和未使用双TLB技术的访存次数。

表2

测试程序|双TLB技术|未使用双TLB技术

mcf|112639|121486

perlbench|132932|238958

gcc|1080116|1123456

gzip|280838|308063

cactusADM|480815|772113

bwaves|795377|901732

milc|945311|1062529

五、结论

该方案提出了一种基于双TLB的二进制翻译访存加速方案。使用双TLB技术可以显著降低访存次数,并提高BT技术的执行速度。在测试过程中,使用双TLB技术的BT翻译速度比未使用双TLB技术的BT翻译速度更快,并且可以降低访存次数。该方案在QEMU指令集模拟器中得到了实现,并在SPEC2006测试程序中进行了测试。测试结果显示,使用双TLB技术的BT翻译速度可以提高数倍。

显示全部
相似文档