中文 英语

将noc添加到FPGA soc

随着复杂性和设备尺寸的增加,对片上网络的需求也在增加。

受欢迎程度

FPGA soc通过结合两者的元素,跨越了灵活性和性能之间的界限fpga和asic。但随着它们在更安全和任务关键的市场中找到归宿,它们也面临着一些与标准相同的问题soc包括在日益复杂的设备中快速移动越来越多的数据的能力,以及验证和调试过程中可能出现的任何问题的难度。

FPGA soc是一种混合设备,随着芯片制造商和系统公司的任务是每年完成更多的设计,它们正在获得吸引力,通常在协议和算法仍在不断变化的市场,如汽车、医疗设备和安全。使用标准的FPGA芯片可以提供必要的灵活性,但只有ASIC才能满足更高的性能要求,无论是对于新的还是现有的市场,如航空航天。FPGA soc提供了一种折衷的解决方案,基本上消除了差异,提供了ASIC的一些性能和低功耗优势,以及避免过早过时的灵活性。

但这种程度的复杂性也增加了SoC设计团队非常熟悉的问题。

“FPGA的复杂性和功能已经增长得如此之多,以至于你可以在一个FPGA中构建具有多个接口和协议的大型系统,这样的设计需要一个结构来集成不同的IP和硬件模块,在不同的时钟域和数据协议下工作,”Zibi Zalewski说Aldec的硬件部门。

现代fpga——尤其是那些具有硬嵌入式处理器和控制器的fpga——介于传统逻辑fpga和ASIC之间,并向ASIC方向点头。“NoC是绝对需要的,因为有了NoC简化了接口验证Zalewski说。“设计中的NoC允许工程团队管理顶级接口,可以进一步用于创建到主机或交易器进行仿真的主原型通道,而不是增加验证过程复杂性、时间和成本的多个接口。”

这对FPGA SoC工具有一些有趣的影响。FPGA供应商通常销售他们自己的工具和硬件,这使得它很难实现EDA供应商在这个市场上取得了显著的进展。但随着这两个世界开始融合,人们开始质疑这种复杂的工具和知识产权这使得finFET例如,在FPGA soc中也可能需要,特别是在需要可追溯性的安全关键应用中。

“当使用大容量fpga进行设计验证和原型设计时,一个关键的要求是适当的调试功能,”公司产品管理总监Juergen Jaeger说节奏.“然而,当今no-NoC FPGA的架构使得提供这样的调试功能具有挑战性,主要是由于FPGA中有限的连接资源,特别是当所有FPGA内部路由资源都需要实现设计本身并以足够的性能运行时。此外,调试需要能够访问尽可能多的内部设计节点,最好是所有的,并将这些探测点路由到外部。这几乎是不可能的,并且会导致许多挑战和调试缺陷。这就是FPGA内部NoC可以提供帮助的地方,因为它能够在本地探测许多节点,将数据通过NoC路由到聚合器,而不浪费宝贵的FPGA路由资源,然后通过一些标准接口(如千兆以太网)将调试数据导出到外部世界。”

然而,并非所有fpga都需要noc。Jaeger说:“如果设计是一个数据路径重的设计,移动大量数据,这可能会有所帮助。“然而,如果设计更以控制为中心,并且/或要求尽可能高的性能,NoC固有的延迟和不确定性性质可能会适得其反。它还需要新的FPGA设计工具,能够利用FPGA内部的NoC组件。”


图1:英特尔的FPGA SoC阵容。来源:英特尔

低功率
asic本质上比fpga更节能。现在的问题是,通过结合这些设备并利用一些为soc开发的低功耗技术(例如通过NoC的更有效的信号路由),可以减少多少功率开销。

Aldec的Zalewski表示:“NoC使FPGA资源可以通过IP核和外部接口共享,并促进电源管理技术的发展。“通过NoC, FPGA逻辑可以划分为多个区域,每个区域都可以由称为路由器的单独NoC节点处理,如果不使用,可以选择性地关闭到睡眠模式。”

这种灵活性的概念推动了CCIX该联盟的成立是为了实现一类新的互连,专注于新兴的加速应用,如机器学习、网络处理、存储卸载、内存数据库和4G/5G无线技术。

该标准旨在允许基于不同指令集架构的处理器将缓存一致、对等处理的优势扩展到许多加速设备,包括fpga、gpu、网络/存储适配器、智能网络和自定义asic。

