关于流水线difftest #15
CodeWenjiu
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
流水线difftest的想法一开始是因为cache difftest在流水线微架构下的失效而引发的,本来只是想在nemu上模仿流水线flush的实现,后来觉得不如针对流水线直接difftest算了,于是产生了
PipeCell这些代码但是我现在才发现,我忽视了一个严重问题,那就是流水线difftest
到底要测试什么?如果说只是为了测试指令在流水线中的流向,那么就引发了一个问题,对于ref,要不要使用它自己的流水线控制器?
由于每个Simulator所在的环境都不一样,不能够保证IF和LS的行为一致(访存延迟),要么想办法让其IF和LS的状态一致(总线difftest?这太疯狂了...),不然就只能够让ref进行流水线控制但不生效,比较dut和ref在可确定的环境下(AL,AG,WB,ID)等的stall和flush行为是否一致
那么相当于让dut的流水线控制器控制ref的流水线,那这样的话指令流向基本都是一样的,有什么difftest的必要呢?
目前的想法或许是将当前重构的api将
emu的单周期实现修改(不知道会不会对性能有大影响)然后再考虑实现为多周期和流水线至于流水线difftest,可能会先使用dut控制ref的方案,至少能够实现cache difftest
Beta Was this translation helpful? Give feedback.
All reactions