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

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

3天内不再提示

RISC-V笔记——基础

RISCV国际人才培养认证中心 2024-11-12 01:08 次阅读

1. 前言

RISC-V旨在支持广泛的定制和专业化。RISC-V的ISA是由一个基本整型ISA和其它对基本ISA的可选扩展组成。每个整型ISA可以使用一个或多个可选的ISA扩展进行扩展。

基本整型ISA精选了最小的一组指令,这些指令足以为编译器、汇编器、链接器和操作系统提供足够的功能,它提供了一组便利的ISA和软件工具链骨架,可以围绕它构建更多定制的处理器ISA。基本整型ISA与早期RISC处理器非常类似,除了没有分支延迟槽(branch delay slot)和可选的变长指令编码(Variable-length instruction encoding)。

2. RISC-V基本整型ISA

虽然RISC-V ISA说起来方便,但RISC-V实际上是一个ISA集合,目前确定的有四个基本ISA。每个基本整型ISA的特征是整型寄存器的宽度、相应的地址空间的大小以及整型寄存器的数量。RV32IRV64I是两个主要的基本整型ISA变体,分别提供32-bit和64-bit地址空间,用术语XLEN来表示以bit为单位的整型寄存器的宽度,它的值为32或64。RV32ERV64E分别是RV32I和RV64I基本ISA的子集变体,它们用于支持小型微控制器,并且具有一半数目的整型寄存器。另外还有一个未确定的基本ISA是RV128I(XLEN=128)。

93fbcaba-a04f-11ef-8084-92fbcf53809c.png

RISC-V之所以分成4个基本整型ISA,而不是做成一个统一的ISA。主要的优势是,每个基本ISA都可以根据自己的需要进行优化,而不需要支持其它基本ISA所需的所有操作。例如,RV64I可以省略只用于处理RV32I中较窄的寄存器的指令和CSR。RV32I可以使用只保留给更宽地址空间变体所需的指令的编码空间。主要缺点是,它使一个基本ISA在另一个基本ISA平台上模拟所需的硬件复杂化,例如,在RV64I上模拟RV32I。

3. RISC-V ISA的可选扩展

任何RISC-V处理器实现都必须支持基本整型ISA (RV32I、RV32E、RV64I、RV64E或RV128I)。此外,一个实现可以支持一个或多个扩展。RISC-V ISA中,标记为“Ratified”的模块,表示此时已被批准;标记为“Frozen”的模块,表示在被批准之前,预计也不会发生重大变化;标记为“Draft”的模块,表示在被批准之前,预计会发生变化。

943c9ebe-a04f-11ef-8084-92fbcf53809c.png

扩展(extension)可以被分类为标准(standard)、定制(custom)和不符合(non-conforming)。为此,我们将每个RISC-V ISA编码空间(以及相关的编码空间,如CSR)划分为三个互不关联的类别:标准(standard)、保留(reserved)和定制(custom)

标准扩展和编码是由RISC-V国际组织定义的。任何扩展不是由RISC-V国际组织定义的都算是非标准的。每个基本ISA及其标准扩展仅使用标准编码,并且在使用这些编码时不得相互冲突。

保留编码目前没有定义,但为将来的标准扩展保留,一旦被使用,它们就称为标准编码。

定制编码永远不会用于标准扩展,而只能用于特定于供应商的非标准扩展。非标准扩展要么是只使用定制编码的定制扩展,要么是使用任何标准或保留编码的不符合扩展。

指令集扩展通常是共享的,但可能根据基本ISA提供略有不同的功能。

上述扩展可以进一步分为两大类:标准(standard)和非标准(non-standard,包括定制和不符合)

标准扩展通常是有用的,并且不与任何其他标准扩展相冲突。目前,RISC-V手册中描述的“MAFDQLCBTPV”扩展要么是完成的,要么是计划中的标准扩展。

非标准扩展可能是高度专门化的,并且可能与其他标准或非标准扩展相冲突。预计随着时间的推移会开发出各种各样的非标准扩展,其中一些最终会被提升为标准扩展。

4. ISA命名规范

RISC-V ISA旨在支持各种指令集扩展的各种实现,有组织的命名方案简化了软件工具和文档,RISC-V ISA扩展命名方案可以简洁地描述硬件实现中的ISA。ISA命名字符串不区分大小写

