打印
[RISC-V MCU 创新应用比赛]

科普RISC-V生态架构(认识RISC-V)

[复制链接]
5554|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RISC-V 生态架构浅析前言RISC-V最近越来越多的出现在科技新闻中,大量的公司加入到RISC-V研究和生产中。在越来越多的RISC-V研究热下,毋容置疑的是RISC-V的时代即将到来。让我们在这浪潮翻滚起来前,一起掀开RISC-V的神秘面纱,提前了解一下RISC-V究竟是什么。
什么是RISC-VRISC-V应该泛指RISC-V指令集及其衍生出来的一系列生态。而RISC-V指令集,类似于INTEL的X86 ,ARM指令集,是一个被CPU读取到内存后,指导计算机运行的指令集合。实现了该指令集的CPU,能执行指令集中规定的所有基本指令,使按该套指令集编译的程序能够无障碍运行,且具有同系列CPU可移植和兼容性。
指令集有点类似于HTML规范,只是定义了基本的语法和规则。各个浏览器厂商依据该规范,自行投入研发能力实现出不同的产品,如下图所示。同一套HTML5规范,各个浏览器开发商实现的质量各有千秋,很显然让前端开发崩溃的IE已经如图所示自杀了,微软Edge已经转向了Chrome的怀抱。

芯片领域,应用范围最广的指令集都是收费的(X86基本不对外授权,ARM费用相当不菲),你能想象HTML5标记语言需要花几百万上千万美元授权才能开发浏览器吗?这真的是难以想象!所以芯片设计领域迫切需要一个行业认可的,高品质的指令集,它应该是OPEN的,免费的,一个世界范围可以参考使用的芯片指令标准。
RISC-V指令集正式因为伯克利大学想开发一款CPU时,要么是一些老旧的架构,要么收费昂贵,芯片设计领域亟需一个开源的指令集。神说要有光,就有了光,神说要有空气,就有了空气,神说要有好的开源指令集,于是就有了RISC-V,没有好的轮子就造个轮子。RISC-V基金会就如W3C,RISC-V指令集就如HTML5,HTML5掀起了web领域的一场革命,RISC-V也将带来芯片领域的一场革命。

为什么不自己设计一套指令集?目前应用领域最流行的两大指令集是X86和ARM,一个主宰服务器和PC,另一个主宰移动领域。X86被Intel,&AMD两家美国公司垄断; ARM指令集以前是英国的,现在已经被日本软银收购。而特朗普贸易战多动症发作的时候,这些指令集都被限制对华为授权或者销售。因为他们很大一部分都在美国霸权主义的控制范围之内。

很多人会问,RISC-V也是美国人发起的,话语权依然在美国人手里面。为啥中国不自己搞一套指令集,即便从RISC-V借鉴一下,搞个CRISC-6也可以。据说RISC-V第一版本指令集伯克利大学4个人从设计到发布只用了3个月。
这个就和HTML5标准是类似的,全球的浏览器应该基于一套免费的,开放的W3C制定的标准,而不是另起炉灶各自开发。否则你将不能得到大量开源社区的支持,如Linux社区,JDK相关支持,你将在全球首肯的生态圈外,最终要死不活。就像IE的自定义HTML标记,除非有个微软这样的好爸爸才有人基于你进行开发。然而即使IE有个好爸爸,最后还是挂了,因为对W3C的兼容性太差,让开发者痛苦的技术一定会被抛弃!故而处理器架构必须是全球范围的一个通用架构,必须获得生态支持,指令集不难,难得是成为事实标准并被全球采纳,被顶级工程师和开源社区主动提供适配支持。
世界需要技术标准,从IEEE,W3C到5G。技术标准可以让世界沟通更加流畅,节省更多的开发成本!
BSD协议,在RISC-V指令集基于这一开源领域非常自由的开源协议发布时,我们暂且相信这一指令集如该协议声明的那样开放。在RISC-V发展进程中,去拥抱它,发展它,合作构建一套自主可控且全球公认的指令集生态。如果有一天被限制了,基于BSD协议去兼容它。毕竟按常理国外一开源,国内就自主这个套路还是可以继续使用的。何况RISC-V本身只是一套指令集标准和规范。
缘起该项目2010年始于加州大学柏克莱分校,但许多贡献者是该大学以外的志愿者和行业工作者。

使用特权

