查看: 1501|回复: 0
收起左侧

RISC-V的Spike模拟器

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2020-8-24 12:35:14 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 皋陶 于 2020-8-27 15:30 编辑

    今天遇到的问题,记录下来。


    · CPI 始终等于1。这显然是不正确的。 cycle和instruction以及CPI的计算都是由PK来完成的。


    pk -s 中的 sys_exit


    也就是说,pk中计算的CPI和cache模型中计算失效率是不想关的。


    As you are debugging, please note that spike is not meant to be a cycle-accurate simulator of the assembly code. When spike runs, memory operations “magically” resolve in a single cycle, and branches are always evaluated without delay. The ISA simulator can evaluate the functional correctness of programs, but it is not a good way to measure how long they will take to run. Such cycle-accurate simulation requires a target hardware implementation such as the one that you will compile later in the lab. [1]


    · cache的失效率的模拟


    这个部分还没有深入去看,cache模型的模拟应该是有模型的。


    · 关于cycle 的问题


    在riscv 中,时钟的获取可以通过特殊的system指令 CSR系列来读取。


    1. 伪代码方式 asm volatile ("rdcycle %0":"=r"(cycle));
    2. 在encoding.h中的实现也相差不多:


    read_csr

    但是我有一个问题,就是pk、spike之间如何共享这些个CSR寄存器的值的?这个问题困扰我有一段时间了。希望稍后或者明天能解决。


    [1] 伯克利中关于RISC-V的实验课程



    • 关于 spike中的 csrrs 指令的执行,在 riscv-isa-sim/riscv/insns/cssrs.h 中实现了 具体cssrs所执行的操作:

      bool write = insn.rs1() != 0;
      int csr = validate_csr(insn.csr(), write);
      reg_t old = p->get_csr(csr);
      if (write) {
      p->set_csr(csr, old | RS1);
      }
      WRITE_RD(sext_xlen(old));

      如上所示,其实是调用了processor_t这个类中的get_csr函数。
      具体的函数连接 : get_csr函数实现

      其实就是读取的state_t类中的参数,state_t模拟的是processor中的各种状态和寄存器们。

    • 而关于pk中的读取,也有一个自己的实现和计算:
      emulation.c中实现的emulate_read_csr函数



    本篇完,感谢关注:RISC-V单片机中文网




    上一篇:RISC-V的指令集手册
    下一篇:RISC-V为中国MCU企业打开一个新窗口!
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-4-24 19:53 , Processed in 0.759878 second(s), 45 queries .

    快速回复 返回顶部 返回列表