中文 英语
系统与设计
的意见

如何扩展“不可扩展”的RISC架构

对于许多系统来说,最好的处理器是为其任务量身定制的处理器。

受欢迎程度

几年前,Erik McClure(当时是微软软件开发人员)发表了一篇题为RISC本质上是不可扩展的

这篇博客真的很有趣,并且就纯RISC设计的局限性提出了一些很好的观点。

纯RISC设计的局限性

这让我回想起:我最初的一些营销任务是围绕RISC和CISC之间的宗教战争展开的。

然而,在某种程度上,我认为Erik的博客夸大了事情:今天没有人真正认为RISC- v只是RISC。

宗教战争早已过去:我们都读过Hennessy & Patterson,我们都知道使用量化技术和指标来分析业绩,并做出不可避免的权衡。复杂的指令、更深的管道、更快/更干净的架构、功率、面积和性能——这些都是通过建模和数据来解决的,而不是简单的二进制划分或神学上的纯粹。

从一开始,RISC-V的一个关键原则就是能够添加指令,并且有许多已定义的扩展,作为可选模块。

当然有一些产品使用标准RISC-V核心和标准基础ISA。但是有许多带有扩展的产品。对于许多应用程序,您甚至可以做得更好。

通过自定义扩展RISC架构

这与Codasip哲学紧密相关:使用RISC-V作为一个基本的体系结构的好处互操作性生态系统合作伙伴和现成的软件。然后根据您需要的具体情况添加自定义指令。

对于一些应用程序来说,这可能是他在博客中描述的令人惊讶的“浮点Javascript转换为有符号定点,趋近于零”。但对于其他应用程序,它将是一套为AI或ML操作量身定制的指令,因为这是系统所需要的。或者它可能是视频处理或音频处理的指令因为这是这个系统需要的指令。

芯片是为某种目的而设计的——处理器是为某种应用而使用的。在某些情况下,是的,这是一个通用处理器,它必须处理各种奇怪的、通用的、不可预测的代码。在这种情况下,指令集完全有可能会不断增长,就像我们在X86或Arm中看到的那样。这就是RISC-V国际组织提出具有最常见配置和扩展的配置文件的原因之一。

然而,在许多应用程序中,该系统用于运行特定代码库的特定目的。在这种情况下,绝对没有必要让指令集变得太大:它可以像往常一样采用RISC,使用小的指令集,小的芯片区域,没有开销,只需要一些定制指令来满足那些对性能非常敏感的关键目的。

这提供了所有世界中最好的东西:高性能、小型、优化的架构、行业兼容性、软件生态系统,而且既节省面积又节能,因为不需要所有自定义逻辑为应用程序中不需要的东西增加复杂性。

总是需要基本的通用性和互操作性来避免碎片化,以获得RISC-V生态系统的好处。但对于许多系统来说,最好的处理器是为其任务量身定制的处理器。RISC-V实现了这种灵活性,Codasip提供了这种灵活性。



留下回复


(注:此名称将公开显示)

Baidu