评论回复
沙发
probedog|  楼主 | 2022-10-9 15:35 | 只看该作者
在2010年,伯克利研究团队要设计一款CPU,然而,英特尔对X86的授权卡的很严,ARM的指令集授权很贵,MIPS、SPARC、Open Power也都需要各自的公司授权。在选择很有限的情况下,伯克利的研究团队决定从零开始设计一套全新的指令集。而被很多媒体大肆宣扬也让人振奋的是,伯克利的研究团队4名成员仅用了3个月就完成了RISC-V的指令集开发,并公开发布了第一版指令集。正如行业内常说的,设计一套指令集并非黑科技,用这套指令集去实现CPU 才是真正具有含金量的工作。该指令集的第一个版本只包含了不到50条指令,可以用于实现一个具备定点运算和特权模式等基本功能的处理器。目前,伯克利研究团队已经完成了基于RISC-V指令集的顺序执行的64位处理器核心(代号为Rocket),并前后基于45nm与28nm工艺进行了12次流片。Rocket芯片主频1GHz,与ARM Cortex-A5相比,实测性能较之高10%,面积效率高49%,单位频率动态功耗仅为Cortex-A5的43%。在嵌入式领域,Rocket已经可以和ARM争市场了。
RISC-V指令集具有性能优越,彻底免费开放两大特征。RSIC-V的设计目标是能够满足从微控制器到超级计算机等各种复杂程度的处理器需求,支持从FPGA、ASIC乃至未来器件等多种实现方式,同时能够高效地实现各种微结构,支持大量定制与加速功能,并与现有软件及编程语言可良好适配。
PS:伯克利大学世界大学排名世界第4、世界大学学术排名世界第5。
发展RISC-V产业生态正进入快速发展期。加州大学伯克利分校在2015年成立非盈利组织RISC-V基金会,该基金会旨在聚合全球创新力量共同构建开放、合作的软硬件社区,打造RISC-V生态系统。三年多来,谷歌、高通、IBM、英伟达、NXP、西部数据、Microsemi、中科院计算所、麻省理工学院、华盛顿大学、英国宇航系统公司等200多个企业和研究机构先后加入了RISC-V基金会。

RISC-V大事件
  • 全球第一大硬盘产商西部数据(Western Digital)将以每年10亿到20亿颗的预期来推动RISC-V,逐步完成全线产品迁移到RISC-V定制架构;
  • microSemi提供基于Risc-V+Linux+CNN加速器的AI解决方案;
  • 印度***则大力资助基于RISC-V的处理器项目,使RISC-V成为了印度的事实国家指令集;
  • RISC-V基金会的会员已经增加到150多个,大学、科研院所和企业大量使用或评估基于RISC-V的应用,参与度之高,覆盖面之广,盛况空前;指令集架构的生态链正在成长和完善,工具链、RTOS/Linux操作系统的移植等工作都取得关键突破;
  • 2018年11月,RISC-V基金会宣布了与Linux基金会的联合合作。作为合作的一部分,Linux基金会还将为RISC-V生态系统提供大量资源,如培训项目、基础设施工具、社区推广、市场营销和法律专业知识;
  • 2019年6月,Debian 移植 RISC-V 64 架构已完成 90%,LLVM 成阻碍,不过开发者预计今年将会完成对 LLVM for RISC-V 64 的支持。

使用特权

评论回复
板凳
probedog|  楼主 | 2022-10-9 15:36 | 只看该作者
RISC-V 基金会在RISC-V诞生5年后,2015年RISC-V基金会成立。有超过275个成员致力于建立第一个开放的,合作的软硬件创新社区。RISC-V ISA诞生于学术界和研究界(加州伯克利分校EECS系的计算机科学部),为未来50年的计算相关的设计与创新铺平了道路。
RISC-V基金会是一个由其成员控制的非营利性公司,指导RISC-V未来的发展,并推动RISC-V ISA的被更大范围的采用。RISC-V基金会的成员可以访问和参与RISC-V ISA规范和相关的HW/SW生态系统的开发。该基金会有一个董事会包括七个代表,分别来自Bluespec公司、谷歌、Microsemi、Nvidia、NXP、加州伯克利大学、和西部数据。