RISC-V ISA命名组成为:

基本整型ISA名 + 标准扩展名 + 非标准扩展名

4.1 基本整型ISA

RISC-V ISA字符串以RV32I、RV32E、RV64I、RV64E或RV128I开头,表示支持的基本整型ISA的地址空间大小(以bit为单位)。

4.2 标准扩展名

标准ISA扩展由一个单个字母组成的名称。例如:“M”表示整型乘法和除法,“A”表示原子访存指令,“F”表示单精度浮点指令,“D”表示双精度浮点指令。任何RISC-V指令集变体都可以通过将基本整型前缀与包含的扩展名连接起来简洁描述。例如:RV64IMAFD。

一些ISA扩展依赖于其他扩展的存在,例如,“D”依赖于“F”,“F”依赖于“Zicsr”。这些依赖关系可能隐含在ISA名称中。例如,RV32IF等价于RV32IFZicsr, RV32ID等价于RV32IFD和RV32IFDZicsr。

指令集可能随着时间的推移而扩展或改变,需要在扩展名后面加上扩展版本号。版本号分为主版本号和次版本号,用“p”分隔。如果次要版本为“0”,则可以从版本字符串中省略“p0”。主版本号的更改意味着向后兼容性的丧失,而仅小版本号的更改必须向后兼容。例如,“RV64I1p0M1p0A1p0F1p0D1p0”和“RV64I1M1A1F1D1”的含义是一样的。

为了提高可读性并消除歧义,引入下划线“_”可用于分隔ISA扩展,例如:“RV32I2_M2_A2”。

4.3 其他标准扩展名

标准扩展也可以使用一个“Z”来命名,后面跟着一个字母名称和一个可选的版本号。例如,“Zifencei”命名了instruction-fetch fence扩展,且“Zifencei2”与“Zifencei2p0”名称版本相同。

“Z”后面的第一个字母通常表示最密切相关的字母扩展类别(类别有IMAFDQCVH)。例如,对于用于附加浮点指令的“Zfa”扩展,字母“f”表示该扩展与“f”标准扩展相关。如果命名了多个“Z”扩展名,它们应该首先按类别排序,然后按类别中的字母顺序排序——例如,“Zicsr_Zifencei_Zam”。

所有多字母扩展名,包括以“Z”为前缀的扩展名,必须用下划线与其他多字母扩展名分开,例如“RV32IMACZicsr_Zifencei”。

4.4 非标准扩展名

非标准扩展使用单个“X”命名,后跟字母名称和可选的版本号。例如:“Xhwacha”命名了Hwacha vector-fetch ISA扩展;“Xhwacha2”与“Xhwacha2p0”名称2.0版本相同。

非标准扩展必须列在所有标准扩展之后,并且与其它多字母扩展一样,必须用下划线与其他多字母扩展分开。例如:带有非标准扩展名Argle和Bargle的ISA可以命名为“RV64IZifencei_Xargle_Xbargle”。

如果列出了多个非标准扩展,则应按字母顺序排列。

下表列出了一部分标准的扩展名,表还定义了扩展名必须在ISA名称字符串中出现的规范顺序,表中越往上出现在ISA名称字符串中的位置需要越靠前,例如,RV32IMACV是合法的,而RV32IMAVC是非法的,因此C必须在V之前。

9485f92e-a04f-11ef-8084-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5304

    浏览量

    119883
  • ISA
    ISA
    +关注

    关注

    0

    文章

    55

    浏览量

    43709
  • RISC-V
    +关注

    关注

    44

    文章

    2216

    浏览量

    45969
