查看: 870|回复: 1
收起左侧

第七章RISC-V的取指令

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-1-15 13:53
  • 签到天数: 26 天

    [LV.4]

    发表于 2020-8-9 00:26:40 | 显示全部楼层 |阅读模式

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

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

    x
    本帖最后由 ニコ·ロビン 于 2020-8-9 00:32 编辑

    RISC-V架构特点对于取指的简化

    1:指令长度编码放在低位

    • 得益于后发优势和多年来处理器发展的教训,所有RISC-V处理器的指令长度指示码都放在了低位,可以方便取指逻辑在取指过程中以最快的速度译码出当前指令的长度,极大地简化了硬件的设计

    • 另外,16位压缩指令子集是可选的,假设处理器仅支持32位的而不支持16位的,甚至可以把后两位忽略不存储,因为肯定固定为(11),从而减少了6.25%的指令缓存

    • RISC-V不同指令长度的后几位定义如下图所示,不过除了32位和16位,其他的指令长度格式并不常用

    国外芯片技术交流-第七章RISC-V的取指令risc-v单片机中文社区(1)


    2:简单的分支跳转指令

    • 无条件直接分支跳转指令,jal(跳转和链接)指令,用于进入子程序调用,同时将子程序的返回地址存在jal指令的目标寄存器(连接寄存器,link register)。


    • 无条件间接分支跳转指令,jalr(jump and link-register)指令,用于子程序返回指令,通过将jal指令(跳转进入子程序)保存的连接寄存器地址,作为jalr指令的基地址寄存器,则可以从子程序返回。


    • 带条件分支跳转指令,共有六条,他有两个操作数,先进性比较,之后在跳转,与其它RISC架构不同的是,RISC-V架构把比较和跳转两个操作放在一个指令中完成,减少了指令的条数,使他在硬件上更加简单。

    3:取消了分支延时槽命令


    4:提供明确的静态分支预测依据

    固定地预测为向后跳转的分支指令为需要跳转,在RISC-V架构中明确规定,编辑器生成的代码应该尽量优化,使得向后跳转的分支指令比向前跳转的概率要大,最大化地提高静态预测的准确率


    5:提供明确的RAS依据

    • RAS:函数的调用和返回往往是成对出现的,在函数调时将当前PC值加4,即其顺序执行的下一条指令的PC值压入RAS堆栈中,等到函数返回时将RAS的值弹出,这样可以快速的为函数返回的分支跳转预测指令预测目标地址。


    • 通过在架构文档中明确规定,并且规定软件编译器按照此原则生成汇编代码,从而最大化提高预测的准确性


    蜂鸟E200处理器的取指实现

    本篇完




    上一篇:大量的RISC-V文章(可下载)
    下一篇:RISC-V登场,Intel和ARM会怕吗?
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

      离线 

  • TA的每日心情
    慵懒
    2021-7-27 09:25
  • 签到天数: 57 天

    [LV.5]

    发表于 2020-8-11 21:35:21 | 显示全部楼层
    分析的太好了
    相信自已,未来是自已创造的。
    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

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



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

    GMT+8, 2024-11-26 08:17 , Processed in 0.366807 second(s), 51 queries .

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