【技术实现步骤摘要】
一种防止总线死锁的方法及装置
本专利技术涉及高性能芯片设计领域,尤其涉及一种防止总线死锁的方法及装置。
技术介绍
AXI(AdvancedeXtensibleInterface)总线协议是由ARM公司提出一种高性能高带宽的片上总线协议,在片上系统(system-on-chip,SOC)中被广泛采用。AXI总线采取读-写分离,地址/控制与数据分离的传输机制,通过定义读地址通道(AR),读数据通道(R),写地址通道(AW),写数据通道(W),写响应通道(B)五个独立的传输通道,很大程度上提高了传输效率。在基于AXI总线协议的SOC中,多主设备(Master)和多从设备(Slave)之间常通过总线互联Interconnect模块(也称为总线矩阵,即BusMatrix)实现数据交换。SOC常常由多个Interconnect模块级联构成。Interconnect模块兼容AXI协议所支持的Outstanding传输访问和乱序(Out-of-Order,OoO)访问机制,这在一方面提升了传输吞吐率,但在另一方面,也增加了总线死锁的风险,尤其是在多级Interconnect模块级联的总线系统中。在AXI传输中,Master用ID号来标记每一次传输,Interconnect模块通过扩展每一个Master的ID号以区分不同的Master,对于同一个Master用同一个ID号发出不同的传输,不同的传输必须按照顺序进行,而Slave可以以OoO的方式返回不同ID号的传输。这种机制在多Master同时访问多Slave时可能形成握手信号之间的循环依赖(CyclicDependence ...
【技术保护点】
1.一种防止总线死锁的方法,其特征在于,所述方法包括:建立动态路由表,其中,所述动态路由表用来记录主设备Master发出的但未到达从设备Slave的写地址命令的状态信息;根据所述动态路由表判断总线是否会产生死锁;若所述总线会产生死锁,确定并阻塞造成死锁的所述写地址命令。
【技术特征摘要】
1.一种防止总线死锁的方法,其特征在于,所述方法包括:建立动态路由表,其中,所述动态路由表用来记录主设备Master发出的但未到达从设备Slave的写地址命令的状态信息;根据所述动态路由表判断总线是否会产生死锁;若所述总线会产生死锁,确定并阻塞造成死锁的所述写地址命令。2.根据权利要求1所述的方法,其特征在于,所述根据所述动态路由表判断总线是否会产生死锁包括:根据Master与Slave之间的关系生成关系矩阵;其中,若所述Master向所述Slave发送写地址命令,所述关系矩阵的对应位置为第一标识,若所述Master不向所述Slave发送所述写地址命令,所述关系矩阵的对应位置为第二标识;根据所述动态路由表和所述关系矩阵判断总线是否会产生死锁。3.根据权利要求2所述的方法,其特征在于,所述根据所述动态路由表和所述关系矩阵判断总线是否会产生死锁,包括:判断所述关系矩阵是否是死锁矩阵;其中,所述死锁矩阵为所述关系矩阵中能够使所述总线产生死锁的矩阵;若所述关系矩阵是所述死锁矩阵,判断所述死锁矩阵是否是最简死锁矩阵;其中,所述最简死锁矩阵为所述死锁矩阵中能够使所述总线产生死锁,并且形式最简单的矩阵;若所述死锁矩阵不是所述最简死锁矩阵,将所述死锁矩阵转换成所述最简死锁矩阵;根据所述动态路由表和所述最简死锁矩阵判断所述总线是否会产生死锁。4.根据权利要求3所述的方法,其特征在于,所述判断所述关系矩阵是否是死锁矩阵,包括:判断所述关系矩阵的每一行和每一列是否分别存在至少2个所述第一标识;若所述关系矩阵的每一行和每一列分别存在至少2个所述第一标识,确定所述关系矩阵是所述死锁矩阵;若所述关系矩阵的一行或一列不存在至少2个所述第一标识,确定所述关系矩阵不是所述死锁矩阵。5.根据权利要求4所述的方法,其特征在于,所述若所述关系矩阵是所述死锁矩阵,判断所述死锁矩阵是否是最简死锁矩阵,包括:若所述关系矩阵是所述死锁矩阵,判断所述死锁矩阵的每一行和每一列是否均存在2个所述第一标识;若所述关系矩阵的每一行和每一列均存在2个所述第一标识,确定所述死锁矩阵是所述最简死锁矩阵;若所述关系矩阵的一行或一列存在多于2个所述第一标识,确定所述死锁矩阵不是所述最简死锁矩阵。6.根据权利要求5所述的方法,其特征在于,所述若所述死锁矩阵不是所述最简死锁矩阵,将所述死锁矩阵转换成所述最简死锁矩阵,包括:若m×k阶死锁矩阵不是所述最简死锁矩阵,根据所述m×k阶死锁矩阵得到个i×i阶子矩阵;其中,m、k均为大于1的整数,l=min(m,k),i=2、3…l;从所述个i×i阶子矩阵中筛选出i×i阶死锁矩阵;判断所述i×i阶死锁矩阵是否是所述最简死锁矩阵;若所述i×i阶死锁矩阵不是所述最简死锁矩阵,将所述i×i阶死锁矩阵转换成所述最简死锁矩阵。7.根据权利要求6所述的方法,其特征在于,所述若m×k阶死锁矩阵不是所述最简死锁矩阵,根据所述m×k阶死锁矩阵得到个i×i阶子矩阵,包括:若m×k阶死锁矩阵不是最简死锁矩阵,在所述m×k阶死锁矩阵中选择i行和i列的数,从所选择的i行和i列的数中选取同时包含在所述i行和i列中的数并生成所述i×i阶矩阵;选取个所述i×i阶矩阵,得到所述个i×i阶矩阵。8.根据权利要求6所述的方法,其特征在于,所述若所述i×i阶死锁矩阵不是所述最简死锁矩阵,将所述i×i阶死锁矩阵转换成所述最简死锁矩阵,包括:若所述i×i阶死锁矩阵不是所述最简死锁矩阵,将所述i×i阶死锁矩阵中存在多于2个所述第一标识的行或列中多余的所述第一标识置位成所述第二标识,使所述i×i阶死锁矩阵的每一行和每一列均存在2个所述第一标识,得到所述最简死锁矩阵。9.根据权利要求3所述的方法,其特征在于,所述写地址命令的状态信息包括源接口的接口名、目的接口的接口名、第一时序收敛寄存器片的信息和第二时序收敛寄存器片的信息,其中,所述第一时序收敛寄存器片的信息为所述写地址命令从所述源接口到达所述目的接口的传输路径中需经过的时序收敛寄存器片的信息,所述第二时序收敛寄存器片的信息为当前时刻所述写地址命令已经过的时序收敛寄存器片的信息,所述源接口是与发送所述写地址命令的所述Master连接的Slave接口,所述目的接口是与接收所述写地址命令的所述Slave相连接的Master接口。10.根据权利要求9所述的方法,其特征在于,所述根据所述动态路由表和所述最简死锁矩阵判断所述总线是否会产生死锁,包括:根据所述最简死锁矩阵和所述动态路由表获取所述Master向所述Slave发送所述写地址命令的发送时刻;根据所述最简死锁矩阵和所述动态路由表获取所述Master发送的所述写地址命令到达所述Slave的路径中的延时;根据所述写地址命令的发送时刻和所述路径中的延时判断所述Master与所述Slave之间的关系是否满足死锁特征;其中,所述死锁特征为第一Master先向第一Slave发送第一写地址命令,后向第二Slave发送第二写地址命令;第二Master先向所述第二Slave发送第三写地址命令,后向所述第一slave发送第四写地址命令;并且所述第二写地址命令先于所述第三写地址命令到达所述第二Slave;所述第四写地址命令先于所述第一写地址命令到达所述第一Slave。若所述Master与Slave之间的关系满足死锁特征,确定所述总线会产生死锁。11.根据权利要求10所述的方法,其特征在于,所述根据所述最简死锁矩阵和所述动态路由表获取所述Master向所述Slave发送写地址命令的发送时刻,包括:根据所述最简死锁矩阵在所述动态路由表中获取所述写地址命令的第二时序收敛寄存器片的信息;获取当前时刻的时刻信息;根据所述当前时刻的时刻信息和所述第二时序收敛寄存器片的信息,计算所述Master向所述Slave发送写地址命令的发送时刻。12.根据权利要求10所述的方法,其特征在于,所述根据所述最简死锁矩阵和所述动态路由表获取所述Master发送的所述写地址命令到达所述Slave的路径中的延时,包括:根据所述最简死锁矩阵在所述动态路由表中获取第一时序收敛寄存器片的信息;根据所述第一时序收敛寄存器片的信息计算所述Master发送的所述写地址命令到达所述Slave的传输路径中的延时。13.根据权利要求12所述的方法,其特征在于,所述根据所述写地址命令的发送时刻和所述路径中的延时判断所述Master与所述Slave之间的关系是否满足死锁特征,包括:判断所述第一Master向所述第一Slave发送所述第一写地址命令的发送时刻是否小于所述第一Master向所述第二Slave发送所述第二写地址命令的发送时刻;判断所述第二Master向所述第二Slave发送所述第三写地址命令的发送时刻是否小于所述第二Master向所述第一Slave发送的所述第四写地址命令的发送时刻;判断所述第二写地址命令到达所述第二Slave的到达时刻是否小于所述第三写地址命令到达所述第二Slave的到达时刻;判断所述第四写地址命令到达所述第一Slave的到达时刻是否小于所述第一写地址命令到达所述第一Slave的到达时刻;若所述第一Master向所述第二Slave发送所述第二写地址命令的发送时刻大于所述第一Master向所述第一Slave发送所述第一写地址命令的发送时刻,且所述第二写地址命令到达所述第二Slave的到达时刻小于所述第三写地址命令到达所述第二Slave的到达时刻;并且,所述第二Master向所述第一Slave发送所述第四写地址命令的发送时刻大于所述第二Master向所述第二Slave发送所述第三写地址命令的时刻,且所述第四写地址命令到达所述第一Slave的时刻小于所述第一写地址命令到达所述第一Slave的时刻;确定所述Master与Slave之间的关系满足死锁特征。14.根据权利要求1所述的方法,其特征在于,所述方法根据所述动态路由表判断总线是否会产生死锁,包括:根据所述动态路由表判断Mast...
【专利技术属性】
技术研发人员:刘毅,
申请(专利权)人:深圳市中兴微电子技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。