Trace驱动的指令分支预测器模型软件工具设计与实现

 2022-08-28 11:08

论文总字数:25437字

摘 要

分支预测技术在现代处理器中被广泛使用。高性能的分支预测器可以有效地减少流水线的时间开销,但性能越高的分支预测器带来的硬件开销就会越大。因此,如何评估分支预测器性能,以平衡开销与收益,成为处理器设计中十分重要的一环。而现有的大型仿真器对于分支预测器准确率的评估需要花费较多的时间,不能满足设计人员的需求。为此,本课题构建了一种分支预测器仿真模型,设计出了一种高效的分支预测器预测精度评估软件。

本文的主要工作有以下两个方面:第一,设计了用Python语言实现了Gshare,Bimode和Tournament三种分支预测器仿真模型,并提供了多种配置选项;第二,将三种模型进行整合封装,成为一个完整的评估软件,并具添加图形界面。与实验室先前实现的C 仿真模型及Gem5仿真器相比,该模型精度达98%;相比于Gem5仿真器,Python仿真软件的仿真时间约为Gem5仿真器的43%,大大提升了其工作效率。考虑到Trace流具有一次提取多次使用的特性,实际工作效率还将得到进一步提高。

关键词:分支预测器,Trace仿真,缺失率,Python

Abstract

The branch prediction technology has been widely applied in current processors. A branch predictor with high performance can effectively reduce the cost of time of pipeline, while the higher the performance a predictor has, the larger the hardware overhead will be. Thus,how to evaluate the performance of branch predictors to achieve balance between overhead and performance gains in processor design is a very important work. Current large-scale simulators have introduced plenty of redundant information. Such simulators fail to meet the requirement of researchers. For this reason, this paper constructs a branch predictor simulation model, and designs an efficient software for the evaluation of branch predictors.

The work of this paper can be divided into the following two parts: firstly, three styles of branch predictor simulation model: Gshare, Bimode and Tournament are designed with Python language, providing a variety of configuration options. Secondly, these simulation models are encapsulated them into a software with graphical interface. Compared with the C model and the result of Gem5, the accuracy is up to 98%。 Compared with Gem5, the cost of time of the Python model is about 42% of that of Gem5. Considering trace date flow can be repeatedly used, the actual time cost can be further reduced.

KEYWORDS: Branch Predictor, Trace-Driven simulation, miss rate, Python

目 录

摘 要 I

Abstract II

目 录 III

第一章 绪论 1

1.1 背景介绍与研究意义 1

1.2 国内外研究现状 2

1.2.1分支预测技术的研究与建模 2

1.2.2处理器仿真与分支预测器性能评估 3

1.3 课题研究内容与目标 4

1.4 论文组织结构 4

第二章 分支预测器的结构与预测机制 6

2.1 分支指令是否跳转的预测 6

2.1.1 Gshare分支预测器 6

2.1.2 Bimode分支预测器 7

2.1.3 Tournament分支预测器 8

2.2分支目标地址的预测 9

2.2.1返回地址栈 9

2.2.2分支目标缓冲器 10

2.2.3多目标缓存 11

第三章 分支预测器模型软件工具的设计 13

3.1 基于Gem5的分支指令流提取 13

3.1.1 Gem5仿真与Trace流 13

3.1.2分支指令流的提取 13

3.2 Python语言实现的分支预测器模型的结构与实现 14

3.2.1 2-bit饱和计数器 16

3.2.2 Gshare仿真模型 17

3.2.3 Bimode仿真模型 19

3.2.4 Tournament仿真模型 21

3.2.5分支目标缓冲器 22

3.2.6返回地址栈 24

3.2.7多目标缓存 25

3.3 图形界面设计与操作介绍 26

第四章 结果验证与分析 29

4.1 预测精度对比 29

4.2 时间开销对比 31

第五章 总结和展望 33

5.1 总结 33

5.2 展望 33

致 谢 34

参考文献 35

  1. 绪论

分支预测器已经成为了现代计算机领域提升计算机工作效率的重要手段。鉴于流水线技术的普遍运用,分支预测技术能够大幅减少分支指令造成的性能损失。

1.1 背景介绍与研究意义

流水线技术是现代处理器所普遍使用的技术。将任务划分成较小的单元,让各个任务在流水线各个阶段并行处理,便可提高处理器的性能。但是,一旦出现分支指令,即需要进行跳转判断时,只有当前一条指令执行完毕之后,才可以得知下一条指令的跳转地址。拿简单的4级流水举例来说,只有当前一条指令通过了Execute级之后,下一条指令的地址才能得到,Fetch级才可以抓取下一条指令,那么在这过程中便产生了额外的开销。为了解决这个问题,分支预测技术应运而生。

分支预测技术利用指令类型、历史记录等,对分支指令的跳转结果进行预测,使得处理器在得到实际后续地址之前,可以利用预测地址进行预先取指,避免了流水线的停顿。当预测结果正确时,程序将不会产生开销地运行下去;而预测错误时,流水线将清空现有的状态,重新按照实际指令地址运行,产生额外的时间消耗。假设不使用分支预测器,流水线停顿所花费的时间(即获取实际地址的时间)为,分支预测花费的时间,分支预测错误额外消耗的时间为,分支预测的准确率为,则使用分支预测器所花费总时间的期望值为:

剩余内容已隐藏,请支付后下载全文,论文总字数:25437字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;