定制处理器的设计挑战

描述

定义已更改,因此将影响设计过程。

在最新的周期性发展热潮的刺激下,半导体行业进入了定制处理器的新黄金时代,但是这次“定制处理器”意味着不同的东西。

上一个时代,每家主要的半导体公司都拥有内部处理器:SuperH,PowerPC,V800,Alpha,MEP,Trimedia等,其中一些在特定领域比其他领域更加专业。但是,行业整合和维护专有架构的巨额花费导致其中的许多都逐渐消失,整个行业进入了“标准架构”的漫长时期,而定制处理器填补了诸如音频处理等应用领域的空白。

“在过去的几年中,出现了用于图像处理、无线基带、LiDAR、图形和神经网络的领域专用内核,” Codasip营销副总裁Chris Jones说。

这样,定制处理器已发展为意味着针对特定任务类别进行了优化的处理器。微体系结构和指令集由最终将运行的软件来确定。如今,对可实现标准ISA专有指令扩展的定制工具的需求很高。

Jones说:“对于设计团队来说,这是一种高效而低风险的方式,以实现他们的‘秘密配方’。”此外,设计过程现在比以往任何时候都更关注软件,这对建模和性能分析工具提出了要求,以简化自定义体系结构。RISC-V运动为定制化在背后做出了巨大贡献,因为其模块化架构为非标准扩展提供了空间,专有软件IP技术可以嵌入在定制指令中,而不会牺牲行业标准ISA和随附生态系统的优势。”

定制处理器曾经是指从头开始设计的CPU,但是其定义是随着时间而发展和扩展的。

“用户可配置IP的可用性意味着设计人员可以选择最适合其目标应用的总线和寄存器宽度,缓存大小,流水线级数和其他处理器功能,” OneSpin解决方案产品设计验证的专家Nicolae Tusinschi说。“虽然最终的处理器可能不被认为是定制的,但大量可能的配置意味着所选的特定功能集可能在所有用户中都是唯一的。如果处理器IP以RTL形式交付或生成,并且如果许可协议允许,则用户可以将设计更改为真正定制的程度。”

他同意RISC-V ISA进一步扩展了自定义处理器的概念,因为其指令集体系结构定义了不同的数据宽度和可选指令的多种类别,包括特权模式扩展和变体。这些功能的任何选择均被视为符合ISA。

“由于RISC-V是一种不依赖于单个供应商的开放式体系结构,因此用户可以从多个IP供应商甚至从开源资源库中选择许多不同的处理器。从简单的控制器到具有乱序执行、多级缓存和其他高级功能的并行处理系统,RISC-V被明确定义为可以在各种微体系结构上实施。” Tusinschi说。

Tusinschi说,RISC-V ISA还可以添加用户定义的扩展,例如新指令,从而为设计开发适合最终应用的处理器提供了更大的灵活性。“因此,许多RISC-V处理器是真正的定制产品,具有定制的功能选择,定制的微体系结构和定制的扩展,同时仍符合ISA。这个更复杂的设计过程对验证具有重要意义。仅仅遵守是不够的。任何RISC-V验证解决方案都必须处理可选功能,验证包括微体系结构在内的完整设计,并且足够灵活以包含用户扩展。”

同时,消费者、工业和汽车产品对高性能计算的需求也在不断增长,以提供创新的“哇”的体验。

“功率和热约束推动了除高性能之外对高功率效率(每瓦性能)的需求。” Cadence的Tensilica IP产品管理、市场营销和业务开发高级总监Lazaar Louis指出,“定制处理器有助于满足这些需求。”

例如,消费者视频通话产品需要几个特定领域的处理器,包括音频、图像和AI处理,才能提供引人入胜的体验。同样,自动驾驶汽车需要信号处理器来预处理摄像头、雷达、激光雷达和超声传感器数据。下一步是感知车辆的周围环境,包括行人和其他车辆的位置。Louis解释说,下一步是决策,以估算路径规划和驾驶员协助。

AI

图1:自动驾驶汽车处理器。来源:Cadence

过去,许多定制处理器都使用专有指令集。这种方法的缺点是限制了这些处理器的用途。好处是,工具集和体系结构更改由供应商维护,他们对确保其可靠和安全有既得利益。由加州大学伯克利分校的一个小组开发的RISC-V允许根据需要扩展开放式指令集。

“定制处理器的主要问题是对定制指令以及基本核心集的验证,以确保任何定制都不会改变整体功能,” Breker Verification Systems的副总裁兼首席营销官Dave Kelf说。“定制处理器公司经常为用户执行此验证过程。RISC-V将需要类似的验证机制,并且在处理器周围如雨后春笋般涌现的开源社区很可能提供了这一点。一个验证平台可以自动测试处理器周围的子系统,并且其模块化程度足以添加必要的指令,从而可以对处理器以及定制指令进行全面测试。这样的系统将大大增加RISC-V扩展的成功。”

