过去的错误 |
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》中文版
审核编辑黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
架构师
+关注
关注
0文章
47浏览量
4617 -
RISC-V
+关注
关注
44文章
2228浏览量
46026
发布评论请先 登录
相关推荐
RISC-V指令集的特点总结
开源
定义:RISC-V 是完全开源的指令集架构(ISA),意味着任何人都可以查看、使用、修改以及分发其设计,而无需支付版权费用。
优势:这种开源特性促进了全球性的创新和合作。
社区化
定义
发表于 08-30 22:05
RISC-V基础整数指令集
RISC-V的出现比过去的ISA晚了一 个世纪,这使它的设计者得以实践Santayana的建议 ,即借用之前指令集中好的设计,但不重复它们不好的瑕疵,包括RISC-I
发表于 07-27 22:25
【RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集
【RISC-V开放架构设计之道|阅读体验】汇编语言和扩展指令集
汇编语言
将C语言翻译成可执行的机器语言的重要步骤包括编译过程,汇编过程,链接过程。
函数调用约定过程分为六个阶段:
1)将参数存放
发表于 02-03 13:29
【RISC-V开放架构设计之道|阅读体验】RISC-V基础整数指令集
第2章 RV32I:RISC-V基础整数指令集
本章重点讲解构成RISC-V基础整数指令集的基本指令和指
发表于 01-31 21:10
【RISC-V开放架构设计之道|阅读体验】RV64指令集设计的思考以及与流水线设计的逻辑
RISC-V开放架构设计之道, 是一本全面介绍RISC-V指令集架构设计、优化和实现的书籍。 书中详细介绍了
发表于 01-29 10:09
【RISC-V开放架构设计之道|阅读体验】RISC-V基础整数指令集RV32I
。
图1:RV32I指令集
在讲RISC-V各个阶段,横向比较ARM架构,体现出RISC-V的优越性。
●RV32I寄存器
RISC-V
发表于 01-28 11:41
【RISC-V开放架构设计之道|阅读体验】 RISC-V设计必备之案头小册
中出现的RISC-V拓展。
这本书的开篇讲的是,为什么我们需要RISC-V指令集?
从过去的ISA的特点进行引入,先以目前主流的x86指令集
发表于 01-22 16:24
MIPS聘请SiFive前高管,推动RISC-V指令集架构IP开发
在SIFive任职期间,Brad Burgess不仅拓展了敢达三十多年的半导体行业经验,还成功开发了许多适用各类指令集的处理器,如x86、68k、PowerPC、Arm以及如今备受瞩目的RISC-V。此次成为MIPS首席架构师,
评论