CN101308568B - 基于fifo的流水线实时处理的方法和装置 - Google Patents
基于fifo的流水线实时处理的方法和装置 Download PDFInfo
- Publication number
- CN101308568B CN101308568B CN2007100407766A CN200710040776A CN101308568B CN 101308568 B CN101308568 B CN 101308568B CN 2007100407766 A CN2007100407766 A CN 2007100407766A CN 200710040776 A CN200710040776 A CN 200710040776A CN 101308568 B CN101308568 B CN 101308568B
- Authority
- CN
- China
- Prior art keywords
- external storage
- data
- different levels
- prebuffer
- controller
- 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
Images
Landscapes
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于FIFO(先入先出队列)的流水线实时处理的装置。该装置利用主控制器控制流水线各个模块工作,另外在运算模块与外存储器控制器之间增加一个外存储器前置缓冲器。同时本发明又提供了一种利用该装置将流水线的运行过程同步化和采用变换访存结构改善访存过程的方法。使得各模块和存储器带宽满足各自的实时性要求的情况下,系统的实时性就能够得到保障。本发明给数字多媒体系统的实时性提供了系统的保障机制,其实现方式简单,且应用面广。
Description
技术领域
本发明涉及多媒体处理芯片中芯片上的系统(SOC,System on Chip)的处理实时性领域,具体涉及一种基于FIFO的流水线实时处理的装置。本发明还涉及一种利用该装置提高流水线系统实时性的方法。
背景技术
数字多媒体处理芯片,特别是高清晰度视频处理芯片对系统性能提出了很高的要求。但嵌入式系统的处理能力受到器件,电路等物理条件的限制,所以流水处理的运行方式被广泛的应用到高性能的嵌入式多媒体系统中。复杂的多媒体系统被分为许多异构的处理单元(模块)。模块之间以流水的方式并行计算,流水线中下级模块在处理前一个数据单元时,上级模块并行的处理下一个数据单元。流水线的上下级之间用FIFO(先进先出队列)交换和缓冲数据。
但系统中各模块的处理速度不相同,甚至不固定(随时间和输入数据变化),这给评价系统的整体性能带来了挑战。FIFO的深度是有限的,所以当FIFO为空时,FIFO后的下级模块就需要等待前面的上级模块处理完它需要的数据;当FIFO为满时,FIFO前的上级模块就需要等待后面的下级模块处理完它正在处理数据,以释放出上级模块需要的缓冲空间。基于FIFO的流水线机制使得系统的处理速度不再是简单的由各模块单独决定。
另一方面,由于降低系统成本和优化系统结构的需要,大块数据被存储到外存储器中,图2为现有技术的访存结构,运算模块采用直接访问外存储器控制器的方式进行访存,而多个并行处理的运算模块可能同时访问外存储器,从而造成了各模块等待外存储器控制器的响应时间不固定。外存储器控制器的响应时间跟系统的当前请求和调度策略有关,没有明确的上限。共享存储和流水线机制结合起来,使得系统的性能分析更加复杂。
发明内容
本发明所要解决的技术问题是提供一种基于FIFO的流水线实时处理的装置,以确保数字多媒体嵌入式应用对系统实时性的要求。为此,本发明还要提供一种基于FIFO的流水线实时处理的方法。
为解决上述技术问题,本发明的基于FIFO的流水线实时处理的装置,包括:一个主控制器、多级运算模块、一个外存储器、及一个外存储器控制器,其中,还包括:
一个外存储器前置缓冲器,用于接收各级运算模块的访存请求及数据,并向外存储器控制器输出访存请求及数据,其输入端连接主控制器和各级运算模块,输出端连接外存储器控制器;
所述的主控制器,用于接收各级运算模块发出的闲置信令,并向各级运算模块、外存储器前置缓冲器、和外存储器控制器发送同步信令,它具有:一个高精度时钟计数器,该主控制器的输入端连接各级运算模块,输出端连接流水线中各级运算模块、外存储器前置缓冲器和外存储器控制器;
所述的各级运算模块,用于系统数据的运算处理,其上下级之间采用FIFO结构交换和缓冲数据,至少含有2个数据单元的数据缓冲区,其输入端连接主控制器、上级运算模块和外存储器控制器,输出端连接主控制器、下级运算模块和外存储器前置缓冲器;
所述各级运算模块需要进行访存时,其内部的访存模块分为两个流水级别,包括:发送请求的子模块(M11)及处理数据的子模块(M12);其中发送请求的子模块(M11)上具有连接下级运算模块及外存储器前置缓冲器的输出端,处理数据的子模块(M12)上具有连接主控制器、上级运算模块、及外存储器控制器的输入端;
所述的外存储器控制器,被各级运算模块所共用,用于控制对外存储器的访存和对各级运算模块传送数据,其输入端连接外存储器前置缓冲器,输出端连接外存储器和各级运算模块;
所述的外存储器,用于存储各级运算模块处理的大块数据信息,对其访存受外存储器控制器的控制,其输入端和输出端均与外存储器控制器连接。
本发明利用上述装置进行实时处理的方法,包括如下步骤:
(1)主控制器定时向各级运算模块、外存储器前置缓冲器、及外存储器控制器发送同步信令,每一个同步信令的发出视为一个新的工作周期的开始;
(2)流水线各级运算模块开始处理下一个数据单元的数据,将处理好的数据发送至下级流水线的运算模块,其间如果要访问外存储器时将访存请求及数据发送至外存储器前置缓冲器,另一方面也接收来自外存储器控制器发送的数据,做进一步运算处理,在完成该数据单元所有数据的处理后向主控制器发送闲置信令;
(3)外存储器前置缓冲器的写入指针向前移动一个数据单元,并收集各级运算模块发出的访存请求及数据,存入其当前写入指针指向的一个数据单元中;
(4)外存储器控制器对外存储器前置缓冲器的读入指针向前移动一个单元,并依次读出其读入指针指向的当前数据单元中的访存请求及数据,将处理后的各数据发送至外存储器和相应的运算模块;
(5)流水线系统中各模块完成本单元数据处理工作后处于闲置状态,等待下一个同步信令到来才能开始下一个单元的数据处理工作,主控制器接收到所有运算模块发出的闲置信令后,在定时器所定时间到达时重复步骤(1)。
如果主控制器在定时器所定时间到达时仍未能接受到所有运算模块发出的闲置信令,则发出报错信息及进行相应处理。
因为本发明用采用同步化的控制信号,使系统内各模块采用同步化的方式运行,流水线的系统吞吐率直接由主控制器控制。同时,对于共享的外部存储系统,本发明利用前置缓冲器,把各级运算模块对外存储器的访存请求分离到不同的流水线级别中,从而充分保障了每一个流水线级别的最大处理时间不超过实时性要求,只要在存储器系统带宽满足自身实时性要求的情况下,各模块的请求都能被及时的响应。本发明给数字多媒体系统的实时性提供了系统的保障机制,且其实现方式简单,应用面广泛。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的系统架构图;
图2是现有技术的访存结构示意图;
图3是本发明提供的访存结构示意图。
具体实施方式
数字多媒体应用中多采用高性能的流水线结构和大容量的外存储器构架。系统的实时性是系统实现的基本指标之一,而本发明采用的基于同步流水线的控制方法,能保证系统的实时性要求,将系统的设计瓶颈简化到模块内部和外存储器控制器内部效率。本发明采用的方法可有效和方便的适用于各种高性能的数字多媒体芯片的设计中。
下面以视频解码器系统为例,对本发明做进一步说明。
如图1所示,该系统包括主控制器,多级运算模块(具体包括:变长解码模块,反量化模块,反变换模块,帧内预测模块,运动向量模块,插值模块,环路滤波模块),外存储器控制器、外存储器前置缓冲器、及外存储器多个功能部件。主控制器中包含一个高精度计时器,各功能模块之间有至少两个数据单元的数据缓冲区,形成由图1中虚线标记出的6级流水线。主控制器以总线方式与各运算模块、外存储器前置缓冲器、及外存储器控制器连接,外存储前置缓冲器以点对点方式与外存储器控制器连接,各级运算模块相互串联且与外存储器前置缓冲器、外存储器控制器相连接,外存储器控制器与外存储器连接。
流水线按照宏块为处理单位进行流水。主控制器每一个宏块处理时间(工作周期)发出一个宏块信令(同步信令),传送到其他各级运算模块、外存储器前置缓冲器、以及外外存储器控制器。在该宏块处理时间内,各运算模块、外存储器前置缓冲器、外存储器控制器、外存储器共同完成一个宏块的解码。流水线中各流水级别处理相继的连续宏块,变长编码模块处理宏块n的宏块解码时间里,反变换和运动向量模块处理宏块n-1,反变换模块处理宏块n-2,外存储器控制器在外存储器前置缓冲器中读出宏块n-3的访存请求并访问外存储器获得宏块n-3的参考像素数据,插值模块处理宏块n-4,帧内预测模块处理宏块n-5,环路滤波模块处理宏块n-6。
各级运算模块收到同步信令后,同时开始启动其对新一个宏块的处理,并将处理好的数据发送给流水线的下级模块,其间在需要访问外存储器时将访存信息和数据发送给外存储器前置缓冲器(图1所示时刻运动向量模块正向外存储器前置缓冲器发出访存请求),另一方面也接受外存储器控制器发送的数据(图1所示时刻差值模块正接收外存储器控制器发送的数据),做进一步处理(比如差值运算),当该模块处理完本宏块内所有数据后向主控制器发送闲置信令。
如图3中所示,各个运算模块需要进行访存时,其访存模块分为发送请求的子模块M11和处理数据的子模块M12,处理数据的子模块M12与外存储器控制器之间包括至少2个宏块单元(数据单元)的数据缓存。发送请求的子模块M11具有连接外存储器前置缓冲器的输出端,负责向外存储器前置缓冲器发送访存请求和数据,处理数据的子模块M12具有连接外存储器控制器的输入端,负责接收来自外存储器控制器发出的数据,做进一步处理,图1所示时刻,运动向量模块的发送请求子模块正向外存储器前置缓冲器发送访存请求,差值模块的处理数据子模块正接受来自外存储器控制器发送的数据,进一步做差值运算。
外存储器前置缓冲器以FIFO的方式交换和缓冲数据,收到同步信令后其写入指针向前移动一个宏块数据,并写入一个宏块处理时间内各级运算模块发出的访存请求以及数据(图1所示时刻外存储器前置缓冲器正写入运动向量模块发出的访存请求)。
外存储器控制器收到同步信令后其对外存储器前置缓冲器的读入指针向前移动一个单元,并依次读出一个宏块处理时间内各访存请求及数据(此时外存储器控制器正读入运动向量模块发出的访存请求),另一方面将处理后的数据发送给外存储器和流水线的下级模块(此时外存储器控制器正向插值模块发送数据)。
流水线系统中各模块完成本单元数据处理工作后处于闲置状态,等待下一个同步信令到来才能开始下一个单元的数据处理工作,主控制器接收到所有运算模块发出的闲置信令后,在定时器所定时间到达时发送同步信令。
如果主控制器检查各级运算模块的状态,如果都变为闲置状态(即收到所有运算模块发出的闲置信令)则进行下一个宏块的处理,否则进行实时性不满足后的错误处理。
以上实施例仅用以说明而非限制本发明的技术方案,本领域的普通技术人员应当理解:可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种基于FIFO的流水线实时处理的装置,包括:一个主控制器、多级运算模块、一个外存储器、及一个外存储器控制器,其特征在于它还包括:
一个外存储器前置缓冲器,用于接收各级运算模块的访存请求及数据,并向外存储器控制器输出访存请求及数据,其输入端连接主控制器和各级运算模块,输出端连接外存储器控制器;
所述的主控制器,用于接收各级运算模块发出的闲置信令,并向各级运算模块、外存储器前置缓冲器、和外存储器控制器发送同步信令,它具有:一个高精度时钟计数器,该主控制器的输入端连接各级运算模块,输出端连接流水线中各级运算模块、外存储器前置缓冲器和外存储器控制器;
所述的各级运算模块,用于系统数据的运算处理,其上下级之间采用FIFO结构交换和缓冲数据,至少含有2个数据单元的数据缓冲区,其输入端连接主控制器、上级运算模块和外存储器控制器,输出端连接主控制器、下级运算模块和外存储器前置缓冲器;
所述各级运算模块需要进行访存时,其内部的访存模块分为两个流水级别,包括:发送请求的子模块(M11)及处理数据的子模块(M12);其中发送请求的子模块(M11)上具有连接下级运算模块及外存储器前置缓冲器的输出端,处理数据的子模块(M12)上具有连接主控制器、上级运算模块、及外存储器控制器的输入端;
所述的外存储器控制器,被各级运算模块所共用,用于控制对外存储器的访存和对各级运算模块传送数据,其输入端连接外存储器前置缓冲器,输出端连接外存储器和各级运算模块;
所述的外存储器,用于存储各级运算模块处理的大块数据信息,对其访存受外存储器控制器的控制,其输入端和输出端均与外存储器控制器连接。
2.根据权利要求1所述的基于FIFO的流水线实时处理的装置,其特征在于,外存储器前置缓冲器内部采用FIFO结构交换和缓冲数据。
3.根据权利要求2中所述的基于FIFO的流水线实时处理的装置,其特征在于,所述的处理数据的子模块(M12)与外存储器控制器之间,包括至少2个数据单元的缓冲区。
4.一种基于FIFO的流水线实时处理的方法,其特征在于,包括如下步骤:
(1)主控制器定时向各级运算模块、外存储器前置缓冲器、及外存储器控制器发送同步信令,每一个同步信令的发出视为一个新的工作周期;
(2)各级运算模块上下级之间采用FIFO结构交换和缓冲数据,流水线各级运算模块收到同步信令后开始处理下一个数据单元的数据,将处理好的数据发送至下级流水线的运算模块,其间如果要访问外存储器时,将访存请求及数据发送至外存储器前置缓冲器,另一方面也接收来自外存储器控制器发送的数据,做进一步运算处理,在完成该数据单元所有数据的处理后向主控制器发送闲置信令;
(3)外存储器前置缓冲器内部采用FIFO结构交换和缓冲数据,外存储器前置缓冲器收到同步信令后其写入指针向前移动一个数据单元,并收集各级运算模块发出的访存请求及数据,存入其当前写入指针指向的一个数据单元中;
(4)外存储器控制器收到同步信令后其对外存储器前置缓冲器的读入指针向前移动一个单元,并依次读出其读入指针指向的当前数据单元中的访存请求及数据,将处理后的各数据发送至外存储器和相应的运算模块;
(5)流水线系统中各模块完成本单元数据处理工作后处于闲置状态,等待下一个同步信令到来才能开始下一个单元的数据处理工作,主控制器接收到所有运算模块发出的闲置信令后,在定时器所定时间到达时重复步骤(1);
如果主控制器在定时器所定时间到达时仍未能接受到所有运算模块发出的闲置信令,则发出报错信息及进行相应处理。
5.根据权利要求4所述的基于FIFO的流水线实时处理的方法,其特征在于,各级运算模块需要访问外存储器时,由发送请求子模块(M11)将访存请求和数据发送至外存储器前置缓冲器进行缓存,另外由处理数据的子模块(M12)接受来自外存储器控制器发送的数据,做进一步处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100407766A CN101308568B (zh) | 2007-05-17 | 2007-05-17 | 基于fifo的流水线实时处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100407766A CN101308568B (zh) | 2007-05-17 | 2007-05-17 | 基于fifo的流水线实时处理的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101308568A CN101308568A (zh) | 2008-11-19 |
CN101308568B true CN101308568B (zh) | 2010-06-23 |
Family
ID=40125007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100407766A Active CN101308568B (zh) | 2007-05-17 | 2007-05-17 | 基于fifo的流水线实时处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101308568B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101616650B1 (ko) * | 2011-06-07 | 2016-04-28 | 미쓰비시덴키 가부시키가이샤 | 묘화 장치 |
CN104545902B (zh) * | 2015-01-30 | 2019-07-30 | 中国科学院电子学研究所 | 4段流水线数字信号处理器及采用其的无线片上系统芯片 |
CN105430409B (zh) * | 2015-12-29 | 2017-10-31 | 福州瑞芯微电子股份有限公司 | 一种基于计数器的流水控制方法和装置 |
CN111062855B (zh) * | 2019-11-18 | 2023-09-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形流水线性能分析方法 |
CN114528246A (zh) * | 2020-11-23 | 2022-05-24 | 深圳比特微电子科技有限公司 | 运算核、计算芯片和加密货币矿机 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1874517A (zh) * | 2006-06-19 | 2006-12-06 | 西安交通大学 | 基于多流水控制与缓存优化的mpeg-2视频解码控制方法 |
-
2007
- 2007-05-17 CN CN2007100407766A patent/CN101308568B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1874517A (zh) * | 2006-06-19 | 2006-12-06 | 西安交通大学 | 基于多流水控制与缓存优化的mpeg-2视频解码控制方法 |
Non-Patent Citations (2)
Title |
---|
孙楠,刘佩林.用于AVS视频解码器的高效分级流水线机制.电视技术2006年 11.2006,2006年(11),35-40. |
孙楠,刘佩林.用于AVS视频解码器的高效分级流水线机制.电视技术2006年 11.2006,2006年(11),35-40. * |
Also Published As
Publication number | Publication date |
---|---|
CN101308568A (zh) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100549992C (zh) | 可减少延迟的数据传送与接收方法与系统 | |
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
CN101308568B (zh) | 基于fifo的流水线实时处理的方法和装置 | |
CN100369024C (zh) | 直接存储访问控制装置和图像处理系统以及传输方法 | |
CN101841420B (zh) | 面向片上网络的低延迟路由器结构 | |
CN102017638A (zh) | 视频编码/解码装置 | |
CN100378687C (zh) | 一种高速缓存预取模块及其方法 | |
CN1109307C (zh) | 在处理器单元之间交换数据的系统 | |
CN103778086A (zh) | 一种基于粗粒度动态可重构系统的多模式数据访问装置及办法 | |
CN102025694B (zh) | 基于dsp阵列实现以太网数据发送的装置及方法 | |
CN101599167A (zh) | 存储器的存取方法 | |
US20080270710A1 (en) | Apparatus, method and data processing element for efficient parallel processing of multimedia data | |
CN111653317A (zh) | 基因比对加速装置、方法及系统 | |
CN1759385A (zh) | 用于传送数据的数据处理设备以及方法 | |
CN102521180B (zh) | 一种多通道实时直读存储器结构 | |
US7158532B2 (en) | Half duplex link with isochronous and asynchronous arbitration | |
CN110633233A (zh) | 一种基于流水线的dma数据传输处理方法 | |
CN103827836A (zh) | 存储数据的方法和装置 | |
CN100538738C (zh) | 访问多区存储器中的多维数据块的方法、装置及系统 | |
CN113254387B (zh) | 数据缓存器、芯片、机器人、数据缓存方法 | |
CN101741727B (zh) | 使用三重缓冲来处理数据的方法 | |
CN114302089A (zh) | 一种基于fpga的多路视频信号缓存控制方法及系统 | |
KR100891116B1 (ko) | 대역폭 인식 움직임 보상 장치 및 그 방법 | |
CN102158402B (zh) | 一种纵横式交换矩阵缓存信元的方法及装置 | |
CN202332303U (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100089 18 / F, block B, Zhizhen building, No.7, Zhichun Road, Haidian District, Beijing Patentee after: Beijing Ziguang zhanrui Communication Technology Co.,Ltd. Address before: 100084, Room 516, building A, Tsinghua Science Park, Beijing, Haidian District Patentee before: BEIJING SPREADTRUM HI-TECH COMMUNICATIONS TECHNOLOGY Co.,Ltd. |