RISC-V架构的演变

news2024/12/29 10:07:48

随着苹果基于ARM的硅和新的RISC-V CPU的推出,对于CPU开发来说,这是一个令人兴奋的时刻,尽管开发人员的旅程目前对后者来说有点坎坷。

我最喜欢的理论是,没有发生是孤独的,而只是重复了以前发生过的事情,也许经常发生过。

马克·吐温认为,生活有重演的倾向。我们可以在苹果Macintosh的CPU架构变化中看到这一点的证据,如图1所示,1994年,最初的CISC(复杂指令集计算机)摩托罗拉68000被RISC(简化指令集计算机)摩托罗拉PowerPC取代。这反过来又在2005年被CISC Intel x86取代,并在2020年推出了基于ARM CPU的Apple Silicon,从而回归了RISC。

在2005年至2020年期间,英特尔x86作为笔记本电脑、台式机、企业服务器和HPC机器的首选CPU的主导地位似乎无懈可击,尽管ARM在移动设备中占据主导地位。此外,在此期间,我们看到了企业服务器和HPC域中竞争的RISC CPU架构的消亡,如Sun SPARC、MIPS和DEC Alpha,这表明CISC也许是CPU架构的未来。

图片
图1-苹果Macintosh CPU过渡时间线。

然而,对于台式机和笔记本电脑来说,随着基于ARM的Apple Silicon M1片上系统(SoC)的推出,苹果在2020年对这一假设提出了挑战。与之前基于英特尔的版本相比,这不仅使基于M1的MacBook Pro的功耗降低了约90%,而且还将运行时性能提高了约75%[2]。此外,基于富士通ARM的超级计算机Fugaku的推出,在2021年11月的Top500排行榜上排名第一[3],进一步加强了x86作为CISC CPU架构的主导地位的挑战。

虽然Fugaku在2022年6月的Top500榜单中被基于x86的Frontier系统取代,但它仍然位居第2位,并表明ARM将成为x86的重要竞争对手,也许会让RISC成为高性能机器的主导CPU架构。RISC CPU架构比CISC架构更易于实现,需要更小的硅面积,并降低功耗。与CISC架构相比,这可以增加CPU时钟频率和模具上更多的内核,从而提高性能。

虽然领先的SPARC、MIPS和Alpha RISC架构已经倒在一边,使ARM成为x86的主要RISC挑战者,但它并不是唯一获得牵引力的RISC架构。来自加州大学伯克利分校的RISC-V是伯克利RISC CPU架构系列的第五个版本,目前正在引起大量关注。人们普遍认为,这种兴趣是由于RISC-V指令集架构(ISA)是开源的,允许其不受约束地使用。然而,其他CPU架构也是开源的,例如SPARC(OpenSPARC [4])。

RISC-V的关键区别在于其ISA是模块化的。目前有五个已批准的基ISA:RVM0(弱内存排序)、RV32I(基32位整数)、RV32E(只有16个寄存器的基32位基)、RV64I(基64位整数)和RV64E(只有16个寄存器的基64位整数)。如图2所示,还定义了一些ISA扩展[5],包括支持单精度和双精度浮点(分别为“F”和“D”),压缩指令(“C”)和矢量指令(“V”),使CPU设计人员能够选择基本ISA和扩展,以提供满足其需求的特定功能。例如,RV32E基础ISA只支持16个寄存器,而不是32个寄存器,通过相应的功率降低,节省了大约25%的核心硅面积[6]。这对于需要非常低功耗的电池供电的嵌入式或边缘设备是有益的。由于这些是单独的扩展,GCC和LLVM/Clang等编译器提供了根据需要选择这些扩展的任意组合的选项。这种模块化方法不仅为硬件制造商提供了更大的灵活性,还允许在不影响现有ISA规范的情况下创建和批准新的扩展。

图片
图2:基础RISC-V ISA和扩展[7]。

 

目前有一些嵌入式和低端RISC-V CPU/SoC可用,如64位Allwinner D1(基于XuanTie C906)和64位四核SiFiveU740。还有大量的软核,从RV32E(例如PicoRV32)到RV64GC(例如XuanTie C910和Andes X45)的变体。

然而,RISC-V ISA扩展的萌芽性质给开发人员带来了一些困难。例如,“V”矢量扩展,通常称为“RVV”,于2021年9月下旬在1.0版本中被冻结。虽然这是一个伟大的里程碑,但它与以前的RVV版本不兼容的事实是不幸的,因为目前唯一可用的支持RVV的硬CPU,C906,使用不兼容的v0.7规范。由于GCC和LLVM / Clang编译器都针对冻结或批准的ISA扩展,在这种情况下是RVV v1.0,开发人员无法使用主线编译器版本针对D1提供的矢量支持,并被迫依赖XuanTie开发的GCC v8.4。不幸的是,这不再从制造商那里公开提供,但可以从爱丁堡大学的DataShare网站下载[8]。当针对C906设备(如Allwinner D1)时,使用XuanTieGCC编译器生成矢量化代码可以获得明显的运行时性能优势,如一些RAJAperf[9]基准内核的图3所示[10]。

图片
图3:矢量化RISC-V与标量代码的相对运行时性能[10]。

利用Allwinner D1矢量化支持的另一种方法是使用RVV v1.0到v0.7回滚工具[11],该工具由Joseph Lee博士开发,作为ExCALIBUR H&ES RISC-V测试台项目的一部分[12]。在这里,主线GCC和LLVM/Clang编译器可用于自动编码,该工具将生成的RVV v1.0汇编语言“.s”文件转换为RVV v0.7“.s”源文件。然后由XuanTieGCC编译器组装,以生成对象“.o”文件/二进制文件,以在基于Allwinner D1的板上执行。

虽然这仍然需要使用XuanTie GCC编译器,但原始源代码是使用最新的主流编译器版本编译的。有关使用RVV回滚工具的更多信息以及有关汇编RISC-V矢量代码的一般信息,请参阅RISC-V测试台网站[13]。

更一般地说,已经提供了RISC-V测试台,以支持那些希望在当前可用的RISC-V硬件上测试其代码的研究人员。目前,测试台在贫民窟集群中拥有24个RISC-V内核,2023年4月和5月将有额外的板,使核心总数达到72个。您可以使用网站上概述的步骤申请访问RISC-V测试台[14]。

当我们考虑20世纪90年代末和21世纪初的原始RISC架构的全盛时期,以及目前基于RISC的ARM和RISC-V CPU架构的兴起时,Mark Twain似乎是对的。

正文完


[1] M.吐温和F。Strothmann,跳跃的青蛙。哈珀,1903年。[在线]。可用:

https://books.google.co.uk/books?id=ld\_3LPm8FKkC

[2]“MacBook Pro(英特尔)与MacBook Pro(M1 Pro/Max)”,Macworld.

https://www.macworld.com/article/668176/macbook-pro-intel-vs-macbook-pr...(4月访问。07,2023)。

[3]“2021年11月|TOP500”。https://www.top500.org/lists/top500/2021/11/(4月访问。07,2023)。

[4]“OpenSPARC资源概述”。https://www.oracle.com/servers/technologies/opensparc-overview.html(4月访问。07,2023)。

[5]“规格-RISC-V国际”。

https://riscv.org/technical/specifications/(4月访问。07,2023)。

[6] F.Embeddev,“RISC-V指令集手册,第一卷:RISC-V用户级ISA”,Five EmbedDev。

https://www.five-embeddev.com//riscv-isa-manual/latest/rv32e.html(4月访问。07,2023)。

[7] R.Quinnell,“使用RISC-V创建自定义处理器”,EE Times Europe,2019年3月29日。

https://www.eetimes.eu/creating-a-custom-processor-with-risc-v/(4月访问。07,2023)。

[8] J.Lee,“支持矢量扩展的RISC-V GNU编译器工具链”,2023年3月,doi:10.7488/ds/3831。

[9] 'LLNL/RAJAPerf'。劳伦斯利弗莫尔国家实验室,2023年3月31日。访问时间:4月。07,2023。[在线]。可用:https://github.com/LLNL/RAJAPerf

[10] J.Lee,“基准更新”,ExCALIBUR H&ES RISC-V测试台,2023年3月29日。http://riscv.epcc.ed.ac.uk/success/benchmarks/(4月访问。07,2023)。

[11] J.李,“RISCVtestbed/rvv-rollback”。RISC-V测试台,2023年3月22日。访问时间:4月。07,2023。[在线]。可用:https://github.com/RISCVtestbed/rvv-rollback

[12] N.布朗,J.Lee和M。Jamieson,“ExCALIBUR H&ES RISC-V测试台”,ExCALIBUR H&ES RISC-V测试台。

http://riscv.epcc.ed.ac.uk/(4月访问。07,2023)。

[13] J.Lee,“编译矢量代码”,ExCALIBUR H&ES RISC-V测试台,2022年11月23日。

http://riscv.epcc.ed.ac.uk/issues/compiling-vector/(4月访问。07,2023)。

[14] N.布朗和J。Lee,“申请访问”,ExCALIBUR H&ES RISC-V测试台,4月。2023年5月5日。http://riscv.epcc.ed.ac.uk/documentation/access/(4月访问。07,2023)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/846741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手写springboot

前言 首先确定springboot在spring基础上主要做了哪些改动&#xff1a;内嵌tomcatspi技术动态加载 一、基本实现 1. 建一个工程目录结构如下&#xff1a; springboot: 源码实现逻辑 user : 业务系统2.springboot工程项目构建 1. pom依赖如下 <dependencies>…

vue基于java的高校就业管理系统的设计和实现f0c2k

相比于传统的高校就业管理方式&#xff0c;智能化的管理方式可以大幅提高学生的就业率&#xff0c;实现了高校就业管理的标准化、制度化、程序化的管理&#xff0c;有效地防止了高校就业的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准确地查询和…

生命科学组织使用 OpenText ETX 随时随地为医疗保健和生命科学人员提供相关信息

生命科学组织使用 OpenText ETX 随时随地为医疗保健和生命科学人员提供相关信息 引领生命科学远程工作的IT新高度 生命科学组织一直承受着改进工作流程、降低成本和比以往更快地交付产品的压力。 使用远程访问和集中式 IT 基础架构&#xff0c;企业可以在加快上市时间方面取得…

opencv基础45-图像金字塔01-高斯金字塔cv2.pyrDown()

什么是图像金字塔&#xff1f; 图像金字塔&#xff08;Image> Pyramid&#xff09;是一种用于多尺度图像处理和分析的技术&#xff0c;它通过构建一系列不同分辨率的图像&#xff0c;从而使得图像可以在不同尺度下进行处理和分析。图像金字塔在计算机视觉、图像处理和计算机…

就地程控站控制柜与斗轮机之间无线通讯

一、应用背景 马钢的前身是成立于1953年的马鞍山铁厂&#xff0c;2019年马钢集团正式成为中国宝武控股子公司。马钢产品以建筑用型线材为主&#xff0c;满足重型工业厂房、轻钢结构、高层建筑、桥梁结构、工业管道等构件的加工需要。目前马钢在岗员工4.8万人&#xff0c;具备了…

三菱PLC与变频器通讯-ModbusRTU协议

Modbus是Modicon公司为其PLC与主机之间的通讯而发明的串行通讯协议。其物理层采用RS232、485等异步串行标准。由于其开放性而被大量的PLC及RTU厂家采用。Modbus通讯方式采用主从方式的查询&#xff0d;相应机制&#xff0c;只有主站发出查询时&#xff0c;从站才能给出响应&…

【快应用】list组件属性的运用指导

【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示&#xff0c;在使用lsit列表组件设置columns进行多列渲染时&#xff0c;此时在里面加入刷新动画时&#xff0c;动画只占了list组件的一列&#xff0c;并没有完全占据一行宽度&…

Node.js新手在哪儿找小项目练手?

前言 可以参考一下下面的nodejs相关的项目&#xff0c;希望对你的学习有所帮助&#xff0c;废话少说&#xff0c;让我们直接进入正题>> 1、 NodeBB Star: 13.3k 一个基于Node.js的现代化社区论坛软件&#xff0c;具有快速、可扩展、易于使用和灵活的特点。它支持多种数…

数字孪生技术:建筑环境的智能化革命

在数字化时代&#xff0c;科技的飞速发展正在深刻影响着建筑行业。数字孪生技术作为数字化转型的重要组成部分&#xff0c;正在为建筑环境带来革命性的变革。数字孪生技术通过将现实世界与虚拟模型实时同步&#xff0c;为建筑规划、施工、运营和维护等各个环节提供了更智能、高…

准备三个月,终拿快手offer!薪资28k*16

昨天有VIP小伙伴给小孟说&#xff1a;拿到了快手的offer。 聊了半个小时&#xff0c;待遇还不错。准备去了&#xff01;28k&#xff0c;16薪。 快手的k3c职级可对标阿里的P7。 前面我说过&#xff1a;能去大厂就去大厂&#xff0c;有机会就去争取&#xff0c;年纪轻轻的&a…

电脑怎么备份文件?学会这4招!

“由于我是个比较粗心的人&#xff0c;平常很容易把一些文件弄不见。因此&#xff0c;我想把电脑中一些比较重要的文件进行备份&#xff0c;有没有朋友知道电脑怎么备份文件呢&#xff1f;求解答&#xff01;” 在使用电脑时&#xff0c;可能经常会由于各种突然原因导致我们的文…

RDMA服务类型(二)

参考IB协议版本V1.4&#xff1a;https://download.csdn.net/download/zz2633105/88148107 参考知乎文章《RDMA基本服务类型》&#xff1a;https://zhuanlan.zhihu.com/p/144099636 可靠服务 何为可靠服务呢&#xff0c;引用IB协议中的原话&#xff08;IB V1.4版本9.7章节&am…

专业服务管理软件推荐:提升效率的强大工具

借助Zoho Projects的多功能专业服务管理平台&#xff0c;将服务交付提升到一个新的水平。 一、提高利润并满足每一位客户 Zoho Projects的多功能专业服务管理系统使您和您的团队能够更好地管理您的所有工作&#xff0c;以提高客户满意度。优化沟通、与同事协作并监控项目的每个…

Kendo UI for jQuery,一个现代的jQuery UI组件!

Kendo UI for jQuery是什么&#xff1f; Kendo UI for jQuery是完整的jQuery UI组件库&#xff0c;可快速构建出色的高性能响应式Web应用程序。Kendo UI for jQuery提供在短时间内构建现代Web应用程序所需要的工具&#xff0c;从多个UI组件中选择&#xff0c;并轻松地将它们组…

亿发江西中小型制造企业信息化建设解决方案,2023数字化转型升级

实体经济在经济中的重要性愈发凸显&#xff0c;江西省作为制造业强省&#xff0c;要实现制造业经济高质量发展&#xff0c;信息技术与制造业的深度汇合是不可或缺的关键路径。在这个制造业转型升级的浪潮中&#xff0c;中小企业成为了江西省制造业转型的焦点。让我们深入探讨一…

C++学习笔记总结练习:正则表达式

正则表达式 目录 regex正则表达式的定义regex_match/search/replace正则表达式的三个操作smatch、sregex_iterator正则表达式的结果对象以及与其配套的迭代器。 参考文献 正则表达式总结 1 正则表达式基础 不考虑子表达式的内容 头文件 #include<regex>库组件 库组件作…

Kubernetes kubectl管理命令使用方法

陈述式资源管理方法&#xff08;通过命令行&#xff09; 1.kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口 2.kubectl 是官方的CLI命令行工具&#xff0c;用于与 apiserver 进行通信&#xff0c;将用户在命令行输入的命令&#xff0c;组织并转化…

开发者如何预防及解决应用内的无效流量问题?

对开发者而言&#xff0c;当APP应用内被发现存在大量的无效流量时&#xff0c;存在被广告平台限流甚至封号的风险。 广告平台的“无效流量”政策是为了保护广告主、媒体、用户免受欺诈和不良广告体验的侵害&#xff0c;开发者如何预防和解决无效流量的问题呢&#xff1f; 一、…

动力节点|Docker教程,入门到高阶即学即用

Docker是当今云计算领域最热门的技术之一&#xff0c;也是IT从业人员的必备技能之一 学习Docker可以让你更好地了解和应用容器化技术&#xff0c;实现软件运环境的快速部署和管理。 如何系统全面掌握Docker&#xff1f; 推荐一套天花板级Docker教程&#xff0c;动力节点的动力哥…

C语言笔试训练【第五天】

文章目录 1、如下程序的功能是&#xff08; &#xff09; 2、对于代码段&#xff0c;下面描述正确的是&#xff08; &#xff09; 3、以下程序运行时&#xff0c;若输入 1abcedf2df<回车> 输出结果是&#xff08; &#xff09; 4、下列条件语句中&#xff0c;功能与其…