中文 英语

配置的处理器

后期如何在发展过程中被延迟吗?动态可扩展的处理器,可能的操作。

受欢迎程度

两种技术的融合,可扩展的处理器和嵌入式fpga,是使创建处理器,可以动态配置。但不清楚如果有需要或者计划会多么困难。这仍然是一个悬而未决的问题,尽管有证据表明它的实用性在过去和新产品预计将很快到达市场。

处理器可扩展性已经存在了很长时间,虽然利息增加了由于开源RISC-V核心和围绕它日益增长的生态系统。(见相关的文章)

第二个技术看到采用增加FPGA的嵌入资源投入soc。与一个可编程芯片结构并不是新的,和许多FPGA芯片的嵌入式处理器。定义了几个软核处理器,可以映射到这些可编程的面料和今天仍然看到应用程序。

用加速器处理器是一种常见的方法来扩展性能。这些都是旨在从处理器卸载重计算,通常利用一个优化的硬件功能。通常是通过系统总线访问或特殊目的接口构建到处理器。

可以使加速器可编程结构的一部分吗?可以创建的编程环境,这样的产品有市场吗?“一般而言,动态重新配置的可编程序逻辑是一个伟大的想法,和一个明显可以带来重要的权力和许多应用程序性能好处,”Tobias Welp说产品经理OneSpin解决方案

其他人也同意。“嵌入式FPGA (eFPGA)技术的前景提供了广泛的SoC添加自定义功能,应用程序,”克里斯说,产品管理主管手臂的汽车和物联网业务。“5克的出现,汽车和物联网了需求的计算需求转向网络的边缘。实现这些边缘应用程序的性能和电力需求紧张通常需要特定于应用程序的计算或硬件加速器。随着这些加速器的算法和功能的发展,硬件也存在这样的问题。FPGA集成组件的能力与其他逻辑紧密在同一块硅提供了优势无法使用传统的FPGA产品。”

愿景促使很多建筑创新。“工业领域使用fpga进行工厂相机,”乔说,最高级别高级营销经理Synopsys对此。“他们一直在使用IP摄像机,他们做了很多图像处理的相机。现在有这么多的研究,你的基础算法未来可能是完全不同的。你需要某种程度的可配置性能够优化算法今天你在做什么,但你也需要采取更好的未来的技术。”

汽车的愿景是发展得更快。“IP相机可能想确定事情正在和忽略类似摇曳的树,“Mallett说。“但当你在一辆车,所有的移动。你是处理整个世界动态,同时你必须处理红外视觉在夜间和白天正常视力。”

这个地方在算法增加了额外的负担。“他们需要更具体的东西他们试图解决的问题,如接近实时的愿景,而可能混合,在激光雷达和雷达等传感器,”库尔特·舒勒说,负责营销的副总裁Arteris IP。“这不是通用的东西你会看到更多的学术标准。所以那些家伙有创新更多的比传统的人工智能算法,你读到的。”

他们没有站在原地不动。“人工智能,计算机行业标准相比,一个婴儿,”英国补充道。“有这么多的变化,优化,和更好的做事方式。总有人会想出一个更好的和更有效的方式。”

技术的国家
处理器扩展发生在几个方面。”主要有两种方法来实现额外的指令,“罗迪厄克特说,高级营销总监Codasip。“第一是创建一个扩展的处理器有额外的指令完全在处理器中实现管道。第二个是接口基本处理器协同处理器,额外的指令执行。今天不是正常的方法是在SoC或在一个FPGA实现。”

接口也有几个选项。“自定义指令真的是小硬件加速器专注于加速软件执行,否则需要许多由CPU周期的标准指令集,”安迪Jaros说,负责销售的副总裁Flex Logix。“eFPGAs现在被用来做类似的加速度函数编程一个特定的加速器FPGA织物,通常连接到系统总线。”

但是,可以采取进一步的吗?“eFPGA最容易可以用来添加加速器功能内存映射外围设备连接到芯片上的公共汽车,“说的海岸。“这些可以很灵活,独立于主处理器。更紧密耦合的解决方案是使用eFPGA来实现一个特定于应用程序的协处理器,通过内置的协处理器连接到一个核心接口。通过这种方式,指令执行的协处理器集成到主指令流,很简单的软件开发过程。”

其他的可能性可能涉及一组固定的指令,而是一个动态可重构处理器相互交谈,或移动数据系统。“人工智能芯片包含很多乘积累功能、“Mallett说。“你是修剪下网络,优化,做各种各样的事情最好的方法你可以利用资源。你在做数学函数通常不改变。你只是配置块的数学函数和使用它从那里。记忆和互连需要编程。”

这个过程
设计这样一个处理器,你必须有一个计划。“最困难的部分在加速技术是确定软件功能所需要的硬件协助,“Flex Logix的Jaros说。“这通常是由分析软件执行目标处理器上看到CPU消耗大部分的周期。这通常会导致一个功能相对较少,没有有效执行本机指令集和本身硬件加速。一旦确定,RTL指令或硬件加速器可以写来减少这些特定的CPU周期计数功能。”


图1:处理器定义驱动器硬件实现和软件工具链。来源:Synopsys对此

现在你必须做出硬件的决定。“一旦确定指令加速器,CPU子系统架构师可以选择将它作为一个硬连接指令添加到CPU指令扩展接口,或者,程序进入一个eFPGA附加的CPU指令扩展接口,“Jaros说。“从软件的角度来看,两个选项看起来一样的:软件开发人员代码在函数调用软件,告诉编译器使用新的指令而不是本机的指示ISA的组合。软件现在得到的好处一个硬件加速器使用标准软件工具支持可扩展的cpu。”

