[发明专利]一种检测片上网络中死锁的方法有效

专利信息
申请号: 201310486505.9 申请日: 2013-10-17
公开(公告)号: CN103577379A 公开(公告)日: 2014-02-12
发明(设计)人: 乔寓然;董辛楠;文梅;任巨;杨乾明;张春元;荀长庆;柴俊;贾文涛;黄达飞;薛云刚;蓝强 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F15/173 分类号: G06F15/173;G06F11/267
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种检测片上网络中死锁的方法,目的是提供一种既能在死锁一旦发生时可立刻检测出死锁,且发现的死锁准确无误的方法。技术方案是先根据路由网络的拓扑互连结构,构建具有同步功能的通道等待网络;在路由网络启动后,每间隔时间T基于通道等待网络对死锁进行检测:每个CWL模块获取对应的通道与相邻通道之间的初始等待关系,通过逻辑检测去除与相邻通道不存在等待关系的通道,即通道等待网络中输入或输出信号都为零的CWL模块,达到稳态网络后所有剩余CWL所对应的通道存在于一个死锁结中。本发明在最多等于通道数的时钟节拍时间内就可完成死锁检测,效率较高;且实现了精确检测,不会出现误检的情况。
搜索关键词: 一种 检测 网络 死锁 方法
【主权项】:
一种检测片上网络中死锁的方法,其特征在于包括以下步骤:第一步,根据路由网络的拓扑互连结构,构建具有同步功能的通道等待网络:为网络路由节点间互连的N条通道建立N个与通道一一对应的通道等待标识模块CWL,根据路由网络的拓扑结构,将N个CWL互连形成通道等待网络;将每个CWL模块与同步中心相连,且与n+m个路由节点相连,实现通道等待网络的同步,N为片上网络中的通道个数,n为CWL的输出位数,m为CWL的输入位数,m和n均为正整数;每个CWL代表网络节点间互连的一个通道,这一通道可以被m个相邻的通道申请使用,也能够申请使用n个相邻的通道,由路由网络原有的拓扑互连结构决定;每个CWL有n位输出、n位反馈输入、m位反馈输出、m位输入;m位输入连接m个相邻CWL,这m个相邻的CWL称为输入CWL,表示在网络中有m条相邻通道可以申请使用该通道;n位输出连接n个相邻CWL,这n个相邻CWL的称为输出CWL,表示在网络中有n条相邻通道可以被该通道申请使用;与输入反向的m位反馈输出用来向申请使用该通道的m条相邻通道反馈该通道的输出信息;与输出反向的n位反馈输入用来向该CWL反馈该CWL要申请使用的n条相邻通道的信息;m位输入中,某一位为1表示两个CWL模块之间存在依赖边,即在某网络通道申请使用其相邻的某个通道时,这一通道被其它CWL模块占用,二者之间具有等待关系;某一位为0表示所属CWL模块未被其它CWL模块占用,两个CWL模块之间不存在依赖边,网络通道之间没有等待关系;每个CWL模块另通过START,IFSAME,END三个信号线与同步中心相连,实现网络的同步功能,并通过DEADLOCKPTR信号线与该CWL所代表的网络通道相连接;通道等待标识模块CWL由初始化单元、输入判定单元、输入反馈单元、选择器、输出寄存器、输出判定单元、结果输出单元、缓存栈和比较器构成;初始化单元由输入缓存和置寄存器信号部件组成,对外与路由网络中的n个路由节点相连,并通过START信号线与同步中心相连,对内与选择器相连;置寄存器信号部件从同步中心接收START信号,当START信号为1时,将置寄存器信号置为1,送往选择器;在死锁检测开始时,输入缓存进行初始化,暂存该CWL模块所对应的通道与相邻的可被申请使用的通道之间的等待关系,当该CWL模块申请使用某一相邻通道时,二者之间存在等待关系,输入缓存对应位的值置为1,否则置为0;输入判定单元与为该CWL提供输入的m个CWL相连,对内与选择器相连;当从m个输入CWL接收的信号全部为0时,输入判定单元将n 位全0信号送往选择器,当从m个输入CWL接收的信号非全0时输入判定单元无动作;选择器是一个2选1选择器,其数据输入端与初始化单元的输入缓存和输入判定单元相连,控制输入端与初始化单元的置寄存器信号部件相连,输出端与输出寄存器相连;当选择器接收到的置寄存器信号为1时,选择器从输入缓存获得n位结果,送往输出寄存器,否则从输入判定单元获得结果送往输出寄存器;输出寄存器共有n位,输出寄存器输入端与选择器相连,并通过反馈输入信号线和n位输出CWL相连,输出寄存器输出端与输出判定单元、缓存栈和比较器相连,并通过输出信号线和输出CWL相连;当从反馈输入接收的反馈信号中有1时,输出寄存器n位全部置0,没有1时则输出寄存器接收选择器的选择结果;输出寄存器将n位值送至输出判定单元、缓存栈和比较器,并向n个输出CWL模块传送输出信号,每个输出CWL模块接收一位对应的输出信号;缓存栈为n位,与输出寄存器和比较器相连,并通过CLK信号线接收来自路由网络的时钟信号,缓存栈在时钟信号每拍的上升沿处,寄存上一拍输出寄存器值;比较器对内与输出寄存器和缓存栈相连,对外通过IFSAME信号线与同步中心相连,比较器将缓存栈的内容与输出寄存器的内容进行比较,当输出寄存器和缓存栈的值相同时,将IFSAME信号置1并送至同步中心;输出判定单元是一个n位或门,与输出寄存器、结果输出单元和输入反馈单元相连,接收来自输出寄存器的信号;若n位输出寄存器信号全为0,输出判定单元将0送至结果输出单元和输入反馈单元,否则将1送至结果输出单元和输入反馈单元;结果输出单元是一个三态门逻辑结构,对内与输出判定单元相连,对外通过DEADLOCKPTR和END信号线与同步中心相连;当结果输出单元接受到来自于同步中心的END信号时,根据从输出判定单元接收到的信号产生DEADLOCKPTR信号送至同步中心,DEADLOCKPTR为1标识死锁通道;输入反馈单元对内与输出判定单元相连接,对外与m个相连的输入CWL相连,输入反馈单元从输出判定单元接收判定信号,当信号为0时,产生反馈输出信号将m个输入CWL模块的输出寄存器全部置为0,当信号为1时不进行操作;同步中心由计数器、同步状态机、全1判别部件、START扇出部件和END扇出部件组成;全1判别部件是或门逻辑结构,对外通过IFSAME信号与N个CWL模块相连,对内与同步状态机相连;全1判别部件接收N位IFSAME信号进行全1判别,若N位IFSAME信号全为1,判别信号为1,指示所有CWL模块当前状态不再变化,检测结束,否则判别信号为0继续检测;计数器与同步状态机相连;当每次死锁检测结束时,计数器清0,重新开始计时,到T拍时启动死锁检测;T由网络规模和死锁发生的频率设定, 使得计数器每到T拍进行一次死锁检测,计数器的每拍与路由网络的时钟节拍同步;同步状态机与全1判别部件、计数器、START扇出部件和END扇出部件相连;同步状态机由空闲和检测两个状态组成;START扇出部件对内与同步状态机相连,对外通过START信号线与所有CWL模块相连;当同步状态机从空闲状态进入检测状态时,通过N位START信号线向N个CWL模块发送启动信号,通道等待网络开始进行死锁检测;END扇出部件对内与同步状态机相连,对外通过END信号线与所有CWL模块相连,当同步状态机从检测状态进入空闲状态时,通过N位END信号线将结束信号送至N个CWL模块;第二步,启动路由网络,同步状态机处于空闲状态,向START扇出部件发送值为0的START扇出信号,通道等待网络的同步中心的计数器开始计数,节拍与路由网络的时钟节拍一致;第三步,基于通道等待网络每隔时间T拍进行一次死锁检测,流程如下:3.1在同步中心的计数器到达第T拍时,同步状态机由空闲状态转为检测状态,向START扇出部件发送值为1的START扇出信号,START扇出部件向所有的CWL模块发送START信号,N个CWL模块接收到START扇出部件发送的START信号,死锁检测开始;3.2对通道等待网络进行初始化:每个CWL的输入缓存从相连的n个路由节点获取该CWL模块所对应的通道与相邻通道之间的等待关系:当该CWL所对应的通道申请使用某一相邻通道时,二者间存在通道等待关系,输入缓存的对应位为1;当该CWL所对应的通道没有申请使用某一通道时,二者间不存在等待关系,输入缓存的对应位为0;输出寄存器在接收来自输入缓存的信号,相应位也为1或0;3.3每个CWL模块对自身的m位输入进行逻辑检测,方法是:3.3.1若m位输入全为0,输出寄存器的n位输出信号线也全部为0,转3.5;3.3.2若m位输入不全为0,则输出判定单元对从输出寄存器接收的n位输出信号进行判定,如果n位输出全为0,则由输入反馈单元通过反馈信号线对与所属CWL相连的m个输入CWL发送反馈信号,m个输入CWL接收到反馈信号后,分别将各自对该CWL的输入也置为0,转3.4;如果n位输出不全为0,则直接转3.4;3.4每个CWL模块的比较器分别比较各自n位输出与缓存栈中上一拍的输出是否相同,如果相同,由CWL模块中的比较器置IFSAME信号为1,并由缓存栈暂存这一拍n位输出信号的值,转3.5;如果不同跳转到3.3;3.5同步中心的全1判别部件若发现所有CWL模块的IFSAME均为1,代表网络状态没有变化了,达到稳态网络,同步状态机由检测状态转为空闲状态,向END扇出部件发送值为1的END扇出信号,同步中心的END扇出部件向所有CWL模块发送END信号,计数器清零,检测结束,将此时输入信号或输出信号不为0的CWL模块称为剩余CWL模块,所有剩余的CWL模块所对应的通道存在于一个死锁结中;剩余CWL模块的结果输出单元置DEADLOCKPTR信号为1,标识死锁通道并且通知路由节点启动死锁解锁,计数器清零重新开始计时,转3.1;若全1判别部件发现存在有某个CWL模块的IFSAME值不为1,则向同步状态机发送值为0的判别信号,同步状态机仍然处于检测状态并向END扇出部件发送值为0的END扇出信号,跳转到3.3步。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310486505.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top