CN114048060A - 死锁环路的检测方法、装置、电子设备和存储介质 - Google Patents

死锁环路的检测方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114048060A
CN114048060A CN202111433210.6A CN202111433210A CN114048060A CN 114048060 A CN114048060 A CN 114048060A CN 202111433210 A CN202111433210 A CN 202111433210A CN 114048060 A CN114048060 A CN 114048060A
Authority
CN
China
Prior art keywords
routing
access
routing nodes
access paths
access path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111433210.6A
Other languages
English (en)
Inventor
杨平
潘于
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111433210.6A priority Critical patent/CN114048060A/zh
Publication of CN114048060A publication Critical patent/CN114048060A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/12Symbolic schematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种应用于片上网络死锁环路的检测方法、装置、电子设备和计算机可读存储介质。片上网络包括多个路由节点和多个设备,该方法包括:确定多个设备之间的多条访问路径,多条访问路径中每条包括选自多个设备中之一的主设备、选自多个设备中之一的从设备以及多个路由节点中至少一个用于连通主设备和从设备的路由节点;叠加多条访问路径,并且识别多个路由节点中的多个有效路由节点,在多条访问路径中,多个有效路由节点每个用于从多个路由节点之一接收数据,也用于向多个路由节点中之一发送数据;以及基于多个有效路由节点,检测是否由多条访问路径导致死锁环路。该方法可以减少检测多条访问路径是否导致死锁环路的时间开销,提高检测效率。

Description

