【问题标题】:Rocket-chip instruction trace columns火箭芯片指令跟踪列
【发布时间】:2018-07-18 20:18:28
【问题描述】:

当我在rocket-chip 的emulator 目录中运行make run-asm-tests 时,我在emulator/output 目录中得到了一堆*.out 文件。这些似乎是指令跟踪,但列没有标记。我想知道这些列中的每一个是什么意思。谢谢!

例如:

C0:      82212 [0] pc=[000000081c] W[r 0=0000000000000400][0] R[r 8=0000000000000000] R[r 0=0000000000000000] inst=[40044403] lbu     s0, 1024(s0)
C0:      82213 [0] pc=[000000081c] W[r 0=0000000000000400][0] R[r 8=0000000000000000] R[r 0=0000000000000000] inst=[40044403] lbu     s0, 1024(s0)
C0:      82214 [1] pc=[0000000820] W[r 8=0000000000000000][1] R[r 8=0000000000000000] R[r 3=0000000000000003] inst=[00347413] andi    s0, s0, 3
C0:      82215 [1] pc=[0000000824] W[r 0=0000000000000000][0] R[r 8=0000000000000000] R[r 0=0000000000000000] inst=[fe0408e3] beqz    s0, pc - 16
C0:      82216 [1] pc=[0000000814] W[r 8=0000000000000000][1] R[r 0=0000000000000000] R[r20=0000000000000003] inst=[f1402473] csrr    s0, mhartid

【问题讨论】:

    标签: riscv rocket-chip


    【解决方案1】:

    第一列 C0: 代表核心 0。如果您有多个核心,每个核心都将打印自己的跟踪,并以 hartid 为前缀。

    第二列8221282216 是当前周期数。

    第三列[0][1] 显示这条指令是否提交了这个循环(即没有异常地完成)。

    第四列pc=[...] 显示当前程序计数器值。

    第五列W[r 8=...][1]显示了r后缀中当前指令的目标寄存器,在=之后写入该寄存器的值,以及此写入是否发生在[0]中或[1]

    第六列R[r 8=...] 显示'r 后缀中的第一个源寄存器的索引以及在= 之后从该寄存器读取的值。

    第七列与第六列相同,但用于第二个源寄存器。

    第八列inst=[...]显示当前指令中的位。

    第九列也是最后一列显示了当前指令的反汇编。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多