一种多路数据流共享缓冲器方法和系统与流程

文档序号:17985423发布日期:2019-06-22 00:22阅读:158来源:国知局
一种多路数据流共享缓冲器方法和系统与流程

本发明涉及集成电路设计领域,具体涉及一种多路数据流共享缓冲器方法和系统。



背景技术:

随着ic(integratedcircuit集成电路)大数据大视频以及ai(artificialintelligence,人工智能)的高速发展,soc(systemonchip片上系统)作为包含处理器、视频输入接口、存储器和片上逻辑的集成电路日新月异,芯片厂商为了支持多种场景,一般会支持多路数据,通过解析,经过不同的缓冲器后,通过总线协议处理调整输出。

外部数据流类型非常多,不同速率,不同规格,而soc使用时,会有自己的速率,不随外部设备变化而变化,导致输入输出帧率不一致,只能通过dma(directmemoryaccess,直接存储器访问)到存储介质进行帧率调整。如图1,数据流101输入到总线协议103,需要通过缓冲器102,来应对总线不同情况。而不同输入接口协议支持的规格和速率不同,导致dma需要缓冲器大小不一样,从而需要不同的dma。

传统做法是每个协议独立处理,每个通道对应一个dma,每个dma重新设计,使用对应大小的缓冲器。传统方法设计重复设计dma,并永久无法满负荷运行,导致浪费。



技术实现要素:

本发明提出了一种多路数据输入共享缓冲器方法,以实现不同规格缓冲器的复用。

为实现上述发明目的,本发明采用如下技术方案:

一种多路数据流共享缓冲器方法,包括:

对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流;

将分流后的若干数据流分配至对应的若干缓冲器中,以使得若干数据流与若干缓冲器的存储规格相匹配;

从若干缓冲器中读取去相应的数据流,并对所读取出的数据流进行整合还原,并将还原后的数据流传输至总线协议。

所述将分流后的数据流分配对应的缓冲器,以使得若干数据流与若干缓冲器的存储规格相匹配包括:

首先根据所输入的多路数据流同时使用的最大规格数据流的来确定缓冲器的存储规格,然后将剩下的数据流分配到上述已确定的缓冲器,如果没有相同存储规格的缓冲器,先拼凑缓冲器,通过一个数据流对应已存在多个缓冲器来达成,如果没有合适小的缓冲器,则将上述已确定的缓冲器进行分割,以使得若干数据流与若干缓冲器的存储规格相匹配。

本发明的另一方面还提供了一种多路数据流共享缓冲器系统,包括分流装置、缓冲器以及合流装置;其中,

所述分流装置用于对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流;

所述缓冲器设置有若干个,用于对分流后的若干数据流进行存储,以使得若干数据流与若干缓冲器的存储规格相匹配;

所述合流装置用于从所述若干个缓冲器中读取数据流,并将所读取的数据流进行整合还原,并将还原后的数据流传输至总线协议。

所述分流装置包括数据选择器、分流状态机以及分流模块;其中,

所述数据选择器用于对所输入的多路数据流进行选择;

所述分流状态机用于输出控制信号,以控制分流模块对数据选择器所输出的数据流进行分流,以分流成相同或者不同大小的若干数据流至相对应的若干缓冲器,以使得若干数据流与若干缓冲器的存储规格相匹配。

所述分流状态机输出如下的控制信号来使得使得若干数据流与若干缓冲器的存储规格相匹配:

首先根据所输入的多路数据流同时使用的最大规格数据流的来确定缓冲器的存储规格,然后将剩下的数据流分配到上述已确定的缓冲器,如果没有相同存储规格的缓冲器,先拼凑缓冲器,通过一个数据流对应已存在多个缓冲器来达成,如果没有合适小的缓冲器,则将上述已确定的缓冲器进行分割,以使得若干数据流与若干缓冲器的存储规格相匹配。

所述合流装置包括合流模块、合流状态机以及分用器;其中,

所述合流状体机用于输出控制信号,以控制合流模块对若干缓冲器进行数据流的读取,并将所读取到的数据流传输至分用器;

