CN109922015A - 一种多路数据流共享缓冲器方法和系统 - Google Patents
一种多路数据流共享缓冲器方法和系统 Download PDFInfo
- Publication number
- CN109922015A CN109922015A CN201910065137.8A CN201910065137A CN109922015A CN 109922015 A CN109922015 A CN 109922015A CN 201910065137 A CN201910065137 A CN 201910065137A CN 109922015 A CN109922015 A CN 109922015A
- Authority
- CN
- China
- Prior art keywords
- data streams
- buffer
- buffers
- data
- data stream
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000015572 biosynthetic process Effects 0.000 title abstract 2
- 238000003786 synthesis reaction Methods 0.000 title abstract 2
- 239000000872 buffer Substances 0.000 claims abstract description 177
- 239000007853 buffer solution Substances 0.000 claims description 6
- 239000012530 fluid Substances 0.000 claims description 2
- 230000010354 integration Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Time-Division Multiplex Systems (AREA)
Abstract
本发明公开了一种多路数据流共享缓冲器方法和系统,该方法包括对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流;将分流后的若干数据流分配至对应的若干缓冲器中,以使得若干数据流与若干缓冲器的存储规格相匹配;从若干缓冲器中读取去相应的数据流,并对所读取出的数据流进行整合还原,并将还原后的数据流传输至总线协议。本发明通过选择数据流以及对应的缓冲器,达成不同数据流与缓存器的匹配,从而可以适应不同速率的数据流输入场景,实现不同规格缓冲器的复用。
Description
技术领域
本发明涉及集成电路设计领域,具体涉及一种多路数据流共享缓冲器方法和系统。
背景技术
随着IC(Integrated Circuit集成电路)大数据大视频以及AI(ArtificialIntelligence,人工智能)的高速发展,SOC(System On Chip片上系统)作为包含处理器、视频输入接口、存储器和片上逻辑的集成电路日新月异,芯片厂商为了支持多种场景,一般会支持多路数据,通过解析,经过不同的缓冲器后,通过总线协议处理调整输出。
外部数据流类型非常多,不同速率,不同规格,而SOC使用时,会有自己的速率,不随外部设备变化而变化,导致输入输出帧率不一致,只能通过DMA(Direct Memory Access,直接存储器访问)到存储介质进行帧率调整。如图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所示的705 max后归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对应配置指示的缓冲器读取还原数据流。
最后通过总线协议处理到总线存储。
综上,本系统通过选择数据流以及对应的缓冲器,达成数据流与缓冲器的匹配,通过通用状态机分时选择缓冲器,达成多个不同规格缓冲器之间的匹配,从而达成不同数据流与缓存器的匹配。针对不同的场景,灵活搭配数据流和缓冲器,加上状态机的平衡,理论上可以支持各种场景。
上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。
Claims (6)
1.一种多路数据流共享缓冲器方法,其特征在于,包括:
对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流;
将分流后的若干数据流分配至对应的若干缓冲器中,以使得若干数据流与若干缓冲器的存储规格相匹配;
从若干缓冲器中读取去相应的数据流,并对所读取出的数据流进行整合还原,并将还原后的数据流传输至总线协议。
2.如权利要求1所述的多路数据流共享缓冲器方法,其特征在于,所述将分流后的数据流分配对应的缓冲器,以使得若干数据流与若干缓冲器的存储规格相匹配包括:
首先根据所输入的多路数据流同时使用的最大规格数据流的来确定缓冲器的存储规格,然后将剩下的数据流分配到上述已确定的缓冲器,如果没有相同存储规格的缓冲器,先拼凑缓冲器,通过一个数据流对应已存在多个缓冲器来达成,如果没有合适小的缓冲器,则将上述已确定的缓冲器进行分割,以使得若干数据流与若干缓冲器的存储规格相匹配。
3.一种多路数据流共享缓冲器系统,其特征在于,包括分流装置、缓冲器以及合流装置;其中,
所述分流装置用于对所输入的多路数据流进行选择分流,以分流成相同或者不同大小的若干数据流;
所述缓冲器设置有若干个,用于对分流后的若干数据流进行存储,以使得若干数据流与若干缓冲器的存储规格相匹配;
所述合流装置用于从所述若干个缓冲器中读取数据流,并将所读取的数据流进行整合还原,并将还原后的数据流传输至总线协议。
4.如权利要求3所述的多路数据流共享缓冲器系统,其特征在于,所述分流装置包括数据选择器、分流状态机以及分流模块;其中,
所述数据选择器用于对所输入的多路数据流进行选择;
所述分流状态机用于输出控制信号,以控制分流模块对数据选择器所输出的数据流进行分流,以分流成相同或者不同大小的若干数据流至相对应的若干缓冲器,以使得若干数据流与若干缓冲器的存储规格相匹配。
5.如权利要求4所述的多路数据流共享缓冲器系统,其特征在于,所述分流状态机输出如下的控制信号来使得使得若干数据流与若干缓冲器的存储规格相匹配:
首先根据所输入的多路数据流同时使用的最大规格数据流的来确定缓冲器的存储规格,然后将剩下的数据流分配到上述已确定的缓冲器,如果没有相同存储规格的缓冲器,先拼凑缓冲器,通过一个数据流对应已存在多个缓冲器来达成,如果没有合适小的缓冲器,则将上述已确定的缓冲器进行分割,以使得若干数据流与若干缓冲器的存储规格相匹配。
6.如权利要求3所述的多路数据流共享缓冲器系统,其特征在于,所述合流装置包括合流模块、合流状态机以及分用器;其中,
所述合流状体机用于输出控制信号,以控制合流模块对若干缓冲器进行数据流的读取,并将所读取到的数据流传输至分用器;
所述分用器将所接收到的数据流进行整合还原,并将还原后的数据流传输至总线协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910065137.8A CN109922015A (zh) | 2019-01-23 | 2019-01-23 | 一种多路数据流共享缓冲器方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910065137.8A CN109922015A (zh) | 2019-01-23 | 2019-01-23 | 一种多路数据流共享缓冲器方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109922015A true CN109922015A (zh) | 2019-06-21 |
Family
ID=66960618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910065137.8A Pending CN109922015A (zh) | 2019-01-23 | 2019-01-23 | 一种多路数据流共享缓冲器方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109922015A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1639680A (zh) * | 2002-02-27 | 2005-07-13 | 皇家飞利浦电子股份有限公司 | 用于多个输入流的共享队列 |
KR20050099241A (ko) * | 2004-04-09 | 2005-10-13 | 주식회사 케이티 | 보장형 서비스 제공 기능을 갖는 경계노드의 스케줄러 및그 방법 |
CN1319332C (zh) * | 2005-06-10 | 2007-05-30 | 重庆邮电学院 | 基于Linux内核的高速网络流量测量器及流量测量方法 |
ATE404002T1 (de) * | 2002-05-29 | 2008-08-15 | Intel Corp | Pufferspeicher reservierung |
CN103810133A (zh) * | 2012-11-05 | 2014-05-21 | 国际商业机器公司 | 动态共享读缓冲器管理 |
CN105993179A (zh) * | 2013-12-03 | 2016-10-05 | 索尼公司 | 数据处理装置以及数据处理方法 |
CN107005494A (zh) * | 2014-12-24 | 2017-08-01 | 英特尔公司 | 用于在交换机中缓冲数据的装置和方法 |
-
2019
- 2019-01-23 CN CN201910065137.8A patent/CN109922015A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1639680A (zh) * | 2002-02-27 | 2005-07-13 | 皇家飞利浦电子股份有限公司 | 用于多个输入流的共享队列 |
ATE404002T1 (de) * | 2002-05-29 | 2008-08-15 | Intel Corp | Pufferspeicher reservierung |
KR20050099241A (ko) * | 2004-04-09 | 2005-10-13 | 주식회사 케이티 | 보장형 서비스 제공 기능을 갖는 경계노드의 스케줄러 및그 방법 |
CN1319332C (zh) * | 2005-06-10 | 2007-05-30 | 重庆邮电学院 | 基于Linux内核的高速网络流量测量器及流量测量方法 |
CN103810133A (zh) * | 2012-11-05 | 2014-05-21 | 国际商业机器公司 | 动态共享读缓冲器管理 |
CN105993179A (zh) * | 2013-12-03 | 2016-10-05 | 索尼公司 | 数据处理装置以及数据处理方法 |
CN107005494A (zh) * | 2014-12-24 | 2017-08-01 | 英特尔公司 | 用于在交换机中缓冲数据的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102305470B1 (ko) | 복수의 영상 처리 채널을 통해 병렬로 영상 신호 처리를 수행하는 영상 신호 처리 장치 | |
US5357511A (en) | Distributed processing in a digital audio mixing network | |
US20020130889A1 (en) | System, method, and computer program product for real time transparency-based compositing | |
US20110265134A1 (en) | Switchable multi-channel data transcoding and transrating system | |
EP0562251A2 (en) | Parallel data transfer network controlled by a dynamically reconfigurable serial network | |
US5734843A (en) | Reverse data channel as a bandwidth modulator | |
JPH08163145A (ja) | Atm交換機のトラフィックシェーピング方法とその装置 | |
US20030043851A1 (en) | Transmit virtual concatenation processor | |
US10162789B2 (en) | Distributed multi-die protocol application interface | |
US20080060042A1 (en) | Video Data Packing | |
JPH11266274A (ja) | 同期データバスを介して非同期データ流を伝送する方法及びそのような方法を実施する回路装置 | |
CN109922015A (zh) | 一种多路数据流共享缓冲器方法和系统 | |
US7786996B2 (en) | System and method for object oriented hardware including cross-point switch interconnecting modules with I/O | |
US6301623B1 (en) | Computer network with a plurality of identically addressed devices | |
US20040228337A1 (en) | Crossbar switch, method for controlling operation thereof, and program for controlling operation thereof | |
CN112911708A (zh) | 资源分配方法、服务器及存储介质 | |
CN103140873B (zh) | 影像数据高速收发方法及装置 | |
CN105611211A (zh) | 视频格式切换器及显示装置 | |
US6445394B1 (en) | Serialized mapped memory configuration for a video graphics chip | |
AU627751B2 (en) | Multi-channel controller DO NOT SEAL CASE WITHDRAWN | |
CN114006900B (zh) | 一种实现有向无环图处理的系统及中继管理装置 | |
KR19990062876A (ko) | 셋 톱 박스 집적 회로 및 집적 방법 | |
US9164939B2 (en) | Circuitry and techniques for updating configuration data in an integrated circuit | |
US7725680B1 (en) | Pipeline interposer | |
EP0231240A1 (en) | Priority resolution system and video display apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190621 |
|
RJ01 | Rejection of invention patent application after publication |