无法在 gem5 错误中构建 InvisiSpec 没有 evictionCallback 方法

Can't build InvisiSpec in gem5 error no evictionCallback method

我正在尝试从论文作者发布的 InvisiSpec paper. InvisiSpec is a defense mechanism in hardware for Spectre attack. I'm using github code 中复制数据。

目前我可以在我的系统上成功构建 运行 最新版本的 gem5 模拟器。但是,在尝试构建他们的 code

时出现以下异常
Exception: MI_example-cache.sm:401: Error: Invalid method call: Type 'Sequencer' does not have a method evictionCallback, 'evictionCallback_Addr' nor '':

我不知道这个错误是从哪里来的。我看了很多东西,但没有成功。如果有人可以帮助我找到导致异常的原因,我将不胜感激。该问题也发布在相应的 github repository 中。

上面的错误以及之后出现的一些其他错误与协议MI以及scons和python版本有关。我可以用 MESI 协议构建它。

python2.7 `which scons` build/X86/gem5.opt --default=X86 PROTOCOL=MESI_Two_Level

将修改后的InvisiSpec 版本与原来的Gem5 进行比较,我相信论文的作者对与MESI 协议一起工作的内存一致性进行了更改。与其他协议相关的代码需要相应更新。