系统总线的防死锁方法、装置及片上系统的利记博彩app

文档序号:6463783阅读:420来源:国知局
专利名称:系统总线的防死锁方法、装置及片上系统的利记博彩app
技术领域
本发明涉及系统总线技术领域,特别涉及防止片上系统内部的互联总线死 锁的方法及装置,以及片上系统。
背景技术
较为成熟的SoC (SoC, System on Chip,片上系统)内部总线的互联协议 有AXI (先进可扩展接口 )、 OCP (开放核协议)等。在基于AXI总线协议的SoC 架构中,通过Interconnect (总线互联模块)的Bus Matrix (总线矩阵)实现 多Master (主设备)对多Slave (从设备)的数据流交换。AXI协议通过数据携 带的ID号进行数据跟踪,AXI的Interconnect根据地址控制信号判断目的出口 , 但是数据是按照其携带的序号来顺序传输的,即对于同一个Master的同一个 ID号的数据必须按顺序传输。同时,AXI协议支持Outstanding (挂起)和 Out-of-Order (乱序)的传输模式。其中,Out-of-0rder包括读数据乱序 (Out-of-Order Read )、写数据间插(Write Interleave),以及读和写才喿作交 互。
不论是读数据还是写数据,对于Slave来说,都需要向Master返回一个数 据(或者是读数据,或者是写响应)。上述的乱序传输是指对于同一个Slave不 同ID号的数据可按照乱序返回。
所以,对于不同的Master来说,如果它们采用相同的ID号发送数据,为 了区分, 一般都在将ID号修改成Master的编号和原ID的组合,这样,对于 Interconnect来说,不同的Master发出的相同的ID号的教:据,由于ID号被修 改了,是可以乱序传输的。而对于Slave来i兌,*接收到不同Master的相同ID 的数据,也可以按照乱序传输。
由于上述Slave对于不同Master的相同IDlt据的处理方式,佳_得在AXI 总线运用过程中,可能出现死锁,如图l所示,其中,mi—x—sj是表示Master i 到Slave j的读命令,x表示ID号。
图1中,Masterl发送了两个ID号均为0的命令,第一个命令发给Slavel,第二个命令发给Slave2。由于ID号相同,所以要按照顺序传输,这里的顺序传 输是指有与Masterl的直接连接的Slave接口 1来保证的,slave接口 1需要 先将Slavel返回的数据传输给Masterl,再将Slave2返回的数据传输给 Masterl,所以先传输发送给Slavel数据,再传输发送给Slave2的数据。也就 是说,先传输图中的ml_0-sl命令,再传输ml — 0-s2。同理,图中的Master2发 送的两个ID号均为0的命令,需要先传输m2-0-s2命令,再传输m2-0 —sl。
图1中的Slave接口 1和Slave接口 2均需要修改数据的ID,以区分不同 Master以相同ID传输的命令。即slave接口 1将ID为0的命令修改成ID为 00的命令,slave接口 2将ID为0的命令修改成ID为10的命令。即生成如 下四个命令ml_00-sl、 ml-00-s2、 m2_10_s2、 m2_10_sl。所以,在interconnect 内部,以及Slave均会以ID不同的方式来处理接收到的命令,也就是可以乱序 传输。
由于Slavel /人interconnect内部的masterl的4妄口"|妾》1欠到两个ID号不同 的命令ml — 00-sl和m2 — 10-sl, Slavel可以乱序处理接收到的命令。
假设slavel乱序优先处理了第二个命令m2_ 10_ s 1,优先返回根据m2_ 10_ s 1 4f到的凄t才居给master2。 <旦由于Master2与interconnect连>|妄的slave2的才妄口 连接,使得Slavel的根据m2_10_sl得到的数据在通过slave2的接口返回给 Master2之前,需要等到Slave2已经根据m2 —10_s2得到的数据先返回给 Master2。
如果此时的情况是Slave2乱序处理后,优先返回才艮据ml_00_s2得到数据 给Masterl,那么在Slave2无法成功返回根据ml_00—s2得到数据给Masterl之 前,暂时不能返回根据m2-10 —s2得到数据给Master2。但是Slave2要成功通过 slavel的接口返回根据ml — 00 — s2得到的数据给Masterl,也需要等到slavel 已经根据m2 — 10_s 1得到的数据返回完成后才可以达到,及需要完成前面的假设 目标的完成。这样就造成了 Slavel和Slave2返回的数据互相等待,并且slavel 和slave2的数据总线都得不到释放,造成系统死锁。
目前,解决上述原因造成的系统死锁的方法,主要有如下两种 1、在Interconnect连>|妄Master的Slave 口上增力口判断還辑,如果一个 Master使用同一个ID号访问不同的Slave,那么它在内部把该Master的第二个访问挂起,也就是不接收该访问,直到前一个访问完成才接收第二个访问。
2、如果同时有两个MasteiM吏用相同的ID号同时访问不同的Slave,那么 它将阻塞后一个Master的操:作。直到前一个Master的才喿作完成,才启动后一 个Master的才喿4乍。
上述第一种防死锁方法,由于同一个Master在同一时间不能通过同一 ID 访问不同的Slave,所以可以有效的防止AXI系统出现死锁问题。但是,这将损 失系统性能。图2表示的是一个Master发出相同ID号访问不同Slave的情况, Master2前面的一个idG的4喿作访问Slave2,而后面的一个idG的4喿作要访问 的Slavel,可是Interconnect 4巴后面的idO:燥作症会阻止了 ,以防死锁的发生。 这时,Master2后面的idl, id2的操作都不可能发出来了 。而如果Slave2处理 Master2的优先级^艮低,那么Master2发送的id0的操作就会被Slave2放在它 的处理队列的下面,如图2所示,id0的操作在Slave2中队列的最下面。如果 Slave2的队列^艮深,Master2就将被阻塞#:久。这样,Master2就相当于症会冻结 了,它的outstanding特性也发挥不出来。
上述第二种防死锁方法也存在性能损失的问题。如图3所示,Master2分 别发送两个id0的操作到Slavel和Slave2, id0到Slave2的操作是在前面的, 而idO到Slavel的4喿作是在后面的。而这时Masterl也有两个idO才喿作需要分 别发送到Slavel和Slave2。 Interconnect才艮据判断死锁规遞原则,将把Master 1 的操作阻塞,直到Master2发送到Slave2所有idO才喿作完成。而Master2发送 到Slave2的idO操作可能在Slave2中阻塞很久,使得Masterl就被阻塞很久, 所以这里就严重限制了 Masterl的处理速度。
第二种防死锁方法还有可能出现如下缺陷如图4所示,Master2先发出 id0的操作给Slave2,然后再发出id0的操作给Slavel,因为优先级的关系, Slave2暂时没有处理Master2发来的id0的操作,而Slavel已经处理了 Master2 发来的idO的操作,但是,需要等到Slave2的数据返回到Mas ter2,才能将Slavel 的数据返回Master2。造成其他Master,如Masterl, MasterO都不能正常访问 Slavel
发明内容
本发明实施例提供了一种系统总线的防死锁方法、装置及片上系统,在防 止系统发生死锁的同时,能够较好的保证总线的性能。
为达到上述目的,本发明的实施例采用如下技术方案 一种系统总线的防死锁方法,包括 接收操作命令;
判断所接收到的操作命令与已下发但未完成的目标操作命令是否会造成系 统死锁;
若会造成系统死锁,则阻塞向从设备下发所接收到的操作命令; 下发提高优先级命令,以加快所述目标操作命令的处理。 一种系统总线的防死锁装置,包括 存储模块,用于存储已下发的目标操作命令; 接收模块,用于接收操作命令;
判断模块,用于判断接收模块接收到的操作命令与存储模块中的目标操作 命令是否会造成系统死锁;
阻塞模块,用于在所述判断模块判断会造成系统死锁时,阻塞下发所接收 到的操作命令;
发送模块,用于在所述判断模块判断会造成系统死锁时,下发提高优先级 命令,以加快所述目标操作命令的处理。
一种片上系统,包括用于与总线互联模块连接的从设备,所述从设备包括: 存储单元,用于存储未完成的操作命令;
接收单元,用于接收提高优先级命令,所述提高优先级命令中包括操作命 令的序号;
查找单元,用于在所述存储单元中根据提高优先级命令中的序号查找未完 成的目标操作命令;
优先级修改单元,用于提高查找单元在存储单元中查找到的目标操作命令 的优先级。
由上述技术方案所描述的本发明的实施例,在接收到一个才喿作命令时,首 先去判断该操作命令,是否会于之前已经发出但尚未完成的目标操作命令发生 死锁,如果上述的两个操作命令存在发生死锁的条件,就认为可能发生死锁,则需要将刚接收到的操作命令阻塞,以截断可能发生死锁的条件,防止了死锁 现象的产生,同时本发明实施例还需要发送一个提高优先级命令,以加快目标 操作命令的处理速度。这样可以加快解除发生死锁的条件,以减少刚接收到的
命令被阻塞的时间,从而在整体上保证操作命令的处理速度,能够较好地保证 片上系统总线的性能。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描 述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动性的前提下,还可以才艮据这些附图获得其他的附图。
图1为现有技术中AXI总线的原理图2为现有技术中第一种防死锁方法应用的示意图3为现有技术中第二种防死锁方法运用的示意图4为现有技术中第二种防死锁方法另一种运用的示意图5为本发明实施例1中防死锁方法的流程图6为本发明实施例1中防死锁装置的框图7为本发明实施例1中系统的从设备示意图8为本发明实施例2中防死锁方法的流程图9为本发明实施例2中防死锁装置的框图IO为本发明实施例2中传输Dummy操作命令的时序图11为本发明实施例2中系统的从设备示意图12为本发明实施例2中DDRC的结构示意图。
具体实施例方式
本发明实施例在存在可能发生死锁的条件时,阻塞刚接收到的搡作命令, 并发送提高优先级命令,加快已发出但未完成的目标操作命令的处理速度,在 截断发生死锁条件的同时,充分利用系统总线的性能。
下面结合附图对本发明系统总线的防死锁方法、装置及从设备的实施例进4亍详细4苗述。
实施例1:
如图5所示,本实施例中系统总线的防死锁方法包括如下步骤
501、 总线互联模块接收到主设备发送的操作命令,在本实施例中,该操作 命令可以包括序号、访问的从设备、操作命令对应的地址以及操作命令的具体 操作。
502、 总线互联模块判断所接收到的操作命令与已下发但未完成的目标操作 命令是否会造成系统死锁。本步骤中判断是否会造成系统死锁的具体技术为
当同一个主设备采用同一个序号的操作命令访问不同的从设备,或者不同的主 设备采用同 一个序号的操作命令分别访问不同的从设备时,则在后续从设备对 操作命令进行处理时,可能造成系统死锁。
本步骤中,如果判断得出不存在可能发生死锁的条件,则执行步骤503;否 则执行步骤504。
503、 如果上述步骤502中不存在可能发生死锁的条件,则通过相应的接口 将操作命令发送到相应的从设备中,并结束流程。
504、 如果上述步骤502中存在可能发生死锁的条件,则总线互联模块阻塞 所接收到的操作命令,本实施例中实现方式为将总线互联模块中发送该操作 命令到相应从设备准备信号(axready)置为无效,并将接收到操作命令进行緩 存。
505、 总线互联模块通过地址通道向目标操作命令对应的从设备下发提高优 先级命令,以加快该从设备对所述目标操作命令的处理速度。
本实施例还提供一种系统总线的防死锁装置,如图6所示,该装置包括 存储模块61、接收模块62、判断模块63、阻塞模块64和发送模块65。
在存储模块61存储了已下发到从设备的操作命令,当从设备完成了操作命 令时,需要将已完成的操作命令置为无效,或者删除。接收模块62用于接收主 设备发送的操作命令,该操作命令中至少包括序号和访问的从设备。判断模块 63根据所述的序号和访问的从设备,判断所接收到的操作命令与存储模块61中 有效的操作命令是否会造成系统死锁,具体造成系统死锁的条件为同一个主 设备采用同一个序号的操作命令访问不同的从设备,或者不同的主设备采用同一个序号的操作命令分别访问不同的从设备。
当判断模块63判断得出存在可能发生死锁的条件时,通过阻塞模块64阻 塞所接收到的操作命令;即不将接收到的操作命令发送到对应的从设备。还需 要获取存储模块61可能发生死锁条件对应的目标操作命令,通过发送模块65 向所述目标操作命令对应的从设备下发提高优先级命令,以加快该从设备所述 目标操作命令的处理速度。
对应于上述防死锁方法,本实施例还提供一种片上系统,包括总线互联才莫 块以及连接到总线互联模块的从设备,如图7所示,该总线互联模块的从设备 包括存储单元71、接收单元72、查找单元73和优先级修改单元74。
在存储单元71中存储了该从设备所有已经接收但未完成的操作命令;当接 收单元72接收到总线互联模块发来的提高优先级命令时,查找单元73在存储 单元71中查找对应的未完成操作命令,在提高优先级命令中需要携带操作命令 的序号,这样查找单元73就可以根据所述的序号来查找未完成的操作命令。在 查找到对应的未完成操作命令后,通过优先级修改单元74查找到的操作命令的 优先级修改为当前最高,以使得该从设备能够优先处理所查找到的操作命令, 从而能够快速地解除总线发生死锁的条件,以充分利用片上系统内部总线的性 能。
本实施例中,在阻塞可能发生死锁的操作命令的同时,发送一个提高优先 级命令,以使得之前已发出但未完成,并且会和刚接收到的操作命令发生死锁 操作命令能够快速被处理,快速解除发生死锁的条件,以减少刚接收到的命令 被阻塞的时间,从而在整体上保证操作命令的处理速度,能够较好地保证片上 系统总线的性能。
实施例2:
本实施例是在AXI总线中实现的系统内部总线的防死锁技术,在其他总线 中也可以采用本实施例类似的技术方案。如图8所示,本实施例中系统总线的 防死锁方法包括如下步骤
801、AXI总线的interconnect将每个发送到从设备的操作命令均保存下来, 并且记录所保存操作命令的序号和对应的从设备,在完成该操作命令后,可以
将其置为无效,或者直接删除,本实施例中采用置为无效的方式。interconnect中保存的有效目标操作命令表示该操作命令是已经发出,但是并没有完成的。
802、 AXI总线的interconnect接收到Masterl (主i殳备1 )发送的才喿作命 令,假定该操作命令的序号为0,需要访问的Slavel (从设备l),并且要求读 取Slavel中特定地址的数据。
803、 获耳又interconnect中保存的所有有效目标4喿作命令的序号,以及访 问的从设备。
804、 判断所获取到的序号是否和接收到的操作命令序号相同,即获取到的 序号是否为0;并判断所获取到访问的从设备与接收到的操作命令访问的从设备 是否相同,即获取到访问的从设备是否为Slavel。若所获取的序号为0,且访 问的设备不是Slavel,则执行步骤806;否则执行步骤805。
805、 所接受到的操作命令与之前已发出但未完成的操作命令不会造成系统 死锁,所以可以直接将接收到的操作命令发送到对应的从设备中。
806、 所接受到的操作命令与之前已发出但未完成的操作命令可能造成系统 死锁,所以需要阻塞所接收到的操作命令,即将该操作命令的地址信号和序号 进行缓存。本步骤中,在阻塞刚接收到的操作命令的同时,可以将刚接收到的 操作命令緩存。
807、 假定目标操作命令访问的从设备是Slave2,则本步骤中需要向Slave2 发送一个提高优先级命令,以加快Slave2对目标操作命令的处理速度。 一般情 况下,所述提高优先级命令至少包括目标操作命令的序号,还应该包括目标操 作命令对应的从设备编号,以便将该提高优先级命令发送到对应编号的从设备中。
808、 从设备Slave2接收到提高优先级命令后,根据提高优先级命令中目 标操作命令的序号,查找到未完成的操作命令,如果没有查找到相应的操作命 令,则可以不进行任何操作,如果查找到了相关的操作命令,则执行步骤809。
809、 将查找到的操作命令的优先级置为当前最高,由于在从设备中,将接 收到的操作命令按照先进先出的方式排列,本实施例中可以将所查找到的操作 命令修改到先进先出队列的队首,以实现将优先级置为当前最高的效果。
810、 在将提高优先级命令发出后,本实施例中的interconnect还需要时 刻检测目标操作命令是否已经完成;并在目标操作命令完成后,将刚刚接收到并被阻塞的操作命令发送到对应的从设备,即发送给Slavel。
对应于上述防死锁方法,本实施例还提供一种片上系统内部总线的防死锁 装置,该装置是基于现有AXI总线的interconnect实现的,如图9所示,该装 置具体包括存储模块91、接收模块92、判断模块93、阻塞模块94和发送模 块95。
在存储模块91存储了已下发到从设备的操作命令,当从设备完成了操作命 令时,需要将已完成的操作命令置为无效。接收模块92用于接收主设备发送的 操作命令,该操作命令中至少包括序号和访问的从设备。
判断模块93根据所述的序号和访问的从设备编号,分析所接收到的操作命 令与存储模块91中有效的操作命令是否会造成系统死锁,可能发生死锁的条件 为同一个主设备采用同一个序号的操作命令访问不同的从设备,或者不同的 主设备采用同一个序号的操作命令分别访问不同的从设备。
本实施例中,所述判断模块93的具体实现如下
通过获取模块931获取存储模块91中目标操作命令的序号和访问的从设 备;然后通过判断子模块932判断所述接收到的操作命令序号与所获取的序号 是否相同,并且判断接收到的操作命令访问的从设备与目标操作命令访问的从 设备是否相同;如果所迷的序号相同,但访问的从设备不同,则通过输出模块 933输出表示存在造成系统死锁条件的信号,否则输出模块933输出表示不会造 成系统死锁的信号。
当判断模块93中的输出模块933输出表示存在可能发生死锁的条件时,通 过阻塞模块94阻塞所接收到的操作命令;即不将接收到的操作命令发送到对应 的从设备。同时需要获取存储模块91可能发生死锁条件对应的目标操作命令, 通过发送模块95向目标操作命令对应的从设备下发提高优先级命令,以加快该 从设备对所述目标操作命令的处理速度。
本实施例中的防死锁装置还包括检测模块96和操作命令发送模块97。检测 模块96周期性地检测目标操作命令是否已经完成;当检测到所述目标操作命令 完成时,通过操作命令发送模块97将刚刚接收到并被阻塞的操作命令发送到对 应的从设备。
本实施例中发送提高优先级命令的具体实现如下在Interconnect上相应的Master 口发出一个D画y (内部)操作命令,用 来表示提高优先级命令,在该Dummy操作命令中包含了需要提高优先级的操作 命令的序号。所述的Dummy操作命令是Slave可以认识的,Slave接收到该Dummy 操作命令后,查找Dummy操作命令中序号所对应的操作命令,并将查找到的操 作命令的优先级置为当前最高,这样Slave就能把相应的操作立刻完成。
对于Dummy操作命令的传输,必须符合AXI协议的传输,而且必须能够指 示出Dummy操作命令的特殊操作。本实施例中通过AXI总线的地址通道中Burst (缺口 )信号来指示出Dummy操作命令的特殊操作。在AXI总线的地址通道中 Burst信号中的一个值没有使用,而且Burst信号是在地址通道中作为控制信号 进行传输的信号,基本上所有的AXI总线的从设备都会使用Burst信号。
所以本实施例中的Dummy操:作命令包括有效的地址信号、序号和Burst信 号,并且不需要接收Slave的响应信号,这使得命令就简单,使得Interconnect 和Slave上所需要增加的逻辑减少。
如图10所示,在地址通道传输Dummy才喿作命令的时候,地址信号和序号是 由分析模块传输过来,而Burst信号需要固定为2, bll(以表示该信号为Dummy 操作命令),其他信号都可以固定为O。
对应于上述防死锁方法,以及在interconnect中设计的防死锁装置,本实 施例还提供一种片上系统的从设备,该从设备主要运用在上述的AXI总线中。 如图11所示,该从设备包括存储单元lll、接收单元112、查找单元113和 优先级修改单元114。
在存储单元lll中存储了该从设备所有已经接收但未完成的操作命令;当 接收单元112接收到总线互联模块发来的提高优先级命令时,查找单元113在 存储单元lll中查找对应的未完成操作命令,在提高优先级命令中需要携带操 作命令的序号,这样查找单元113就可以根据所述的序号来查找未完成的操作 命令。在查找到对应的未完成操作命令后,通过优先级修改单元114查找到的 操作命令的优先级修改为当前最高,以使得该从设备能够优先处理所查找到的 操作命令,从而能够快速地解除总线发生死锁的条件,以充分利用片上系统内
理,本实施例片上系统的从设备中的存储单元lll为先进先出队列,每个先到达从设备的操作命令将被优先处理,通过将操作命令修改到先进先出队列的队 首,即可将该操作命令的优先级提高到当前最高。
除了采用FIFO (先进先出)队列管理操作命令的优先级以外,在具体实现 时,还可以采用其他的方式对操作命令的优先级进行管理,此处不再赘述。
上述的提高优先级命令就是interconnect发出的Dummy操作命令,Slave 接收到该Dummy操作命令后,查找Dummy操作命令中序号所对应的操作命令, 并将查找到的操作命令的优先级置为当前最高,即将查找到的操作命令修改到 先进先出队列的队首,这样Slave就能把相应的操作立刻完成。通过上述方法 把阻塞的源条件解除了 ,该Slave的处理优先级被临时打断了一下,对于该Slave 需要满足的QoS (服务质量)影响不大,但却比较好的满足了 AXI总线的QoS。
上述描述从设备的对于Dummy操作命令的响应,对于AXI系统总线的所有 Slave都是可用的。由于SoC系统的一般架构中,DDRC (双速率动态随机访问存 储控制器)是SoC系统的整个带宽决定点。很多master的大部份操作都是访问 DDRC。所以AXI系统总线中连接的DDRC控制器Outstanding (请求挂起) 一般 是比较深的,而且支持Out-of-0rder。下面就Slave是DDRC的情况进行描述。
如图12所示,在从设备DDRC中,新增的逻辑单元(LU)通过AXI传l餘的 命令通道接收到信号,LU对接收到进行判断,如果不是Dummy操作命令,则进 行正常的传输;如果接收到的信号是Dummy操作命令,那么LU给出Ready信号, 并且把Dummy操作命令中的ID号存储下来,然后在命令FIFO里面查找ID号与 Dummy操作命令中的ID号相符操作命令,如果找到符合要求的操作命令,则把 该操作命令的优先级设置为当前最高,下一次DDRC就会马上执行,而如果没有 发现符合要求的操作命令命令,可以不做任何操作,那是因为所述的操作命令 可能是DDRC刚刚执行完成或正在执行。
在上述实施例中,接收到操作命令后,如果会与之前已发送的操作命令发 生死锁,则阻塞刚接收到的操作命令,并通过提高优先级命令请求加快之前已 发送的操作命令的处理,这个提高优先级命令通过Dummy操作命令实现,只需 要用到AXI中的一个写地址通道,将其中的Burst信号设为2, bll,来表时该 写地址通道传输的是Dummy操作命令。Slave接收到Dummy操作命令后,提高对 应操作命令的优先级,即将对应操作命令修改到先进先出队列的队首,这样Slave就会马上处理对应的操作命令,从而解除发生死锁的条件,使得被阻塞的 操作命令能够较快地被发送到相应的Slave。
以上所述实施例主要用在各种需要对总线的系统中,以防止发生死锁,并 能够充分利用总线的性能,特别是用在容易发生死锁的AXI总线系统,以及AXI 总线系统中所用的从设备中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但 很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算 机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包 括若干指令用以使得一台设备(可以是服务器,或者网络设备等)执行本发明 各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围 应该以权利要求的保护范围为准。
权利要求
1、一种系统总线的防死锁方法,其特征在于包括接收操作命令;判断所接收到的操作命令与已下发但未完成的目标操作命令是否会造成系统死锁;若会造成系统死锁,则阻塞向从设备下发所接收到的操作命令;下发提高优先级命令,以加快所述目标操作命令的处理。
2、 根据权利要求1所述的系统总线的防死锁方法,其特征在于,所述判断 所接收到的操作命令与已下发但未完成的目标操作命令是否会造成系统死锁具 体为获取已下发但未完成的目标操作命令的序号和访问的从设备编号;判断所述接收到的操作命令序号与所获取的序号是否相同,所述接收到的 操作命令访问的从设备与已下发但未完成的操作命令访问的从设备是否相同;若所述序号相同,并且所访问的从设备不同,则判断会造成系统死锁。
3、 根据权利要求1所述的系统总线的防死锁方法,其特征在于,所述提高 优先级命令包括所述目标操作命令的序号。
4、 根据权利要求3所述的系统总线的防死锁方法,其特征在于,所述加快 目标操作命令的处理具体为根据提高优先级命令中目标操作命令的序号,查找已下发但未完成的目标 操作命令;提高所述查找到的目标操作命令的优先级。
5、 根据权利要求1所述的系统总线的防死锁方法,其特征在于还包括 检测所述目标操作命令是否已经完成;若所述目标操作命令已经完成,则向从设备下发所接收到的操作命令。
6、 一种系统总线的防死锁装置,其特征在于包括 存储模块,用于存储已下发的目标操作命令; 接收模块,用于接收操作命令;判断模块,用于判断接收模块接收到的操作命令与存储模块中的目标操作 命令是否会造成系统死锁;阻塞模块,用于在所述判断模块判断会造成系统死锁时,阻塞下发所接收 到的操作命令;发送模块,用于在所述判断模块判断会造成系统死锁时,下发提高优先级 命令,以加快所述目标才喿作命令的处理。
7、 根据权利要求6所述的系统总线的防死锁装置,其特征在于,所述判断 模块包括获取模块,用于获取所述存储模块中目标操作命令的序号,以及对应访问 的从设备编号;判断子模块,用于判断接收模块接收到的操作命令序号与所获取的序号是 否相同,接收模块接收到的操作命令访问的从设备编号与目标操作命令访问的 从设备编号是否相同;输出模块,用于在判断模块判断所述序号相同,并且所访问的从设备编号 不同时,输出表示会造成系统死锁的信号。
8、 根据权利要求6所述的系统总线的防死锁装置,其特征在于还包括 检测模块,用于检测所述目标操作命令是否已经完成;操作命令发送模块,用于在检所述测模块检测到所述目标操作命令完成时, 下发所接收到的操作命令。
9、 一种片上系统,包括用于与总线互联模块连接的从设备,其特征在于, 所述从设备包括存储单元,用于存储未完成的操作命令;接收单元,用于接收提高优先级命令,所述提高优先级命令中包括操作命 令的序号;查找单元,用于在所述存储单元中根据提高优先级命令中的序号查找未完 成的目标操作命令;优先级修改单元,用于提高查找单元在存储单元中查找到的目标操作命令 的优先级。
10、根据权利要求9所述的片上系统,其特征在于,所述存储单元为先进 先出队列,所述优先级修改单元将查找到的操作命令修改到所述先进先出队列 的队首。
全文摘要
本发明的实施例公开了一种系统总线的防死锁方法、装置及片上系统,涉及片上系统技术领域,解决了现有防死锁技术会较大程度地影响系统总线的性能的问题。本发明实施例将可能产生死锁的操作命令阻塞,并且通过发送一个提高优先级命令,加快从设备对之前发出的并且引起死锁根源的操作命令的处理速度。本发明实施例主要用在需要总线的系统或设备中,如AXI系统总线等。
文档编号G06F13/14GK101308477SQ20081011067
公开日2008年11月19日 申请日期2008年6月13日 优先权日2008年6月13日
发明者晶 夏, 华 曾 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1