软件/硬件接口的定义。“这需要根据每个组说32个函数在两个输入和一个输出这样一个标准格式像c = co_processor_instr_1 (a、b),“Codasip的厄克特说。“在硬件方面,需要一个定义良好的协处理器接口支持指令格式和必要的控制和状态信号。在编译器方面,功能需要被定义为intrinsic或内置模板”。

有些事情仍然可以在任何硬件或软件实现,说Arteris舒勒。”当涉及到数据流管理,我管理的软件,我在硬件自动什么?有些人正在做的事深深地扎根或深度定制,这些算法是完全在内部完成。我们看到,这种情况也发生在汽车。”

合并的片段
这两个加速度方法可以提供最终的可编程和可重构处理器呢?“答案是肯定的,它已被证明在硅与我们的一个客户,“Jaros说。“使用eFPGA指令扩展接口的好处是,它现在有一个灵活的ISA和芯片可以针对不同的应用程序进行了优化。系统公司,这可以降低库存成本和利用高卷在一个SKU。半导体公司,这使得可定制的芯片硬件定制,定制的软件。”

能够为多个应用程序用一个定义优化处理器芯片可能是一个巨大的优势。“扩展处理器协同处理器作为一个FPGA实现协同处理器的优势比特流和固件更新可以提供tapeout之后,“厄克特说。“在规划SoC是必要的预算嵌入式FPGA的正确大小创建一个处理器所需的额外指令。用户需要设计协同处理器逻辑实现的子集或一系列预定义的功能。在软件方面,图书馆和版本控制需要确保SDK只能发行这些指令所支持的协同处理器。”

这种类型的灵活性也有潜在的问题。“芯片的硬件架构师必须坐在旁边的软件架构师真的想出了一个好系统,”舒勒警告说。“如果不是这样,你得到的更多的是一种玩具系统,软件人黑客和黑客和黑客得到他们想要的东西。如果你不期待这些事情,然后在软件人的肩上。聪明的公司有软件人隔壁。”

我们还必须注意我们使用术语如何动态可重复编程的。“开发定制指令的过程中,软件开发人员可以创建一个自定义指令和图书馆使用它们在编写软件时,“Jaros解释道。“编译器然后安排他们在生成二进制可执行文件。当处理器看到这些指令,它可以启动一个DMA事务负载eFPGA从内存中特定指令和程序。根据eFPGA的大小,芯片频率和其他因素,这可以从11µs 223µs。所以会有一个延迟与动态重新配置eFPGA随着每一个新的指令,但这可能提高性能所抵消。”

所有这一切需要测量。“量化的改进可以通过查看所需的周期现在数量减少了CPU +自定义指令,然后添加在程序所需的延迟eFPGA和比较结果所需的CPU周期没有自定义指令,“Jaros解释道。“记住一些延迟将隐藏,因为大多数现代处理器架构支持的顺序执行,所以编程eFPGA可能不会导致处理器摊位如果自定义指令被编写为一个非阻塞的指示。”

验证问题
灵活性的影响验证。“尽管开源ISA的出现就像RISC-V支持自定义扩展处理器设计者提供了大量的自由,它提出了一个非常有趣的验证的挑战,”罗伊Shubhodeep Choudhury说,首席执行官和创始人之一Valtrix系统。“你必须确保所有的设计都是兼容的,功能正确。这需要一个转变的方式测试生成器的设计。他们需要高度可配置允许验证的自定义功能,以及遗产/基线特征。”

OneSpin Welp同意这个困难。”处理器,可以动态扩展可能是最具挑战性的一个使用嵌入式可编程逻辑,因为功能验证也变得动态在这些场景中。用户需要验证的目标模型和编程逻辑匹配模型的特定实例。这怎么能验证如果预期模型动态变化?也许我们可以有一个流执行验证和等价性检查大量的编程逻辑模型和相应的实例。如果这个验证涵盖了可量化的测量配置空间的,这甚至可以允许动态配置适用于对安全性要求苛刻的应用程序。”

编程模型
许多体系结构和处理器硬件也看上去不错,但软件编程模型从未起飞。”你能建立一个工具,将允许任何C程序员构建硬件?”Mallett问道。“这是你遇到的根本性挑战。这涉及到硬件之间的根本区别的人认为时钟,和软件的人认为中断。当你设计硬件从纯软件的角度来看,这可能是软件方面的优化,但它不一定是硬件方面的优化。你还有这种推和拉的硬件和软件之间的人而言,能够优化的最佳性能,最好的区域,最好的力量。”

当这些处理器根深蒂固,编程的观众可能会相当有限。“公司必须决定如果他们的客户基础专业知识要做到这一点,”英国说。“他们也必须决定它将负担他们的支持——如果一个客户是做不起作用的东西。第三,多少我的秘方我不得不为了让客户能够配置呢?”

结论
而动态可扩展性可能听起来像一个合乎逻辑的下一步的轨迹可扩展指令集处理器,它导致许多新的挑战。它在过去已经尝试过,如eMIPS在2006年从微软。所有这些挑战需要克服它成为一个可行的解决方案。

对于一个公司是否成功,回报将是巨大的。今天,公司通常使用一个死亡不同的配置和包装改变I / O或其他功能,但这将使定义应用程序的性能将发生重大变革。如果动态特性是固定芯片出货时,最终用户可能永远不会知道什么是底层技术被使用。领域技术发展迅速,它可能是唯一可行的选择以防止产品过时之前他们甚至船。

相关的
有什么重要的处理器可扩展性?
设计师必须仔细权衡收益与成本,其中许多并不明显。



留下一个回复


(注意:这个名字会显示公开)

Baidu