📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
什么是处理器架构?
处理器架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。
目前市面上的CPU分类主要分有两大阵营:
1、一个是Intel、AMD为首的复杂指令集CPU;
2、另一个是以IBM、ARM为首的精简指令集CPU;
两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构 。
32位整数指令集-RV32I
六种指令类型
R型:寄存器类型指令,add/sub/xor/or/and/sll/srl/sra/slt/sltu
S型:存储store,sb/sh/sw
B型:分支Branch,beq/bne/blt/bge/bltu/bgeu
U型:无条件跳转,lui/auipc
J型:跳转Jump,jal/jalr
I型:立即数,addi/xori/ori/andi/slli/srli/srai/slti/sltiu
指令格式:将有下划线的字母从左到右连接起来,即可组成完整的 RV32I指令集。
opcode:指令操作码
rs:源寄存器
rd:目的寄存器
imm:立即数
funct:功能
特征:架构师们吸取了以往架构(X86和ARM)的经验教训,设计了RV32I,具备了如下的特征:
32 位字节可寻址的地址空间
所有指令均为 32 位长
31 个寄存器,全部 32 位宽,寄存器 0 硬连线为零
所有操作都在寄存器之间(没有寄存器到内存的操作)
加载/存储字加上有符号和无符号加载/存储字节和半字
所有算术,逻辑和移位指令都有立即数版本的指令
立即数总是符号扩展
仅提供一种数据寻址模式(寄存器+立即数)和 PC 相对分支
无乘法或除法指令
一个指令,用于将大立即数加载到寄存器的高位,这样加载 32 位常量到寄存器只
需要两条指令
运算操作
算术运算
逻辑运算
移位运算
内存访问与写入
比较指令
参考
https://zhuanlan.zhihu.com/p/148807034