所述分用器将所接收到的数据流进行整合还原,并将还原后的数据流传输至总线协议。

本发明与现有技术相比,其有益效果在于:

本发明通过选择数据流以及对应的缓冲器,达成不同数据流与缓存器的匹配,从而可以适应不同速率的数据流输入场景,实现不同规格缓冲器的复用。

附图说明

图1是现有单路数据流存储框架图。

图2是本发明实施例提供的多路数据输入共享缓冲器的系统的硬件框架图。

图3a是分流装置的组成示意图;

图3b是合流装置的组成示意图;

图4是装置架构图;

图5是配置存储示意图;

图6是配置与模式图;

图7是配置应用图。

具体实施方式

下面结合附图和具体实施方式对本发明的内容做进一步详细说明。

实施例:

本实施例提供的多路数据流共享缓冲器方法包括:

对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流;

将分流后的若干数据流分配至对应的若干缓冲器中,以达成不同数据流与缓冲器的匹配;

从若干缓冲器中读取去相应的数据流,并对所读取出的数据流进行整合还原,按总线协议进行存储。

由此可知,本方法通过选择数据流以及对应的缓冲器,达成不同数据流与缓存器的匹配,从而可以适应不同速率的数据流输入场景,实现不同规格缓冲器的复用。

具体地,将分流后的数据流分配对应的缓冲器,以达成不同数据流与缓冲器的匹配包括:

首先根据所输入的多路数据流同时使用的最大规格数据流的来确定缓冲器规格,然后将剩下的数据流分配到上述已确定的缓冲器,如果没有相同规格缓冲器,先拼凑缓冲器,通过一个数据流对应已存在多个缓冲器来达成,如果没有合适小的缓冲器,则将上述已确定的缓冲器进行分割,来保证后续缓冲器的使用,如此确定数据流和缓冲器的对应关系。以达到不同数据流与缓冲器的匹配。也就是说,先确定所需缓冲器,即通过应用确定同时启动数据流,计算同时启动速率的最大值,以及对应所需要的缓冲器大小,计算方法m=fm*t0,fm为数据流最大速率,t0为缓冲器输出支持最大时间,换言之,先匹配最大数据流至对应缓冲器中,然后将不会同时启动的数据流进行分配,将所有输入的数据流处理完。

同时,在选择数据流时,在上述确定缓冲器时,将对应的匹配方法记录转换使用方法:1)将同时启动的数据流对应的缓冲器设置成初步规格,数据流与缓冲器一一对应。2)合并不会同时启动数据流到相同规格缓冲器,使用方法一一对应。3)如果没有相同规格缓存器,通过已有缓冲器拼接使用,使用方法一个数据流对应拼接的所有缓冲器。4)如果没有对应小规格缓冲器,将前面步骤确定的缓冲区分割,同时将前面步骤确定所有相关数据流的使用方法也改成分割后的多个缓冲器。

另外,在确定所有数据流和缓冲器的对应方式后,需要平衡缓冲器的数据量,具体计算方法,按照缓冲器规格,去除最大公约数,得到最后使用比例,使用方法即按照比例依次输入数据。同时,还根据缓冲器规格,按照规格比例进行时间片分配使用。按照上面使用方法,一个数据流对应一个或者多个缓冲器。设计计数器,最大值为上述使用比例值的和,并将计算器按缓冲器个数分段,每段对应使用比例,所得到的时间区间为缓冲器分时复用的时间片。将数据流按照这个时间片输入到对应的缓冲器内。

同时,本实施例还提供了一种多路数据流共享缓冲器系统,如图2所示,该系统包括分流装置201、缓冲器202以及合流装置203。

其中,分流装置201用于对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流。该缓冲器202设置有若干个,以和分流后的若干数据流相匹配;该合流装置203用于从所述若干个缓冲器中读取数据流,并将所读取的数据流进行整合、合成,以还原成最初输入的多路数据流,并传输至总线协议。

