欢迎访问ic37.com |
会员登录 免费注册
发布采购

RISC处理器生态系统在兼容性方面得到了繁荣

日期:2020-11-18 (来源:互联网)

在CPU不一样的情况下,无法开发编译器,调试器,操作系统,应用程序和中间件,甚至无法开发出高效率的程序员。RISC编译器不能忽略这些指令,它们只是浪费了多余的硬件。RISC-V占据了中间位置,它定义了由所有处理器共享的基本指令集和一组可选的附加模块。

近年来,RISC-V越来越受到人们的重视和重视。因为它是免费的,灵活的,而且速度很快。这样,RISC-V就为很多开发者提供了安全方便的选择。但你觉得RISC-V是一个通用RISC处理器,还是一个定制的任意处理器?

但是答案都是肯定的!但那是个矛盾。

RISC-V最初是一个温和的RISC方案,BQ24002RGWR但随着其发展,RISC-V也演变成了超级处理器!另外,它可能会像您所希望的那样平淡或令人兴奋,其他CPU供应商也正在尝试实现这种技术。

自定义处理器似乎是世界上最愚蠢的想法。

一是处理器生态系统在兼容性方面得到了繁荣。在CPU不一样的情况下,无法开发编译器,调试器,操作系统,应用程序和中间件,甚至无法开发出高效率的程序员。不兼容的情况下,我们最好通过焊接导线和更换硬件来创建程序。中央处理器指令组-固定指令组实际上是软件的组成部件。兼容性推动了更多软件、更多工具的推出以及更多CPU销售的良性循环。

但是从另一个角度看,通用CPU是乏味的。负荷随时间而变化,不是每个程序员都需要同样一组功能。许多人不需要浮点运算。一些要求位操作说明。其他一些人需要Linux支持或者向量操作,或者一些奇怪的表查找和插入(interpolate)操作。

是一个通用的RISC处理器还是一个可定制的处理器?

奇怪的指令(Oddball)可能会有很大的不同,在处理程序的执行方式上也会有很大的不同。当玩家们讨论到一种IntelCPU和另一种AMD处理器的相对优势时,两者几乎是同一种芯片,只有几个百分点的差别。把它和低端DSP,高端ARM,PowerPC或者x86的设计方式相比较,它们之间的差别是非常明显的。可见,体系结构和指令集是非常重要的。

但问题在于,如果偏离了通用路径,就会失去兼容性,也就会失去软件支持。RISC编译器不能忽略这些指令,它们只是浪费了多余的硬件。只有汇编语言程序员或者愿意编写编译器内部函数的程序员可以利用这一额外功能。如果不调整基准,那又有什么用呢?

RISC-V占据了中间位置,它定义了由所有处理器共享的基本指令集和一组可选的附加模块。是否要使用浮点数?所有功能都是由我们设计、定义、创建的。每一个在RISC-V上执行FP的人都用同样的方法操作,所以编译器作者都很高兴,因为你的代码或多或少是可移植的。

除这些半标准的选项外,您还可以进行分支和创建自己的定制指令。归根结底,这是一个开源CPU规范,所以没人能阻止你。你甚至可以尝试把你自己的作品卖回社区里去。

事实上,自定义指令集在此之前就已经完成了,而且大部分都能工作。ARC和Tensilica,比如Synopsys和Cadence,都支持用户级定制。他们是这样工作的:当用户为特定的应用程序编写有用的新指令时,他们的确能看到性能或功耗的显著改善。尽管这个过程并不总是很简单,但却很有效。但是这一选择带来的缺点是对定制软件的支持有限,而且不能与其他芯片兼容。

自然,后者的特点也会成为优势。或许您想要混淆您的代码,避免反向工程。要做到这一点,你只需在处理器中添加一些奇数指令,然后就可以在软件中自由使用。定制指令的能力甚至与此无关。问题是没有人知道这一点。

的确,真正的重点在于发现代码中的热点(hotspots),并创建定制指令来加速这些热点。或许你已经完成了很多存储方面的工作;定制装载/存储对你来说是有帮助的。反复的位旋转(bittwiddling)可能将(condensed)压缩成一种特殊用途的动作,等等。

即便可能,删除指令也是毫无意义的。每一个CPU需要基准指令来执行操作。你可以用极少的指导来解决问题,当然,这主要是为了学术目的。过去20年来,RISC-V和其他设计所使用的核心组件包括基本加、减(有时只是负加)、逻辑操作和条件流控制(conditionalflowcontrol.)。这一切都很有用,而且在硬件中实现起来并不复杂。这就是说,它们从未成为性能瓶颈,因此将其删除不会带来任何好处。

另一方面,你有一个类似于英特尔的疯狂而复杂的IceLake微架构,它有数百条指令,但是却很少使用。这一巴洛克式的指令集并不只是让芯片膨胀。一个复杂的CPU有一个复杂的互连,一个大的总线和一个以上的时钟。即使安装了可选的增强功能,与RISC-V之间仍有很大的差距。

多年来,MIPS架构允许用户进行定制,但是ARM坚决抵制这一趋势。还有一些处于中间位置,多数情况下只能进行非常有限的调整。在这种情况下,RISC-V是一个更开放的处理器。

当RISC-V激增时,要确定CPU正在做什么以及没有做什么就变得越来越困难。人人都可以自由定制,而且很多RISC-V设计师已经有了这样的想法。我们会看到,除了核心指令集和一两个流行的扩展外,库存CPU与定制的hotrods之间还有很大的差距。