中文 英语

什么是自定义处理器?

定义变了,对设计过程的影响也变了。

受欢迎程度

在最近的周期性发展热潮的刺激下,半导体行业正在进入定制处理器的新黄金时代,但这一次“定制处理器”的含义有所不同。

在上一代,每一家主要的半导体公司都有自己的处理器:SuperH、PowerPC、V800、Alpha、MEP、Trimedia等等,其中一些处理器更专注于特定领域。但行业整合和维护专有架构的巨大成本导致许多专有架构逐渐消失,行业进入了一个长期的“标准架构”时期,而定制处理器填补了音频处理等应用程序的利基市场。

“在过去的几年里,图像处理、无线基带、激光雷达、图形和神经网络等领域的特定核心出现了,”该公司营销副总裁克里斯·琼斯(Chris Jones)说Codasip

因此,自定义处理器已经发展为为特定类型的任务优化的处理器。微架构和指令集是由它最终要运行的软件决定的。今天,对能够实现标准ISA的专有指令扩展的定制工具的需求很高。

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

自定义处理器过去指从零开始设计的CPU,但这个定义随着时间的推移而不断发展和扩展。

用户可配置的可用性知识产权这意味着设计人员可以选择总线和寄存器宽度、缓存大小、流水线级和其他最适合其目标应用的处理器功能。OneSpin解决方案.虽然最终的处理器可能不是定制的,但大量可能的配置意味着所选择的特定功能集在所有用户中可能是唯一的。中交付或生成的处理器IPRTL形式,如果许可协议允许,用户可能会改变设计,使其成为真正的定制。”

他认为RISC-V ISA进一步扩展了自定义处理器的概念,因为它的指令集架构定义了不同的数据宽度和多种类别的可选指令,包括特权模式扩展和变体。这些特性的任何选择都被认为是符合isa的。

“由于RISC-V是一个开放的架构,不局限于单一的供应商,用户可以从多个IP供应商甚至开源存储库中选择许多不同的处理器变体。RISC-V被明确定义为在广泛的微架构上实现,从简单的控制器到具有乱序执行、多级缓存和其他高级功能的并行处理系统。”

Tusinschi表示,RISC-V ISA还支持用户自定义扩展,例如新指令,这为开发适合最终应用程序的处理器提供了更大的灵活性。“因此,许多RISC-V处理器是真正定制的,具有自定义的功能选择、自定义的微架构和自定义的扩展,同时保持与ISA兼容。这种更复杂的设计过程对验证有重大影响。仅仅遵守是不够的。任何RISC-V验证解决方案都必须处理可选功能,验证包括微架构在内的完整设计,并且足够灵活,可以包含用户扩展。”

与此同时,消费者、工业和汽车产品对高性能计算的需求不断增加,以提供创新和令人惊叹的体验。

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

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


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

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

Breker verification Systems的副总裁兼首席营销官Dave Kelf表示:“定制处理器的主要问题是在基础核心集上验证定制指令,以确保任何定制都不会改变整体功能。”定制处理器公司经常为他们的用户执行这个验证过程。RISC-V将需要类似的验证机制,围绕该处理器涌现的开源社区很可能提供这一点。一个验证平台可以自动测试处理器周围的子系统,并且足够模块化,可以添加必要的指令,这将允许对处理器进行完整的测试以及定制的指令。这样的系统将大大增加RISC-V扩展的成功。”

定制的规模不断缩小
可以肯定的是,人们对自定义处理器的定义是不同的,特别是在自定义级别方面。有了这么多的选项和用例,定制似乎遵循一个滑动的规模。在没有工具的情况下,开发可能会变得复杂。

Synopsys和其他公司提供了一种工具,允许工程团队设计定制的专有专用处理器。ASIP工具的产品营销经理Markus Willems说:“使用这个工具,你可以指定处理器,然后从那里生成RTL,软件开发工具包,指令集模拟器,编译器和调试器,以及整个GUI基础设施。Synopsys对此