由此可知,本系统通过选择数据流以及对应的缓冲器,达成不同数据流与缓存器的匹配,从而可以适应不同速率的数据流输入场景,实现不同规格缓冲器的复用。

具体地,如图3a所示,该分流装置201包括数据选择器(mux-multiplexer)301、分流状态机302以及分流模块303;其中,该数据选择器301用于对所输入的多路数据流进行选择;该分流状态机302用于输出控制信号,以控制分流模块303对数据选择器所输出的数据流进行分流,以分流成相同或者不同大小的若干数据流至相对应的若干缓冲器中。

在实际应用的过程中,针对不同数据流,和缓冲器规格分配缓冲器。例如,如果1080m/s(以下称数据流a)和720m/s(以下称数据流b)带宽需求的数据流,将缓冲器规格加起来分为3比2的两个集合,这样最大可能保证每条数据流的缓冲器不溢出。实际设计时,缓冲器按照最大规格应用,可能导致缓冲器规格不一致,会有场景无法使用全部缓冲器,或者缓冲器比例无法匹配,只需要保证所有数据流满足需求即可,可以不按照场景数据流比例。针对缓冲器,根据上面数据流和缓冲器对应关系,如图通过301的mux择数据流对应的缓冲器。

分配好缓冲器后,如图4所示,通过状态机输出控制信号以将数据流分流到缓冲器中。按照数据流所对应的缓冲器规格,一个缓冲器可以直接映射,多个缓冲器时,通过缓冲器规格比例来设计状态机,将数据流分配成对应比例的多条数据流(每条数据流对应每个缓冲器),将分割后的数据流对应相对比例的缓冲器,均衡传输。

如图5所示,每个缓冲器对应一个配置信息,配置信息包含使能,循环最大值和每个值对应的缓冲器。如图6所示,为缓冲器的配置与模式图,包括通用配置格式,在不同配置下缓冲器与数据流的对应。如图6所示的601一对一的配置,如图6所示的602一对二相同缓冲器的配置,如图6所示的603一对三不同缓冲器的配置等。其它不同规格缓冲器类似保持平衡即可

具体地,如图7所示,第一步,根据缓冲器规格比例找出max。如上数据流a和数据流b,最大值为5,如果再加一条和数据流通过模式选择如图7所示的703配置数据流如图7所示的708,建立如图7所示的706wcnt初始化为0,有输入时wcnt加1,达到如图7所示的705max后归0,如此循环。第二步,将数据流以wcnt为地址选择配置里的对应的缓冲器。如果当前数据流所有缓冲器的规格相同,那么数据流分时通过每个缓冲器,max的值为缓冲器个数。如果不同,需要按照比例来分时使用缓冲器,按照上面3:2例子,如果只有两个规格3:2缓冲器,max最大为5,此时数据流a选择规格3,数据流b选择2的缓冲器。如果有5个相同规格的缓冲器,数据流a选择3个缓冲器,数据流b选择2个缓冲器。如果只有2个相同的缓冲器,且缓冲器满足小数据流b的应用,数据流a选择1个,数据流b选1个。

将数据流存入缓冲器后,则进入合流装置,如图3b所示,该合流装置合流模块304、合流状态机306以及分用器305(demux-demultiplexer);其中,该合流状体机306用于输出控制信号,以控制合流模块304对若干缓冲器进行数据流的读取,并将所读取到的数据流传输至分用器305;分用器305将所接收到的数据流件整合还原,并传输至总线协议。具体地,如图7所示的704所示,建立rcnt初始化为0,rcnt有输出时加1,达到max后归0,如此循环。max直接使用前面计算的结果。然后同上方式,按上面顺序分时,根据rcnt对应配置指示的缓冲器读取还原数据流。

最后通过总线协议处理到总线存储。

综上,本系统通过选择数据流以及对应的缓冲器,达成数据流与缓冲器的匹配,通过通用状态机分时选择缓冲器,达成多个不同规格缓冲器之间的匹配,从而达成不同数据流与缓存器的匹配。针对不同的场景,灵活搭配数据流和缓冲器,加上状态机的平衡,理论上可以支持各种场景。

上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。

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