实验概述
实验目的
1. 加深对分支预测原理的理解,掌握分支预测器的软件实现方法;
2. 进一步熟悉程序插桩的原理,掌握Pin插桩工具的编写和使用方法;
3. 了解使用Pin插桩工具进行体系结构分析的方法。
实验内容
本实验将基于Pin插桩分析的工作机理,使用C/C++实现分支预测器的软件模型,从而在进一步熟悉插桩工具使用的同时,加深对分支预测原理的理解。
请参考Pin工具包的插桩API文档,实现基于BHT和全局历史的2种基本动态分支预测方法,并借助其进一步实现锦标赛预测器和TAGE预测器。
要求
所编写的分支预测器只需预测分支是否跳转,不需预测分支跳转的目标地址。
所有实现的分支预测器,其 实际 占用的存储资源不得超过 33KB。