​ 每年RISC-V基金会都会举办全球活动,将不断增长的生态系统整合在一起,讨论当前和未来的RISC-V项目和实现,以及共同推动未来的指令集体系结构(ISA)的演进。活动会议的特色是主要的技术公司和研究机构讨论:RISC-V体系结构、商业和开源实施、软件和硅半导体、向量和安全、应用程序和加速器、模拟基础设施等。访问事件处理页面了解更多信息。
RISC-V 指令特点1 设计哲学-简单就是美大道至简,在IC设计的实际工作中,最简洁的设计往往是最可靠的,在大多数的项目实践中一次次的得到检验。
IC设计的工作性质非常特殊,其最终的产出是芯片,而一款芯片的设计和制造周期均很长,无法像软件代码那样轻易的升级和打补丁,每一次芯片的改版到交付都需要几个月的周期。不仅如此,芯片的一次制造成本费用高昂,从几十万美金到百千万美金不等。这些特性都决定了IC设计的试错成本极为高昂,因此能够有效的降低错误的发生就显得非常的重要。
1.1 无病一身轻——架构的篇幅后发优势,RISC-V设计汲取X86和arm架构中的经验,前人踩过的坑不用再犯,同时无需向下兼容老旧的设计和已经过时的指令。想想去看一本架构文档,里面一大半的篇幅都在讲过时的指令和设计,是不是感觉宝贵的时间都被浪费了。
在处理器领域,目前主流的架构为x86与ARM架构。经过几十年的发展,现代的x86与ARM架构的架构文档长达几百数千页。打印出来能有半个桌子高,可真是“著作等身”。之所以现代x86与ARM架构的文档长达数千页,且版本众多,一个主要的原因是因为其架构的发展的过程也伴随了现代处理器架构技术的不断发展成熟。并且作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义,或者在定义新的架构部分时为了能够将就已经存在的技术部分而显得非常的别扭。久而久之就变得极为冗长。
而现在才推出的RISC-V架构,则具备了后发优势,由于计算机体系结构经过多年的发展已经成为比较成熟的技术,多年来在不断成熟的过程中暴露的问题都已经被研究透彻,因此新的RISC-V架构能够加以规避,并且没有背负向后兼容的历史包袱,可以说是无病一身轻。
目前的“RISC-V架构文档”分为“指令集文档”(riscv-spec-v2.2.pdf)和“特权架构文档”(riscv-privileged-v1.10.pdf)。“指令集文档”的篇幅为145页,而“特权架构文档”的篇幅也仅为91页。熟悉体系结构的工程师仅需一至两天便可将其通读,虽然“RISC-V的架构文档”还在不断地丰富,但是相比“x86的架构文档”与“ARM的架构文档”,RISC-V的篇幅可以说是极其短小精悍。
1.2 能屈能伸——模块化的指令集RISC-V架构相比其他成熟的商业架构的最大一个不同还在于它是一个模块化的架构。因此,RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用。
这种模块化是x86与ARM架构所不具备的。以ARM的架构为例,ARM的架构分为A、R和M三个系列,分别针对于Application(应用操作系统)、Real-Time(实时)和Embedded(嵌入式)三个领域,彼此之间并不兼容。
但是模块化的RISC-V架构能够使得用户能够灵活选择不同的模块组合,以满足不同的应用场景,可以说是“老少咸宜”。譬如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。而他们共同的部分则可以相互兼容。
1.3 浓缩的都是精华——指令的数量短小精悍的架构以及模块化的哲学,使得RISC-V架构的指令数目非常的简洁。基本的RISC-V指令数目仅有40多条,加上其他的模块化扩展指令总共几十条指令。
2. RISC-V指令集简介2.1 模块化的指令子集RISC-V的指令集使用模块化的方式进行组织,每一个模块使用一个英文字母来表示。RISC-V最基本也是唯一强制要求实现的指令集部分是由I字母表示的基本整数指令子集,使用该整数指令子集,便能够实现完整的软件编译器。其他的指令子集部分均为可选的模块,具有代表性的模块包括M/A/F/D/C,如表1所示。
2.2 规整的指令编码在流水线中能够尽早尽快的读取通用寄存器组,往往是处理器流水线设计的期望之一,这样可以提高处理器性能和优化时序。这个看似简单的道理在很多现存的商用risc架构中都难以实现,因为经过多年反复修改不断添加新指令后,其指令编码中的寄存器索引位置变得非常的凌乱,给译码器造成了负担。
得益于后发优势和总结了多年来处理器发展的教训,RISC-V的指令集编码非常的规整,指令所需的通用寄存器的索引(Index)都被放在固定的位置,如图2所示。因此指令译码器(Instruction Decoder)可以非常便捷的译码出寄存器索引然后读取通用寄存器组(Register File,Regfile)。
2.3 优雅的压缩指令子集基本的RISC-V基本整数指令子集(字母I表示 )规定的指令长度均为等长的32位,这种等长指令定义使得仅支持整数指令子集的基本RISC-V CPU非常容易设计。但是等长的32位编码指令也会造成代码体积(Code Size)相对较大的问题。
为了满足某些对于代码体积要求较高的场景(譬如嵌入式领域),RISC-V定义了一种可选的压缩(Compressed)指令子集,由字母C表示,也可以由RVC表示。RISC-V具有后发优势,从一开始便规划了压缩指令,预留了足够的编码空间,16位长指令与普通的32位长指令可以无缝自由地交织在一起,处理器也没有定义额外的状态。
2.4 特权模式RISC-V架构定义了三种工作模式,又称特权模式(Privileged Mode):
  • Machine Mode:机器模式,简称M Mode。
  • Supervisor Mode:监督模式,简称S Mode。
  • User Mode:用户模式,简称U Mode。
