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

RSIC-V——存储器访存指令

[复制链接]

  离线 

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

    [LV.5]

    RISC-V最佳新人RISC-V活跃会员RISC-V热心会员RISC-V推广达人

    发表于 2020-7-25 19:21:39 | 显示全部楼层 |阅读模式

    成为RISC-V行业新人,是你正确的选择!

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

    x
    1. load/store 存储器访问指令
    该指令是RISCV架构专门用来访问存储器的指令,其他任何指令均无法访问存储器。一般load采用I型指令格式,store采用S型指令格式。有效字节地址是通过将寄存器rs1与符号扩展的12位偏移量相加而获得的。Load指令将存储器中的一个值复制到寄存器rd中。 Store指令将寄存器rs2中的值复制到存储器中。load/store指令是让寄存器和存储器进行数据交换,虽然不存在运算,但是都会经过完整的数据通路。


    举例说明指令执行过程:
    例如sw rs2, imm(rs1)   
    即为将rs2寄存器中存放的值保存到rs1寄存器值加上立即数imm值得到的相加结果的内存地址的内存单元


    在当前时钟下的PC值建立后,PC值被存入指令存储器和加法单元。加法单元得到PC+4;


    根据当前PC值从指令存储器中(Icache)取出指令机器码,根据机器码中的寄存器编号直接访问寄存器文件,其中指令中立即数字段送给立即数生成单元,指令的机器码送给控制器;


    控制器获得机器码后根据指令编码格式进行译码,产生控制信号,其中PC选择信号PCSel为0,


    立即数编码选择信号ImmSel为S(表明为Store指令),控制立即数生成单元生成S型立即数编码,


    由于sw指令没有写回寄存器的操作,所以写使能端信号RegWEn为0,


    写回选择信号WBSel也为*,表示不影响结果;


    sw不涉及操作数的比较,因此对分支比较器的控制信号BrUn和比较结果信号BrLT、BrEq都无作用;


    B操作数选择信号Bsel为1,选择立即数生成单元输出的立即数值接入ALU的B操作数端口,


    A操作数选择信号Asel为0,选择寄存器文件输出的DataA接入ALU的A操作端口;


    ALU的控制信号ALUSel为add,控制ALU输出加法运算结果,作为数据存储器的访问地址值;


    数据存储器读写控制信号MemRW=write,表示写使能有效;使接入存储器输入数据段的寄存器文件原寄存器2的内容保存到存储器中。


    最后下一时钟上升沿到来时,将更新的PC+4值写入到PC寄存器,同时原寄存器2的内容写入到数据存储器中。




    每日新资讯-RSIC-V——存储器访存指令risc-v单片机中文社区(1)


    2. 存储器屏障指令
    fence指令用于屏蔽"数据"存储器执行的顺序。






    上一篇:RISC-V电子工程师可以考虑一下是否在深圳定居
    下一篇:计算机体系结构——指令的执行和流水线技术
    题主优质好文
    相信自已,未来是自已创造的。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

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




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

    GMT+8, 2021-4-14 12:29 , Processed in 0.513728 second(s), 47 queries .

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