gem5 的 Gshare 分支预测器

Gshare branch predictor for gem5

我想在 gem5 中使用 Gshare。我找到了源代码和说明 here。不幸的是,GshareBP 选项没有出现在 gem5 的分支预测器列表中。 有什么想法吗?

该列表是根据 Python class 生成的。作者忘记添加参数 classes 的 Python 声明,所以你必须自己做。

例如GShareBP需要参数localPredictorSizelocalCtrBits,所以你需要添加下面的class src/cpu/pred/BranchPredictor.py(这只是一个例子;我不知道参数的实际值):

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 很有帮助