RISC-V架构定义M Mode为必选模式,另外两种为可选模式。通过不同的模式组合可以实现不同的系统。

使用特权

评论回复
地板
probedog|  楼主 | 2022-10-9 15:38 | 只看该作者
2.5 自定制指令扩展除了上述阐述的模块化指令子集的可扩展、可选择,RISC-V架构还有一个非常重要的特性,那就是支持第三方的扩展。用户可以扩展自己的指令子集,RISC-V预留了大量的指令编码空间用于用户的自定义扩展,同时,还定义了四条Custom指令可供用户直接使用,每条Custom指令都有几个比特位的子编码空间预留,因此,用户可以直接使用四条Custom指令扩展出几十条自定义的指令。
2.6 其它特点可配置的通用寄存器组;
简洁的存储器访问指令;
高效的分支跳转指令;
简洁的子程序调用;
无条件码执行;
无分支延迟槽;
简洁的运算指令;
3. 总结与比较
SIFIVE公司及开源SIFIVE公司是RISC-V指令集的行业先驱。2015年,伯克利研究团队又往前推进了一步,成立了SiFive初创公司,加速RISC-V的商业化进程。SiFive公司的定位和基于Linux开源社区的RedHat公司、基于Spark开源社区的Databricks公司一样,为用户提供高性能的处理器IP核以及集成了外围部件IP的SoC芯片。
SIFIVE目前的产品类似于浏览器领域的开源产品chromium,当然区别在于chromuim相对开放,而SIFIVE在商业用途还是需要相关专利授权才可使用。目前已推出32位E2(低端)、E3(中端)、E7(高端)系列,和64位S2、S5、S7系列, 64位Linux兼容版U2,U7处理器。并着手于简化芯片设计领域的技术鸿沟,提供云端的模块化设计和验证程序。
SIFIVE目前也是RISC-V领域产品系列最全,技术相对领先的公司。其它芯片设计公司或多或少与其有合作和技术参考。2018年SIFIVE推出了全球第一款运行 Linux的HIFIVE开发板,核心芯片为 1.5GHz U540 SoC,采用台积电 28nm HPC 工艺制造的64位处理器,配备 8GB ddr4(ECC)、一个千兆以太网(GbE)端口、一个 microsd 插槽、FMC连接器

SIFIVE中国:基于2019年5月,美国***限制ARM公司向华为提供新的技术授权,同时也限制SIFIVE向华为提供芯片IP授权。SIFIVE在中国成立完全独立的子公司,SIFIVE中国完全独立运营,而非SIFIVE的子公司,以此来规避政治风波造成的技术性中断。
美国商务部前助理部长Kevin Wolf说,已公开发表、供任何人取用的科技,不被美国“出口管理条例”监管,也不受实体清单限制。RISC-V属于公开类别,是华为的潜在芯片替代方案。
SiFive的CEO Naveed Sherwani指出,“因为我们一直认为中国有权利需要一个非常独立的半导体行业。中国行业需要这样独立的企业,所以我们非常赞同这样的理念。如果您要在这个地方帮助中国,首先要是中国的企业”。当然SIFIVE的最终目的还是促进RISC-V生态环境的发展和壮大,最终成为比肩甚至超越X86和ARM的新一代计算指令集。
国内发展现状政策扶持国家大力推广,上海成为国内第一个将RISC-V列入***扶持对象的城市,并发布了《上海市经济信息化委关于开展2018年度第二批上海市软件和集成电路产业发展专项资金项目申报工作的通知》。对RISC-V相关芯片设计企业提供政策资金帮助,鼓励基于RISC-V自主处理器的研发及产业化。

使用特权

评论回复
5
渔夫的烟斗| | 2022-10-10 19:54 | 只看该作者
对于开发工程师会有什么不一样?

使用特权

评论回复
6
jcky001| | 2022-10-13 10:55 | 只看该作者
讲解很全面,值得一看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

358

主题

1919

帖子

3

粉丝