问题描述
我想在 gem5 中使用 Gshare
。我找到了源代码和说明 here。不幸的是,GshareBP
选项没有出现在 gem5 的分支预测器列表中。
有什么想法吗?
解决方法
该列表是从 Python 类生成的。作者忘记添加参数类的 Python 声明,所以你必须自己做。
例如,GShareBP
需要参数 localPredictorSize
和 localCtrBits
,因此您需要添加以下类 src/cpu/pred/BranchPredictor.py
(这只是一个示例;我不t 知道参数的实际值):
class GShareBP(BranchPredictor):
type = 'GShareBP'
cxx_class = 'GShareBP'
cxx_header = "cpu/pred/gshare.hh"
localPredictorSize = Param.Unsigned(2048,"Size of local predictor")
localCtrBits = Param.Unsigned(2,"Bits per counter")
您还需要通知必须编译 gshare.cc(在 src/cpu/pred/SConscript
中):
Source('gshare.cc')
这样做之后你会面临很多错误;该代码是为 2014 年的 gem5 编写的。
您可能还需要做的事情:
- 将以下内容添加到 gshare.cc
#include "params/GShareBP.hh"
- 将
typedef GShareBPParams Params;
添加到 gshare.hh - 将
SatCounter
重命名为SatCounter8
有关详细信息,您可能会发现这本书Learning gem5很有帮助