收藏 人收藏

    评论

    相关推荐

    【RT-Thread学习笔记RISC-V汇编基础三大块知识

    【RT-Thread学习笔记RISC-V汇编基础的三大块知识
    的头像 发表于 07-30 11:01 2701次阅读
    【RT-Thread学习<b class='flag-5'>笔记</b>】<b class='flag-5'>RISC-V</b>汇编基础三大块知识

    RISC-V笔记本后,再迎RISC-V平板

    电子发烧友网报道(文/周凯扬)前不久首台RISC-V笔记本ROMA的正式发布给RISC-V社区的硬件开发添了一把火。想不到还没有过多久,我们就迎来了RISC-V平板的落地。Pine64
    的头像 发表于 04-21 03:07 2752次阅读
    继<b class='flag-5'>RISC-V</b><b class='flag-5'>笔记</b>本后,再迎<b class='flag-5'>RISC-V</b>平板

    什么是RISC-V

    siFive搞RISC-V 赛昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不问有什么用,RISC-V目前的能力来说,工
    发表于 02-02 10:41

    什么是RISC-VRISC-V指令具有哪些特点应用?

    什么是RISC-VRISC-V指令具有哪些特点应用?自己怎么才能设计出设计一套指令集?
    发表于 10-14 09:05

    求大佬分享RISC-V架构学习笔记

    求大佬分享RISC-V架构学习笔记
    发表于 02-16 07:01

    RISC-V 发展

    RISC-V 发展2015年成立了RISC-V基金会,这是个非营利性组织,主要为了维护和发展RISC-V。目前RISC-V的IP供应商大部分是国内的厂商,例如sifive、阿里平头哥、
    发表于 04-14 10:18

    首批RISC-V笔记本电脑ROMA成功交付,全球首次实现RISC-V技术在笔记本电脑领域的商业落地!

    近日,由深度数智推出的第一批RISC-V笔记本电脑ROMA成功交付客户,全球首次实现RISC-V技术在笔记本电脑领域的商业落地! 本次交付的ROMA
    发表于 08-21 13:41

    RISC-V规范的演进 RISC-V何时爆发?

    RISC-V的关注度越来越高,开源的理念也正在被越来越多的开发者和公司接受。对于尚不成熟的RISC-V而言,无论是规范和技术的演进还是生态的建设,还有人才和专利都还有不小挑战。2021年RISC-V
    的头像 发表于 02-11 10:10 3124次阅读

    首台RISC-V笔记本为何如此神秘?

    去年我们已经报道了RISC-V笔记本的新闻,中国科学院软件研究所的PLCT实验室和Tarsier团队计划在2022年底之前打造2000台RISC-V笔记本。虽然该项目目前好像没有更多
    的头像 发表于 07-07 10:01 4146次阅读
    首台<b class='flag-5'>RISC-V</b><b class='flag-5'>笔记</b>本为何如此神秘?

    RISC-V学习笔记【1】RISC-V概述

    国产处理器芯片起步较晚,从2013年至今,集成电路每年的进口额均超过了 2000 亿美元。RISC-V和AI(人工智能)芯片是我国最有希望突破的领域之一。RISC-V使用的领域还是对于生态依赖比较
    发表于 11-24 09:28 2574次阅读

    openEuler加入RISC-V Landscape

    北京时间2023年3月8日,openEuler加入RISC-V Landscape。 此次加入RISC-V Landscape,意味着openEuler在对RISC-V架构的生态适配
    的头像 发表于 03-13 18:40 1291次阅读

    RISC-VRISC-V AI的未来(特邀讲座)

    主题演讲:RISC-VRISC-V AI的未来(特邀讲座)ppt分享
    发表于 07-14 17:15 15次下载

    RISC-V设计支持工具,支持RISC-V技术的基础

    RISC-V设计支持工具,支持RISC-V技术的基础 ppt分享
    发表于 07-14 17:15 12次下载

    RISC-V Summit China 2024 青稞RISC-V+接口PHY,赋能RISC-V高效落地

    沁恒在历届峰会上分享RISC-V在MCU领域的创新成果,和大家共同见证了本土RISC-V产业的成长。早在第一届RISC-V中国峰会上,沁恒就公开了青稞RISC-V系列量产芯片的关键技术
    的头像 发表于 08-30 18:18 1339次阅读
    <b class='flag-5'>RISC-V</b> Summit China 2024  青稞<b class='flag-5'>RISC-V</b>+接口PHY,赋能<b class='flag-5'>RISC-V</b>高效落地

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未来 !

    加入RISC-VAdvocate行列!我们正在寻找来自世界各地的RISC-V爱好者,通过全球推广和参与,成为支持RISC-V进步的关键参与者。作为一名RISC-VAdvocate,您将
    的头像 发表于 09-10 08:08 292次阅读
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未来 !