一种总线协议命令处理装置及相关方法与流程

文档序号:12123339阅读:428来源:国知局
一种总线协议命令处理装置及相关方法与流程

本发明涉及通信领域,具体涉及一种总线协议命令处理装置及相关方法。



背景技术:

在最后一层缓存(Last level cache,简称LLC)中,总线协议(Advanced eXtensible Interface,简称AXI)命令会按照一定的粒度拆分,交织送往不同的高速缓存行cache bank,例如cacheable命令,或者动态存储控制(Dynamic memory control,简称DMC),例如uncacheable命令。由于各cache bank/DMC是独立处理的,而AXI对命令的处理却是串行的,导致无法高效地利用cache bank/DMC对命令进行并行处理。



技术实现要素:

本发明实施例提供了一种总线协议命令处理装置及相关方法,以期可以防止BANK阻塞,节约memory硬件配置资源,提高命令处理效率。

第一方面,本发明实施例提供了一种总线协议命令处理装置,该装置包括:

N个总线协议命令处理模块AXI SLAVE,所述AXI SLAVE用于从基于总线协议的总线AXI BUS中分别接收N个原始命令,并对所述N个原始命令中的每个原始命令拆分成L个子命令,所述L为正整数;

共享命令缓存器,所述共享命令缓存器与所述AXI SLAVE连接,所述共享命令缓存器用于接收所述N个AXI SLAVE发送的所述L个子命令并将所述L个子命令进行缓存;

X个内存库BANK,所述BANK与所述共享命令缓存器连接,用于接收所述共享命令缓存器发送的所述L个子命令并获取与所述L个子命令对应的L个子命令数据;

N个共享存储器,所述共享存储器与所述BANK连接,所述N个AXI SLAVE中的M个AXI SLAVE共享与所述M个AXI SLAVE对应的M个共享存储器,所述M小于或等于N,所述共享存储器用于接收所述BANK发送的所述L个子命令数据,并将所述L个子命令数据基于原始命令信息进行恢复以返回至所述AXI BUS。

本发明实施例提供的方案中,通过在总线协议命令处理装置中增加cmd buffer以及共享memory,从而使得在读数据时,可以使各BANK的并行处理不受限于AXI SLAVE的串行特征,提高数据处理效率,更进一步地,通过设置共享memory,减少memory的硬件资源。

在一个可能的设计中,若所述共享命令缓存器的深度为cmd_buffer_depth,所述共享存储器的深度为cmd_buffer_depth/M。

在一个可能的设计中,所述原始命令对应的子命令包括一个首个子命令以及至少一个子命令,所述首个子命令包括原始命令信息;所述共享命令缓存器用于暂存所述首个子命令以及缓存所述至少一个子命令。从而实现资源利用最大化。

在一个可能的设计中,所述装置还包括仲裁器ARB,所述ARB与所述AXI SLAVE以及所述共享命令缓存器连接,用于从所述N个AXI SLAVE中接收子命令并对所述子命令进行仲裁排序以根据所述仲裁排序发送至所述共享命令缓存器。通过增加ARB对基于该总线协议命令处理装置进行cmd buffer入口的仲裁策略,以实现对cmd buffer的入口仲裁。

第二方面,本发明实施例提供了一种数据传输方法,该数据传输方法基于第一方面提供的总线协议命令处理装置进行实现,该方法包括:总线协议命令处理模块获取数据读取命令;所述ARB控制所述总线协议命令处理模块基于所述数据读取命令将所述原始命令拆分成包括首个子命令在内的N个子命令,并在所述N个子命令中添加所述首个子命令的共享缓存标识以更新所述N个子命令,共享存储器基地址以及共享存储器偏移地址,所述共享缓存标识用于标识所述首个子命令在所述共享命令缓存器中的存储位置,所述首个子命令中包括所述原始命令信息,所述共享存储器基地址以及所述共享存储器偏移地址用于指示所述各子命令在所述共享存储器中的存储位置;所述总线协议命令处理模块向所述共享命令缓存器发送所述更新后的N个子命令。从而实现资源利用最大化,使得基于该总线协议命令处理装置能进行高效的数据读取。

第三方面,本发明实施例提供了一种共享命令缓存方法,该共享命令缓存方法基于第一方面提供的总线协议命令处理装置进行实现,该方法包括:共享命令缓存器接收N个AXI SLAVE发送的X个命令缓存命令,所述命令缓存命令用于请求所述共享命令缓存器缓存所述X个命令,所述X为小于或等于N的正整数;若所述共享命令缓存器的剩余存储空间Y小于所述命令缓存命令所请求缓存的命令的个数X,所述共享命令缓存器基于缓存仲裁优先级列表缓存X个命令中的Y个命令,所述Y个命令所对应的AXI SLAVE为所述缓存仲裁优先级列表中需要缓存的前Y个的AXI SLAVE,所述Y为正整数;所述共享命令缓存器将所述Y个命令所对应的AXI SLAVE的优先级后置于所述缓存仲裁优先级列表。从而可实现各AXI SLAVE的自适应仲裁和优先级调整,保证一定的公平性。

第四方面,本发明实施例提供了一种共享命令缓存器释放方法,该共享命令缓存器释放方法基于第一方面提供的总线协议命令处理装置进行实现,所述L个子命令包括一个首个子命令,所述首个子命令用于存储所述原始命令信息;该方法包括:所述共享命令缓存器在除首个子命令以外的所述子命令发送至所述共享命令缓存器后释放所述子命令;或者,所述共享命令缓存器在与所述原始命令对应的所述L个子命令数据全部返回至所述AXI BUS后释放与所述原始命令对应的所述首个子命令。通过此种命令的仲裁和释放方法,可以一个AXI命令只存储一个原始命令信息,cmd buffer可以有更多的空间给其他子命令使用,提高数据处理效率。

第五方面,本发明实施例提供了一种共享存储器资源管理方法,该共享命令缓存器释放方法基于第一方面提供的总线协议命令处理装置进行实现,所述M个共享存储器中第m个共享存储器接收至少二个所述BANK发送的至少二个子命令数据存储命令,所述至少二个子命令数据存储命令包括第m个AXI SLAVE发送的子命令数据存储命令;在所述第m个AXI SLAVE发送的子命令数据存储命令与其它AXI SLAVE发送的子命令数据存储命令发生冲突时,所述第m个共享存储器存储所述第m个AXI SLAVE发送的子命令数据存储命令对应的子命令数据。通过共享memory,极大地节省了存储器面积以及提升性能。

本发明实施例提供的方案中,通过在总线协议命令处理装置中增加cmd buffer以及共享memory,从而使得在读数据时,可以使各BANK的并行处理不受限于AXI SLAVE的串行特征,提高数据处理效率,更进一步地,通过设置共享memory,减少memory的硬件资源。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种总线协议命令处理装置的架构示意图;

图2是本发明实施例提供的一种AXI Slave接口结构图;

图3是本发明实施例提供的一种在AXI Slave接口读数据memory架构图;

图4是本发明实施例提供的另一种总线协议命令处理装置的结构示意图;

图5-a是本发明实施例提供的一种总线协议命令处理装置的架构示意图;

图5-b是本发明实施例提供的共享cmd buffer与独享cmd buffer的性能对比示意图;

图6-a是本发明实施例提供的一种数据传输方法的流程示意图;

图6-b是本发明实施例提供的子命令数据reorder示意图;

图7-a是本发明实施例提供的一种共享命令缓存方法的流程示意图;

图7-b是本发明实施例提供的一种共享命令缓存器仲裁第一示意图;

图7-c是本发明实施例提供的一种共享命令缓存器仲裁第二示意图;

图7-d是本发明实施例提供的一种共享命令缓存器仲裁第三示意图;

图8-a是本发明实施例提供的一种共享命令缓存器释放方法的流程示意图;

图8-b是本发明实施例提供的cmd buffer命令的仲裁和释放示意图;

图9-a是本发明实施例提供的一种共享存储器资源管理方法的流程示意图;

图9-b是本发明实施例提供的一种共享存储器资源分配示意图;

图9-c是本发明实施例提供的一种共享存储器资源分配第一示意图;

图9-d是本发明实施例提供的一种共享存储器资源分配第二示意图;

图9-e是本发明实施例提供的一种共享memory与独享memory性能对比示意图。

具体实施方式

本发明实施例提供了一种总线协议命令处理装置及相关方法,以期可以防止BANK阻塞,节约memory硬件配置资源,提高命令处理效率。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先参见图1,图1是本发明实施例提供的一种总线协议命令处理装置的架构示意图。基于该总线协议命令处理装置的架构,当各个总线协议命令处理模块AXI SLAVE从AXI BUS中读取到原始命令时,AXI SLAVE将各原始命令拆分成多个子命令,然后通过AXI SLAVE接口port将各个子命令依次送往内存库BANK arb中,不同的子命令送往不同的BANK arb,然后BANK arb再将该各个子命令传送至B0中,然后BANK将基于子命令获取子命令数据送入共享存储器memory,最后当共享存储器收集某个原始命令对应的各个子命令数据后,再将各命令送回AXI BUS。

在AXI Slave接口发送数据时,在该总线协议命令处理装置中,由于AXI SLAVE一次只能对一个原始命令进行处理,但是各BANK arb可以并行处理。参见图2,图2是示出了本发明实施例提供的一种AXI Slave接口结构图,可以看出,本发明实施例提供的AXI Slave接口为一种串行处理接口。例如,若AXI SLAVE0拆分后的子命令对应送往各BANK arb,由于AXI SLAVE0每次只能处理一个原始命令,AXI SLAVE0需要将正在处理的某个原始命令的子命令全部送往BANK arb后才能继续处理后一个原始命令,而如果某一个子命令的BANKx拥塞,会造成后一个子命令被堵住,尽管后一个子命令去往BANKy,但由于这两个子命令来自同一接口,从而造成同一接口的不同命令间存在BANK阻塞,导致命令处理效率低。

参见图3,图3示出了本发明实施例提供的一种在AXI Slave接口读数据memory架构图,由图3可知,在AXI Slave接口读数据时,AXI Slave接口需要收集与某个原始命令对应的全部子命令数据后才能将子命令数据发送给AXI BUS,为了与cmd buffer的存储空间同步,所配置的memory空间与cmd buffer的存储空间大小一样,而如果memory与各AXI Slave接口独享,此时需要配置较大的硬件空间,使得硬件资源浪费。

参见图4,图4是本发明实施例提供的另一种总线协议命令处理装置的结构示意图,在该架构图中,存在cmd buffer,但cmd buffer为独享的,可能导致cmd buffer资源不够的情况。

参见图5-a,图5-a是本发明实施例提供的一种总线协议命令处理装置的架构示意图,如图5-a所示,本发明实施例所提供的总线协议命令处理装置包括:

N个总线协议命令处理模块AXI SLAVE510,共享命令缓存器520,X个内存库BANK 530以及N个共享存储器540。

其中,N个AXI SLAVE510,所述AXI SLAVE510用于从基于总线协议的总线AXI BUS中分别接收N个原始命令,并对所述N个原始命令中的每个原始命令拆分成L个子命令,所述L为正整数。

共享命令缓存器cmd buffer520,所述共享命令缓存器520与所述AXI SLAVE510连接,所述共享命令缓存器520用于接收所述N个AXI SLAVE510发送的所述L个子命令并将所述L个子命令进行缓存。

可选地,在本发明实施例中,N个AXI SLAVE510共享一个cmd buffer520,从而从各个AXI SLAVE的port输出的子命令依顺序存储至该共享的cmd buffer520中,再由该cmd buffer520将各子命令输出至各个BANK530,使得各BANK对各个子命令的处理不受限于AXI SLAVE的串行特征,提高BANK的利用率,并进一步提高处理效率。

其中,cmd buffer的深度可根据AXI SLAVE的port个数决定,例如,当AXI SLAVE的port个数为6时,可设置cmd buffer的深度为40,该深度保证该cmd buffer可同时存够来自各个AXI SLAVE的port输出的子命令。

其中,各个buffer的编号可以用buffer id表示。

可选地,所述原始命令对应的子命令包括一个首个子命令以及至少一个子命令,所述首个子命令包括原始命令信息;

所述共享命令缓存器用于暂存所述首个子命令以及缓存所述至少一个子命令。

在本发明实施例中,子命令在发送至BANK后,cmd buffer即释放子命令的存储空间,待各子命令数据基于原始命令信息恢复格式并返回至AXI BUS后,cmd buffer释放该首个子命令的存储空间。

X个BANK530,所述BANK与所述共享命令缓存器连接,用于接收所述共享命令缓存器发送的所述L个子命令并获取与所述L个子命令对应的L个子命令数据。

在本发明实施例中,由于BANK接收的子命令为cmd buffer520输出的,相对于现有技术中直接从AXI SLAVE的port接收,各个BANK只要在其处理完毕后即可以从cmd buffer520中继续接收子命令进行处理,从而使得BANK的处理不受限于AXI SLAVE,提高BANK的并行处理效率。

N个共享存储器RAM540,所述共享存储器540与所述BANK530连接,所述N个AXI SLAVE510中的M个AXI SLAVE510共享与所述M个AXI SLAVE510对应的M个共享存储器540,所述M小于或等于N,所述共享存储器用于接收所述BANK530发送的所述L个子命令数据,并将所述L个子命令数据基于原始命令信息进行恢复以返回至所述AXI BUS。

在本发明实施例中,该共享存储器RAM540即指用于存储读数据的memory,memory id可用于表示该RAN的空间基地址,该RAM中的某个存储地址可以用基地址和偏移地址offste id共同进行表示。

可选地,在本发明实施例中,当由M个AXI SLAVE共享M个memory时,该M个memory的存储总量为cmd buffer的存储容量,也即若cmd buffer的深度为cmd_buffer_depth,则共享memory的深度为cmd_buffer_depth/M。

优选地,在本发明实施例中,可以由两两AXI SLAVE共享memory,从而每个AXI SLAVE都可以使用这两个memory,也即各个AXI SLAVE的可用memory为两个共享memory的存储空间之和。例如若cmd buffer的深度为40,则各memory的深度为20,但各AXI SLAVE的可用memory为40,相较于现有技术,各个AXI SLAVE只使用自己的memory,若此时要达到40的存储空间,需要较大的硬件资源,造成资源浪费,而本方案使用共享memory,可以节约硬件资源,并同时提高处理效率。

可以看出,本发明实施例提供的技术方案中,通过在总线协议命令处理装置中增加cmd buffer以及共享memory,从而使得在读数据时,可以使各BANK的并行处理不受限于AXI SLAVE的串行特征,提高数据处理效率,更进一步地,通过设置共享memory,减少memory的硬件资源。

参见图5-b,图5-b示出了本发明实施例提供的共享cmd buffer与独享cmd buffer的性能对比示意图。可以看出,共享cmd buffer与独享cmd buffer相比,有性能和面积的优势,例如,对于总线位宽128bit,频率1.2G,3个master口发送只读命令的cmd buffer,当性能相当时,共享cmd buffer的资源节省33%,从而节省面积,当cmd buffer总数量相同时,共享cmd buffer的效率高8%,也即共享cmd buffer比独享cmd buffer具有较大的性能提升。

可选地,在本发明的一个示例中,总线协议命令处理装置500还包括命令仲裁模块(Arbiter,简称ARB)550,所述ARB550与所述AXI SLAVE510以及所述共享命令缓存器520连接,用于从所述N个AXI SLAVE510中接收子命令并对所述子命令进行仲裁排序以根据所述仲裁排序发送至所述共享命令缓存器540。

可以理解,通过ARB模块对送往cmd buffer520的命令顺序进行仲裁,从而能使得各兼顾各AXI SLAVE的命令发送,提高数据处理效率。

基于上述总线协议命令处理装置500举一具体实施例对本发明实施例的工作流程进行说明。

步骤1、N个AXI SLAVE的port的N个原始命令通过命令仲裁模块ARB550进行自适应仲裁送入cmd buffer;

步骤2、某个原始命令的第一个子命令送入cmd buffer时,分配并记录buffer id,并向对应的memory申请存储读数据的memory空间基地址,即memory id;所有子命令均使用这个buffer id和memory id;

步骤3、每个子命令记录自己的编号,作为偏移地址offset id;cmd buffer中的子命令并行向各bank提起仲裁,子命令携带buf id、mem id和offset id;

步骤4、读数据返回时,使用memory id+offset id确定存储位置;

步骤5、各子命令数据使用buffer id找到原始命令信息,然后基于原始命令信息转换数据格式送往AXI BUS。

参见图6-a,图6-a是本发明实施例提供的一种数据传输方法的流程示意图,该数据传输方法基于图5所示的总线协议命令处理装置进行实现,如图6-a所示,该数据传输方法包括:

步骤S601、总线协议命令处理模块获取数据读取命令。

其中,数据读取命令是指当需要从BANK中读取数据中,AXI BUS向AXI SLAVE发送的数据读取命令。

可选地,该数据读取命令中将包含原始命令。

步骤S602、所述ARB控制总线协议命令处理模块基于所述数据读取命令将所述原始命令拆分成包括首个子命令在内的N个子命令,并在所述N个子命令中添加所述首个子命令的共享缓存标识以更新所述N个子命令,共享存储器基地址以及共享存储器偏移地址,所述共享缓存标识用于标识所述首个子命令在所述共享命令缓存器中的存储位置,所述首个子命令中包括所述原始命令信息,所述共享存储器基地址以及所述共享存储器偏移地址用于指示所述各子命令在所述共享存储器中的存储位置。

步骤S603、所述总线协议命令处理模块向所述共享命令缓存器发送所述更新后的N个子命令。

可以看出,本发明实施例中,当在各子命令中添加首个子命令的共享缓存标识buffer id,从而可以使子命令数据基于该buffer id找到原始命令信息进行数据恢复,在各子命令中添加共享memory的memory id和offset id,从而可使子命令数据基于该memory id和offset id确定子命令所对应返回的子命令数据在共享memory中的存储位置,以实现子命令数据的reorder。从而实现资源利用最大化,使得基于该总线协议命令处理装置能进行高效的数据读取。具体可参见图6-b,图6-b示出了本发明实施例所提供的子命令数据reorder示意图,该图中,以0用于标示该存储空间空闲,1用于标示该存储空间非空闲。

参见图7-a,图7-a是本发明实施例提供的一种共享命令缓存方法的流程示意图,该共享命令缓存方法基于图5所示的总线协议命令处理装置进行实现,如图7-a所示,该共享命令缓存方法包括:

步骤S701、共享命令缓存器接收N个AXI SLAVE发送的X个命令缓存命令,所述命令缓存命令用于请求所述共享命令缓存器缓存所述X个命令,所述X为小于或等于N的正整数。

步骤S702、若所述共享命令缓存器的剩余存储空间Y小于所述命令缓存命令所请求缓存的命令的个数X,所述共享命令缓存器基于缓存仲裁优先级列表缓存X个命令中的Y个命令,所述Y个命令所对应的AXI SLAVE为所述缓存仲裁优先级列表中需要缓存的前Y个的AXI SLAVE,所述Y为正整数。

其中,缓存仲裁优先级列表用于表示各AXI SLAVE在请求cmd buffer缓存命令时,当cmd buffer的空间不够时,所根据该缓存仲裁优先级列表来缓存与各AXI SLAVE所对应的命令的顺序。

可选地,若共享命令缓存器的剩余空间Y大于或等于所述命令缓存命令所请求缓存的命令的个数X,则共享命令缓存器将缓存该X个命令。

步骤S703、所述共享命令缓存器将所述Y个命令所对应的AXI SLAVE的优先级后置于所述缓存仲裁优先级列表。

可以理解,当已经在上个步骤中缓存了该Y个AXI SLAVE的命令,为了均衡各AXI SLAVE获得的缓存权限,此时可以在下一个命令缓存命令到达时,优先缓存其它AXI SLAVE的命令,所以可将该Y个命令所对应的AXI SLAVE的优先级后置于所述缓存仲裁优先级列表,将获得仲裁的最高优先级AXI SLAVE循环移位到最低优先级处,提高其余未获得仲裁的AXI SLAVE的优先级,保证一定的公平性。

举例说明,在本发明的一个示例中,以6个AXI SLAVE的port为例,默认仲裁优先级为:port0>port1>port2>port3>port4>port5;当剩余cmd buffer个数大于等于6,6个port都有请求时,仲裁优先级不变;当0口、2口有请求(剩余buffer>=2)时,则0口、2口获得仲裁,此时优先级发生调整变为:port3>port4>port5>port0>port1>port2;然后再当3、4口有请求,但是仅有一个空闲buffer时,则3口获得仲裁,优先级变为:port4>port5>port0>port1>port2>port3。具体可参见图7-b,图7-c以及图7-d,图7-b是本发明实施例提供的一种共享命令缓存器仲裁第一示意图,图7-c是本发明实施例提供的一种共享命令缓存器仲裁第二示意图,图7-d是本发明实施例提供的一种共享命令缓存器仲裁第三示意图。该三幅图中,以0用于标示该存储空间空闲,1用于标示该存储空间非空闲,从而可实现各AXI SLAVE的自适应仲裁和优先级调整,保证一定的公平性。

参见图8-a,图8-a是本发明实施例提供的一种共享命令缓存器释放方法的流程示意图,该共享命令缓存器释放方法基于图5所示的总线协议命令处理装置进行实现,如图8-a所示,所述L个子命令包括一个首个子命令,所述首个子命令用于存储所述原始命令信息;该共享命令缓存器释放方法包括:

步骤S801、所述共享命令缓存器在除首个子命令以外的所述子命令发送至所述共享命令缓存器后释放所述子命令。

步骤S802、所述共享命令缓存器在与所述原始命令对应的所述L个子命令数据全部返回至所述AXI BUS后释放与所述原始命令对应的所述首个子命令。

具体地,可参见图8-b,图8-b示出了本发明实施例提供的cmd buffer命令的仲裁和释放示意图,该图中,以0用于标示该存储空间空闲,1用于标示该存储空间非空闲,可以看出,本发明实施例中,通过此种命令的仲裁和释放方法,可以一个AXI命令只存储一个原始命令信息,cmd buffer可以有更多的空间给其他子命令使用,提高数据处理效率。

参见图9-a,图9-a是本发明实施例提供的一种共享存储器资源管理方法的流程示意图,该共享存储器资源管理方法基于图5所示的总线协议命令处理装置进行实现,如图9-a所示,该共享命令缓存方法包括:

步骤S901、所述M个共享存储器中第m个共享存储器接收至少二个所述BANK发送的至少二个子命令数据存储命令,所述至少二个子命令数据存储命令包括第m个AXI SLAVE发送的子命令数据存储命令。

其中,子命令数据存储命令是指当BANK返回子命令数据给memory后,用于请求memory存储该子命令数据的命令。

步骤S902、在所述第m个AXI SLAVE发送的子命令数据存储命令与其它AXI SLAVE发送的子命令数据存储命令发生冲突时,所述第m个共享存储器存储所述第m个AXI SLAVE发送的子命令数据存储命令对应的子命令数据。

举例说明,在本发明的一个示例中,若共享memory为两两共享的,例如,AXI SLAVE0的port0与AXI SLAVE1的port1共享与之对应的两个memory,也即port0和port1可以共用这两片memory,从而每个port可获得的容量增为原来的2倍。参见图9-b,图9-b示出了一种共享存储器资源分配示意图,此时memory0和memory1空间足够。该图中,以0用于标示该存储空间空闲,1用于标示该存储空间非空闲。

当port0所对应的子命令数据和port1所对应的子命令数据同时向memory0请求存储子命令数据时,并且memory0的存储空间不够时,memory0优先分配给port0。当port0所对应的子命令数据和port1所对应的子命令数据同时向memory1请求存储子命令数据时,并且memory1的存储空间不够时,memory1优先分配给port1。而在memory1空间不够时,memory0能分配空间供port1使用,在memory0空间不够时,memory1能分配空间供port0使用。参见图9-c和图9-d,图9-c示出了一种共享存储器资源分配第一示意图,图9-d示出了一种共享存储器资源分配第二示意图。该两幅图中,以0用于标示该存储空间空闲,1用于标示该存储空间非空闲。此时memory0和memory1空间不够。通过该种存储方法,可减少总的memory面积,从而减少硬件资源,以及提高memory性能。参见图9-e,图9-e是本发明实施例提供的一种共享memory与独享memory性能对比示意图,由图可以看出,假设总线数据位宽为256bit,burst_len最大16,cmd buffer为40,2个port共享2片memory(256*320)时面积为28585.3um2x 2=57170.6um2,一个命令1片memory(256*16)的存储面积为8632.6475um2x 40=345305.9,可以看出,面积节省83.4%。并且性能上,共享memory时,memory的冲突概率减小5%。从而本发明实施例中,通过共享memory,极大地节省了存储器面积以及提升性能。

本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明的各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1