Willens说,这些工具具有广泛的适用性。“我们看到各种各样的客户都有各种不同的想法,他们想在定制方面做什么。它的范围从改变给定的ISA和微架构上的专门化到扩展给定指令集架构以添加专门化指令的下一个级别。这总是从一个给定的ISA作为起点开始,一直到构建一些非常定制的东西,这是一个非常调优的ISA,从外部看可能被视为RTL或专用功能的一部分。这可以在简单、固定的RTL实现中完成,但是您希望用更可编程的实体替换状态机,以保持一定的灵活性,并降低状态机的复杂性。有一系列的定制正在发生。”

这反过来又说明了系统架构师在实现最优设计的道路上必须做出的权衡取舍的数量。越来越多的,Willems已经看到那些架构师清楚地知道如何进行权衡。这种做法已经取得了很大的进展。

他说:“在上世纪90年代的处理器设计历史上,我们很少看到某种程度上的创新,至少在指令集本身上是这样,因为你只能依靠(制造)过程来进行改进。”“你去到下一个节点,你会得到2X, 3X,你不需要做太多事情就可以达到更高的频率。但后来我们失去了动力,我们转向了多核设计,最初更加异构,所以你只能做相同的多个。但这导致了某种程度的饱和。现在我们清楚地看到了一个将多核架构调整为更专用的核心的更加专业化的时代。”

芯片制造商通常很好地理解如何将算法切片,即在哪种专用处理器中放入什么。他们知道哪些需要更高的性能,哪些必须专门用于达到特定的吞吐量要求,以及哪些是最耗电的组件。但接下来的挑战是,要弄清楚哪些部分的算法和哪些部分的应用程序应该映射到特定的东西。这会影响时间、吞吐量和功率,这就是EDA在帮助工程师在短时间内探索各种架构方面的巨大机会,特别是在c可编程级别。

“没有人敢说,‘我想为一系列专门的处理器做汇编编码’,然后发现我选错了处理器,”Willems说。“各种高级编程语言也是我们在定制处理器中看到的一个关键元素,你可以在Cuda的图形方面看到这一点神经网络在处理器中,编程语言本质上是作为入口点使用的图形。但对大多数人来说,仍然是C和c++。”

在高水平上工作抽象有助于理解性能,因此拥有一个准确的处理器模型并在该处理器上运行关键内核是必要的。但是在微架构级别上有更多的优化可能。

内存设计增加了另一个层次的优化。Willems说:“很多时候,问题并不在于处理器本身。它将数据输入和输出,并确保数据能够及时地提供给不同的处理器。不同内存架构和处理器I/O接口之间的权衡是定制处理器设计的关键元素。”

定制处理器的设计挑战
任何处理器设计的关键指标都包括每瓦或每操作毫瓦的功率性能。

Willems说:“通常情况下,这是数字运算,所以你必须分析所有的传感器数据,在这些边缘设备上,你必须进行大量的信号处理和一些决策。“为这样的处理器和硬件一起设计编译器,和设计模拟器是一项需要完全不同技能的任务。你需要在团队中把这些技能结合起来。团队必须相应地组织起来,这样才能有正确的专业知识。如果你有硬件背景,现在你决定更专注于定制处理器,这意味着你不能从IP提供商那里购买它。你开始在内部设计它,软件开发工具包的主题是采用的一个障碍。”

在定制处理器的发展过程中,为了使整个半导体生态系统的工程团队能够实现他们的目标,成功归结于isa、工具、团队和权衡的进步。趋势已经转向以可执行的格式捕获想法,创建早期的模拟模型,执行基于分析的分析,而不是过时的电子表格方法。

但随着人工智能和机器学习的激增,专门处理元素的机会继续增长。

“你看到的建筑越多,就会有越多的人受到启发,”威廉姆斯说。“只要人们在市场上使用更专业的处理器取得成功,整个市场就会自动启动。”

有关的故事
开源处理器:事实还是虚构?
说开源处理器是免费的并不十分准确。
超越CPU
随着cpu的不断发展,性能不再局限于单一的处理器类型或进程几何。
芯片,更快的互联,更高的效率
为什么英特尔、AMD、Arm和IBM专注于架构、微架构和功能变化。



2的评论

尼古拉斯•约翰逊 说:

好吧,我读了你的帖子,了解了一些关于自定义处理器的事情。

脸谱网 说:

自定义处理器是为特定目的而开发的一种特殊类型的处理器。该处理器的任务较少,因此输出生成非常快。有不同类型的处理器可用,为不同的目的构建。

留下回复


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

Baidu