在使用FPGA加速工作负载时,这一点尤其关键。Anush Mohandass,营销副总裁NetSpeed系统他指出,在几年前的热芯片大会上,微软曾表示希望使用fpga来加速必应的图像搜索,而不是在常规服务器上运行。“他们发现使用FPGA加速图像的效率更高,延迟更低,所以这是FPGA可以走到最前沿的地方。它不是用作通用计算,而是用于加速。”

事实上,莫罕达斯认为这就是CCIX时刻背后的起源。“即使微软这样做并说,‘我们有至强处理器,这是主要的CPU,这是主要的引擎——当它检测到FPGA可以做的事情时,它会把它卸载到FPGA上。如果是这样的话,你为什么要把加速器当作二等公民呢?在CCIX中,加速实际上与核心计算集群具有相同的特权。”

当今先进的fpga还有其他技术问题,这些问题也可能受益于NoC的结构。

“每个FPGA结构都可以看起来像一个SoC,就纯粹的门数和复杂性而言,”Piyush Sancheti说Synopsys对此.“但现在你有了这么多可用的空间,显然你在一个设备上塞入了更多的功能,这就造成了多功能的复杂性,以及时钟之类的东西。我们看到fpga的时钟结构变得越来越复杂,这就产生了一系列的新问题。”

IP重用
这也简化了设计重用。桑切蒂说:“通常情况下,如果设计是在任何SoC环境中,无论是在ASIC还是FPGA上实现,集成的ip越多,设计中的异步时钟就越多。”“可能有一个PCIe运行在66mhz,可能有其他方面的设计运行在更高的频率,而这些设计是不同步的。这意味着,本质上,有逻辑在不同的频率下运行,但这个逻辑是相互通信的。这将导致时钟域交叉问题。你如何确保当信号从快时钟域到慢时钟域时,信号是可靠的,反之亦然,而且你没有元稳定信号,这些信号的时间本质上不是完全同步的?”

就像SoC设计一样,需要非常复杂的同步方案,以及工具和方法来确保适当的同步到位。他说:“除了软糖FPGA,每个人都有一套完整的时钟域交叉验证方法,这对FPGA设计界来说实际上是一种新方法。”“如果你把所有这些挑战都映射到设计流程和方法上,就会发现他们的流程中加入了一些新的东西,这些东西在过去是不需要担心的,因为他们没有那么多ip,也没有那么多的时钟域需要处理。它回到了设计和最终应用程序的简单性。随着fpga变得越来越像SoC,不幸的是,它们必须应对SoC设计的所有挑战。”

缩小差距
那么,今天的FPGA soc是否足够像传统的数字soc,以至于所有相同的规则都适用于芯片上的网络?答案似乎是有些,但不完全是。

“两家主要的FPGA供应商都有专有的片上网络工具,如果用户选择使用其中之一,他们可以使用一种形式的片上网络连接他们的功能,”英特尔的CTO Ty Garibay说ArterisIP.“这更多的是一个系统的概念方法。它看起来是否足够像一个标准SoC,以至于把它看作是一个NoC作为连接主干更有意义?许多FPGA应用程序没有。它们看起来更像一个网络芯片或骨干网芯片,基本上是数据流。数据从左边进来,你有一大堆的咀嚼单元,数据从右边出来。这不是传统的SoC。这是一个普通的网络处理器或基带调制解调器或类似的东西,它是一个数据流芯片。所以在这些类型的FPGA软设计中,不需要芯片上的网络。”

但如果它在概念上看起来像一堆相互通信的独立功能单元,并且通常由一个中心点控制,那么将这些单元与芯片上的软网络连接起来确实是有意义的,他说。“下一代高性能fpga预计将包含内置在芯片中的硬noc,因为它们达到了数据流以如此高的速率传输的地步,特别是当你有100千兆SerDes和HBM2在这种情况下,试图通过软逻辑在每个通道上输送1到2兆位的管道实际上使用了所有的软逻辑,而你已经没有什么可以处理的了。”

因此,带宽要求加强数据移动,这与处理加强硬dsp或硬内存控制器的方式大致相同。连续几代的fpga可能看起来像一个街道棋盘,其中的街道是硬的128、256、512 12位总线,从一端到另一端在一到两个周期内完成,并且不使用任何软逻辑。

Garibay说:“与此同时,将合成功能分配到这些通道上,作为fpga上强化功能的一部分,因为我们移动了如此多的数据,我不知道他们如何在软逻辑中继续这样做。”“这将是真正的noc进入fpga,因为noc总是一个好主意。”

有关的故事
fpga越来越像soc
嵌入式fpga时代到来
技术讲座:EFPGA验证
技术讲座:EFPGA时序
技术讲座:EFPGA编程



留下回复


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

Baidu