CN104932942B - 缓冲资源的分配方法和装置 - Google Patents
缓冲资源的分配方法和装置 Download PDFInfo
- Publication number
- CN104932942B CN104932942B CN201510290006.1A CN201510290006A CN104932942B CN 104932942 B CN104932942 B CN 104932942B CN 201510290006 A CN201510290006 A CN 201510290006A CN 104932942 B CN104932942 B CN 104932942B
- Authority
- CN
- China
- Prior art keywords
- buffer
- order
- data
- command object
- cushion space
- 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
Landscapes
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明实施例提供一种缓冲资源的分配方法和装置,该装置包括命令缓冲器和数据缓冲器,方法包括:接收从第一总线发来的第一命令并检测命令缓冲器中是否存在空闲的缓冲空间;当命令缓冲器中存在空闲的缓冲空间,则在命令缓冲器中为第一命令动态分配第一缓冲空间,并将第一命令缓存在分配的第一缓冲空间;根据仲裁策略从命令缓冲器中选择目标命令;将目标命令进行协议转换,并将转换后的目标命令发送至第二总线,通过在命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的空闲情况分配空间,有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种缓冲资源的分配方法和装置。
背景技术
随着超大规模集成电路(Very Large Scale Integration,简称:VLSI)和半导体制造工艺的不断发展,为了减小VLSI芯片的功耗,缩小VLSI芯片的面积,提出将ARM的第三代数据总线协议(Advanced eXtensible Interface,简称:AXI)总线到ARM的一致性总线协议的转换,以将读通道和写通道处理单元融合,来缩小芯片面积,而现在的多核处理器的体系结构中较多模块还是AXI协议接口,因此需要设置转接桥模块将AXI协议接口转换为一致性总线协议接口。
图1为AXI协议接口转换为一致性总线协议接口的转接桥模块的示意图,如图1所示,现有的从上图可以看出,读地址通道AR、读数据通道RD、写地址通道AW、写数据通道WD以及响应通道B都分别设置有独立的缓冲区,每个缓冲区用于对应的通道的预处理和暂存,以写数据的过程为例,其具体实现过程为:写地址通道的写命令有效,若写地址通道对应的缓冲区有空闲空间,则接收该写命令,并将该写命令发送至仲裁模块,至该写命令被仲裁出时,发送至协议转换模块完成AXI协议至一致性协议的转换,同时根据被仲裁的写命令信息从对应的写数据通道中取数据,并缓存在写数据通道的缓冲区,直到该写命令对应的所有数据接收完成,则将所有数据发送到一致性协议总线。如果AW对应的缓冲区为非空时,则不能接受发送的新的写命令,而是选择该AW缓冲区中未处理的时间最久的写命令发送至仲裁模块进行后续处理,直至该AW缓冲区空闲,才能进行前述接收写命令,实现后续过程。现有技术对于读命令以及读数据的处理方式与写类似。
然而,现有的转接桥模块中,例如当写通道流量大,读通道流量小时,该方案的写通道缓冲区的资源紧张,而读通道缓冲区有很多空闲资源,造成在读和写流量不均衡的场景下,缓冲区资源浪费,利用率较低。
发明内容
本发明提供一种缓冲资源的分配方法和装置,用于在读和写流量不均衡的场景下,减小缓冲器资源浪费,提高资源的利用率。
本发明第一方面提供一种缓冲资源的分配方法,应用于缓冲资源分配装置,所述装置包括命令缓冲器和数据缓冲器;所述方法包括:
接收从第一总线发来的第一命令,并检测所述命令缓冲器中是否存在空闲的缓冲空间;其中,所述第一总线为ARM的第三代数据总线,所述第一命令包括读命令或写命令;
当所述命令缓冲器中存在空闲的缓冲空间,则在所述命令缓冲器中为所述第一命令分配第一缓冲空间,并将所述第一命令缓存在分配的所述第一缓冲空间;
根据预设的仲裁策略从所述命令缓冲器缓存的所述第一命令中选择目标命令,对所述目标命令进行协议转换,并将转换后的目标命令发送至第二总线,所述第二总线为ARM的第五代数据总线。
结合第一方面,在第一方面的第一种可能的实施方式中,所述方法还包括:
当所述命令缓冲器中不存在空闲的缓冲空间时,则反压所述第一命令。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述方法还包括:
检测所述第一命令的反压时间是否超过预设阈值;
当检测到所述第一命令的反压时间超过所述预设阈值时,屏蔽从所述第一总线发来的其他命令,并实时检测所述命令缓冲器中是否存在空闲的缓冲空间,直至为所述第一命令分配到第一缓冲空间后,解除对所述第一总线发来的其他命令的屏蔽。
结合第一方面、第一方面的第一种或第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述当根据仲裁策略从所述命令缓冲器中选择出的目标命令之后,还包括:
若所述目标命令为写命令,则在所述数据缓冲器中为所述目标命令对应的数据预分配第二缓冲空间;
当接收到所述目标命令对应的数据,则将所述目标命令对应的数据缓存在所述第二缓冲空间,直至所述目标命令对应的数据全部接收完成,则将所述目标命令对应的全部数据发送至所述第二总线,并清空所述第二缓冲空间。
结合第一方面、第一方面的第一种至第三种中的任一种可能的实施方式,在第一方面的第四种可能的实施方式中,若所述目标命令为读命令,且所述目标命令不是重发命令,则所述将转换后的目标命令发送至第二总线之后,还包括:
接收所述第二总线返回的与所述目标命令对应的数据;
检测所述数据缓冲器是否存在空闲的缓冲空间;
若所述数据缓冲器存在空闲空间,则在所述数据缓冲器中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,还包括:
若所述数据缓冲器不存在空闲空间,则将所述目标命令对应的数据丢弃,并向所述命令缓冲器重发所述读命令。
结合第一方面、第一方面的第一种至第三种中的任一种可能的实施方式,在第一方面的第六种可能的实施方式中,若所述目标命令为读命令,且所述目标命令是重发命令,则所述对所述目标命令协议转换之后,还包括:
实时检测所述数据缓冲器是否存在空间的缓冲空间,在所述数据缓冲器中为所述目标命令对应的数据预分配第四缓冲空间;
接收所述第二总线返回的与所述目标命令对应的数据,并将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
本发明第二方面提供一种缓冲资源的分配装置,包括:第一接收通道,命令缓冲管理模块,命令缓冲器,仲裁模块和协议转换模块;所述命令缓冲管理模块,用于通过所述第一接收通道,接收从第一总线发送的第一命令,并检测所述命令缓冲器中是否存在空闲的缓冲空间,当所述命令缓冲器中存在空闲的缓冲空间,则在所述命令缓冲器中为所述第一命令分配第一缓冲空间,并将所述第一命令缓存在所述第一缓冲空间,其中,所述第一总线为ARM的第三代数据总线,所述所述第一命令包括读命令或写命令;
所述仲裁模块用于根据预设的仲裁策略从所述命令缓冲器缓存的所述第一命令中选择目标命令;
所述协议转换模块用于将所述目标命令进行协议转换,并将转换后的目标命令发送至第二总线,所述第二总线为ARM的第五代数据总线。
结合第二方面,在第二方面的第一种可能的实施方式中,所述命令缓冲管理模块还用于,当所述命令缓冲器中不存在空闲的缓冲空间时,则反压所述第一命令。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,还包括:检测模块,用于检测所述第一命令的反压时间是否超过预设阈值;
所述命令缓冲管理模块还用于当所述检测模块检测到所述第一命令的反压时间超过所述预设阈值时,屏蔽从所述第一总线发来的其他命令,并实时检测所述命令缓冲器中是否存在空闲的缓冲空间,直至为所述第一命令分配到第一缓冲空间后,解除对所述第一总线发来的其他命令的屏蔽。
结合第二方面、第二方面的第一种或第二种可能的实施方式,在第二方面的第三种可能的实施方式中,若所述仲裁模块根据仲裁策略从所述命令缓冲器中选择出的所述目标命令为写命令,则所述装置还包括:第一发送通道、数据缓冲器和数据缓冲管理模块,所述数据缓冲管理模块用于在数据缓冲器为所述写命令对应的数据预分配第二缓冲空间;
所述数据缓冲器还用于通过所述第一接收通道接收所述目标命令对应的数据;
所述数据缓冲管理模块还用于将所述目标命令对应的数据缓存在所述第二缓冲空间;
所述数据缓冲管理模块还用于在所述目标命令对应的数据全部接收完成后,通过所述第一发送通道将所述目标命令对应的全部数据发送至所述第二总线;
所述数据缓冲管理模块还用于清空第二缓冲空间。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,若所述仲裁模块仲裁出的目标命令为读命令,且所述目标命令不是重发命令,则所述装置还包括:第二接收通道,所述数据缓冲管理模块还用于通过所述第二接收通道接收所述第二总线返回的与所述读命令对应的数据;
则所述数据缓冲管理模块具体用于:
检测数据缓冲器是否存在空闲的缓冲空间;若所述数据缓冲器存在空闲空间,则在所述数据缓冲器中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
结合第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述数据缓冲管理模块还具体用于:若所述数据缓冲器不存在空闲空间,则将所述目标命令对应的数据丢弃,并指示所述命令缓冲管理模块向所述命令缓冲器重发所述目标命令。
结合第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,若所述仲裁模块仲裁出的目标命令为读命令,且所述目标命令是重发命令,则所述数据缓冲管理模块还具体用于:实时检测所述数据缓冲器是否存在空间的缓冲空间,在所述数据缓冲器中为所述目标命令对应的数据预分配第四缓冲空间;
所述数据缓冲器还用于通过所述第二接收通道接收所述第二总线返回的与所述目标命令对应的数据;
所述数据缓冲管理模块还用于将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
本发明提供的缓冲资源的分配方法和装置,通过在预先设置的专用于缓冲命令的命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的总的空闲情况动态分配空间,在仲裁后的命令是写命令的情况下,在数据缓冲器为该命令对应的数据预占缓冲空间,该数据缓冲器的空间远远大于现有技术中的写数据通道对应的缓冲器,且该数据缓冲器不限制缓冲数据的类型,只根据空闲情况进行动态分配,相比有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为AXI协议接口转换为一致性总线协议接口的转接桥模块的示意图;
图2为本发明缓冲资源的分配方法实施例一的流程图;
图3为本发明缓冲资源的分配方法实施例二的流程图;
图4为本发明缓冲资源的分配方法实施例三的流程图;
图5为本发明缓冲资源的分配方法实施例四的流程图;
图6为本发明缓冲资源的分配方法中命令缓冲器的分配流程图;
图7为本发明缓冲资源的分配方法中数据缓冲器的分配流程图;
图8为本发明缓冲资源的分配装置实施例一的结构示意图;
图9为本发明缓冲资源的分配装置实施例二的结构示意图;
图10为本发明缓冲资源的分配装置实施例三的结构示意图;
图11为本发明缓冲资源的分配应用流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的技术方案将现有的读地址通道、读数据通道、写地址通道、写数据通道以及响应通道对应的五个缓冲器进行资源合并处理,然后分为命令缓冲器和数据缓冲器,该命令缓冲器只用于缓冲通过命令通道发送来的命令,该数据缓冲器用于缓冲读写数据,还用于缓冲响应。上述的命令缓冲器可以根据接收到的命令进行动态分配,调整读命令和写命令的缓冲空间的个数,同样的数据缓冲器也可以动态调整数据、响应等的缓冲空间,在上述改进的基础上,下面结合附图,详细介绍本发明的缓冲资源的分配方法。
图2为本发明缓冲资源的分配方法实施例一的流程图;如图2所示,该方法主要应用于缓冲资源分配装置中,装置包括命令缓冲器和数据缓冲器;所述命令缓冲器为预先配置的用于缓存命令的缓冲器;所述数据缓冲器为预先配置的用于缓存数据的缓冲器,即该命令缓冲器专用于缓冲命令,数据缓冲器专用于缓冲数据,在该装置架构下,该缓冲资源的分配方法具体包括:
S101:接收从第一总线发来的第一命令,并检测所述命令缓冲器中是否存在空闲的缓冲空间。
在本实施例中,从第一总线接收到的第一命令可以是通过读地址通道发送的读命令、也可以是通过写地址通道发送的写命令,该方案不限制第一命令的具体类型。所述第一总线为精简指令集微处理器(英文:Advanced RISC Machines,简称:ARM)的第三代数据总线,也称为AXI总线。命令缓冲管理模块在收到第一命令后检测命令缓冲器的空闲情况,即检测命令缓冲器中是否存在空闲的缓冲空间。
S102:当所述命令缓冲器中存在空闲的缓冲空间,则在所述命令缓冲器中为所述第一命令分配第一缓冲空间,并将所述第一命令缓存在分配的所述第一缓冲空间。
在本实施例中,所述命令缓冲器为只用于缓存命令的缓冲器。如果检测出命令缓冲器有空闲的缓冲空间,则直接在命令缓冲器为该第一命令分配第一缓冲空间。
可选的,当所述命令缓冲器中不存在空闲的缓冲空间时,则反压所述第一命令。本实施例中反压指的是暂停处理该第一命令,即不接受该第一命令。
在接收到第一命令时,检测所述第一命令的反压时间是否超过预设阈值;即每次接收到一个命令,需要检测下该命令是否长时间未被处理,当检测到所述第一命令的反压时间超过所述预设阈值时,认为该第一命令未被处理的时间超过了预设阈值,则按照下面的方式进行处理:
屏蔽从所述第一总线发来的其他命令,并实时检测所述命令缓冲器中是否存在空闲的缓冲空间,直至为所述第一命令分配到第一缓冲空间后,解除对所述第一总线发来的其他命令的屏蔽,继续处理其他的命令,即处理该超时的第一命令。
若该第一命令没有超时,但是命令缓冲器没有足够的空闲缓冲空间,则向ARM的第三代数据总线反压该第一命令,当检测到反压的该第一命令超过设置的时间,则按照第一命令超时时的处理方式,屏蔽其他命令,优先为该第一命令分配缓冲空间。
S103:根据预设的仲裁策略从所述命令缓冲器缓存的所述第一命令中选择目标命令,对所述目标命令进行协议转换,并将转换后的目标命令发送至第二总线。
在本实施例,当第一命令被缓冲在命令缓冲器之后,等待仲裁,当仲裁模块按照其仲裁策略对命令缓冲器中的命令进行仲裁,从命令缓冲器中选择出目标命令,该目标命令有可能是上述第一命令也可能是其他命令,将所述第一命令的协议类型进行转换,本发明中是由AXI协议转换为一致性协议(即ARM的第五代总线协议:Skyros协议),发送给第二总线,该第二总线指的是ARM的第五代数据总线、即一致性协议总线。
在本实施例中,该仲裁策略为预先设置的从命令缓冲器中取出命令的规则,例如根据优先级的轮询规则,或者先入先出规则等,具体不做限制,可根据实际需求配置。
本实施例提供的缓冲资源的分配方法,通过在命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的总的空闲情况动态分配空间,有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
图3为本发明缓冲资源的分配方法实施例二的流程图,如图3所示,在上述实施例的基础上,当根据仲裁策略从所述命令缓冲器中选择出目标命令之后,该缓冲资源的分配方法的具体实现步骤还包括:
S201:若所述目标命令为写命令,则在所述数据缓冲器中为所述目标命令对应的数据预分配第二缓冲空间。
在本实施例中,所述数据缓冲器为只用于缓存数据的缓冲器。
如果仲裁出的目标命令是写数据命令,则在将该写命令进行协议转换并发送给第二总线的同时,通知数据缓存管理器该写命令已经被仲裁,由数据缓存管理器为该写命令在专用于缓存数据的数据缓冲器预占空间,即通过静态allocate在数据缓冲器中为该写命令对应的数据预分配第二缓冲空间。
S202:当接收到所述目标命令对应的数据,则将所述目标命令对应的数据缓存在所述第二缓冲空间,直至所述目标命令对应的数据全部接收完成,则将所述目标命令对应的全部数据发送至所述第二总线,并清空所述第二缓冲空间。
在本实施例中,为该目标命令(即上述写命令)在数据缓冲器预占第二缓冲空间后,待通过写数据通道接收到所述写命令对应的数据,则将接收到的与所述写命令对应的数据依次缓冲在第二缓冲空间,当检测到与该写命令对应的数据已经全部接收完成,则将该写命令对应的数据发送给第二总线,释放该第二缓冲空间,即将该第二缓冲空间清空,以便后续的其他数据使用。
在本实施例中,数据缓冲器和命令缓冲器为将现有技术的五个缓冲器合并后,按照命令和数据分为两个缓冲器,命令缓冲器不限制命令的类型,数据缓冲器也不限制是读取的数据还是写入的数据,只是根据缓冲器的空闲情况进行动态分配。
本实施例提供的缓冲资源的分配方法,通过在命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的总的空闲情况动态分配空间,在仲裁后的命令是写命令的情况下,在数据缓冲器为该命令对应的数据预占缓冲空间,该数据缓冲器的空间远远大于现有技术中的写数据通道对应的缓冲器,且该数据缓冲器不限制缓冲数据的类型,只根据空闲情况进行动态分配,相比有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
图4为本发明缓冲资源的分配方法实施例三的流程图,如图4所示,在上述实施例的基础上,当根据仲裁策略从所述命令缓冲器中选择出的目标命令为读命令,且所述目标命令不是重发命令,则将转换后的第一命令发送至第二总线之后,该缓冲资源的分配方法的具体实现步骤还包括:
S301:接收所述第二总线返回的与所述目标命令对应的数据。
在本实施例中,仲裁出的第一命令是非重发的读命令时,则将该读命令进行协议转换发送给第二总线后,等待第二总线返回与该读命令对应的数据。
S302:检测所述数据缓冲器是否存在空闲的缓冲空间。
在本实施例中,接收到第二总线返回的与该读命令对应的数据,检测用于缓冲数据的数据缓冲器的空闲情况,以便决策对该读命令对应的数据的处理方式。
S303:若所述数据缓冲器存在空闲空间,则在所述数据缓冲器中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
S304:若所述数据缓冲器不存在空闲空间,则将所述目标命令对应的数据丢弃,并向所述命令缓冲器重发所述读命令。
在本实施例中,若检测到数据缓冲器有空闲的空间,则为该目标命令(即上述读命令)对应的数据分配第三缓冲空间,将第二总线返回的与该读命令对应的数据缓存在第三缓冲空间中,直至该数据被读取完成,释放该第三缓冲空间。
如果该数据缓冲器不存在空闲的空间,则将接收到的该数据丢弃,并向命令缓冲器再次发送该读命令,重发的该读命令是由数据缓冲管理器指示命令缓冲管理器发送的,以使该重发的读命令经过仲裁再次进行后续处理,对于该重发的读命令的具体处理方式如图5所示的实施例。
图5为本发明缓冲资源的分配方法实施例四的流程图,如图5所示,在上述实施例的基础上,若仲裁出的目标命令为读命令,且所述目标命令是重发命令,则在对目标命令进行协议转换之后,该缓冲资源的分配方法的具体实现步骤为:
S401:实时检测所述数据缓冲器是否存在空间的缓冲空间,在所述数据缓冲器中为所述目标命令对应的数据预分配第四缓冲空间。
在本实施例中,数据缓冲管理器在判断出目标命令(即上述读命令)为重发命令时,采用静态allocate方式为该读命令分配第四缓冲空间,即轮询数据缓冲器的空间情况,发现数据缓冲器有空闲时,优先为该重发的读命令预分配第四缓冲空间。
在为该重发的读命令预分配到第四缓冲空间之后,按照图2中的步骤,将该重发的读命令进行协议转换后发送至第二总线。即为该重发的读命令对应的数据预占了第四缓冲空间之后,再将该读命令(即第一命令)发送至第二总线进行处理。
S402:接收所述第二总线返回的与所述目标命令对应的数据,并将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
在本实施例中,待第二总线返回与上述重发的读命令对应的数据后,直接将读命令对应的数据缓存在所述第四缓冲空间内等待读取。后续处理过程与实施例三相同。
数据缓冲器除了可以缓冲读写的数据,还可以缓冲响应数据,具体的处理方式与非重发的读命令对应的数据的处理方式相同。
本实施例提供的缓冲资源的分配方法,本实施例提供的缓冲资源的分配方法,通过在命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的总的空闲情况动态分配空间,在仲裁后的命令是读命令的情况下,在接收到ARM的第五代数据总线返回的与该读命令对应的数据后,在数据缓冲器为该读命令对应的数据分配缓冲空间或者丢弃,在重发命令过程中预占缓冲空间,该合并后的数据缓冲器的空间远远大于现有技术中的写数据通道对应的缓冲器,且该数据缓冲器不限制缓冲数据的类型,只根据空闲情况进行动态分配,相比有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
在上述图2至图5所示的实施例的基础上,下面结合详细的流程图介绍本发明的缓冲资源的分配方法的实现过程:
图6为本发明缓冲资源的分配方法中命令缓冲器的分配流程图,如图6所示,对接收到的第一总线发来的读命令或写命令的具体处理过程为:
首先是读命令的处理:
S011:读命令。即接收到由第一总线通过读地址通道发送的读命令,则执行步骤S012。
S012:检测命令缓冲器是否有空闲?
对命令缓冲器的空闲情况进行检测,如果有空闲则执行S013,如果没有空闲则执行S014。
S013:分配缓冲空间。即在命令缓冲器中为该读命令分配缓冲空间,并将该读命令缓冲在分配的空间中。
S014:启动读命令反压超时检测。检测到命令缓冲器没有空闲后,将该读命令反压,即拒绝,由读地址通道设置的反压检测模块进行反压超时检测。
S015:检测读命令是否超时?
若检测到该读命令已经超时,则执行S016,若检测到该读命令还未超时,则继续等到并继续检测。
S016:屏蔽所有其他命令的缓冲申请。即检测到该读命令已经超时,则屏蔽所有其他的命令的缓冲空间的申请优先处理该超时的读命令的申请。
S017:检测到命令缓冲器有空闲?持续检测命令缓冲器的空闲状况,即是否有处理完成的命令释放了缓冲空间。如果检测到命令缓冲器有空闲则执行S013,如果检测到命令缓冲器没有空闲空间则继续屏蔽其他的命令,实时检测命令缓冲器,即一旦出现空闲,则执行S013。
其次是写命令的处理:
S021:写命令。即接收到由第一总线通过写地址通道发送的写命令,则执行步骤S012。
S022:检测命令缓冲器是否有空闲?
对命令缓冲器的空闲情况进行检测,如果有空闲则执行S023,如果没有空闲则执行S024。
S023:分配缓冲空间。即在命令缓冲器中为该写命令分配缓冲空间,并将该写命令缓冲在分配的空间中。
S024:启动写命令反压超时检测。检测到命令缓冲器没有空闲后,将该写命令反压,即拒绝,由写地址通道设置的反压检测模块进行反压超时检测。
S025:检测写命令是否超时?
若检测到该写命令已经超时,则执行S026,若检测到该写命令还未超时,则继续等到并继续检测。
S026:屏蔽所有其他命令的缓冲申请。即检测到该写命令已经超时,则屏蔽所有其他的命令的缓冲空间的申请优先处理该超时的写命令的申请。
S027:检测到命令缓冲器有空闲?持续检测命令缓冲器的空闲状况,即是否有处理完成的命令释放了缓冲空间。如果检测到命令缓冲器有空闲则执行S023,如果检测到命令缓冲器没有空闲空间则继续屏蔽其他的命令,实时检测命令缓冲器,即一旦出现空闲,则执行S023。
从上面图6的流程中可以看出,在某一时间段内,若读地址通道的的流量较少,甚至为零,写地址通道的流量很大时,该方案会将大部分的命令缓冲器分配给写命令使用,反之亦然。
图7为本发明缓冲资源的分配方法中数据缓冲器的分配流程图,如图7所示,在上述图6所示的基础上,完成对命令的缓冲分配并缓冲在命令缓冲器之后的具体处理过程为:
S018、S028:读命令?写命令?判断仲裁模块根据仲裁策略仲裁出的命令是读命令还是写命令?如果是写命令则依次执行S029-S0213。如果是读命令则依次执行S019-S0119(包括循环步骤)。
首先介绍写数据的处理(写数据的过程中写命令和对应的写数据同时发送过来,在写命令被仲裁后进行接收写数据):
S029:写命令。即仲裁模块仲裁出的命令是写命令则执行步骤S0210的同时执行S0211。
S0210:将写命令发送到一致性协议总线。即将仲裁后的写命令进行协议转换并发送给一致性协议总线继续进行处理。
S0211:在数据缓冲器为写命令对应数据预占缓冲空间。即数据缓冲器的管理模块在接收到仲裁结果通知后,为将要通过写数据通道发来的写命令对应的数据预先分配空间,一般为静态allocate的方式,即循环检测数据缓冲器的空闲情况,直至存在空闲时为该写命令对应的数据分配缓冲空间。
S0212:写数据接收完成?即通过写数据通道接收写命令对应的数据,检测写数据是否全部接收到并缓冲在数据缓冲器,如果检测到全部接收并缓冲该写命令对应的数据,则执行S0213。
S0213:将写数据发送到一致性协议总线。即检测到该写命令对应的数据全部接收到,则将在数据缓冲器中缓冲的该写命令对应的数据全部发送至一致性协议总线,并清空对应的数据缓冲器的空间。
其次介绍读数据的处理(读取数据的过程中,读命令被处理完成后,等到一致性协议总线根据该读命令返回对应的数据):
S019:读命令。即仲裁模块仲裁出的命令是读命令则执行步骤S0110的同时执行S0211。
S0110:该读命令是不是重发命令?判断该读命令是不是重发的读命令,如果该读命令不是重发的,则执行S0111,否则执行S0118。
S0111:将读命令发送到一致性协议总线。即将仲裁后的读命令进行协议转换并发送给一致性协议总线继续进行处理。
等待给一致性协议总线返回与该读命令对应的数据。
S0112:接收第二总线返回的读命令对应的数据。
S0113:检测数据缓冲器是否有空闲?若检测到数据缓冲器有空闲,则执行S0114,否则执行S0116。
S0114:分配缓冲空间。将数据缓冲器中的空闲空间分配该读命令对应的数据。
S0115:读数据接收完成。待通过AXI总线的读数据通道将该读命令对应的数据全部读取完成后清空数据缓冲器中对应的空间。
S0116:丢弃该读命令对应的数据。在S0113中检测到数据缓冲器没有空闲的空间后,将该读命令对应的数据丢弃,然后执行S0117。
S0117:重发该读命令。本步骤的含义是数据缓冲器不存在空闲空间,则将对应的数据丢弃,即未接收,然后数据缓冲器管理模块箱命令缓冲器重新发送该读命令,即该读命令未处理,依然缓冲在命令缓冲器中上次缓冲的空间,然后重新等待仲裁和后续处理。
待再次仲裁出该读命令,经过S0110判断后发现是重发的读命令,则执行S0118。
S0118:转为静态缓冲空间申请方式。在检测到读命令是重发命令之后,屏蔽其他命令对应的数据缓冲空间申请,优先为该读命令对应的数据在数据缓冲器中预占缓冲空间。即数据缓冲器的管理模块在接收到仲裁结果为重发的读命令通知后,为将要从一致性协议总线返回的该读命令对应的数据预先分配空间,一般为静态allocate的方式,即循环检测数据缓冲器的空闲情况,直至存在空闲时为该读命令对应的数据分配缓冲空间。
S0119:静态申请缓冲空间成功?即通过静态allocate的方式为该读命令对应的数据预占缓冲空间成功后,执行S0111,将读命令发送到一致性协议总线,然后等待给一致性协议总线返回与该读命令对应的数据,然后依次执行S0112、S0114和S0115,本次处理过程中已经在数据缓冲器中预占了空间,因此可以直接使用该预占的空间将读命令对应的数据缓冲即可,不同重新检测空闲情况。
在本实施例中,写数据采用静态申请数据缓冲空间方式,读数据(非重发方式)采用动态申请数据缓冲的方式。当动态申请数据缓冲器间的数据返回后,找不到空闲的数据缓冲器间存储则抛弃该次读数据并重发该读命令,不同的是,该重发读命令在下一次的发送时得采用静态申请数据缓冲空间的方式。即在读命令的处理过程中,读命令在重发一次后必然会处理完成,不会出现多次丢弃数据的情况。
本实施例提供的对具体的读命令和写命令的完成的处理过程,本通过在命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的总的空闲情况动态分配空间,在仲裁后的命令是写命令的情况下,在数据缓冲器预占写命令对应的缓冲空间;在仲裁后的命令是读命令的情况下,在接收到返回的与该读命令对应的数据后,在数据缓冲器为该读命令对应的数据分配缓冲空间或者丢弃,在重发命令过程中预占缓冲空间,该合并后的数据缓冲器的空间远远大于现有技术中的写数据通道对应的缓冲器,且该数据缓冲器不限制缓冲数据的类型,只根据空闲情况进行动态分配,相比有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
图8为本发明缓冲资源的分配装置实施例一的结构示意图,如图8所示,该缓冲资源的分配装置10,具体包括:第一接收通道11,命令缓冲管理模块12,命令缓冲器13,仲裁模块14和协议转换模块15;所述命令缓冲管理模块12,用于通过所述接收通道11,接收从第一总线发送的第一命令,并检测所述命令缓冲器13中是否存在空闲的缓冲空间,当所述命令缓冲器13中存在空闲的缓冲空间,则在所述命令缓冲器13中为所述第一命令分配第一缓冲空间,并将所述第一命令缓存在所述第一缓冲空间,其中,所述第一总线为ARM的第三代数据总线,所述所述第一命令包括读命令或写命令,其中第一接收通道11包括读通道或写通道中的至少一个;
所述仲裁模块14用于根据预设的仲裁策略从所述命令缓冲器缓存的所述第一命令中选择目标命令;
所述协议转换模块15用于将所述目标命令进行协议转换,并将转换后的目标命令发送至第二总线,所述第二总线为ARM的第五代数据总线。
在本实施例中,命令缓冲管理模块12通过第一接收通道11(该第一接收通道包括读地址通道和/或写地址通道)接收到类型不同的第一命令,命令缓冲管理模块12检测命令缓冲器13的空闲情况为该第一命令分配缓冲空间,如果不存在空闲,命令缓冲管理模块12对该第一命令进行反压操作,如果存在空闲,命令缓冲管理模块12为该第一命令分配第一缓冲空间,并将该第一命令缓冲在第一缓冲空间待仲裁。当仲裁模块14仲裁出该第一命令后,由协议转换模块15进行协议转换,并将转换后的第一命令发送给第二总线。
该第一命令可以是数据的读命令、也可以是新写入数据的写命令,读命令是命令缓冲管理模块12通过读地址通道接收的,写命令是命令缓冲管理模块12通过写地址通道接收的。
可选的,所述命令缓冲管理模块12还用于,当所述命令缓冲器13中不存在空闲的缓冲空间时,则反压所述第一命令。
本实施例提供的缓冲资源的分配装置,用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,通过在命令缓冲器内为接收到的命令分配缓冲空间,无论每次接收到的命令是任何命令,都根据命令缓冲器的总的空闲情况动态分配空间,有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
图9为本发明缓冲资源的分配装置实施例二的结构示意图,如图9所示,在上述实施例的基础上,该装置10还包括:检测模块16,用于检测所述第一命令的反压时间是否超过预设阈值;
所述命令缓冲管理模块12还用于当所述检测模块16检测到所述第一命令的反压时间超过所述预设阈值时,屏蔽从所述第一总线发来的其他命令,并实时检测所述命令缓冲器13中是否存在空闲的缓冲空间,直至为所述第一命令分配到第一缓冲空间后,解除对所述第一总线发来的其他命令的屏蔽。
图10为本发明缓冲资源的分配装置实施例三的结构示意图,如图10所示,在上述实施例的基础上,若所述仲裁模块14根据仲裁策略从所述命令缓冲器13中选择出的所述目标命令为写命令,则所述装置10还包括:第一发送通道17、数据缓冲器18和数据缓冲管理模块19,所述数据缓冲管理模块19用于在数据缓冲器18为所述写命令对应的数据预分配第二缓冲空间;
所述数据缓冲器18还用于通过所述第一接收通道11接收所述目标命令对应的数据;
所述数据缓冲管理模块19还用于将所述目标命令对应的数据缓存在所述第二缓冲空间;
所述数据缓冲管理模块19还用于在所述目标命令对应的数据全部接收完成后,通过所述第一发送通道17将所述目标命令对应的全部数据发送至所述第二总线;
所述数据缓冲管理模块19还用于清空第二缓冲空间。
在本实施例中,数据缓冲器19是将现有的缓冲器合并处理后,分配的专门只用于缓存数据的缓冲器。
可选的,若所述仲裁模块14仲裁出的目标命令为读命令,且所述目标命令不是重发命令,则所述装置还包括:第二接收通道20,所述数据缓冲管理模块19还用于通过所述第二接收通道20接收所述第二总线返回的与所述读命令对应的数据;
则所述数据缓冲管理模块19具体用于:
检测数据缓冲器18是否存在空闲的缓冲空间;若所述数据缓冲器18存在空闲空间,则在所述数据缓冲器18中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
可选的,所述数据缓冲管理模块19还具体用于:若所述数据缓冲器18不存在空闲空间,则将所述目标命令对应的数据丢弃,并指示所述命令缓冲管理模块12向所述命令缓冲器13重发所述目标命令。
可选的,若所述仲裁模块14仲裁出的目标命令为读命令,且所述目标命令是重发命令,则所述数据缓冲管理模块19还具体用于:实时检测所述数据缓冲器18是否存在空间的缓冲空间,在所述数据缓冲器18中为所述目标命令对应的数据预分配第四缓冲空间;
所述数据缓冲器18还用于通过所述第二接收通道20接收所述第二总线返回的与所述目标命令对应的数据;
所述数据缓冲管理模块19还用于将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
在本实施例中,仲裁出目标命令为重发的读命令之后,发送通知告知数据缓冲管理模块19该读命令为重发命令,以使数据缓冲管理模块19在数据缓冲器18中为该重发的读命令预占空间,在数据缓冲管理模块19为该重发读命令预占到第四缓冲空间之后,将该命令进行协议转换并发送给第二总线进行处理。
本实施例提供的缓冲资源的分配装置,用于执行图2至图7所示任一方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。
下面再上述两个实施例的基础上,结合实际应用时候的该装置的结构图说明本发明的技术方案:
图11为本发明缓冲资源的分配应用流程示意图,如图11所示,在从AXI总线向一致性协议总线的转发过程中,至少有以下五个通道,读地址通道(简称AW)、写地址通道(简称AR)、写数据通道(简称WD)、响应通道(简称B)以及读数据通道(简称RD),图11中的第一接收通道和第二接收通道只是接收功能的限制,分别代表与第一总线和第二总线的连接通道,并不一定限制在相同或不同的部件来完成,对于每个通道可以单独接收,也可以由一个共同不同的命令或数据,对此本申请不做限制。
在接收到命令时,需要检测接收到的命令是否超时,因此设置了检测模块,该检测模块一般是在AW、AR上分别设置一个,图中的一个检测模块只是功能性示意并不限制设置数量,检测模块实现对读写通道流量的实时检测,为命令缓冲管理模块分配缓冲器提供分配依据,其实现原理是:软件预设置一个读或者写命令被反压的超时周期,当其检测到命令被反压周期超过设定值,将产生对应命令的超时信号(time-out)发送给命令缓冲管理模块,告知该命令超时未处理。
命令缓冲管理模块是根据检测模块的超时信息(超时信号或者没有发送信号),以及数据缓冲器的空闲情况来统筹的分配命令缓冲器,具体的:例如接收到一个读命令,从命令缓冲器中寻找一空闲空间。若找到空闲空间时,命令缓冲管理模块将此空闲空间分配给读命令,直到其命令完成后将其释放为止;若找不到空闲空间时,将反压AXI读地址通道(AR)(即不接受该命令)。然后由读地址通道设置的检测模块自动启动检测功能,当反压的时间超过其设定值时,发送超时信号到命令缓冲管理模块。命令缓冲管理模块收到该超时信号时,将锁定所有命令缓冲空间的申请操作,直到有原有命令释放缓冲空间后,该空闲空间优先分配给有带有超时信号的上述读命令。
对于写命令的处理方式也是类似的,不再赘述。
仲裁模块,其功能是按照其仲裁策略,从命令缓冲器中选择一个命令进行后续处理,(仲裁策略与现有技术相似,不再赘述)。
协议转换模块将AXI协议转换为一致性协议,协议的转换方式请参考现有技术方案中的转换方式。
数据缓冲管理模块:在接收到ARM的第五代数据总线返回的读命令对应的数据后,检测用于缓冲数据的数据缓冲的空闲情况,以便决策对该读命令对应的数据的处理方式,如果存在空闲空间,则为该数据分配缓冲空间,如果不存在空闲空间该读命令对应的数据丢弃,并向命令缓冲器重发所述读命令,以便在该读命令下次处理时,通过静态申请数据缓冲空间的方式,保证重发命令的数据能够成功处理。即按照动态申请数据缓冲空间或者静态申请数据缓冲空间的方式来管理数据缓冲器,以达到数据缓冲器的最佳利用率。
响应转发模块、数据转发模块,主要是用来转发响应消息和数据给不同的通道至AXI总线。
本发明实施例的缓冲资源的分配装置,用来执行图1至7任一所示的方法实施例的技术方案,其实现原理和技术效果类似,动态分配命令缓冲器和数据缓冲器的缓冲空间,只根据空闲情况进行动态分配,相比有效避免了读写不均衡的场景下,每个通道的缓冲器资源不能共享造成的资源浪费,提高资源的利用率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种缓冲资源的分配方法,其特征在于,应用于缓冲资源分配装置,所述装置包括命令缓冲器和数据缓冲器;所述方法包括:
接收从第一总线发来的第一命令,并检测所述命令缓冲器中是否存在空闲的缓冲空间;其中,所述第一总线为ARM的第三代数据总线,所述第一命令包括读命令或写命令;
当所述命令缓冲器中存在空闲的缓冲空间,则在所述命令缓冲器中为所述第一命令分配第一缓冲空间,并将所述第一命令缓存在分配的所述第一缓冲空间;
根据预设的仲裁策略从所述命令缓冲器缓存的所述第一命令中选择目标命令,对所述目标命令进行协议转换,并将转换后的目标命令发送至第二总线,所述第二总线为ARM的第五代数据总线。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述命令缓冲器中不存在空闲的缓冲空间时,则反压所述第一命令。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
检测所述第一命令的反压时间是否超过预设阈值;
当检测到所述第一命令的反压时间超过所述预设阈值时,屏蔽从所述第一总线发来的其他命令,并实时检测所述命令缓冲器中是否存在空闲的缓冲空间,直至为所述第一命令分配到第一缓冲空间后,解除对所述第一总线发来的其他命令的屏蔽。
4.根据权利要求1至3任一项所述的方法,其特征在于,当根据所述仲裁策略从所述命令缓冲器中选择出的目标命令之后,还包括:
若所述目标命令为写命令,则在所述数据缓冲器中为所述目标命令对应的数据预分配第二缓冲空间;
当接收到所述目标命令对应的数据,则将所述目标命令对应的数据缓存在所述第二缓冲空间,直至所述目标命令对应的数据全部接收完成,则将所述目标命令对应的全部数据发送至所述第二总线,并清空所述第二缓冲空间。
5.根据权利要求1至3任一项所述的方法,其特征在于,若所述目标命令为读命令,且所述目标命令不是重发命令,则所述将转换后的目标命令发送至第二总线之后,还包括:
接收所述第二总线返回的与所述目标命令对应的数据;
检测所述数据缓冲器是否存在空闲的缓冲空间;
若所述数据缓冲器存在空闲空间,则在所述数据缓冲器中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
6.根据权利要求4所述的方法,其特征在于,若所述目标命令为读命令,且所述目标命令不是重发命令,则所述将转换后的目标命令发送至第二总线之后,还包括:
接收所述第二总线返回的与所述目标命令对应的数据;
检测所述数据缓冲器是否存在空闲的缓冲空间;
若所述数据缓冲器存在空闲空间,则在所述数据缓冲器中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
7.根据权利要求5所述的方法,其特征在于,还包括:
若所述数据缓冲器不存在空闲空间,则将所述目标命令对应的数据丢弃,并向所述命令缓冲器重发所述读命令。
8.根据权利要求6所述的方法,其特征在于,还包括:
若所述数据缓冲器不存在空闲空间,则将所述目标命令对应的数据丢弃,并向所述命令缓冲器重发所述读命令。
9.根据权利要求1至3任一项所述的方法,其特征在于,若所述目标命令为读命令,且所述目标命令是重发命令,则所述对所述目标命令协议转换之后,还包括:
实时检测所述数据缓冲器是否存在空间的缓冲空间,在所述数据缓冲器中为所述目标命令对应的数据预分配第四缓冲空间;
接收所述第二总线返回的与所述目标命令对应的数据,并将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
10.根据权利要求4所述的方法,其特征在于,若所述目标命令为读命令,且所述目标命令是重发命令,则所述对所述目标命令协议转换之后,还包括:
实时检测所述数据缓冲器是否存在空间的缓冲空间,在所述数据缓冲器中为所述目标命令对应的数据预分配第四缓冲空间;
接收所述第二总线返回的与所述目标命令对应的数据,并将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
11.一种缓冲资源的分配装置,其特征在于,包括:第一接收通道,命令缓冲管理模块,命令缓冲器,仲裁模块和协议转换模块;所述命令缓冲管理模块,用于通过所述第一接收通道,接收从第一总线发送的第一命令,并检测所述命令缓冲器中是否存在空闲的缓冲空间,当所述命令缓冲器中存在空闲的缓冲空间,则在所述命令缓冲器中为所述第一命令分配第一缓冲空间,并将所述第一命令缓存在所述第一缓冲空间,其中,所述第一总线为ARM的第三代数据总线,所述所述第一命令包括读命令或写命令;
所述仲裁模块用于根据预设的仲裁策略从所述命令缓冲器缓存的所述第一命令中选择目标命令;
所述协议转换模块用于将所述目标命令进行协议转换,并将转换后的目标命令发送至第二总线,所述第二总线为ARM的第五代数据总线。
12.根据权利要求11所述的装置,其特征在于,所述命令缓冲管理模块还用于,当所述命令缓冲器中不存在空闲的缓冲空间时,则反压所述第一命令。
13.根据权利要求12所述的装置,其特征在于,还包括:检测模块,用于检测所述第一命令的反压时间是否超过预设阈值;
所述命令缓冲管理模块还用于当所述检测模块检测到所述第一命令的反压时间超过所述预设阈值时,屏蔽从所述第一总线发来的其他命令,并实时检测所述命令缓冲器中是否存在空闲的缓冲空间,直至为所述第一命令分配到第一缓冲空间后,解除对所述第一总线发来的其他命令的屏蔽。
14.根据权利要求11至13任一项所述的装置,其特征在于,若所述仲裁模块根据仲裁策略从所述命令缓冲器中选择出的所述目标命令为写命令,则所述装置还包括:第一发送通道、数据缓冲器和数据缓冲管理模块,所述数据缓冲管理模块用于在数据缓冲器为所述写命令对应的数据预分配第二缓冲空间;
所述数据缓冲器还用于通过所述第一接收通道接收所述目标命令对应的数据;
所述数据缓冲管理模块还用于将所述目标命令对应的数据缓存在所述第二缓冲空间;
所述数据缓冲管理模块还用于在所述目标命令对应的数据全部接收完成后,通过所述第一发送通道将所述目标命令对应的全部数据发送至所述第二总线;
所述数据缓冲管理模块还用于清空第二缓冲空间。
15.根据权利要求14所述的装置,其特征在于,若所述仲裁模块仲裁出的目标命令为读命令,且所述目标命令不是重发命令,则所述装置还包括:第二接收通道,所述数据缓冲管理模块还用于通过所述第二接收通道接收所述第二总线返回的与所述读命令对应的数据;
则所述数据缓冲管理模块具体用于:
检测数据缓冲器是否存在空闲的缓冲空间;若所述数据缓冲器存在空闲空间,则在所述数据缓冲器中为所述目标命令对应的数据分配第三缓冲空间,并将所述目标命令对应的数据缓存在所述第三缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第三缓冲空间。
16.根据权利要求15所述的装置,其特征在于,所述数据缓冲管理模块还具体用于:若所述数据缓冲器不存在空闲空间,则将所述目标命令对应的数据丢弃,并指示所述命令缓冲管理模块向所述命令缓冲器重发所述目标命令。
17.根据权利要求16所述的装置,其特征在于,若所述仲裁模块仲裁出的目标命令为读命令,且所述目标命令是重发命令,则所述数据缓冲管理模块还具体用于:实时检测所述数据缓冲器是否存在空间的缓冲空间,在所述数据缓冲器中为所述目标命令对应的数据预分配第四缓冲空间;
所述数据缓冲器还用于通过所述第二接收通道接收所述第二总线返回的与所述目标命令对应的数据;
所述数据缓冲管理模块还用于将所述目标命令对应的数据缓存在所述第四缓冲空间,直至所述目标命令对应的数据被读取完成后,清空所述第四缓冲空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510290006.1A CN104932942B (zh) | 2015-05-29 | 2015-05-29 | 缓冲资源的分配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510290006.1A CN104932942B (zh) | 2015-05-29 | 2015-05-29 | 缓冲资源的分配方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104932942A CN104932942A (zh) | 2015-09-23 |
CN104932942B true CN104932942B (zh) | 2018-11-13 |
Family
ID=54120116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510290006.1A Active CN104932942B (zh) | 2015-05-29 | 2015-05-29 | 缓冲资源的分配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104932942B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000480B (zh) * | 2020-08-25 | 2023-12-05 | 深圳忆联信息系统有限公司 | 提升ssd全盘扫描效率的方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731530A (zh) * | 2004-08-06 | 2006-02-08 | 华为技术有限公司 | 读改写并发处理系统及读改写并发处理方法 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN102609380A (zh) * | 2012-02-14 | 2012-07-25 | 福州瑞芯微电子有限公司 | 基于axi总线的sdram控制器写数据快速响应方法 |
CN103810133A (zh) * | 2012-11-05 | 2014-05-21 | 国际商业机器公司 | 动态共享读缓冲器管理 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6877048B2 (en) * | 2002-03-12 | 2005-04-05 | International Business Machines Corporation | Dynamic memory allocation between inbound and outbound buffers in a protocol handler |
-
2015
- 2015-05-29 CN CN201510290006.1A patent/CN104932942B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731530A (zh) * | 2004-08-06 | 2006-02-08 | 华为技术有限公司 | 读改写并发处理系统及读改写并发处理方法 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN102609380A (zh) * | 2012-02-14 | 2012-07-25 | 福州瑞芯微电子有限公司 | 基于axi总线的sdram控制器写数据快速响应方法 |
CN103810133A (zh) * | 2012-11-05 | 2014-05-21 | 国际商业机器公司 | 动态共享读缓冲器管理 |
Also Published As
Publication number | Publication date |
---|---|
CN104932942A (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107357661B (zh) | 一种针对混合负载的细粒度gpu资源管理方法 | |
US9137179B2 (en) | Memory-mapped buffers for network interface controllers | |
US11561830B2 (en) | System and method for low latency node local scheduling in distributed resource management | |
CN1082210C (zh) | 存储器直接存取控制设备 | |
WO2017185285A1 (zh) | 图形处理器任务的分配方法和装置 | |
CN1236136A (zh) | 高速远程存储簇接口控制器 | |
CN105718479A (zh) | 跨idc大数处理架构下执行策略生成方法、装置 | |
CN101887382A (zh) | 动态优先级的仲裁方法及装置 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
CN112311702B (zh) | Fc交换机调度方法、装置、电子设备及存储介质 | |
CN101989942A (zh) | 仲裁控制方法、通信方法、仲裁器和通信系统 | |
US8464017B2 (en) | Apparatus and method for processing data in a massively parallel processor array system | |
CN114579285B (zh) | 一种任务运行系统、方法及计算设备 | |
CN103324599A (zh) | 处理器间通信方法与系统级芯片 | |
CN104932942B (zh) | 缓冲资源的分配方法和装置 | |
CN103853676B (zh) | 基于PCIe总线的信道分配、释放、数据传输方法和系统 | |
CN112286688A (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
EP3788492B1 (en) | Separating completion and data responses for higher read throughput and lower link utilization in a data processing network | |
EP2913759B1 (en) | Memory access processing method based on memory chip interconnection, memory chip, and system | |
CN1426560A (zh) | 具有不同资源访问方案的系统集成代理程序 | |
EP1187029A2 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
EP3788494B1 (en) | Transfer protocol in a data processing network | |
CN105549911B (zh) | Nvram的数据传输方法和装置 | |
CN110489356A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN110096374B (zh) | 内部多类别的计算单元之间通信中间件控制系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |