首页 > 其他分享 >RISC-V架构的演变

RISC-V架构的演变

时间:2023-08-08 14:23:41浏览次数:37  
标签:架构 07 演变 RISC 测试台 2023 CPU

随着苹果基于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)。

 

标签:架构,07,演变,RISC,测试台,2023,CPU
From: https://www.cnblogs.com/lsxd/p/17614038.html

相关文章

  • Hexagon之SmartPlant Foundation基础架构学习
    1SmartPlantFoundation简介SmartPlantFoundation是SmartPlantEnterprise解决方案的信息集成平台,是专门针对石油、化工行业的解决方案(SDx是通用形的),实现工厂全生命周期的数字化资料,包括设计、采购、收购、运营和维护。SmartPlantFoundation使用位号管理让用户基于已有的架构......
  • 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)
    什么是OpenTelemetry?OpenTelemetry是一个开源的可观测性框架,由云原生基金会(CNCF)托管。它是OpenCensus和OpenTracing项目的合并。旨在为所有类型的可观测信号(如跟踪、指标和日志)提供单一标准。https://opentelemetry.iohttps://www.cncf.iohttps://opencensus.io......
  • 谷歌Linux内核自动测试平台架构介绍-用自动测试测试难以测试的问题
    1摘要内核和硬件等低级系统已被证明极难进行有效测试,因此,许多内核测试都是以手动为主方式进行的。现有的大多数测试框架都是为测试与底层平台隔离的高级软件而设计的,而底层平台被假定是稳定可靠的。测试底层平台本身需要一套全新的假设,这些假设必须从根本上反映在框架的设计中。......
  • Android 平台架构
    放一张官网的图各层级描述参考官网:https://developer.android.google.cn/guide/platform?hl=zh-cnHAL层出现的原因:......
  • 系统架构设计师笔记第47期:SOA设计标准要求(1)
    SOA文档标准化SOA(Service-OrientedArchitecture)文档标准化是指在设计和实施SOA架构时,采用一致的标准和规范来描述和定义相关的文档和接口。在SOA中,文档标准化的重要性在于确保不同服务之间的互操作性和集成性。通过遵循标准化的文档格式和规范,可以实现服务之间的无缝通信和交互,降......
  • 微前端的优势在哪里?为何能够打败单体应用架构
    微前端是一种类似于微服务的架构,是一种由独立交付的多个前端应用组成整体的架构风格,将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的应用,而在用户看来仍然是内聚的单个产品。有一个基座应用(主应用),来管理各个子应用的加载和卸载。所以微前端不是指具体的库,不是指具......
  • 是单一集中还是多中心分散?财务共享中心组织架构规划思考
    本文转自:《新理财》2023年08月刊  作者:张锐    财务共享中心组织架构方案规划是共享建设初期咨询阶段的关键工作之一,其结果将决定企业财务共享服务能否发挥应有效率,因此受到重点关注。近年来,财务共享在我国正经历快速发展,大量企业正通过财务共享推动财务管理变革,利用共享......
  • 基于binlog的全量缓存架构
    binLog的原理基于binlog的全量缓存架构优势降低延迟保证了毫秒级别解决了分布式事务基于ACK机制提升代码的简洁性缺点系统复杂性缓存的数据变多技术优化进行数据筛选进行压缩节约缓存大小使用JOSN的字段替代使用redis的hash结构的字段代替Mysql的binl......
  • Wow: 基于 DDD、EventSourcing 的现代响应式 CQRS 架构微服务开发框架
    领域驱动|事件驱动|测试驱动|声明式设计|响应式编程|命令查询职责分离|事件溯源架构图事件源可观测性OpenAPI(SpringWebFlux集成)自动注册命令路由处理函数(HandlerFunction),开发人员仅需编写领域模型,即可完成服务开发。测试套件:80%......
  • 6RIA架构风格
    RIA的诞生历程C/S-》B/S->RIA (富客户端)(需要是要临时下载客户端)思想是丰富客户端的功能,但又不同与C/S的客户端,它有的技术如Ajax,Flex,Bindwos,HTML5小程序优点是:它的反应速度快,易于传播,交互性强。......