死锁环路的检测方法、装置、电子设备和存储介质
技术领域
本公开的实施例涉及一种应用于片上网络死锁环路的检测方法、装置、电子设备和计算机可读存储介质。
背景技术
随着处理器芯片核数的不断增多,片上系统(System-On-Chip,SoC)已呈现出多核到众核的发展趋势。最近,业界已开发出内含1000核的处理器芯片。在如此大规模的众核系统中,全局互连可导致严重的片上同步出错、不可预知的通信时延以及巨大的功耗开销。为了缓解这些矛盾,片上网络(Network-on-Chip,NoC)的概念被提出,片上网络可以替代传统的总线互连或点到点互连,片上网络成为一种新的片上通信架构。
发明内容
本公开至少一个实施例提供一种应用于片上网络死锁环路的检测方法,片上网络包括多个路由节点和多个设备,方法包括:确定多个设备之间的多条访问路径,多条访问路径中每条包括选自多个设备中之一的主设备、选自多个设备中之一的从设备以及多个路由节点中至少一个用于连通主设备和从设备的路由节点;叠加多条访问路径,并且识别多个路由节点中的多个有效路由节点,在多条访问路径中,多个有效路由节点每个用于从多个路由节点之一接收数据,也用于向多个路由节点中之一发送数据;以及基于所述多个有效路由节点,检测是否由多条访问路径导致死锁环路。
例如,在本公开一实施例提供的检测方法中,基于所述多个有效路由节点,检测是否由所述多条访问路径导致所述死锁环路,包括:根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的有效传输段,其中,每条访问路径包括至少一个传输段,所述有效传输段为用于连接两个有效路由节点的传输段;以及基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测方法中,基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路,包括:确定所述多条访问路径中具有相同的有效传输段的多条目标访问路径;将所述多条目标访问路径合并,以得到访问路径图;基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测方法中,确定所述多条访问路径中具有相同的有效传输段的所述多条目标访问路径,包括:针对每条被选择访问路径,搜索所述被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在;以及响应于所述被选择访问路径中存在至少一个有效传输段在所述其他的访问路径中存在,确定所述被选择访问路径为目标访问路径。
例如,在本公开一实施例提供的检测方法中,针对每条被选择访问路径,搜索所述被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在,包括:基于每条被选择访问路径,确定所述被选择访问路径中的每个有效传输段的访问路径集合,其中,所述访问路径集合中的元素为包含所述有效传输段的各个访问路径;以及响应于所述被选择访问路径中的至少一个有效传输段的访问路径集合中存在多个元素,则确定所述至少一个有效传输段在其他的访问路径中存在。
例如,在本公开一实施例提供的检测方法中,基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路,包括:确定所述访问路径图中每个有效路由节点的下一级路由节点,其中,所述下一级路由节点为与所述有效路由节点相邻的路由节点,并且所述有效路由节点用于向所述下一级路由节点发送数据;确定所述访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量;确定所述访问路径图中所有有效路由节点的第二数量;以及响应于所述第一数量与所述第二数量相等,确定所述多条目标访问路径能够导致所述死锁环路。
例如,在本公开一实施例提供的检测方法中,确定所述访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量,包括:响应于所述访问路径图中每个有效路由节点的下一级路由节点的类型为有效路由节点,将所述下一级路由节点加入下一级节点集合,从而得到每个有效路由节点的下一级节点集合;将每个有效路由节点的所述下一级节点集合中的元素进行合并以得到最终集合;以及将所述最终集合中元素的数量作为所述第一数量。
例如,在本公开一实施例提供的检测方法中,叠加所述多条访问路径,并且识别所述多个路由节点中的所述多个有效路由节点,包括:叠加所述多条访问路径,得到叠加结果;针对所述叠加结果中的每个路由节点,确定所述路由节点是否用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据;以及响应于所述路由节点用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据,确定所述路由节点属于所述多个有效路由节点。
例如,在本公开一实施例提供的检测方法中,所述访问路径图存在多个,基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路,包括:分别基于每个访问路径图,检测所述每个访问路径图中是否由所述多条目标访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测方法中,根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的所述有效传输段,包括:根据叠加所述多条访问路径所得到的叠加结果,确定所述多条访问路径每条的访问路径子图;对每条所述访问路径子图进行分析,以得到所述多个有效路由节点之间的所述有效传输段。
例如,在本公开一实施例提供的检测方法中,还包括获取所述片上网络的路由信息;确定所述多个设备之间的所述多条访问路径,包括:基于所述路由信息,确定所述多个设备之间的所述多条访问路径。
本公开至少一个实施例提供一种应用于片上网络死锁环路的检测装置,片上网络包括多个路由节点和多个设备,包括:路径确定单元,配置为确定所述多个设备之间的多条访问路径,所述多条访问路径每条包括选自所述多个设备中之一的主设备、选自所述多个设备中之一的从设备以及所述多个路由节点中至少一个用于连通所述主设备和所述从设备的路由节点;识别单元,配置为叠加所述多条访问路径,并且识别所述多个路由节点中的多个有效路由节点,其中,在所述多条访问路径中,所述有效路由节点用于从所述多个路由节点之一接收数据,也用于向所述多个路由节点中之一发送数据;以及检测单元,配置为基于所述多个有效路由节点,检测是否由所述多条访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,检测单元包括:有效传输段确定子单元,配置为根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的有效传输段,每条访问路径包括至少一个传输段,用于连接两个有效路由节点的传输段为所述有效传输段;以及死锁检测子单元,配置为基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,死锁检测子单元包括:目标路径确定子单元,配置为确定所述多条访问路径中具有相同的有效传输段的多条目标访问路径;合并子单元,配置为将所述多条目标访问路径合并,以得到访问路径图;死锁环路检测子单元,配置为基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,目标路径确定子单元包括:搜索子单元,配置为针对每条被选择访问路径,搜索所述被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在;以及目标确定子单元,配置为响应于所述被选择访问路径中存在至少一个有效传输段在所述其他的访问路径中存在,确定所述被选择访问路径为目标访问路径。
例如,在本公开一实施例提供的检测装置中,搜索子单元包括:路径集合确定子单元,配置为基于每条被选择访问路径,确定所述被选择访问路径中的每个有效传输段的访问路径集合,其中,所述访问路径集合中的元素为包含所述有效传输段的各个访问路径;以及判断子单元,配置为响应于所述被选择访问路径中的至少一个有效传输段的访问路径集合中存在多个元素,则确定所述至少一个有效传输段在其他的访问路径中存在。
例如,在本公开一实施例提供的检测装置中,死锁环路检测子单元包括:第一确定子单元,配置为确定所述访问路径图中每个有效路由节点的下一级路由节点,其中,所述下一级路由节点为与所述有效路由节点相邻的路由节点,并且所述有效路由节点用于向所述下一级路由节点发送数据;第二确定子单元,配置为确定所述访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量;第三确定子单元,配置为确定所述访问路径图中所有有效路由节点的第二数量;以及第四确定子单元,配置为响应于所述第一数量与所述第二数量相等,确定所述多条目标访问路径能够导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,第二确定子单元包括:下一级节点集合生成子单元,配置为响应于所述访问路径图中每个有效路由节点的下一级路由节点的类型为有效路由节点,将所述下一级路由节点加入下一级节点集合,从而得到每个有效路由节点的下一级节点集合;合并子单元,配置为将每个有效路由节点的所述下一级节点集合中的元素进行合并以得到最终集合;以及统计子单元,配置为将所述最终集合中元素的数量作为所述第一数量。
例如,在本公开一实施例提供的检测装置中,识别单元包括:叠加子单元,配置为叠加所述多条访问路径,得到叠加结果;第五确定子单元,配置为针对所述叠加结果中的每个路由节点,确定所述路由节点是否用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据;以及响应子单元,配置为响应于所述路由节点用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据,确定所述路由节点属于所述多个有效路由节点。
例如,在本公开一实施例提供的检测装置中,死锁环路检测子单元包括环路检测子单元,配置为分别基于每个访问路径图,检测所述每个访问路径图中是否由所述多条目标访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,该装置还包括获取单元,配置为获取所述片上网络的路由信息;路径确定单元包括路径确定子单元,配置为基于所述路由信息,确定所述多个设备之间的所述多条访问路径。
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序指令;其中,所述一个或多个计算机程序指令被存储在所述存储器中,并由处理器执行时实现实现本公开任一实施例提供的应用于片上网络死锁环路的检测方法。
本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的应用于片上网络死锁环路的检测方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了一种NOC系统的基本结构;
图1B示出了一种NOC网络拓扑图;
图1C示出了图1B中的NOC网络拓扑图所形成的死锁环路;
图2示出了本公开至少一个实施例提供的应用于片上网络死锁环路的检测方法的流程图;
图3A示出了本公开至少一个实施例提供的图2中步骤S20的方法流程图;
图3B示出了对叠加结果进行标记后的网络拓扑图;
图4A示出了本公开至少一个实施例提供的图2中步骤S30的方法流程图;
图4B示出了图1B中主设备M的访问路径子图;
图4C示出了图1B中主设备N的访问路径子图;
图4D示出了图1B中主设备L的访问路径子图;
图4E示出了本公开至少一个实施例提供的图4A中步骤S32的方法流程图;
图5示出了本公开至少一个实施例提供的图4E中步骤S321的方法流程图;
图6示出了本公开至少一个实施例提供的经多条目标访问路径合并得到的合并结果的示意图;
图7A示出了本公开至少一个实施例提供的图4E中步骤S323的方法流程图;
图7B示出了本公开至少一个实施例提供的图7A中步骤S3232的方法流程图;
图8示出了本公开至少一个实施例提供的一种应用于片上网络死锁环路的检测装置的示意框图;
图9A示出了本公开至少一个实施例提供的一种电子设备的示意框图;
图9B示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
图10示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
目前NoC还没有统一的标准化定义。一种狭义的定义将NoC理解为实现芯片各模块之间通信功能的网络架构,它由路由节点、通信链路和网络接口(Network Interface,NI)组成。另一种广义的定义将NoC定义为单芯片上基于网络通信的整个多处理器系统,它包括处理单元(Process Element,PE)和通信网络。处理单元实现广义的计算功能,它可以为微处理器核,也可以为存储单元或其它功能部件,通信网络与上述狭义的NoC的定义相同,负责各PE间的互连。在本文中NOC为上述广义的定义。
当前NoC系统内各模块的连接与数据传输,主要是由路由节点(router)通过各种拓扑结构实现连接,从而为各主设备(master)访问各从设备(slave)提供传输通道。在复杂的拓扑结构中,由于多条访问路径的叠加,有可能在NoC拓扑结构中形成访问环路。如果该访问环路中的某些路由节点在大带宽数据传输时因某些原因传输遇阻,则可能逐级消耗完各路由节点内的缓存,同时因各路由节点内的数据包传输所需的缓存资源的获取和释放形成了相互依赖的关系而无法得到新的缓存资源,从而数据包的传输阻塞状态无法解决,这一状态称之为死锁。
对NOC的拓扑结构和传输路径是否会形成死锁环路进行检测是NoC拓扑结构设计和路由传输路径进行优化的必需环节。
图1A示出了一种NOC系统的基本结构。
如图1A所示,该NOC系统包括主设备1A、主设备1B、主设备5A、路由节点1、路由节点2、从设备1A、从设备1B、从设备2A、从设备2B。
如图1A所示,主设备1A和主设备1B连接在路由节点1上,而主设备5A连接在路由节点2上。在实际的NoC系统中,这些主设备(例如,主设备1A、主设备1B和主设备5A)可以是CPU核、直接存储器访问(Direct Memory Access,DMA)和特殊算法模块,其负责发起读写操作请求。
如图1A所示,从设备1A、从设备1B连接在路由节点1上,而从设备2A、从设备2B连接在路由节点2上,这些从设备可以是输入输出(Input/Output,IO)接口,也可以是双倍速率同步动态随机存储器(Double Data Rate,DDR)等存储设备和显示单元等。路由节点1与路由节点2之间也有单独的端口连接,以实现主设备1A、主设备1B访问从设备2A和从设备2B。路由节点将根据主设备发出的读写请求中的地址信息或者从设备的地址信息,通过计算或者查找表的方式确定读写请求的输出端口以确保该读写请求到达访问的从设备,从设备接收到读写请求并完成相应的操作后,再将应答的数据和状态信息通过路由节点返回给发起该读写请求的主设备,返回的路由路径可以是原路返回,也可以根据系统实际应用需求选择其他路由路径返回。
图1B示出了一种NOC网络拓扑图。
如图1B所示,在该NOC网络拓扑图中,椭圆形图标表示发起数据传输的主设备(L、M、N),圆形图标表示接受传输数据的从设备(J、K、P),而图中的六边形图标、五边形图标和正方形图标表示路由器节点设备(A、B、C、D、E、F、G、H),虚线箭头线表示非路由节点间的传输段,实线箭头线表示路由节点间的传输段。
需要理解的是,虽然在图1B中通过不同的图标、不同的箭头线来区分不同的设备和不同的传输段,但是图1B仅仅是为了便于理解本公开而示出的不同图标。在实际的NOC网络拓扑图中,往往不会对不同的设备的不同的传输段进行区分。
针对各主设备访问各从设备的所有路径中的每个路径,每两个相邻的设备节点(包括路由节点、主设备和从设备等)之间的传输段进行唯一的命名或编号,如图中M到A的传输段命名为L_MA,或者编号为1。需要注意的是传输段是有方向的,如图中H到A的传输段编号为13,但A到H的传输段编号为14。通过以上方法,将由多条访问路径叠加而形成的例如图1B所示的NoC访问网络拓扑内的所有设备节点间的传输段进行命名或编号。
由于多条访问路径叠加,形成了下文图1C所示的从A到E、F、H再回到A的访问环路,从而在该访问环路中的某些设备节点在大带宽数据传输时因某些原因传输遇阻时容易导致本文所描述的死锁环路。
在死锁检测方面,例如可以采用全路径逐级搜索法。该方法主要是将所有路径进行叠加,搜索出所有路由节点和其传输端口,并将各路由节点间的传输段进行编号,然后从一个路由节点开始进行逐级搜索并将搜索过的传输段进行标记,如果在搜索过程中,搜索到尽头,则再逐级后退,当搜索到的传输段已经被标记过时,则说明传输路径形成了死锁环路。
图1C示出了图1B中的NOC网络拓扑图所形成的死锁环路。
如图1C所示,访问路径A_E_F_H和F_H_A_E能够导致死锁环路。也即,在图1B所示的NOC网络拓扑图中,能够形成死锁环路的节点只有A、E、F和H节点。
上述全路径逐级搜索法需要按照访问路径逐级搜索,遍历所有节点,导致浪费大量的时间和资源在无效搜索上,搜索速度慢,效率低。
本公开至少一个实施例提供了一种应用于片上网络死锁环路的检测方法、装置、电子设备和计算机可读存储介质。片上网络包括多个路由节点和多个设备,该方法包括:确定多个设备之间的多条访问路径,多条访问路径中每条包括选自多个设备中之一的主设备、选自多个设备中之一的从设备以及多个路由节点中至少一个用于连通主设备和从设备的路由节点;叠加多条访问路径,并且识别多个路由节点中的多个有效路由节点,在多条访问路径中,多个有效路由节点每个用于从多个路由节点之一接收数据,也用于向多个路由节点中之一发送数据;以及基于多个有效路由节点,检测是否由多条访问路径导致死锁环路。该方法可以减少检测多条访问路径是否导致死锁环路的时间开销,提高检测效率。
图2示出了本公开至少一个实施例提供的应用于片上网络死锁环路的检测方法的流程图。
如图2所示,该方法可以包括步骤S10~步骤S30。
步骤S10:确定多个设备之间的多条访问路径。
步骤S20:叠加多条访问路径,并且识别多个路由节点中的多个有效路由节点。
步骤S30:基于多个有效路由节点,检测是否由多条访问路径导致死锁环路。
该检测方法能够从多条访问路径中识别出多个有路由节点,并且根据多个有效路由节点检测是否由多条访问路径导致死锁环路,从而可以排除多条访问路径中不会产生死锁环路的无效路由节点对死锁环路的检测的干扰,进而降低了时间和资源在无效搜索上的开销,达到了提高检测效率,节省检测时间和资源的技术效果。
在本公开的一些实施例中,片上网络包括多个路由节点和多个设备。
对于步骤S10,多个设备可以包括至少一个主设备和至少一个从设备。多条访问路径中每条包括选自多个设备中之一的主设备、选自多个设备中之一的从设备以及多个路由节点中至少一个用于连通主设备和从设备的路由节点。例如,在图1B所示的NOC网络拓扑图中,多条访问路径可以包括主设备M访问从设备K的访问路径、主设备L访问从设备J的访问路径等。
如图2所示,该检测方法除包括步骤S10~S30之外,还进一步包括步骤S40。步骤S40例如可以在步骤S10之前执行。
步骤S40:获取片上网络的路由信息。
在该实施例中,步骤S10可以是基于路由信息,确定多个设备之间的多条访问路径。
路由信息包括片上网络中每个主设备访问每个从设备的访问路径,从而通过读取片上网络的路由信息可以得到该片上网络的多条访问路径。例如,路由信息可以是路由表,通过路由表记录每个主设备分别访问每个从设备的访问路径。
例如,在图1B所示的NOC网络拓扑图对应的片上网络的路由信息包括:主设备M访问从设备K的访问路径为M-A-B-C-K,主设备M访问从设备J的访问路径为M-A-H-J,其他各条访问路径如图1B所示,此处不一一列举。
对于步骤S20,例如,将路由信息中记录的多条访问路径叠加而得到图1B所示的NOC网络拓扑图。
在步骤S20中,在多条访问路径中,多个有效路由节点每个用于从多个路由节点之一接收数据,也用于向多个路由节点中之一发送数据。
本公开的发明人发现,真正能够导致死锁环路的路由节点有一个特点,这个特点就是这些路由节点既用于从多个路由节点之一接收数据,也用于向多个路由节点中之一发送数据。在本公开中将符合上述特点的路由节点称之为有效路由节点,也称之为级联(Cascaded)路由节点。也即,有效路由节点既是上一级路由节点的接收端,也是下一级路由节点的发送端。例如,图1B中的路由节点E、F、H、A和B等既用于从多个路由节点之一接收数据,也用于向多个路由节点中之一发送数据,因此,路由节点E、F、H、A和B等称之为有效路由节点。
在本公开中将无法既作为接收端有作为发送端的路由节点称之为无效路由节点或者非级联路由节点。例如,路由节点C、路由节点D和路由节点G,只是用于接收其他路由节点的数据的接收端或者用于向其他路由节点发送数据的发送端,而无法既作为发送端又作为接收端,因此路由节点C、路由节点D和路由节点G为无效路由节点。
图3A示出了本公开至少一个实施例提供的图2中步骤S20的方法流程图。
如图3A所示,上述步骤S20可以包括步骤S21~S23。
步骤S21:叠加多条访问路径,得到叠加结果。
例如,叠加结果可以是一个网络拓扑图。
例如,根据多条访问路径中重叠的设备节点(包括路由节点、主设备和从设备等),将多条访问路径组合为一个网络拓扑图。
步骤S22:针对叠加结果中的每个路由节点,确定路由节点是否用于从多个路由节点之一接收数据,并且用于向多个路由节点中之一发送数据。
例如,针对网络拓扑图中的每个路由节点,确定该路由节点是否用于从与该路由节点相邻并且连接的一个路由节点中接收数据,并且确定是否用于向与该路由节点相邻并且连接的另一个路由节点发送数据。
例如,依次确定图1B所示的网络拓扑图中的每个路由节点(A、B、C、D、E、F、G、H)是否用于从多个路由节点之一接收数据,并且用于向多个路由节点中之一发送数据。
步骤S23:响应于路由节点用于从多个路由节点之一接收数据,并且用于向多个路由节点中之一发送数据,确定路由节点属于多个有效路由节点。
例如,路由节点E用于从路由节点A和路由节点D接收数据并且用于向路由节点F发送数据,则路由节点E为有效路由节点。又例如,路由节点A用于从路由节点H接收数据并且向路由节点B或者路由节点H发送数据,则路由节点A为有效路由节点。类似地,路由节点B、路由节点F和路由节点H也是有效路由节点。
例如,路由节点C只用于从路由节点D和路由节点B接收数据,路由节点D只用于向路由节点C和路由节点E发送数据,路由节点G只用于向路由节点F发送数据。因此,路由节点C、路由节点D和路由节点G是无效路由节点。
在本公开的一些实施例中,图3A所示的图2中步骤S20的方法除包括步骤S21~S23之外,还可以进一步地包括:根据识别出的多个有效路由节点对叠加结果进行标记,以基于多个有效路由节点进行死锁环路的检测。
例如,通过标记图标对有效路由节点进行标记。标记图标例如可以是任何形状、颜色等易于辨别的图标。
图3B示出了对叠加结果进行标记后的网络拓扑图。
如图3B所示,空心虚线的图标表示访问路径的主设备或者从设备,其不属于路由节点,也不会形成死锁环路,如图中的设备节点L、设备节点M、设备节点N、设备节点P、设备节点J和设备节点K;空心实线的图标表示只作为了接收端或者发送端的路由节点,这些路由节点没有同时具备发送端和接收端的功能,所以其也不具备形成路由死锁环路的能力,也就是前文所称之为的无效路由节点。具备形成路由死锁环路的有效路由节点如图中的实心实线图标,包括路由节点A、路由节点B、路由节点E、路由节点F和路由节点H。
图4A示出了本公开至少一个实施例提供的图2中步骤S30的方法流程图。
如图4A所示,该步骤S30可以包括步骤S31和步骤S32。
步骤S31:根据叠加多条访问路径所得到的叠加结果,确定多个有效路由节点之间的有效传输段,每条访问路径包括至少一个传输段,有效传输段为用于连接两个有效路由节点的传输段。
步骤S32:基于有效传输段,检测是否由多条访问路径导致死锁环路。
对于步骤S31,例如直接对叠加结果进行分析,从而直接从叠加结果中搜索出有效传输段。
在本公开的另一些实施例中,根据叠加多条访问路径所得到的叠加结果,确定每条访问路径的访问路径子图,以及对每个访问路径子图进行分析而得到每个访问路径子图中的有效传输段。
访问路径子图可以带有上述有效路由节点的标记,从而可以根据有效路由节点的标记来确定每个访问路径子图中的有效传输段。这样可以简洁快速以及准确地查找到有效传输段。
图4B示出了图1B中主设备M的访问路径子图;图4C示出了图1B中主设备N的访问路径子图;图4D示出了图1B中主设备L的访问路径子图。
例如,对于图1B所示的网络拓扑图,主设备M需要访问从设备K、从设备J和从设备P。因此,如图4B所示,在主设备M的访问路径子图中,主设备M的访问路径包括三条,该三条访问路径分别用于访问从设备K、从设备J和从设备P。
类似地,主设备N需要访问从设备K和从设备J。因此,如图4C所示,在主设备N的访问路径子图中,主设备N的访问路径包括两条,该两条访问路径分别用于访问从设备K和从设备J。主设备L需要访问从设备K、从设备J和从设备P。因此,如图4D所示,在主设备L的访问路径子图中,主设备L的访问路径包括三条,该三条访问路径分别用于访问从设备K、从设备J和从设备P。
在得到每个访问路径的访问路径子图之后,可以对每个访问路径子图中的传输段进行标记,以便于分别对每个访问路径子图进行分析,从而得到每个访问路径子图中的有效传输段。例如,根据传输段的两个路由节点以及传输的方向对有效传输段进行区分标记。例如,路由节点A至路由节点B的传输段标记为L_AB,而路由节点B至路由节点A的传输段标记为L_BA,路由节点F至路由节点H的传输段标记为L_FH。
例如,对于主设备M的访问路径子图中的主设备M访问从设备K的访问路径P1中,传输段L_AB连接两个有效路由节点A和有效路由节点B,因此,传输段L_AB为有效路由传输段。
又例如,对于主设备N的访问路径子图中主设备N访问从设备K的访问路径P4中,不存在连接两个有效路由节点的传输段,因此在访问路径P4中不存在有效路由传输段。
对于步骤S32,本公开的发明人发现只有共同的传输段的访问路径才可能形成死锁环路。例如,在图1B所示的情景中,虽然访问路径E_F_H和访问路径H_A_E有共同的路由节点,但这两个访问路径并不能构成死锁环路,而访问路径A_E_F_H和访问路径F_H_A_E具有共同的传输段,才可以合并成为一条访问路径,并可能形成死锁环路。基于此,本公开至少一个实施例提供了一种基于有效传输段检测是否由多条访问路径导致死锁环路的方法。
图4E示出了本公开至少一个实施例提供的图4A中步骤S32的方法流程图。
如图4E所示,步骤S32可以包括步骤S321~S323。
步骤S321:确定多条访问路径中具有相同的有效传输段的多条目标访问路径。
步骤S322:将多条目标访问路径合并,以得到访问路径图。
步骤S323:基于访问路径图,检测是否由多条目标访问路径导致死锁环路。
该方法不仅排除了无效路由节点的干扰,而且将具有相同有效传输段的目标访问路径合并,从而将不可能产生死锁环路的传输段进行筛除,进一步大幅缩小了需要分析的路由节点数量,提高了检测效率。
对于步骤S321,例如遍历每个有效传输段,以确定该有效传输段在哪些访问路径中存在,若该有效传输段在至少两条访问路径中存在,则该有效传输段所在的访问路径为目标访问路径。
例如,在图4B-4D所示的情景中,有效传输段L_AB在访问路径P1和访问路径P8中存在,则访问路径P1和访问路径P8均为目标访问路径。
又例如,在图4B-4D所示的情景中,访问路径P4和访问路径P6不存在共同的(或重复的)有效传输段,则访问路径P4和访问路径P6均不是目标访问路径。
图5示出了本公开至少一个实施例提供的图4E中步骤S321的方法流程图。
如图5所示,该步骤S321包括步骤S3211和步骤S3212。
步骤S3211:针对每条被选择访问路径,搜索被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在。
例如,被选择访问路径为存在有效传输段的访问路径。例如,图4B-4D中的访问路径P1、P2、P3、P5、P7和P8可以作为被选择访问路径。
例如,遍历每个被选择访问路径,确定被选择访问路径中的每个有效传输段是否在其他的访问路径中存在。
例如,被选择访问路径为P3,被选择访问路径为P3包括有效传输段L_AE和有效传输段L_EF。对于有效传输段L_AE,只有访问路径P3存在该有效传输段L_AE,也即,其他的访问路径中均不包含有效传输段L_AE。而对于有效传输段L_EF,则不仅在被选择访问路径为P3中存在,还在访问路径P5中存在。
又例如,被选择访问路径为P2,被选择访问路径为P2包括有效传输段L_AH。对于有效传输段L_AH,只有被选择访问路径P2存在该有效传输段L_AH,也即,其他的访问路径中均不包含有效传输段L_AH。
在本公开的一些实施例中,步骤S3211可以包括:基于每条被选择访问路径,确定被选择访问路径中的每个有效传输段的访问路径集合,访问路径集合中的元素为包含有效传输段的各个访问路径;以及响应于被选择访问路径中的至少一个有效传输段的访问路径集合中存在多个元素,则确定至少一个有效传输段在其他的访问路径中存在。该方法可以准确并且快速地查找出每个有效传输段是否在多个访问路径中存在。
例如,对于有效传输段L_FH,访问路径P5、访问路径P7和访问路径P8这三条访问路径都包括该有效传输段L_FH,则可建立访问路径集合L_FH={P5,P7,P8},同理,按照此规则,将各有效路由节点间的有效传输段均建立访问路径集合。若访问路径集合中存在多个元素,则确定有效传输段在多个访问路径中存在,也即,确定至少一个有效传输段在其他的访问路径中也存在。在本公开的一些实施例中,访问路径集合可以通过数组来表示。
在本公开的一些实施例中,若当前的被选择访问路径中的有效传输段已经在之前的被选择访问路径中确定过访问路径集合,那么当前的被选择访问路径中的该有效传输段可以被跳过,以进一步地提高检测效率。
步骤S3212:响应于被选择访问路径中存在至少一个有效传输段在其他的访问路径中存在,确定被选择访问路径为目标访问路径。
例如,由于被选择访问路径为P3存在至少一个有效传输段(即,有效传输段L_EF)在其他的访问路径(即,访问路径P5)中存在,则被选择访问路径为P3为目标访问路径。
又例如,由于被选择访问路径为P2中的所有有效传输段均不在其他的访问路径中存在,因此访问路径P2不是目标访问路径。
当然,本领域技术人员也可以通过其他可行的方式来确定目标访问路径,而不局限于图5所示出的方法。
对于步骤S322,例如,访问路径P1、P3、P5、P7和P8为存在相同传输段的目标访问路径,则将目标访问路径P1、P3、P5、P7和P8合并,以得到一个访问路径图。
图6示出了本公开至少一个实施例提供的经多条目标访问路径合并得到的合并结果的示意图。
如图6所示,该合并结果600中包括访问路径图610、访问路径P2和访问路径P4。
访问路径图610是对访问路径P1、P3、P5、P7和P8合并得到的。访问路径P2和访问路径P4无法与其他的访问路径进行合并。
如上文所述,由于只有共同传输段的访问路径才可能导致死锁环路,因此在检测多条访问路径是否导致死锁环路时,只需要确定访问路径图610是否导致死锁环路即可,不需要考虑访问路径P2和P4。
对于步骤S323,确定访问路径图610是否导致死锁环路。若访问路径图610能够导致死锁环路,则多条访问路径能够导致死锁环路。
在本公开的一些实施例中,访问路径图存在多个,步骤S323包括:分别基于每个访问路径图,检测每个访问路径图中是否由多条目标访问路径导致死锁环路。
例如,在步骤S322将多条目标访问路径合并后得到多个访问路径图,则分别对每个访问路径图进行分析,以检测每个访问路径图中是否由多条目标访问路径导致死锁环路。
例如,假设还存在另一条访问路径P9,该访问路径P9与访问路径P4可以合并为另一个访问路径图,则步骤S322的合并结果包括2个访问路径图,则在步骤S323分别对访问路径图610和访问路径P9与访问路径P4合并得到的另一个访问路径图进行分析,以检测否由多条目标访问路径导致死锁环路。
图7A示出了本公开至少一个实施例提供的图4E中步骤S323的方法流程图。
如图7A所示,步骤S323可以包括步骤S3231~S3234。
步骤S3231:确定访问路径图中每个有效路由节点的下一级路由节点,下一级路由节点为与有效路由节点相邻的路由节点,并且有效路由节点用于向下一级路由节点发送数据。
步骤S3232:确定访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量。
步骤S3233:确定访问路径图中所有有效路由节点的第二数量。
步骤S3234:响应于第一数量与第二数量相等,确定多条目标访问路径能够导致死锁环路。
该方法通过计算有效路由节点的数量和下一级路由节点中类型为有效路由节点的数量是否相等,即可得出是否存在死锁环路的结论,而无需采用反复多次进行逐级搜索,极大地降低了检测时间。
对于步骤S3231,例如如上所述,在访问路径图610中所有有效路由节点包括路由节点A、路由节点B、路由节点E、路由节点F和路由节点H。
下一级路由节点,例如是与有效路由节点相邻的并且用于接收来自有效路由节点的数据的路由节点。例如,有效路由节点A的下一级路由节点包括路由节点B和路由节点E。例如,有效路由节点B的下一级路由节点包括路由节点C。
对于步骤S3232,在本公开的一些实施例中,例如可以将每个有效路由节点的下一级路由节点形成下一级路由节点集合。然后,针对每个下一级路由节点集合,对下一级路由节点集合中的每个路由节点进行识别,确定该路由节点的类型是否为有效路由节点,若该路由节点的类型不是有效路由节点,则从下一级路由节点集合中将该路由节点删除,从而得到下一级节点集合。接下来,统计所有下一级节点集合中元素的总数量,从而得到第一数量。
图7B示出了本公开至少一个实施例提供的图7A中步骤S3232的方法流程图。
如图7B所示,该方法包括步骤S701~S703。
步骤S701:响应于访问路径图中每个有效路由节点的下一级路由节点的类型为有效路由节点,将下一级路由节点加入下一级节点集合,从而得到每个有效路由节点的下一级节点集合。
步骤S702:将每个有效路由节点的下一级节点集合中的元素进行合并以得到最终集合。
步骤S703:将最终集合中元素的数量作为第一数量。
对于步骤S701,例如,对每个有效路由节点的下一级路由节点进行分析,以确定下一级路由节点是否为有效路由节点,或者直接读取对下一级路由节点的标记图标,若该标记图标为有效路由节点的标记图标(例如,六边形图标),则确定该下一级路由节点为有效路由节点。
例如,路由节点A的下一级有效路由节点为B和E,则路由节点A的下一级节点集合为{B、E}。有效路由节点B的下一级没有有效路由节点,则有效路由节点B的下一级节点集合为空。有效路由节点E的下一级有效路由节点为F,则路由节点E的下一级节点集合为{F}。类似地,可以确定有效路由节点F的下一级节点集合为{H},有效路由节点H的下一级节点集合为{A}。
对于步骤S702,例如,合并后的访问路径610的有效路由节点为A、B、E、F、H共计5个路由节点,这5个节点的下一级节点集合分别为{B,E}、{}、{F}、{H}、{A},所有下一级节点集合中的数组元素进行合并后,得到最终集合Z={B、E、F、H、A}。
对于步骤S703,例如,最终集合Z={B、E、F、H、A},其元素个数是5个,因此,第一数量为5个。
对于步骤S3233,例如,如上所述,访问路径图610中所有有效路由节点为A、B、E、F、H,共计5个路由节点。因此,第二数量为5个。
对于步骤S3234,若第一数量与第二数量相等,确定多条目标访问路径能够导致死锁环路。
通过对网络拓扑图的分析,发明人发现,存在死锁环路的访问路径图中有效路由节点的数量和有效路由节点的下一级节点集合中元素的数量是相等的。即,假设当前合并后的访问路径中,有n个有效路由节点,如果存在路由死锁环路,则其下一级节点集合中元素的数量也为n,如果不存在环路,则其其下一级节点中元素的数量小于n。n为大于0的整数。
以图6为例,合并后的访问路径图610的有效路由节点的第二数量为5个,第一数量为5个,所以该访问路径图610内存在路由死锁环路。而在P2访问路径中,有效路由节点有A和H,A的下一级节点集合为{H},而H路由节点没有下一级路由节点,所以其下一级节点集合为空,所以有效路由节点的数量为2个,但下一级节点集合的元素的数量为1,所以P2访问路径不存在路由死锁环路。
图8示出了本公开至少一个实施例提供的一种应用于片上网络死锁环路的检测装置800的示意框图。
例如,如图8所示,该检测装置800包括路径确定单元810、识别单元820和检测单元830。该片上网络包括多个路由节点和多个设备。
路径确定单元810配置为确定所述多个设备之间的多条访问路径,所述多条访问路径每条包括选自所述多个设备中之一的主设备、选自所述多个设备中之一的从设备以及所述多个路由节点中至少一个用于连通所述主设备和所述从设备的路由节点。
路径确定单元810例如可以执行图2描述的步骤S10。
识别单元820配置为叠加所述多条访问路径,并且识别所述多个路由节点中的多个有效路由节点,其中,在所述多条访问路径中,所述有效路由节点用于从所述多个路由节点之一接收数据,也用于向所述多个路由节点中之一发送数据。
识别单元820例如可以执行图2描述的步骤S20。
检测单元830配置为基于所述多个有效路由节点,检测是否由所述多条访问路径导致所述死锁环路。
检测单元830例如可以执行图2描述的步骤S30。
该检测装置800可以减少检测多条访问路径是否导致死锁环路的时间开销,提高检测效率。
例如,在本公开一实施例提供的检测装置中,检测单元包括有效传输段确定子单元和死锁检测子单元。有效传输段确定子单元配置为根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的有效传输段,每条访问路径包括至少一个传输段,用于连接两个有效路由节点的传输段为所述有效传输段。死锁检测子单元配置为基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,死锁检测子单元包括:目标路径确定子单元、合并子单元和死锁环路检测子单元。目标路径确定子单元,配置为确定所述多条访问路径中具有相同的有效传输段的多条目标访问路径。合并子单元配置为将所述多条目标访问路径合并,以得到访问路径图。死锁环路检测子单元配置为基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,目标路径确定子单元包括:搜索子单元、目标确定子单元。搜索子单元配置为针对每条被选择访问路径,搜索所述被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在。目标确定子单元配置为响应于所述被选择访问路径中存在至少一个有效传输段在所述其他的访问路径中存在,确定所述被选择访问路径为目标访问路径。
例如,在本公开一实施例提供的检测装置中,搜索子单元包括路径集合确定子单元、判断子单元。路径集合确定子单元配置为基于每条被选择访问路径,确定所述被选择访问路径中的每个有效传输段的访问路径集合,访问路径集合中的元素为包含所述有效传输段的各个访问路径。判断子单元配置为响应于所述被选择访问路径中的至少一个有效传输段的访问路径集合中存在多个元素,则确定所述至少一个有效传输段在其他的访问路径中存在。
例如,在本公开一实施例提供的检测装置中,死锁环路检测子单元包括:第一确定子单元、第二确定子单元、第三确定子单元以及第四确定子单元。第一确定子单元配置为确定所述访问路径图中每个有效路由节点的下一级路由节点,下一级路由节点为与所述有效路由节点相邻的路由节点,并且所述有效路由节点用于向所述下一级路由节点发送数据。第二确定子单元配置为确定所述访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量。第三确定子单元配置为确定所述访问路径图中所有有效路由节点的第二数量。第四确定子单元配置为响应于所述第一数量与所述第二数量相等,确定所述多条目标访问路径能够导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,第二确定子单元包括下一级节点集合生成子单元、合并子单元和统计子单元。下一级节点集合生成子单元配置为响应于所述访问路径图中每个有效路由节点的下一级路由节点的类型为有效路由节点,将所述下一级路由节点加入下一级节点集合,从而得到每个有效路由节点的下一级节点集合。合并子单元配置为将每个有效路由节点的所述下一级节点集合中的元素进行合并以得到最终集合。统计子单元配置为将所述最终集合中元素的数量作为所述第一数量。
例如,在本公开一实施例提供的检测装置中,识别单元包括叠加子单元、第五确定子单元以及响应子单元。叠加子单元配置为叠加所述多条访问路径,得到叠加结果。第五确定子单元配置为针对所述叠加结果中的每个路由节点,确定所述路由节点是否用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据。响应子单元配置为响应于所述路由节点用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据,确定所述路由节点属于所述多个有效路由节点。
例如,在本公开一实施例提供的检测装置中,死锁环路检测子单元包括环路检测子单元,配置为分别基于每个访问路径图,检测所述每个访问路径图中是否由所述多条目标访问路径导致所述死锁环路。
例如,在本公开一实施例提供的检测装置中,该装置还包括获取单元,配置为获取所述片上网络的路由信息。路径确定单元包括路径确定子单元,配置为基于所述路由信息,确定所述多个设备之间的所述多条访问路径。
例如,路径确定单元810、识别单元820和检测单元830可以为硬件、软件、固件以及它们的任意可行的组合。例如,路径确定单元810、识别单元820和检测单元830可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,检测装置800的各个单元与前述的检测方法的各个步骤对应,关于检测装置800的具体功能可以参考关于检测方法的相关描述,此处不再赘述。图8所示的检测装置8000的组件和结构只是示例性的,而非限制性的,根据需要,该检测装置800还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的检测方法的指令。该电子设备可以减少检测多条访问路径是否导致死锁环路的时间开销,提高检测效率。
图9A为本公开一些实施例提供的一种电子设备的示意框图。如图9A所示,该电子设备900包括处理器910和存储器920。存储器920用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器910用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器910运行时可以执行上文所述的检测方法中的一个或多个步骤。存储器920和处理器910可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器910可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X96或ARM架构等。处理器910可以为通用处理器或专用处理器,可以控制电子设备900中的其它组件以执行期望的功能。
例如,存储器920可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器910可以运行一个或多个计算机程序模块,以实现电子设备900的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备900的具体功能和技术效果可以参考上文中关于检测方法的描述,此处不再赘述。
图9B为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备1000例如适于用来实施本公开实施例提供的检测方法。电子设备1000可以是终端设备等。需要注意的是,图9B示出的电子设备1000仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图9B所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1010,其可以根据存储在只读存储器(ROM)1020中的程序或者从存储装置1080加载到随机访问存储器(RAM)1030中的程序而执行各种适当的动作和处理。在RAM 1030中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1010、ROM 1020以及RAM 1030通过总线1040彼此相连。输入/输出(I/O)接口1050也连接至总线1040。
通常,以下装置可以连接至I/O接口1050:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1060;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1070;包括例如磁带、硬盘等的存储装置1080;以及通信装置1090。通信装置1090可以允许电子设备1000与其他电子设备进行无线或有线通信以交换数据。虽然图9B示出了具有各种装置的电子设备1000,但应理解的是,并不要求实施或具备所有示出的装置,电子设备1000可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述检测方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述检测方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1090从网络上被下载和安装,或者从存储装置1080安装,或者从ROM 1020安装。在该计算机程序被处理装置1010执行时,可以实现本公开实施例提供的检测方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的检测方法。利用该计算机可读存储介质,可以减少检测多条访问路径是否导致死锁环路的时间开销,提高检测效率。
图10为本公开一些实施例提供的一种存储介质的示意图。如图10所示,存储介质1100用于存储非暂时性计算机可读指令1110。例如,当非暂时性计算机可读指令1110由计算机执行时可以执行根据上文所述的检测方法中的一个或多个步骤。
例如,该存储介质1100可以应用于上述电子设备900中。例如,存储介质1100可以为图9A所示的电子设备900中的存储器920。例如,关于存储介质1100的相关说明可以参考图9A所示的电子设备900中的存储器920的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种应用于片上网络死锁环路的检测方法,其中,所述片上网络包括多个路由节点和多个设备,所述方法包括:
确定所述多个设备之间的多条访问路径,其中,所述多条访问路径中每条包括选自所述多个设备中之一的主设备、选自所述多个设备中之一的从设备以及所述多个路由节点中至少一个用于连通所述主设备和所述从设备的路由节点;
叠加所述多条访问路径,并且识别所述多个路由节点中的多个有效路由节点,其中,在所述多条访问路径中,所述多个有效路由节点每个用于从所述多个路由节点之一接收数据,也用于向所述多个路由节点中之一发送数据;以及
基于所述多个有效路由节点,检测是否由所述多条访问路径导致所述死锁环路。
2.根据权利要求1所述的方法,其中,基于所述多个有效路由节点,检测是否由所述多条访问路径导致所述死锁环路,包括:
根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的有效传输段,其中,每条访问路径包括至少一个传输段,所述有效传输段为用于连接两个有效路由节点的传输段;以及
基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路。
3.根据权利要求2所述的方法,其中,基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路,包括:
确定所述多条访问路径中具有相同的有效传输段的多条目标访问路径;
将所述多条目标访问路径合并,以得到访问路径图;
基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路。
4.根据权利要求3所述的方法,其中,确定所述多条访问路径中具有相同的有效传输段的所述多条目标访问路径,包括:
针对每条被选择访问路径,搜索所述被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在;以及
响应于所述被选择访问路径中存在至少一个有效传输段在所述其他的访问路径中存在,确定所述被选择访问路径为目标访问路径。
5.根据权利要求4所述的方法,其中,针对每条被选择访问路径,搜索所述被选择访问路径中是否存在至少一个有效传输段在其他的访问路径中存在,包括:
基于每条被选择访问路径,确定所述被选择访问路径中的每个有效传输段的访问路径集合,其中,所述访问路径集合中的元素为包含所述有效传输段的各个访问路径;以及
响应于所述被选择访问路径中的至少一个有效传输段的访问路径集合中存在多个元素,确定所述至少一个有效传输段在其他的访问路径中存在。
6.根据权利要求3所述的方法,其中,基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路,包括:
确定所述访问路径图中每个有效路由节点的下一级路由节点,其中,所述下一级路由节点为与所述有效路由节点相邻的路由节点,并且所述有效路由节点用于向所述下一级路由节点发送数据;
确定所述访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量;
确定所述访问路径图中所有有效路由节点的第二数量;以及
响应于所述第一数量与所述第二数量相等,确定所述多条目标访问路径能够导致所述死锁环路。
7.根据权利要求6所述的方法,其中,确定所述访问路径图中所有有效路由节点的下一级路由节点中类型为有效路由节点的第一数量,包括:
响应于所述访问路径图中每个有效路由节点的下一级路由节点的类型为有效路由节点,将所述下一级路由节点加入下一级节点集合,从而得到每个有效路由节点的下一级节点集合;
将每个有效路由节点的所述下一级节点集合中的元素进行合并以得到最终集合;以及
将所述最终集合中元素的数量作为所述第一数量。
8.根据权利要求1所述的方法,其中,叠加所述多条访问路径,并且识别所述多个路由节点中的所述多个有效路由节点,包括:
叠加所述多条访问路径,得到叠加结果;
针对所述叠加结果中的每个路由节点,确定所述路由节点是否用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据;以及
响应于所述路由节点用于从所述多个路由节点之一接收数据,并且用于向所述多个路由节点中之一发送数据,确定所述路由节点属于所述多个有效路由节点。
9.根据权利要求3所述的方法,其中,所述访问路径图存在多个,
基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路,包括:
分别基于每个访问路径图,检测所述每个访问路径图中是否由所述多条目标访问路径导致所述死锁环路。
10.根据权利要求2所述的方法,其中,根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的所述有效传输段,包括:
根据叠加所述多条访问路径所得到的叠加结果,确定所述多条访问路径每条的访问路径子图;
对每条所述访问路径子图进行分析,以得到所述多个有效路由节点之间的所述有效传输段。
11.根据权利要求1所述的方法,还包括:
获取所述片上网络的路由信息;
确定所述多个设备之间的所述多条访问路径,包括:
基于所述路由信息,确定所述多个设备之间的所述多条访问路径。
12.一种应用于片上网络死锁环路的检测装置,其中,所述片上网络包括多个路由节点和多个设备,所述装置包括:
路径确定单元,配置为确定所述多个设备之间的多条访问路径,其中,所述多条访问路径每条包括选自所述多个设备中之一的主设备、选自所述多个设备中之一的从设备以及所述多个路由节点中至少一个用于连通所述主设备和所述从设备的路由节点;
识别单元,配置为叠加所述多条访问路径,并且识别所述多个路由节点中的多个有效路由节点,其中,在所述多条访问路径中,所述多个有效路由节点每个用于从所述多个路由节点之一接收数据,也用于向所述多个路由节点中之一发送数据;以及
检测单元,配置为基于所述多个有效路由节点,检测是否由所述多条访问路径导致所述死锁环路。
13.根据权利要求12所述的装置,其中,所述检测单元包括:
有效传输段确定子单元,配置为根据叠加所述多条访问路径所得到的叠加结果,确定所述多个有效路由节点之间的有效传输段,其中,每条访问路径包括至少一个传输段,所述有效传输段为用于连接两个有效路由节点的传输段;以及
死锁检测子单元,配置为基于所述有效传输段,检测是否由所述多条访问路径导致所述死锁环路。
14.根据权利要求13所述的装置,其中,所述死锁检测子单元包括:
目标路径确定子单元,配置为确定所述多条访问路径中具有相同的有效传输段的多条目标访问路径;
合并子单元,配置为将所述多条目标访问路径合并,以得到访问路径图;
死锁环路检测子单元,配置为基于所述访问路径图,检测是否由所述多条目标访问路径导致所述死锁环路。
15.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序指令;
其中,所述一个或多个计算机程序指令被存储在所述存储器中,并由所述处理器执行时实现权利要求1-11任一项所述的应用于片上网络死锁环路的检测方法。
16.一种计算机可读存储介质,非暂时性存储有计算机可读指令,其中,当所述计算机可读指令由处理器执行时实现权利要求1-11任一项所述的应用于片上网络死锁环路的检测方法。
CN202111433210.6A 2021-11-29 2021-11-29 死锁环路的检测方法、装置、电子设备和存储介质 Pending CN114048060A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111433210.6A CN114048060A (zh) 2021-11-29 2021-11-29 死锁环路的检测方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111433210.6A CN114048060A (zh) 2021-11-29 2021-11-29 死锁环路的检测方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN114048060A true CN114048060A (zh) 2022-02-15

