用于在具有外部相关的片上网络中检测死锁的系统和方法技术方案

技术编号:37111913 阅读:14 留言:0更新日期:2023-04-01 05:09
本公开的实施例涉及用于在具有外部相关的片上网络中检测死锁的系统和方法。片上网络(NoC)的设计包括在NoC的拓扑中搜索潜在的死锁,其中该潜在的死锁是由外部相关性引起的,其中到NoC的数据输入相关于来自NoC的数据输出。NoC设计还包括修改NoC拓扑以解决潜在的死锁。锁。锁。

【技术实现步骤摘要】
用于在具有外部相关的片上网络中检测死锁的系统和方法
[0001]相关申请的交叉引用
[0002]本申请要求于2021年9月29日提交的题为“DEADLOCK DETECTION IN NoC WITH EXTERNAL DEPENDENCIES”的美国临时申请63/250,111的权益,该申请的全部内容通过引用并入于此。


[0003]本技术属于计算机辅助设计工具领域,更具体地,涉及用于处理片上系统(SoC)的单元之间的通信的片上网络(NoC)的设计。

技术介绍

[0004]许多半导体公司正在使用片上网络(NoC)技术来支持单个芯片上不断增长的核数目以及对与人工智能(AI)和其它应用相关的不断增长的处理能力的需求。通过利用分组传输的更可扩展的通信架构,NoC优于旧的点对点连接。
[0005]NoC通常包括网络接口单元、交换机、适配器、缓冲器和其它组件。在实现NoC的片上系统(SoC)或其它系统中,系统可包括向NoC提供数据的核(这种核被称为发起器),以及从NoC接收数据的核(这种核被称为目标)。NoC经由基于分组的传输从发起器向目标发送数据。
[0006]在数据分组流过NoC的各个组件期间,存在发生死锁的可能性。死锁可以将NoC置于停滞状态而不可能演进。除非系统被重置,否则NoC内的停滞分组将不会进展。重置系统不是针对死锁的理想解决方案。

技术实现思路

