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

RISCV指令集分析

[复制链接]

  离线 

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

    [LV.3]

    发表于 2020-10-24 21:20:50 | 显示全部楼层 |阅读模式

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

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

    x
    本帖最后由 皋陶 于 2020-10-24 21:20 编辑

    RISCV指令集分析一、RV32I指令格式
    RV32I一共有6种基本指令格式,如下图所示

    国内芯片技术交流-RISCV指令集分析risc-v单片机中文社区(1)

    其中S-type指令格式和B-type指令格式可以认为是同一种格式,因为两种格式都是用了立即数的12位,只不过S类型用的是0到11位而B类型用的是1到12位。

    同理U指令格式和J指令格式也可以认为是同一种指令格式,U类型用的是立即数的12到31位而J类型用的是1到20位

    二、各格式指令的介绍

    1、I类型指令
    addI rd rs1 immediate

    寄存器x[rd] = x[rs1] + immediate。该立即数只有12位,根据RISCV的规定所有的立即数不足32的都进行符号扩展到32位

    slti rd rs1 immediate

    比较寄存器x[rs1]和立即数imm的值,根据比较结果设置寄存器x[rd]的值

    sltiu rd rs1 immediate

    和slti指令类似,只不过这里比较的立即数为无符号数

    xori rd rs1 immediate

    寄存器x[rd] = x[rs1] ^ sext[imm],sext[imm]中的sext其实就是sign-extend(符号扩展)的缩写表示将该立即数扩展到32位,如果是有符号数则进行符号扩展,若是无符号数则进行无符号扩展

    ori和addi指令的意义类似于xori只不过一个是做或操作一个是做与操作

    slli rd rs1 shamt

    寄存器x[rd] = 寄存器x[rs1]逻辑左移shamt位

    srli rd rs1 shamt

    逻辑右移

    srai rd rs1 shamt

    算术右移

    lw rd offset(rs1)

    offset(rs1)表示的地址是 M[sext[offset] + x[rs1]] 也就是将offset符号扩展到32位然后加上寄存器x[rs1]的值,找到内存中的该地址取得一个字(w)也就是32位,存储到寄存器x[rd]中

    lb,lh,lw,lbu,lhu都是从内存中加载数据到寄存器,其中lbu和lhu中的offset进行的是无符号扩展




    3、R类型指令
    add,sub,sll,slt,sltu,xor,srl,sra,or,and指令和上述的I形指令很多类型,不同的地方就是将立即数换成了寄存器rs2




    4、S类型指令
    sw rs2 , offset(rs1)

    M[sext[offset] + x[rs1]] = 寄存器x[rs2] 将寄存器x[rs2]中的值存储到内存中,内存的寻址方式和I形lw指令一样

    sh,sb指令也类似




    5、B类型指令
    bge rs1 rs2 offset

    如果寄存器x[rs1]的值大于等于寄存器x[rs2]的值,则pc += sext[offset] ,pc的值进行更改也就是进行跳转

    对应的bne,blt,beq,bltu,bgeu指令的含义都类似,不同的就是寄存器的比较方式不同,其中bltu和bgeu的offset扩展是无符号扩展




    6、U形指令
    lui rd imm

    将立即数imm加载到寄存器x[rd]的高20位

    auipc rd imm

    向pc高位加上立即数




    7、J形指令
    jal rd offset

    寄存器x[rd] = pc + 4,然后pc += sext[offset]

    jalr rd rs1 offset(I形指令)

    把 pc 设置为 x[rs1] + sign-extend(offset),把计算出的地址的最低有效位设为 0,并将原 pc+4 的值写入 x[rd]。rd 默认为 x1。








    上一篇:格兰仕在顺德总部宣布明年初将流片AI芯片
    下一篇:单片机的内核及指令集
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

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



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

    GMT+8, 2024-11-6 07:55 , Processed in 0.636805 second(s), 48 queries .

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