定制化的计算尺

可以肯定的是,人们对定制处理器的理解存在差异,特别是在定制级别的方面。有这么多的选项和用例,定制似乎遵循着按比例扩大的趋势。如果没有这些工具,开发就会变得很复杂。

Synopsys和其他公司提供了一种工具,使工程团队可以设计定制的专有专用处理器。“使用该工具,你可以指定处理器,然后从中生成RTL,软件开发套件(至关重要的的一环),指令集模拟器,编译器和调试器以及整个GUI基础结构,” Synopsys的ASIP工具产品营销经理Markus Willems说。

这些工具具有广泛的适用性,Willens说。“我们看到各种各样的客户提出了各种关于定制他们想做什么的想法。它的范围从更改给定的ISA和微体系结构的特殊性到下一个级别,在该级别上,给定指令集体系结构得到扩展以添加特殊指令。这总是从给定的ISA作为起点开始,一直到构建非常定制的东西,这是一个经过很好调整的ISA,从外部可以看作是RTL的一部分或专用功能。这可以在普通的固定RTL实现中完成,但是在这里你想用更具可编程性的实体替换状态机,以保持一定的灵活性并降低状态机的复杂性。有各种各样的定制正在发生。”

反过来,这也说明了系统架构师今天在寻求最佳设计的道路上必须进行的权衡取舍。Willems越来越多地看到那些架构师在如何进行权衡方面取得了清晰的结果。这种做法已经由来已久。

“在上世纪90年代的处理器设计历史中,我们几乎没有看到这种创新,至少在指令集本身方面没有创新,因为在那里仅仅能依靠[制造]流程来进行改进。” Willems说,“转到下一个节点,你将获得2倍、3倍,并且无需做太多工作即可获得更高的频率。但这没什么用,我们进入了多核设计,起初是异构的,因此你只需做多个相同的事情即可。但这导致了一定的饱和度。现在,我们显然看到了将多核体系结构调整为更多专用内核的更加专业化的时代。”

芯片制造商通常对如何将算法切成什么样并分别使用何种专用处理器有很好的理解。他们知道哪些组件需要更高的性能,哪些组件必须专门用于满足特定的吞吐量要求,以及哪些组件最耗电。但是随之而来的挑战是弄清楚应该将算法的哪些部分以及应用程序的哪些部分映射到与之相应的事物上。这会影响时序、吞吐量和功耗,这是EDA在帮助工程师在短时间内探索各种体系结构(尤其是在C语言可编程级别)的巨大机会。

“没有人敢说,‘我想为一系列专用处理器做汇编编码,然后发现我选错了处理器。” Willems说到,“各种高级编程语言也是我们在定制处理器中关心的关键要素,你可以在Cuda图形处理以及神经网络处理器中看到这一点,其中编程语言实质上就是你所需要的一个形象的切入点。但是对于大多数人来说,仍然是C和C ++。”

高度抽象的工作有助于理解性能,因此拥有准确的处理器模型并在该处理器上运行关键内核至关重要。但是在微体系结构级别还有更多的优化可能。

内存设计增加了其他整个优化级别。“通常,它不是处理器本身,” Willems说。它可以输入和输出数据,并确保数据可以及时供不同的处理器使用。不同内存架构和处理器的I / O接口之间的权衡是定制处理器设计的关键要素。”

定制处理器的设计挑战

任何处理器设计中的关键指标都涉及功耗-每次操作每瓦/毫瓦的性能。

“通常情况下,数字运算很困难,因此你必须分析所有传感器数据,并且将信号处理与决策结合在一起,需要在这些边缘设备上进行很多工作。” Willems说“为这种与硬件链接的处理器设计编译器,和设计仿真器是一项需要完全不同技能的任务。你需要将这些技能组合在一起。必须对团队进行相应的组织,以便拥有正确的专业知识。如果你有硬件背景,现在决定要更加专注于定制处理器,那就意味着不能从IP供应商处购买。你开始对内部进行设计,而软件开发套件的主题就是这一举措的障碍。

在定制处理器的发展中,为了使跨越整个半导体生态系统的工程团队能够实现其目标,成功归结于ISA、工具、团队和权衡的进步。这种势头已经转向从可执行格式中获取创意,创建早期仿真模型以及执行基于概要的分析,而不是过时的电子表格方法。

但是随着AI和机器学习的激增,专用处理元素的机会在不断增长。

“你看到的架构越多,受到启发的人就越多,” Willems说。“整个市场仅凭人们使用更专业的处理器在市场上取得成功就触发了自身的发展。”  

      审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分