[0007]根据本文中的各种实施例和方面,在片上网络(NoC)的设计期间解决潜在的死锁状况。本文的系统和方法适用于在自动生成NoC拓扑的软件和用户将利用其创建或编辑NoC拓扑的任何软件中实现的一类过程。
[0008]根据本文中的各种实施例和方面,NoC的设计包括在NoC的拓扑中搜索潜在死锁,其中潜在死锁是由外部相关性引起的,其中到NoC的数据输入相关于来自NoC的数据输出。NoC设计还包括修改NoC拓扑以解决潜在的死锁。
附图说明
[0009]为了更充分地理解本专利技术,参考附图。根据以下描述中的方面和实施例并参考附图(图)来描述本专利技术,其中相同的附图标记表示相同或相似的元件。应当理解,这些附图不应被认为是对本专利技术范围的限制,通过使用附图,以附加细节来描述当前描述的方面和实施例以及当前理解的本专利技术的最佳模式。
[0010]图1是示出包括根据本专利技术的各个方面和实施例的NoC的系统的某些特征的框图。
[0011]图2示出了由于外部相关性导致的NoC中的死锁的示例。
[0012]图3示出了根据本专利技术的各个方面和实施例的NoC设计过程的概观。
[0013]图4示出了根据本专利技术的各个方面和实施例的在NoC中搜索潜在死锁的方法。
[0014]图5示出了根据本专利技术的各个方面和实施例的图2的NoC中的片段的表示。
[0015]图6示出了根据本专利技术的各个方面和实施例的图4中表示的片段的列表。
[0016]图7示出了根据本专利技术的各个方面和实施例的循环检测方法。
[0017]图8示出了根据本专利技术的各个方面和实施例的用于解决NoC中的死锁的系统的示例。
[0018]图9示出了根据本专利技术的各个方面和实施例的用于解决NoC中的死锁的系统的示例。
具体实施方式
[0019]下面描述说明本专利技术的各个方面和实施例的本技术的各种示例。通常,实例可以任何组合使用所描述的方面。本文中叙述原理,方面和实施例的所有陈述以及其特定实例旨在涵盖其结构和功能等效物两者。所提供的实施例旨在作为非限制性实施例。另外,这些等同物旨在包括当前已知的等同物和将来开发的等同物,即所开发的执行相同功能的任何元件,而与结构无关。
[0020]参考图1,其示出了包括多个核102和104以及在核102和104之间提供基于分组的通信的NoC 110的系统100。向NoC 110提供数据的那些核102被称为发起器102,而从NoC 110接收数据的那些核104被称为目标104。发起器102的示例包括但不限于视频卡、中央处理单元(CPU)、摄像头和直接存储器存取(DMA)。目标104的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、输入/输出(IO)和硬盘驱动器(HDD)。系统1000可以实现为片上系统。
[0021]NoC 110包括与核心102和104接口的多个网络接口单元(NIU)120和122。这些NIU 120负责将若干支持的协议和数据大小转换到分组传输协议和从分组传输协议转换支持的协议和数据大小。与发起器接口的那些NIU被称为发起器NIU 120,而与目标接口的那些NIU被称为目标NIU 122。
[0022]NoC 110还包括其它组件130,例如交换机、宽度适配器、防火墙、时钟适配器、速率适配器、链路探测等。交换机用于在发起器NIU 120和目标NIU 122之间路由事务流。适配器处理在数据宽度、时钟和电源域(例如,CPU电源域)之间的各种转换。缓冲器用于插入流水线元件以跨越长距离或存储分组以处理快速发起器和慢速目标之间的速率适配,反之亦然。这些组件120、122和130可以使用内部NoC传输协议来彼此通信。
[0023]现在参考图2,其示出了具有外部相关性的NoC 210的简单示例。NoC 210包括发起器NIU I0、I1和I2以及目标NIU T0、T1和T2。在该示例中,发起器之一包括外围组件互连快速(PCIe)控制器202,其具有发起器端口和目标端口。发起器NIU I1从控制器202的发起器端口接收数据,而目标NIU T0向控制器202的目标端口发送数据。数据分组经由交换机SW0和SW1从发起器NIUI1流到目标NIU T0。在交换机SW0和SW1之间流动的数据分组的进度取决于在目标NIU T0处、通过PCIe控制器202、通过发起器NIU I1,并且返回到交换机SW0和SW1的进度。PCIe控制器202可能需要将在其目标端口处接收到的数据重新路由到其发起端口,从而创建NoC 210外部的事务相关性。已经发现的是,这种外部相关性可能导致NoC 210内
的死锁。
[0024]根据本文的各个方面和实施例,在NoC的设计期间解决潜在的死锁,而不是在运行时间期间解决实际的死锁。在设计期间解决潜在的死锁改善了系统性能,因为它增加了NoC的数据吞吐量并消除了关闭和重启实现NoC的系统的需要。
[0025]参考图3,其示出了解决具有外部相关性的NoC中的死锁的NoC设计过程。作为示例,NoC将在SoC中实现。
[0026]在框310,由SoC架构师生成SoC规范。该规范提供了用于SoC的芯片定义、技术、域和布局。该规范还定义了NoC和其它NoC约束的不动产。
[0027]在框320,NoC架构师执行NoC设计和组装。从NoC架构师的库中选择知识产权(IP)块,并且实例化所选择的IP。此外,可以执行IP连接和组装、套接字配置和端到性能捕获。此阶段生成NoC描述,其定义IP(来自SoC)及其相关套接字和协议,以及在源与本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种设计片上网络NoC的方法,所述方法包括:搜索在所述NoC的拓扑中的潜在死锁,所述潜在死锁由外部相关性引起,在所述外部相关性中将数据输入到所述NoC中是相关于从所述NoC输出的数据的;以及修改所述NoC拓扑以解决所述潜在死锁。2.根据权利要求1所述的方法,进一步包括从经修改的NoC拓扑生成所述NoC的寄存器传送级RTL描述。3.根据权利要求2所述的方法,其中所述NoC在片上系统SoC中实现,并且所述方法还包括:生成所述NoC的拓扑描述,其中从所述SoC的架构接收外部相关性的描述,并且其中所述NoC拓扑描述和所述外部相关性描述被用于搜索潜在死锁;以及向所述架构提供所述NoC的RTL描述。4.根据权利要求1所述的方法,还包括搜索所述拓扑中的至少一个附加潜在死锁并且修改所述NoC拓扑以解决每个附加死锁。5.根据权利要求4所述的方法,其中所述NoC包括被配置为与发起器NIU接口的多个网络接口单元和被配置为与目标NIU接口的多个网络接口单元,并且其中搜索潜在死锁包括审查所述拓扑以搜索相对于发起器NIU和具有外部相关性的目标NIU来形成循环的片段,如果检测到循环,则检测到潜在死锁。6.根据权利要求5所述的方法,其中对于每个目标NIU,遍历相关片段的链,以确定所述链是否形成循环。7.根据权利要求6所述的方法,其中审查形成循环的片段的所述拓扑包括:创建所述NoC拓扑中的片段的第一列表,其中每个段是所述NoC拓扑中的两个组件之间的定向连接;将具有对发起器NIU的外部相关性的目标NIU之间的片段添加到所述第一列表;针对所述第一列表中的每个片段,创建下游相关片段的第二列表,其中每个相关片段相关于来自上游片段的分组的转发进度,由此创建第二列表集合;以及针对所述拓扑中的每个发起器NIU,遍历相关片段的所述第二列表集合,直到到达没有外部相关的目标NIU或者直到找到至少一个循环为止。8.根据权利要求5所述的方法,其...

【专利技术属性】
技术研发人员:M
申请(专利权)人:阿特里斯公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1