0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

华仔的编程随笔 来源: 华仔的编程随笔 作者: 华仔的编程随笔 2023-05-24 09:04 次阅读

过去的错误

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

    文章

    43

    浏览量

    4571
  • RISC-V
    +关注

    关注

    41

    文章

    1883

    浏览量

    45028
收藏 人收藏

    评论

    相关推荐

    有没有RISC-V指令集文档分享一下?

    有没有RISC-V指令集文档分享一下?了解一下他的汇编指令
    发表于 03-30 11:48

    RISC-V 基础学习:RISC-V 基础介绍

    , 支持整数指令、乘除法指令、原子指令和压缩指令。 9.3 指令集模块 指令集模块是一款CPU
    发表于 03-12 10:25

    RISC-V开放架构设计之道|阅读体验】+ 阅读深体验

    本人没有芯片设计,或者指令集方面较深的基础知识,不过认真看这本书也令我学到了不少。 书中一开始便提到RISC-V的目标是称为一款通用的指令集架构:需要适合设计各种规模的处理器,能兼容各
    发表于 03-05 22:01

    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开放架构设计之道|阅读体验】理解指令设计思想的好指导

    指令,通常讲授指令一条一条地讲过去,往往让人觉得枯燥,特别是现在用汇编语言开发程序的场合很少。该书没有陷入俗套,而是从体系设计的角度对指令进行了全面的分类和介绍。对于每类
    发表于 01-28 16:58

    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

    名单公布!【书籍评测活动NO.26】图灵奖得主亲自撰写!RISC-V开放架构设计之道

    )。 阐释指令集设计原则后,我们展示了 RISC-V 架构师如何从 过去 40 年的指令集吸取经验教训
    发表于 12-13 17:25

    备胎的RISC-V在努力,又将走向何方

    基础的指令集架构增添这种指令的标准版,开发者便不需要各自添补指令了。 目前,在RISC-V基金
    发表于 09-30 12:28

    RISC-V强势崛起为芯片架构第三极

    RISC-V产业链不断取得新突破。作为×86、ARM之外的芯片架构第三极,RISC-V正在全球尤其是在中国强势崛起。 RISC-V是一个开发、免费的
    发表于 08-30 13:53

    RISC-V产业论坛召开,专利联盟正式成立

    。 上海市经济信息化委副主任汤文侃表示,指令集是芯片设计的基础,也是集成电路产业发展的基石。凭借开放、精简、灵活的优秀性能,RISC-V有望成为万物互联时代的核心处理器架构之一。上海是最早支持
    发表于 08-30 10:40

    两大架构RISC-V 和 ARM 的各种关系

    一、RISC-V 和 ARM 的相似之处 RISC-V 和 ARM 基本上都是 RISC(精简指令集计算机)。RISC-V 和 ARM 都使
    发表于 06-21 20:31

    谈一谈RISC-V架构的优势和特点

    RISC-V是基于精简指令集计算(RISC)原理建立的开放指令集架构,是一种与X86,ARM并列的一种计算
    发表于 05-14 09:05