CN110196826B - 一种死锁判断方法及装置 - Google Patents
一种死锁判断方法及装置 Download PDFInfo
- Publication number
- CN110196826B CN110196826B CN201810157747.6A CN201810157747A CN110196826B CN 110196826 B CN110196826 B CN 110196826B CN 201810157747 A CN201810157747 A CN 201810157747A CN 110196826 B CN110196826 B CN 110196826B
- Authority
- CN
- China
- Prior art keywords
- transmission
- state
- transmission data
- delay
- preset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000005540 biological transmission Effects 0.000 claims abstract description 844
- 238000012544 monitoring process Methods 0.000 claims description 76
- 230000002776 aggregation Effects 0.000 claims description 22
- 238000004220 aggregation Methods 0.000 claims description 22
- 230000003111 delayed effect Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 230000000903 blocking effect Effects 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 101100289792 Squirrel monkey polyomavirus large T gene Proteins 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
- G06F13/4036—Coupling between buses using bus bridges with arbitration and deadlock prevention
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种死锁判断方法及装置,该方法可以包括:接收第一传输数据,获取第一传输数据对应的第一目标地址,并根据预设路径时延表,确定出第一传输数据对应的第一预设到达时间;当第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态,第二传输数据为正在发送至第一目标地址的传输数据;根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态,判断第一传输数据是否满足预设死锁条件;当判断出第一传输数据满足预设死锁条件时,阻止传输第一传输数据。
Description
技术领域
本发明涉及高性能数字芯片设计领域,尤其涉及一种死锁判断方法及装置。
背景技术
高级可扩展接口(AXI,Advanced eXtensible Interface)总线协议作为一种高性能高带宽的片上总线协议,在片上***(SOC,System-On-Chip)中被广泛使用,其中,AXI总线采用的传输机制为读与写分离,地址/控制与数据分离,故,AXI总线定义了读地址通道(AR,Read address channel),读数据通道(R,Read data channel),写地址通道(AW,Writeaddress channel),写数据通道(W,Write data channel),写响应通道(B,Write responsechannel)五个独立的传输通道来进行数据传输;SOC***由多个总线互连模块级联组成,由于总线互连模块兼容AXI协议所支持的outstanding传输和乱序传输模式,使得一个主设备可以同时在AW通道发起多个地址/控制命令来获取对多个从设备的访问权,但是,由于在一个传输周期内,一个从设备只允许和唯一的,被赋予了访问权额主设备在W通道进行数据交换,使得在多主设备和多从设备之间进行数据交换时,会增加总线死锁的概率。
现有技术中,为了防止AXI总线在数据传输时产生死锁,总线互连模块在从设备接口上添加单一有效从设备(SAS,Single Active Slave)机制,SAS机制规定总线互连模块中的从设备接口只有当前写传输的写数据全部发送完成之后,才能发起下一次写传输的写地址命令,从而避免了“当后一次写传输的写地址命令抵达目的地后,前一次写传输的写数据仍然阻塞在从设备接口”的问题。
然而,采用SAS机制,总线互连模块只能在一次写传输完成之后,才进行下一次的写传输,使得在避免了总线传输死锁的同时,降低了数据传输的效率。
发明内容
为解决上述技术问题,本发明实施例期望提供一种死锁判断方法及装置,能够在避免总线传输死锁的同时,提高数据传输的效率。
本发明实施例提供了一种死锁判断方法,所述方法包括:
接收第一传输数据,获取所述第一传输数据对应的第一目标地址,并根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间;
当所述第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将所述第一传输数据对应的第一传输状态设置为优先态,并将所述第二传输数据对应的第二传输状态设置为延迟态,所述第二传输数据为正在发送至所述第一目标地址的传输数据;
根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件;
当判断出所述第一传输数据满足预设死锁条件时,阻止传输所述第一传输数据。
在上述方案中,所述根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间,包括:
从所述预设路径时延表中获取监测到的所述第一传输数据对应的第一汇聚点和第一传输延时;
根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间。
在上述方案中,所述确定出所述第一传输数据对应的第一预设到达时间之后,所述将所述第一传输数据对应的第一传输状态设置为优先态之前,所述方法还包括:
查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间。
在上述方案中,所述查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间,包括:
获取监测到的当前传输数据的当前目标地址;
当所述当前目标地址为所述第一目标地址时,将所述当前传输数据记录为所述第二传输数据;
监测所述第二传输数据到达所述第一目标地址的第二传输延时,并将所述第二传输延时记录为所述第二预设到达时间。
在上述方案中,所述根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间,包括:
监测经过所述第一汇聚点的第三传输数据,及所述第三传输数据对应的第三传输延时;
当第一传输延时小于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时;
当所述第一传输延时大于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时与预设时间值之和。
在上述方案中,所述第一传输数据为从第一起始地址发送的传输数据,所述第二传输数据为从第二起始地址发送的传输数据,所述根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,包括:
将所述第二传输数据对应的从所述第二起始地址至所述第一目标地址的传输状态更新为延迟态。
在上述方案中,所述根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件,包括:
监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态;
当所述第一传输路径的传输状态包括一个优先态和一个延迟态,且所述第二传输路径的传输状态包括一个优先态和一个延迟态时,判断出所述第一传输数据满足所述预设死锁条件;
当所述第一传输路径和所述第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,判断出所述第一传输数据不满足所述预设死锁条件。
在上述方案中,所述起始地址与所述目标地址之间包括至少一个传输通道,所述监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态,包括:
当所述至少一个传输通道为优先态时,判断出所述起始地址和所述目标地址的传输状态为优先态;
当所述至少一个传输通道为延时态时,判断出所述起始地址和所述目标地址的传输状态为延时态;
当所述至少一个传输通道中既包括优先态,又包括延迟态时,判断出所述起始地址和所述目标地址的传输状态为优先态或者延迟态。
在上述方案中,所述阻止传输所述第一传输数据之后,所述方法还包括:
当预设判断时间到达时,重新获取所述第一传输状态;
根据重新获取到的所述第一传输状态和所述当前传输状态,判断传输所述第一传输数据是否会产生总线死锁。
本发明实施例提供了一种死锁判断装置,所述死锁判断装置包括:
总线***;
与所述总线***连接的监测记录模块;
与所述监测记录模块连接的比较判断模块;
与所述比较判断模块和所述总线***连接的阻塞模块;其中,
所述总线***,用于通过第一起始地址对应的传输接口接收第一传输数据,并将所述第一传输数据发送至第一目标地址;
所述监测记录模块,用于通过监测所述传输接口接收所述第一传输数据,获取所述第一传输数据对应的所述第一目标地址,并根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间;
所述比较判断模块,用于当所述第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将所述第一传输数据对应的第一传输状态设置为优先态,并将所述第二传输数据对应的第二传输状态设置为延迟态,所述第二传输数据为正在发送至所述第一目标地址的传输数据;根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件;
所述阻塞模块,用于当判断出所述第一传输数据满足预设死锁条件时,阻止传输所述第一传输数据。
在上述装置中,所述监测记录模块,具体用于从所述预设路径时延表中获取监测到的所述第一传输数据对应的第一汇聚点和第一传输延时;根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间。
在上述装置中,所述监测记录模块,还用于查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间。
在上述装置中,所述监测记录模块,具体用于从所述传输接口获取监测到的当前传输数据的当前目标地址;当所述当前目标地址为所述第一目标地址时,将所述当前传输数据记录为所述第二传输数据;监测所述第二传输数据到达所述第一目标地址的第二传输延时,并将所述第二传输延时记录为所述第二预设到达时间。
在上述装置中,所述监测记录模块,具体用于监测经过所述第一汇聚点的第三传输数据,及所述第三传输数据对应的第三传输延时;当第一传输延时小于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时;当所述第一传输延时大于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时与预设时间值之和。
在上述装置中,所述第一传输数据为从第一起始地址发送的传输数据,所述第二传输数据为从第二起始地址发送的传输数据,
所述监测记录模块,具体用于将所述第二传输数据对应的从所述第二起始地址至所述第一目标地址的传输状态更新为延迟态。
在上述装置中,所述监测记录模块,还用于监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态;
所述比较判断模块,具体用于当所述第一传输路径的传输状态包括一个优先态和一个延迟态,且所述第二传输路径的传输状态包括一个优先态和一个延迟态时,判断出所述第一传输数据满足所述预设死锁条件;当所述第一传输路径和所述第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,判断出所述第一传输数据不满足所述预设死锁条件。
在上述装置中,所述比较判断模块,具体用于当至少一个传输通道为优先态时,判断出所述起始地址和所述目标地址的传输状态为优先态;当所述至少一个传输通道为延时态时,判断出所述起始地址和所述目标地址的传输状态为延时态;当所述至少一个传输通道中既包括优先态,又包括延迟态时,判断出所述起始地址和所述目标地址的传输状态为优先态或者延迟态。
在上述装置中,所述死锁判断装置还包括:循环模块;
所述循环模块,用于当预设判断时间到达时,重新获取所述第一传输状态,根据重新获取到的所述第一传输状态和所述当前传输状态,判断传输所述第一传输数据是否会产生总线死锁。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,应用于死锁判断装置上,其特征在于,该计算机程序被处理器执行时实现上述的死锁判断方法。
本发明实施例提供了一种死锁判断方法及装置,能够在避免总线传输死锁的同时,提高数据传输的效率,该方法可以包括:接收第一传输数据,获取第一传输数据对应的第一目标地址,并根据预设路径时延表,确定出第一传输数据对应的第一预设到达时间;当第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态,第二传输数据为正在发送至第一目标地址的传输数据;根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态,判断第一传输数据是否满足预设死锁条件;当判断出第一传输数据满足预设死锁条件时,阻止传输第一传输数据。采用上述方法,死锁判断装置在接收到第一传输数据时,获取第一传输数据对应的第一目标地址,根据预设路径时延表确定第一传输数据对应的第一预设到达时间,死锁判断装置将第一到达时间和正在发送至第一目标地址的第二传输数据对应的第二到达时间进行比较,获得第一传输状态和第二传输状态,根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态判断传输第一传输数据是否产生总线死锁,能够在判断第一传输数据不会产生总线死锁时正常传输第一传输数据,而无需等待前一笔数据传输完成之后才传输下一笔数据,使得在避免总线传输死锁的同时,提高数据传输的效率。
附图说明
图1为死锁形成示意图;
图2为死锁形成的循环依赖图;
图3为本发明实施例提供的一种死锁判断方法的流程图一;
图4为本发明实施例提供的一种示例性的死锁判断装置的模块示意图;
图5为本发明实施例提供的一种示例性的总线互连结构的示意图;
图6为本发明实施例提供的一种示例性的传输数据循环依赖图;
图7为本发明实施例提供的一种示例性的阻塞控制中心阻塞第一传输数据的示意图;
图8为本发明实施例提供的一种示例性的DMOT的矩阵示意图;
图9为本发明实施例提供的一种示例性的自阻塞发生时的解决方法流程图;
图10为本发明实施例提供的一种死锁判断方法的流程图二;
图11为本发明实施例提供的一种死锁判断装置的结构示意图一;
图12为本发明实施例提供的一种死锁判断装置的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
现有技术中,如图1所示,主设备0和主设备1通过一个总线互连模块与从设备0和从设备1进行数据交换,其中,总线互连模块中的从设备接口0与主设备0进行连接,总线互连模块中的从设备接口1与主设备1进行连接,总线互连模块中的主设备接口0与从设备0进行连接,总线互连模块中的主设备接口1与从设备1进行连接,在总线互连模块内部,从设备接口0和从设备接口1分别可以与主设备接口0和主设备接口1进行数据传输。在T0时刻,主设备0向从设备1和从设备0依次且连续发出了AW01和AW00两个写地址命令,同时,主设备1向从设备0和从设备1依次且连续发出了AW10和AW11两个写地址命令;由于从设备接口0与主设备接口0之间的路径延时小于从设备接口1与主设备接口0之间的路径延时,故,AW00后发先至,先于AW10抵达从设备0,并获得对其的访问权,此时,主设备接口0打开W通道,等待写数据命令W00;同理,由于从设备接口1与主设备接口1之间的路径延时小于从设备接口0与主设备接口1之间的路径延时,AW11后发先至,先与AW01到达从设备1,并获得对其的访问权,此时,主设备接口1打开W通道,等待写数据命令W11;因为在时间顺序上,W00晚于W01,W00必须等待W01发送完毕才可以发往主设备接口0;而此时,由于AW11占据了对从设备1的访问权,W01只能等待W11发送完毕,才可以发往主设备接口1;同理,因为在时间顺序上,W11晚于W10,W11必须等待W10发送完毕才可以发往主设备接口1;而此时,由于AW00仍然占据对从设备0的访问权(W00一直处于等待状态),W10只能等待W00发送完毕才可以发往主设备接口0。于是,形成了如图2所示的循环等待局面,总线传输陷入死锁。
实施例一
本发明实施例提供一种死锁判断方法,如图3所示,该方法可以包括:
S101、接收第一传输数据,获取第一传输数据对应的第一目标地址,并根据预设路径时延表,确定出第一传输数据对应的第一预设到达时间。
本发明实施例提供的一种死锁判断方法适用于多个主设备和多个从设备之间通过outstanding传输来进行数据传输的场景下。
本发明实施例中,如图4所示,死锁判断装置包括总线互连模块的传输接口、监测记录模块、比较判断模块和阻塞模块,监测记录模块实时监控总线互连模块***中的传输接口,当监测记录模块通过传输接口接收到第一传输数据时,监测记录模块获取第一传输数据的第一传输地址,监测记录模块根据第一传输地址获取第一传输数据对应的第一起始地址和第一目标地址,之后,监测记录模块根据预设路径时延表,确定出第一传输数据对应的第一预设到达时间。
本发明实施例中,在设计片上***(SOC,System-On-Chip)时,设计人员会根据设计需要在传输接口和传输路径上设置至少一个寄存器片,并给每一个寄存器片进行编号,设计人员根据这些寄存器片的编号确定出参与数据交换的主设备和从设备之间的访问关系、路径结构及在路径上传输的静态时延,并根据主设备和从设备之间的访问关系、路径结构及在路径上传输的静态时延创建了预设路径时延表。
示例性的,如图5所示,总线互连模块0中的从设备接口00和主设备0连接,总线互连模块0中的从设备接口01和主设备1连接,总线互连模块0中的主设备接口00与从设备0连接,总线互联模块0中的主设备接口01和总线互连模块1中的从设备接口10连接,总线互联模块0中的从设备接口00与主设备接口00和主设备接口01连接,总线互联模块0中的从设备接口01与主设备接口00和主设备接口01连接;总线互连模块1中的从设备接口11与主设备2连接,总线互连模块1中的主设备接口10与从设备1连接,总线互连模块1中的主设备接口11与从设备2连接,总线互连模块1中的从设备接口10和主设备接口10连接,总线互连模块1中的从设备接口11与主设备接口10和主设备接口11连接;且为从设备接口00、主设备接口00、主设备接口01、从设备接口10、主设备接口10、从设备接口00和主设备接口01之间的通路、从设备接口11、主设备接口11依次分配寄存器片0、寄存器片1、寄存器片2、寄存器片3、寄存器片4、寄存器片5、寄存器片6、寄存器片7,则,图5的SOC***对应的预设路径时延表为表一,其中存储了从主设备至从设备的全部路径对应的时延信息,该时延信息可以包括从主设备至从设备的时延、从主设备至从设备的时延坐标以及从主设备至汇聚点的时延。
表一 预设路径时延表
本发明实施例中,监测记录模块获取到第一传输数据的第一传输地址之后,监测记录模块从预设路径时延表中查找第一传输数据的第一汇聚点和第一传输延时,之后,监测记录模块获取经过第一汇聚点的第三传输数据,并确定第三传输数据对应的第三传输延时,监测记录模块将第一传输延时和第三传输延时进行比较,当第一传输延时小于第三传输延时时,监测记录模块将第一预设到达时间记为第一传输延时;当第一传输延时大于第三传输延时时,监测记录模块将第一预设到达时间记为第一传输延时与预设时间值之和。
本发明实施例中,死锁判断装置将总线互连***中AW命令尚未到达目的从设备的所有传输数据的信息存储在动态路由表中,动态路由表具体存储:传输ID号,起始地址、目标地址、传输路径中未经过的寄存器片编号。
本发明实施例中,当监测记录模块监测到某一传输数据经过一个寄存器片之后,死锁判断装置从动态路由表中查找该传输数据的信息,并将经过的寄存器片编号删除,当监测记录模块监测到某一传输数据传输完成时,监测记录模块将该传输数据从动态路由表中删除。
本发明实施例中,监测记录模块从动态路由表中获取第三传输数据到达第一汇聚点的第三传输延时。
示例性的,如图5所示,AW11在从设备接口01至主设备接口01之间传输,主设备2向从设备接口11发送AW20,此时,AW20到达主设备接口10的延时为1,而AW11到达主设备接口10的延时为2,AW20会早于AW11到达汇聚点主设备接口10,故,为AW11的时延增加一个很大的T。
本发明实施例中,当监测记录模块确定出第一传输数据对应的第一预设到达时间之后,死锁判断装置将第一传输数据添加至动态路由表中。
S102、当第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态,第二传输数据为正在发送至第一目标地址的传输数据。
当死锁判断装置确定出第一传输数据对应的第一预设到达时间之后,死锁判断装置就要将第一预设到达时间和第二传输数据对应的第二预设到达时间进行比较,并根据比较结果,设置第一传输数据和第二传输数据对应的传输状态。
本发明实施例中,监测记录模块获取到第一传输数据的第一传输地址之后,监测记录模块根据第一传输地址确定第一传输数据对应的第一目标地址,监测记录模块从动态路由表中查找当前目标地址为第一目标地址的第二传输数据,并查找第二传输数据对应的未经过的寄存器个数,监测记录模块将第二传输数据对应的未经过的寄存器个数确定为第二预设到达时间。
本发明实施例中,比较判断模块将第一预设到达时间和第二预设到达时间进行比较,当第一预设到达时间小于第二预设到达时间时,比较判断模块将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态;当第一预设到达时间大于第二预设到达时间时,比较判断模块将第一传输状态设置为延迟态,并将第二传输状态设备为优先态。
进一步地,当监测记录模块没有在动态路由表中查找到第二传输数据时,比较判断模块将第一传输状态设置为正常态。
S103、根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态,判断第一传输数据是否满足预设死锁条件。
当死锁判断装置获取到第一传输数据对应的第一传输状态和第二传输数据对应的第二传输状态时,死锁判断装置就要根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态,判断第一传输数据是否满足预设死锁条件了。
本发明实施例中,历史传输状态表中存储有从起始地址至目标地址的传输路径对应的传输状态,当获取到第一传输数据的第一传输状态和第二传输数据的第二传输状态时,比较判断模块将历史传输状态表中,第一传输数据对应的从第一起始地址至第一目标地址的传输状态设置为优先态;将历史传输状态表中,第二传输数据对应的从第二起始地址至第一目标地址的传输状态更新为延迟态。
本发明实施例中,比较判断模块判断传输第一传输数据时是否会产生总线死锁的判定条件有三个,这三个判定条件必须全部满足时才能判断出传输第一传输数据时会产生死锁,这三个判定条件包括:
1、拓扑连通性条件:如表二所示的4x4动态连通性矩阵,该矩阵用来表示在任一时刻主设备与从设备之间的写操作关系。若主设备i正在向从设备j发送写地址命令AWij,则entry(i,j)标记为1;否则,标记为0。
表二动态连通性矩阵
从设备0 | 从设备1 | 从设备2 | 从设备3 | |
主设备0 | 0 | 1 | 0 | 1 |
主设备1 | 1 | 0 | 1 | 0 |
主设备2 | 1 | 0 | 0 | 1 |
主设备3 | 0 | 1 | 1 | 0 |
从循环依赖的形成机制不难推导出:
总线死锁的必要条件1:在连通性矩阵中,每一列(从设备)和每一行(主设备)须有两个或两个以上的entry为1;
当表二对应的循环依赖关系如图6所示的话,就会造成总线死锁。其中Wij表示主设备i与从设备j之间的写数据。
2、路径静态延时条件:前向死锁的根源问题在于两个(或两个以上的)主设备在和同一个从设备进行写数据交换的时候,某个主设备的AW命令“后发而先至”。所以,不同主设备到一个从设备的AW路径上一定存在静态时延的差异;若静态时延相同,则后发一定后至,不会形成死锁。
前向死锁的必要条件2:至少存在一个从设备,和与之有连通性关系的两个或两个以上的主设备之间在AW通道的静态延时存在差异。
即Dij≠Dkj,其中Dij表示主设备i和从设备j在AW通道的静态延时。
3、访问时序条件:循环依赖关系的形成,需要主设备在写数据行为上满足以下的条件:
前向死锁的必要条件3:存在两个或两个以上的主设备具有以下的写数据特征:即一个主设备依次对两个从设备发送AW写地址命令,较晚发送的AW命令能够先于其他的主设备抵达目的从设备。
以图6所示的循环依赖关系为例,若Τιj表示主设备i对从设备j写数据时发出AW写地址命令的时刻,Dij表示主设备i和从设备j在AW通道的静态延时,则形成前向死锁的各主设备访问时序须满足以下公式:
T10>T12
T12+D12<T32+D32
T20>T23
T20+D20<T10+D10
T03>T01
T03+D03<T23+D23
T31>T32
本发明实施例中,死锁判断装置根据死锁形成的三个必要条件生成预设死锁条件,比较判断模块通过监测历史传输状态表中起始地址对应的第一传输路径和目标地址对应的第二传输路径的传输状态;当第一传输路径的传输状态包括一个优先态和一个延迟态,且第二传输路径的传输状态包括一个优先态和一个延迟态时,表征满足死锁形成的三个必要条件;当第一传输路径和第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,表征不满足死锁形成的三个必要条件。
本发明实施例中,在总线互连***设计之初,为每一个起始地址分配不同个数的传输通道,一个起始地址可以同时向多个目的地址发送传输数据,故,起始地址和目标地址之间包括至少一个传输通道,当至少一个传输通道为优先态时,死锁判断装置设置起始地址和目标地址的传输状态为优先态;当至少一个传输通道为延时态时,死锁判断装置设置起始地址和目标地址的传输状态为延时态;当至少一个传输通道中既包括优先态,又包括延迟态时,死锁判断装置设置起始地址和目标地址的传输状态为优先态或者延迟态。
S104、当判断出第一传输数据满足预设死锁条件时,阻止传输第一传输数据。
当死锁判断装置判断出第一传输数据满则预设死锁条件时,死锁判断装置组织传输第一传输数据的过程。
本发明实施例中,当比较判断模块预判断出传输第一传输数据时会产生总线死锁时,阻塞模块阻止传输第一传输数据。
本发明实施例中,阻塞模块控制第一起始地址上的寄存器片,禁止与第一传输数据进行AW和W的握手过程。
示例性的,如图7所示,阻塞控制中心与每一个传输接口和寄存器片进行连接,阻塞控制中心通过控制寄存器片禁止与第一传输数据进行握手,来阻止第一传输数据的传输过程。
本发明实施例中,当阻塞模块阻止传输第一传输数据之后,死锁判断装置等待预设判断时间的到达,当预设判断时间到达时,死锁重新获取第一传输状态,将重新获取到的第一传输状态更新至历史传输状态表中,并基于更新的历史传输状态表,判断传输第一传输数据是否会产生总线死锁。
本发明实施例中,历史传输状态表可以为死锁关系矩阵(DMOT,Deadlock Matrixwith Outstanding Transactions),具体的根据实际情况进行选择表现,本发明实施例不做具体的限定。
本发明实施例中,DMOT结构如图8所示,DMOT是一个三维的矩阵,三个维度分别为起始地址,目标地址和起始地址对应的传输通道,当死锁判断装置确定出起始地址1到目标地址1的传输状态为优先态时,死锁判断装置将起始地址1和目标地址1同时对应的位置设置为1;当死锁判断装置确定出起始地址1到目标地址1的传输状态为延时态时,死锁判断装置将起始地址1和目标地址1同时对应的位置设置为-1,在由n个主设备和m个从设备组成的DMOT中,若将第i行第j列第p个子槽的二维向量记作(X0(i,j,p),X1(i,j,p)),P表示所有P={x(i,j,p)∈CMOT|X0(i,j,p)=1}P={x(i,j,p)∈CMOT|X0(i,j,p)=1}中至少存在一个l阶子阵(l≤rank(ICM),若用P来表示P={x(i,j,p)∈CMOT|}当DMOT矩阵满足以下两个条件时,表征第一传输数据会造成总线死锁。
1、每行至少有一个entry中包含的子槽中所记录的二维坐标的第一列值为1,且至少有slot的二维坐标第一列值为-1;
2、存在有l二维坐标,其中所记录的二维坐标的第二列的值位于不同行且不同列的entry每列至少有一个entry值为1且至少有一个entry值为-1。
本发明实施例中,当总线互连模块矩阵参数设备不合理时(比如起始地址的Outstanding深度大于路径中的Outstanding深度),则可能发生在AW命令传输过程中,无竞争访问而出现通路阻塞的状况。一旦这种情况出现,则会破坏动态路由表中的时序关系和目的地队列表中的预估顺序,形成死锁可能。针对此类情况,本发明提出以下的应急机制,避免死锁风险,如图9所示,当自阻塞发生时,判断动态路由表中是否存在和被阻塞AW同一起始地址但不同目的地址,且进入时间晚于被阻塞AW的其他AW命令,当存在时,阻塞该主设备后来的AW命令进入;当不存在时,阻塞其他发往自阻塞AW目的地的从设备的AW命令。
可以理解的是,死锁判断装置在接收到第一传输数据时,获取第一传输数据对应的第一目标地址,根据预设路径时延表确定第一传输数据对应的第一预设到达时间,死锁判断装置将第一到达时间和正在发送至第一目标地址的第二传输数据对应的第二到达时间进行比较,获得第一传输状态和第二传输状态,根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态判断传输第一传输数据是否产生总线死锁,能够在判断第一传输数据不会产生总线死锁时正常传输第一传输数据,而无需等待前一笔数据传输完成之后才传输下一笔数据,使得在避免总线传输死锁的同时,提高数据传输的效率。
实施例二
本发明实施例提供一种死锁判断方法,如图10所示,该方法可以包括:
S201、死锁判断装置接收第一传输数据,获取第一传输数据对应的第一目标地址,从预设路径时延表中获取监测到的第一传输数据对应的第一汇聚点和第一传输延时。
需要说明的是,步骤S201的实现过程与步骤S101的实现过程相同,详细参见步骤S101的解释,本发明实施例不再赘述。
S202、死锁判断装置监测经过第一汇聚点的第三传输数据,及第三传输数据对应的第三传输延时。
当死锁判断装置确定出第一传输数据对应的第一汇聚点和第一传输延时时,死锁判断装置就要监测经过第一汇聚点的第三传输数据,及第三传输数据对应的第三传输延时了。
本发明实施例中,监测记录模块获取经过第一汇聚点的第三传输数据,并确定第三传输数据对应的第三传输延时。
本发明实施例中,死锁判断装置将总线互连***中AW命令尚未到达目的从设备的所有传输数据的信息存储在动态路由表中,动态路由表具体存储:传输ID号,起始地址、目标地址、传输路径中未经过的寄存器片编号。
本发明实施例中,当监测记录模块监测到某一传输数据经过一个寄存器片之后,死锁判断装置从动态路由表中查找该传输数据的信息,并将经过的寄存器片编号删除,当监测记录模块监测到某一传输数据传输完成时,监测记录模块将该传输数据从动态路由表中删除。
本发明实施例中,监测记录模块从动态路由表中获取第三传输数据到达第一汇聚点的第三传输延时。
示例性的,如图5所示,AW11在从设备接口01至主设备接口01之间传输,主设备2向从设备接口11发送AW20,此时,AW20到达主设备接口10的延时为1,而AW11到达主设备接口10的延时为2,AW20会早于AW11到达汇聚点主设备接口10,故,为AW11的时延增加一个很大的T。
S203、当第一传输延时小于第三传输延时时,死锁判断装置将第一预设到达时间记录为第一传输延时。
当死锁判断装置确定出第三传输延时之后,死锁判断装置就要判断第一传输延时和第三传输延时之间的大小了,当第一传输延时小于第三传输延时时,死锁判断装置记录第一预设到达时间为第一传输延时。
本发明实施例中,监测记录模块将第一传输延时和第三传输延时进行比较,当第一传输延时小于第三传输延时时,监测记录模块将第一预设到达时间记为第一传输延时。
S204、当第一传输延时大于第三传输延时时,死锁判断装置将第一预设到达时间记录为第一传输延时与预设时间值之和。
当死锁判断装置判断出第一传输延时大于第三传输延时时,死锁判断装置将第一设到达时间记录为第一传输延时与预设时间值之和。
本发明实施例中,监测记录模块将第一传输延时和第三传输延时进行比较,当第一传输延时大于第三传输延时时,监测记录模块将第一预设到达时间记为第一传输延时与预设时间值之和。
本发明实施例中,当监测记录模块确定出第一传输数据对应的第一预设到达时间之后,死锁判断装置将第一传输数据添加至动态路由表中。
步骤S203和步骤S204为步骤S202之后的两个并列的步骤,具体的根据实际情况进行选择,本发明实施例不做具体的限定。
S205、死锁判断装置获取监测到的当前传输数据的当前目标地址。
当死锁判断装置确定第一传输数据对应的第一预设到达时间之后,死锁判断装置就要查找正在发送至第一目标地址的第二传输数据了,首先,死锁判断装置获取当前传输数据的当前目标地址。
本发明实施例中,监测记录模块从动态路由表中获取监测到的当前传输数据的当前目标地址。
S206、当当前目标地址为第一目标地址时,死锁判断装置将当前传输数据记录为第二传输数据。
死锁判断装置获取当前传输数据的当前目标地址之后,死锁判断装置就要判断当前目标地址是否为第一目标地址了,当当前目标地址为第一目标地址时,死锁判断装置将当前传输数据记录为第二传输数据。
本发明实施例中,当死锁判断装置判断出当前目标地址为第一目标地址时,死锁判断装置将当前传输数据记录为第二传输数据。
S207、死锁判断装置监测第二传输数据到达第一目标地址的第二传输延时,并将第二传输延时记录为第二预设到达时间。
当死锁判断装置确定出第二传输数据之后,死锁判断装置就要确定出第二传输数据对应的第二预设到达时间了,具体的,死锁判断装置监测第二传输数据到达第一目标地址的第二传输延时,并将第二传输延时记录为第二预设到达时间。
本发明实施例中,监测记录模块从动态路由表中查找第二传输数据对应的未经过的寄存器个数,监测记录模块将第二传输数据对应的未经过的寄存器个数记录为第二预设到达时间。
S208、当第一预设到达时间小于第二预设到达时间时,死锁判断装置将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态。
当死锁判断装置确定出第一预设到达时间和第二预设到达时间之后,死锁判断装置就要将第一预设到达时间和第二预设到达时间进行比较了,当第一预设到达时间小于第二预设到达时间时,死锁判断装置将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态。
本发明实施例中,比较判断模块将第一预设到达时间和第二预设到达时间进行比较,当第一预设到达时间小于第二预设到达时间时,比较判断模块将第一传输数据对应的第一传输状态设置为优先态,并将第二传输数据对应的第二传输状态设置为延迟态;当第一预设到达时间大于第二预设到达时间时,比较判断模块将第一传输状态设置为延迟态,并将第二传输状态设备为优先态。
进一步地,当监测记录模块没有在动态路由表中查找到第二传输数据时,比较判断模块将第一传输状态设置为正常态。
S209、死锁判断装置将第二传输数据对应的从第二起始地址至第一目标地址的传输状态更新为延迟态。
当死锁判断装置将第二传输状态设置为延迟态之后,死锁判断装置就要将第二传输数据对应的第二起始地址和第一目标地址的传输状态设置为延迟态。
本发明实施例中,历史传输状态表中存储有起始地址及起始地址对应的传输状态,目标地址及目标地址对应的传输状态,当获取到第二传输数据的第二传输状态时,比较判断模块将历史传输状态表中,第二传输数据对应的第二起始地址和第一目标地址的传输状态更新为延迟态。
进一步地,当获取到第一传输数据的第一传输状态时,比较判断模块将历史传输状态表中,第一传输数据对应的第一起始地址和第一目标地址的传输状态设置为优先态。
S210、死锁判断装置监测起始地址对应的第一传输路径和目标地址对应的第二传输路径的传输状态。
当死锁判断装置将第二传输数据对应的从第二起始地址至第一目标地址的传输状态更新为延迟态之后,死锁判断装置就要根据第一传输状态和当前传输状态判断第一传输数据是否会造成总线死锁了,首先,死锁判断装置确定起始地址对应的第一传输路径和目标地址对应的第二传输路径的传输状态。
本发明实施例中,在总线互连***设计之初,为每一个起始地址分配不同个数的传输通道,一个起始地址可以同时向多个目的地址发送传输数据,故,起始地址和目标地址之间包括至少一个传输通道,当至少一个传输通道为优先态时,死锁判断装置设置起始地址和目标地址的传输状态为优先态;当至少一个传输通道为延时态时,死锁判断装置设置起始地址和目标地址的传输状态为延时态;当至少一个传输通道中既包括优先态,又包括延迟态时,死锁判断装置设置起始地址和目标地址的传输状态为优先态或者延迟态。
S211、当第一传输路径和第二传输路径中任一个传输路径的传输状态不包括至少一个优先态和至少一个延迟态时,死锁判断装置判断出第一传输数据不满足预设死锁条件。
当死锁判断装置确定起始地址和目标地址的传输状态之后,死锁判断装置就要判断起始地址对应的第一传输路径的传输状态,和目标地址对应的第二传输路径的传输状态是否包括至少一个优先态和至少一个延迟态了,当第一传输路径和第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,死锁判断装置判断出第一传输数据不满足预设死锁条件。
本发明实施例中,当比较判断模块判断出第一传输路径和第二传输路径中任一个传输路径的传输状态不包括至少一个优先态和至少一个延迟态时,表征第一传输路径不满足步骤S104所描述的死锁形成的三个必要条件。
本发明实施例中,历史传输状态表可以为DMOT结构,具体的根据实际情况进行选择表现,本发明实施例不做具体的限定。
本发明实施例中,DMOT结构的描述如步骤S104中对图8的描述一致,在此不再赘述。
S212、当第一传输路径的传输状态包括一个优先态和一个延迟态,且第二传输路径的传输状态包括一个优先态和一个延迟态时,死锁判断装置判断出第一传输数据满足预设死锁条件。
当第一传输路径的传输状态包括一个优先态和一个延迟态,且第二传输路径的传输状态包括一个优先态和一个延迟态时,死锁判断装置判断出第一传输数据满足预设死锁条件。
本发明实施例中,判断起始地址对应的第一传输路径的传输状态,和目标地址对应的第二传输路径的传输状态是否包括至少一个优先态和至少一个延迟态,当起始地址对应的第一传输路径的传输状态包括一个优先态和一个延迟态,且目标地址对应的第二传输路径的传输状态包括一个优先态和一个延迟态时,死锁判断装置判断出第一传输数据满足预设死锁条件。
本发明实施例中,当比较判断模块判断出第一传输路径的传输状态包括一个优先态和一个延迟态,且第二传输路径的传输状态包括一个优先态和一个延迟态时,表征第一传输路径满足步骤S104所描述的死锁形成的三个必要条件。
S213、当第一传输数据满足预设死锁条件时,死锁判断装置阻止传输第一传输数据。
当死锁判断装置判断出第一传输数据满足预设死锁条件之后,死锁判断装置预判断出传输第一传输数据时会产生总线死锁,此时,死锁判断装置阻止传输第一传输数据。
本发明实施例中,本发明实施例中,阻塞模块控制第一起始地址上的寄存器片,禁止与第一传输数据进行AW和W的握手过程。
示例性的,如图7所示,阻塞控制中心与每一个传输接口和寄存器片进行连接,阻塞控制中心通过控制寄存器片禁止与第一传输数据进行握手,来阻止第一传输数据的传输过程。
本发明实施例中,当总线互连模块矩阵参数设备不合理时(比如起始地址的Outstanding深度大于路径中的Outstanding深度),则可能发生在AW命令传输过程中,无竞争访问而出现通路阻塞的状况。一旦这种情况出现,则会破坏动态路由表中的时序关系和目的地队列表中的预估顺序,形成死锁可能。针对此类情况,本发明提出以下的应急机制,避免死锁风险,如图9所示,当自阻塞发生时,判断动态路由表中是否存在和被阻塞AW同一起始地址但不同目的地址,且进入时间晚于被阻塞AW的其他AW命令,当存在时,阻塞该主设备后来的AW命令进入;当不存在时,阻塞其他发往自阻塞AW目的地的从设备的AW命令。
S214、当预设判断时间到达时,死锁判断装置重新获取第一传输状态。
当死锁判断装置阻止传输第一传输数据之后,死锁判断装置等待预设判断时间到达时,重新判断传输第一传输数据是否会产生总线死锁。
本发明实施例中,当阻塞模块阻止传输第一传输数据之后,死锁判断装置等待预设判断时间的到达,当预设判断时间到达时,死锁重新获取第一传输状态。
S215、死锁判断装置根据重新获取到的第一传输状态和当前传输状态,判断传输第一传输数据是否会产生总线死锁。
当死锁判断装置重新获取到第一传输状态之后,死锁判断装置根据重新获取到的第一传输状态和当前传输状态,判断传输第一传输数据是否会产生总线死锁。
本发明实施例中,死锁判断装置将重新获取到的第一传输状态更新至历史传输状态表中,并基于更新的历史传输状态表,判断传输第一传输数据是否会产生总线死锁。
步骤S212-步骤S215和步骤S211为步骤S210之后的两个并列的步骤,具体的根据实际情况进行选择执行,本发明实施例不做具体的限定。
可以理解的是,死锁判断装置在接收到第一传输数据时,获取第一传输数据对应的第一目标地址,根据预设路径时延表确定第一传输数据对应的第一预设到达时间,死锁判断装置将第一到达时间和正在发送至第一目标地址的第二传输数据对应的第二到达时间进行比较,获得第一传输状态和第二传输状态,根据第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据当前传输状态和第一传输状态判断传输第一传输数据是否产生总线死锁,能够在判断第一传输数据不会产生总线死锁时正常传输第一传输数据,而无需等待前一笔数据传输完成之后才传输下一笔数据,使得在避免总线传输死锁的同时,提高数据传输的效率。
实施例三
本发明实施例提供一种死锁判断装置,如图11所示,该死锁判断装置1可以包括:
总线***10;
与所述总线***10连接的监测记录模块11;
与所述监测记录模块11连接的比较判断模块12;
与所述比较判断模块12和所述总线***10连接的阻塞模块13;其中,
所述总线***10,用于通过第一起始地址对应的传输接口接收第一传输数据,并将所述第一传输数据发送至第一目标地址。
所述监测记录模块11,用于通过监测所述传输接口10接收所述第一传输数据,获取所述第一传输数据对应的所述第一目标地址,并根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间。
所述比较判断模块12,用于当所述第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将所述第一传输数据对应的第一传输状态设置为优先态,并将所述第二传输数据对应的第二传输状态设置为延迟态,所述第二传输数据为正在发送至所述第一目标地址的传输数据;根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件。
所述阻塞模块13,用于当判断出所述第一传输数据满足预设死锁条件时,阻止传输所述第一传输数据。
可选的,所述监测记录模块11,具体用于从所述预设路径时延表中获取监测到的所述第一传输数据对应的第一汇聚点和第一传输延时;根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间。
可选的,所述监测记录模块11,还用于查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间。
可选的,所述监测记录模块11,具体用于从所述传输接口获取监测到的当前传输数据的当前目标地址;当所述当前目标地址为所述第一目标地址时,将所述当前传输数据记录为所述第二传输数据;监测所述第二传输数据到达所述第一目标地址的第二传输延时,并将所述第二传输延时记录为所述第二预设到达时间。
可选的,所述监测记录模块11,具体用于监测经过所述第一汇聚点的第三传输数据,及所述第三传输数据对应的第三传输延时;当第一传输延时小于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时;当所述第一传输延时大于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时与预设时间值之和。
可选的,所述第一传输数据为从第一起始地址发送的传输数据,所述第二传输数据为从第二起始地址发送的传输数据,所述监测记录模块11,具体用于将所述第二传输数据对应的从所述第二起始地址至所述第一目标地址的传输状态更新为延迟态。
可选的,所述监测记录模块11,还用于监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态;
所述比较判断模块12,具体用于当所述第一传输路径的传输状态包括一个优先态和一个延迟态,且所述第二传输路径的传输状态包括一个优先态和一个延迟态时,判断出所述第一传输数据满足所述预设死锁条件;当所述第一传输路径和所述第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,判断出所述第一传输数据不满足所述预设死锁条件。
可选的,所述比较判断模块12,具体用于当所述至少一个传输通道为优先态时,判断出所述起始地址和所述目标地址的传输状态为优先态;当所述至少一个传输通道为延时态时,判断出所述起始地址和所述目标地址的传输状态为延时态;当所述至少一个传输通道中既包括优先态,又包括延迟态时,判断出所述起始地址和所述目标地址的传输状态为优先态或者延迟态。
可选的,基于图11,如图12所示,所述死锁判断装置1还包括:循环模块14。
所述循环模块14,用于当预设判断时间到达时,重新获取所述第一传输状态,根据重新获取到的所述第一传输状态和所述当前传输状态,判断传输所述第一传输数据是否会产生总线死锁。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,应用于死锁判断装置1中,该计算机程序执行时实现如实施例一和实施例二所述的方法。
具体来讲,本发明实施例中的一种死锁判断的方法对应的程序指令可以被存储在存储介质上,当存储介质中的一种与芯片互连方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:
接收第一传输数据,获取所述第一传输数据对应的第一目标地址,并根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间;
当所述第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将所述第一传输数据对应的第一传输状态设置为优先态,并将所述第二传输数据对应的第二传输状态设置为延迟态,所述第二传输数据为正在发送至所述第一目标地址的传输数据;
根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件;
当判断出所述第一传输数据满足预设死锁条件时,阻止传输所述第一传输数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (19)
1.一种死锁判断方法,其特征在于,所述方法包括:
接收第一传输数据,获取所述第一传输数据对应的第一目标地址,并根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间;
当所述第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将所述第一传输数据对应的第一传输状态设置为优先态,并将所述第二传输数据对应的第二传输状态设置为延迟态,所述第二传输数据为正在发送至所述第一目标地址的传输数据;
根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件;
当判断出所述第一传输数据满足预设死锁条件时,阻止传输所述第一传输数据。
2.根据权利要求1所述的方法,其特征在于,所述根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间,包括:
从所述预设路径时延表中获取监测到的所述第一传输数据对应的第一汇聚点和第一传输延时;
根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间。
3.根据权利要求1所述的方法,其特征在于,所述确定出所述第一传输数据对应的第一预设到达时间之后,所述将所述第一传输数据对应的第一传输状态设置为优先态之前,所述方法还包括:
查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间。
4.根据权利要求3所述的方法,其特征在于,所述查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间,包括:
获取监测到的当前传输数据的当前目标地址;
当所述当前目标地址为所述第一目标地址时,将所述当前传输数据记录为所述第二传输数据;
监测所述第二传输数据到达所述第一目标地址的第二传输延时,并将所述第二传输延时记录为所述第二预设到达时间。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间,包括:
监测经过所述第一汇聚点的第三传输数据,及所述第三传输数据对应的第三传输延时;
当第一传输延时小于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时;
当所述第一传输延时大于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时与预设时间值之和。
6.根据权利要求1所述的方法,其特征在于,所述第一传输数据为从第一起始地址发送的传输数据,所述第二传输数据为从第二起始地址发送的传输数据,所述根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,包括:
将所述第二传输数据对应的从所述第二起始地址至所述第一目标地址的传输状态更新为延迟态。
7.根据权利要求6所述的方法,其特征在于,所述根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件,包括:
监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态;
当所述第一传输路径的传输状态包括一个优先态和一个延迟态,且所述第二传输路径的传输状态包括一个优先态和一个延迟态时,判断出所述第一传输数据满足所述预设死锁条件;
当所述第一传输路径和所述第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,判断出所述第一传输数据不满足所述预设死锁条件。
8.根据权利要求7所述的方法,其特征在于,所述起始地址与所述目标地址之间包括至少一个传输通道,所述监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态,包括:
当所述至少一个传输通道为优先态时,判断出所述起始地址和所述目标地址的传输状态为优先态;
当所述至少一个传输通道为延时态时,判断出所述起始地址和所述目标地址的传输状态为延时态;
当所述至少一个传输通道中既包括优先态,又包括延迟态时,判断出所述起始地址和所述目标地址的传输状态为优先态或者延迟态。
9.根据权利要求1所述的方法,其特征在于,所述阻止传输所述第一传输数据之后,所述方法还包括:
当预设判断时间到达时,重新获取所述第一传输状态;
根据重新获取到的所述第一传输状态和所述当前传输状态,判断传输所述第一传输数据是否会产生总线死锁。
10.一种死锁判断装置,其特征在于,所述死锁判断装置包括:
总线***;
与所述总线***连接的监测记录模块;
与所述监测记录模块连接的比较判断模块;
与所述比较判断模块和所述总线***连接的阻塞模块;其中,
所述总线***,用于通过第一起始地址对应的传输接口接收第一传输数据,并将所述第一传输数据发送至第一目标地址;
所述监测记录模块,用于通过监测所述传输接口接收所述第一传输数据,获取所述第一传输数据对应的所述第一目标地址,并根据预设路径时延表,确定出所述第一传输数据对应的第一预设到达时间;
所述比较判断模块,用于当所述第一预设到达时间小于第二传输数据对应的第二预设到达时间时,将所述第一传输数据对应的第一传输状态设置为优先态,并将所述第二传输数据对应的第二传输状态设置为延迟态,所述第二传输数据为正在发送至所述第一目标地址的传输数据;根据所述第二传输状态,更新从起始地址到目标地址的传输路径对应的当前传输状态,并根据所述当前传输状态和所述第一传输状态,判断所述第一传输数据是否满足预设死锁条件;
所述阻塞模块,用于当判断出所述第一传输数据满足预设死锁条件时,阻止传输所述第一传输数据。
11.根据权利要求10所述的死锁判断装置,其特征在于,
所述监测记录模块,具体用于从所述预设路径时延表中获取监测到的所述第一传输数据对应的第一汇聚点和第一传输延时;根据所述第一汇聚点和所述第一传输延时,确定出所述第一传输数据对应的第一预设到达时间。
12.根据权利要求10所述的死锁判断装置,其特征在于,
所述监测记录模块,还用于查找正在发送至所述第一目标地址的所述第二传输数据,并确定出所述第二传输数据对应的所述第二预设到达时间。
13.根据权利要求12所述的死锁判断装置,其特征在于,所述监测记录模块,具体用于从所述传输接口获取监测到的当前传输数据的当前目标地址;当所述当前目标地址为所述第一目标地址时,将所述当前传输数据记录为所述第二传输数据;监测所述第二传输数据到达所述第一目标地址的第二传输延时,并将所述第二传输延时记录为所述第二预设到达时间。
14.根据权利要求11所述的死锁判断装置,其特征在于,
所述监测记录模块,具体用于监测经过所述第一汇聚点的第三传输数据,及所述第三传输数据对应的第三传输延时;当第一传输延时小于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时;当所述第一传输延时大于所述第三传输延时时,将所述第一预设到达时间记录为所述第一传输延时与预设时间值之和。
15.根据权利要求10所述的死锁判断装置,其特征在于,所述第一传输数据为从第一起始地址发送的传输数据,所述第二传输数据为从第二起始地址发送的传输数据,
所述监测记录模块,具体用于将所述第二传输数据对应的从所述第二起始地址至所述第一目标地址的传输状态更新为延迟态。
16.根据权利要求15所述的死锁判断装置,其特征在于,
所述监测记录模块,还用于监测所述起始地址对应的第一传输路径和所述目标地址对应的第二传输路径的传输状态;
所述比较判断模块,具体用于当所述第一传输路径的传输状态包括一个优先态和一个延迟态,且所述第二传输路径的传输状态包括一个优先态和一个延迟态时,判断出所述第一传输数据满足所述预设死锁条件;当所述第一传输路径和所述第二传输路径中任一个传输路径的传输状态不包括一个优先态和一个延迟态时,判断出所述第一传输数据不满足所述预设死锁条件。
17.根据权利要求15所述的死锁判断装置,其特征在于,
所述比较判断模块,具体用于当至少一个传输通道为优先态时,判断出所述起始地址和所述目标地址的传输状态为优先态;当所述至少一个传输通道为延时态时,判断出所述起始地址和所述目标地址的传输状态为延时态;当所述至少一个传输通道中既包括优先态,又包括延迟态时,判断出所述起始地址和所述目标地址的传输状态为优先态或者延迟态。
18.根据权利要求10所述的死锁判断装置,其特征在于,所述死锁判断装置还包括:循环模块;
所述循环模块,用于当预设判断时间到达时,重新获取所述第一传输状态,根据重新获取到的所述第一传输状态和所述当前传输状态,判断传输所述第一传输数据是否会产生总线死锁。
19.一种计算机可读存储介质,其上存储有计算机程序,应用于死锁判断装置上,其特征在于,该计算机程序被处理器执行时实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810157747.6A CN110196826B (zh) | 2018-02-24 | 2018-02-24 | 一种死锁判断方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810157747.6A CN110196826B (zh) | 2018-02-24 | 2018-02-24 | 一种死锁判断方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196826A CN110196826A (zh) | 2019-09-03 |
CN110196826B true CN110196826B (zh) | 2021-06-18 |
Family
ID=67744088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810157747.6A Active CN110196826B (zh) | 2018-02-24 | 2018-02-24 | 一种死锁判断方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196826B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111405008B (zh) * | 2020-03-06 | 2021-04-06 | 精英数智科技股份有限公司 | 一种煤矿数据传输方法、装置及*** |
CN112052074B (zh) * | 2020-09-29 | 2024-05-03 | 上海兆芯集成电路股份有限公司 | 处理器建模***及处理器建模方法 |
CN113691434B (zh) * | 2021-08-31 | 2022-09-20 | 深圳云天励飞技术股份有限公司 | 数据传输***、方法、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889972A (en) * | 1997-03-25 | 1999-03-30 | Adaptec, Inc. | Bus to bus bridge deadlock prevention system |
CN101308477A (zh) * | 2008-06-13 | 2008-11-19 | 华为技术有限公司 | ***总线的防死锁方法、装置及片上*** |
CN103986664A (zh) * | 2014-05-15 | 2014-08-13 | 厦门大学 | 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法 |
CN106649180A (zh) * | 2016-09-09 | 2017-05-10 | 锐捷网络股份有限公司 | 一种解除i2c总线死锁的方法及装置 |
CN106776272A (zh) * | 2016-11-11 | 2017-05-31 | 西北工业大学 | 嵌入式***实时性能测试方法 |
CN107111572A (zh) * | 2014-10-31 | 2017-08-29 | 赛灵思公司 | 用于避免死锁的方法和电路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910093B2 (en) * | 2000-12-07 | 2005-06-21 | Micron Technology, Inc. | Method of pacing and disconnecting transfers on a source strobed bus |
CN102103560A (zh) * | 2009-12-16 | 2011-06-22 | 中兴通讯股份有限公司 | 用于***总线的防死锁方法及装置 |
-
2018
- 2018-02-24 CN CN201810157747.6A patent/CN110196826B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889972A (en) * | 1997-03-25 | 1999-03-30 | Adaptec, Inc. | Bus to bus bridge deadlock prevention system |
CN101308477A (zh) * | 2008-06-13 | 2008-11-19 | 华为技术有限公司 | ***总线的防死锁方法、装置及片上*** |
CN103986664A (zh) * | 2014-05-15 | 2014-08-13 | 厦门大学 | 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法 |
CN107111572A (zh) * | 2014-10-31 | 2017-08-29 | 赛灵思公司 | 用于避免死锁的方法和电路 |
CN106649180A (zh) * | 2016-09-09 | 2017-05-10 | 锐捷网络股份有限公司 | 一种解除i2c总线死锁的方法及装置 |
CN106776272A (zh) * | 2016-11-11 | 2017-05-31 | 西北工业大学 | 嵌入式***实时性能测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110196826A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196826B (zh) | 一种死锁判断方法及装置 | |
US7451255B2 (en) | Hardware port scheduler (PTS) having register to indicate which of plurality of protocol engines PTS is to support | |
CN112765262B (zh) | 一种数据重分布方法、电子设备及存储介质 | |
US11294599B1 (en) | Registers for restricted memory | |
CN111190842B (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
KR20200139829A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN106878382B (zh) | 一种分布式仲裁集群中动态改变集群规模的方法及装置 | |
WO2019085709A1 (zh) | 一种应用于卷积神经网络的池化处理的方法及*** | |
US10318444B2 (en) | Collective memory transfer devices and methods for multiple-core processors | |
EP3379421B1 (en) | Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads | |
CN105677605B (zh) | 一种高效的可配置片上互联***及其实现方法、装置 | |
US9063929B2 (en) | Information processing apparatus, information processing method, computer-readable recording medium having stored therein program | |
WO2013043172A1 (en) | Sas expander | |
US10642817B2 (en) | Index table update method, and device | |
KR102539572B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR20200138411A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN107533475B (zh) | 用于在共享存储设备中协调读取和写入过程的方法和*** | |
US7979615B1 (en) | Apparatus for masked arbitration between masters and requestors and method for operating the same | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN110612510B (zh) | 无需专用仲裁器的输入/输出(i/o)隔离 | |
EP2620876B1 (en) | Method and apparatus for data processing, pci-e bus system and server | |
US8626974B2 (en) | Methods and systems for reduced signal path count for interconnect signals within a storage system expander | |
KR20200138414A (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN108228503B (zh) | 一种防止总线死锁的方法及装置 | |
CN111026699B (zh) | 基于环形总线的多核网络通信方法、装置及*** |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |