RISC-V架构师从过去指令集设计的错误中吸取的教训

过去的错误
rv32i吸取的经验教训
arm-32 (1986) mips-32 (1986) x86-32(1978)
成本 必须支持整数乘除法 必须支持整数乘除法 8 位以及 16 位操作、必须支持整数乘除法 无 8 位、16 位操作、可选的整数乘除法支持(rv32m)
简洁性 无零寄存器、条件指令执行、复杂的寻址模式、栈操作指令(push/pop)、算术/逻辑指令中存在的移位 立即数支持零扩展及符号扩展、一些算术指令会造成溢出异常 无零寄存器、复杂的过程调用指令(enter/leave)栈指令(push/pop)、复杂寻址模式、循环指令 寄存器x0专门用于存放常数0、立即数只进行符号扩展、一种数据寻址模式、没有条件执行、没有复杂的函数调用指令以及栈指令、算术指令不抛异常、使用单独的移位指令来处理移位操作
性能 分支指令使用条件码、在不同格式的指令中,源和目的寄存器的位置不同、加载多个计算得到的立即数、pc是一个通用寄存器 在不同格式的指令中,源和目的寄存器的位置不同 分支指令使用条件码、每个指令中最多只能使用两个寄存器 使用同一条指令实现比较及跳转(不使用条件码)、每条指令三个寄存器、不能一次load多个数据、不同指令格式中,泊及目的寄存器字段位置固定、立即数是常数(不是由计算得出的)、pc不是通用寄存器
架构和具体实现 将pc像普通寄存器一样读写,这样暴露了流水线长度 分支指令延迟槽load指令延迟槽、乘除法使用单独的hi、lo寄存器 寄存器不是通用的(ax,cx,dx,di,si有特殊用途) 分支指令没有延迟槽、load指令无延迟槽、通用寄存器
增长空间 有限的指令码空间 有限的指令码空间   大量可用的指令码空间
程序大小 仅有32bit指令(thumb-2是作为一个独立的isa) 仅32bit指令(micromips是作为一个独立的isa) 指令长度可用是不同字节,但这是一个很不好的选择。 32位指令+16位rv32c扩展
易于编程/编译/链接 仅15个寄存器内存数据必须对齐、不规则的数据寻址模式、不一致的性能计数器 内存数据必须对齐、不规则的数据寻址模式、不一致的性能计数器 仅15个寄存器中内存数据必须对齐、不规则的数据寻址模式、不一致的性能计数器 31个寄存器、数据可用不对齐、pc相对的数据寻址模式、对称的数据寻址模式、定义在加构中的性能计数器
risc-v架构师从过去指令集设计的错误中吸取的教训。通常的教训是避免过去的isa“优化”。经验和教训按照第一章中提出的七个isa指标进行分类。在成本,简单性和性能下列出的许多指令集特性可以互换,因为这只是设计的偏好问题,但不管它们出现在哪里,它们都很重要。
摘自《risc-v-reader》中文版


智能电表和普通电表的区别 智能电表的五个分类
传感器是未来改变人类十大颠覆技术之首
路由器是干什么用的 路由器怎样桥接另一个路由器
物联网降低维护成本的策略有哪些
德州仪器指纹识别设计注意事项
RISC-V架构师从过去指令集设计的错误中吸取的教训
自动控制系统 伺服系统工作原理
PPM-WS壁挂式温湿度变送器的技术参数及特点
日本的LNG接收站数量居全球第一,年接收能力达2.11亿吨
中国移动发布了2020年至2021年低端路由器和低端交换机采购招标公告
轮辐式传感器原理_轮辐式传感器结构设计原则
示波器波形捕获模式的特点及应用场合
东芝视频桥接芯片助力车载IVI系统发展
大功率飞秒激光器高效助推BC电池大面积图形化低成本量产
曝摩托罗拉新机最高刷新率为105Hz
SPI可以像I2C挂多个设备吗?
nova6可以升级鸿蒙吗 华为鸿蒙第二波公测开启
金立倒闭原因或在董事长刘立荣身上 富士康再回应缩减成本和裁员
Atmel联手华硕,XSense技术拳拳助力CES 2013
爱特梅尔发布基于Cortex-M4的快闪微控制器SAM4S16