Family

ID=80211617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111433210.6A Pending CN114048060A (zh) 2021-11-29 2021-11-29 死锁环路的检测方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN114048060A (zh)

Similar Documents

Publication Publication Date Title
JP6856612B2 (ja) 多層相互接続による分散型プロセッサを有する処理システム
US11237880B1 (en) Dataflow all-reduce for reconfigurable processor systems
US8990633B2 (en) Tracing support for interconnect fabric
US9571420B2 (en) Integrated NoC for performing data communication and NoC functions
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
US20220198117A1 (en) Executing a neural network graph using a non-homogenous set of reconfigurable processors
JP6353084B2 (ja) ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様
US7251698B2 (en) Address space management in systems having multiple multi-processor clusters
US20090067334A1 (en) Mechanism for process migration on a massively parallel computer
US11449655B2 (en) Synthesis of a network-on-chip (NoC) using performance constraints and objectives
US9781043B2 (en) Identification of internal dependencies within system components for evaluating potential protocol level deadlocks
EP3885918B1 (en) System, apparatus and method for performing a remote atomic operation via an interface
KR20110028211A (ko) 자율 메모리 아키텍처
CN108924008A (zh) 一种双控制器数据通信方法、装置、设备及可读存储介质
WO2022133047A1 (en) Dataflow function offload to reconfigurable processors
US9542317B2 (en) System and a method for data processing with management of a cache consistency in a network of processors with cache memories
JP2022510803A (ja) バス上のメモリ要求チェーン
CN114707451A (zh) 数字电路的版图规划方法、装置、电子设备、存储介质
CN114048060A (zh) 死锁环路的检测方法、装置、电子设备和存储介质
Balamohan et al. Exploring an unknown dangerous graph with a constant number of tokens
CN106815176A (zh) 用于经由柔性寄存器访问总线传输访问请求的系统和方法
CN115580572A (zh) 路由方法、路由节点、路由装置和计算机可读存储介质
US11601357B2 (en) System and method for generation of quality metrics for optimization tasks in topology synthesis of a network
US10084725B2 (en) Extracting features from a NoC for machine learning construction
US7222202B2 (en) Method for monitoring a set of semaphore registers using a limited-width test bus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination