一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种管线式数据传输方法及数据管线装置与流程

2022-06-08 18:29:13 来源:中国专利 TAG:


1.本发明是关于一种数据传输技术,特别是指一种管线式数据传输方法及数据管线装置。


背景技术:

2.为了避免频繁向存储器储存与读取造成功率消耗,两电子元件之间的数据传递,可在两者间串接缓冲区(buffer)来供数据传送端存放要传递的数据,同时供数据接收端读取存放在缓冲区的数据。然而,两电子元件同时对同一缓冲区进行储存与读取,难免会产生数据遗失的问题。例如,缓冲区的某一区域写入了数据,该区域还没来得及被读取即被写入新的数据。特别是,当两电子元件对于缓冲区的存取顺序不同时,特别容易发生此问题。
3.为了克服此问题,有一种使用两个缓冲区的方法,数据传送端交替对两缓冲区写入数据供数据读取端读取。如此,虽然可以解决数据丢失的问题,但需要两倍的缓冲区成本。


技术实现要素:

4.鉴于上述问题,本发明提出一种管线式数据传输方法,应用于一数据管线装置。数据管线装置包含一前级模组、一后级模组及耦接于前级模组及后级模组之间的一缓冲区。缓冲区包含复数储存单元。管线式数据传输方法包含:执行复数写读回合;在每一写读回合中,前级模组按照一写入顺序依序分别对各储存单元执行一写入动作;及在每一写读回合中,后级模组按照一读取顺序依序分别对各储存单元执行一读取动作;其中,在连续两个写读回合中,在后的写读回合中的写入顺序与在前的写读回合中的读取顺序相同。
5.本发明一实施例另提出一种数据管线装置,包含一前级模组、一后级模组及一缓冲区。缓冲区耦接于前级模组及后级模组之间,并包含复数储存单元。前级模组及后级模组执行复数写读回合。在每一写读回合中,前级模组按照一写入顺序依序分别对各储存单元执行一写入动作,后级模组按照一读取顺序依序分别对各储存单元执行一读取动作。在连续两个写读回合中,在后的写读回合中的写入顺序与在前的写读回合中的读取顺序相同。
6.根据本发明实施例所提出的数据管线装置及管线式数据传输方法,在使用单一缓冲区的情形下,可供前级模组及后级模组各自使用其写入顺序与读取顺序来存取缓冲区,同时可避免未读取的数据被覆写所造成的数据丢失问题。
附图说明
7.下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
8.图1为本发明一实施例的数据管线装置的架构示意图;
9.图2为本发明一实施例的管线式数据传输方法的流程图;
10.图3为本发明一实施例的对缓冲区执行写入动作的示意图;
11.图4为本发明一实施例的对缓冲区执行读取动作的示意图;以及
12.图5为本发明一实施例的管线式数据传输方法的细部流程图。
13.【符号说明】
14.100:数据管线装置
15.110:前级模组
16.120:后级模组
17.130:缓冲区
18.131:储存单元
19.s210,s220,s230:步骤
20.s510,s520,s530,s540,s550,s560:步骤
具体实施方式
21.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.在以下的详细描述中,可以参看作为本技术一部分用来说明本技术的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本技术的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本技术的技术方案。应当理解,还可以利用其它实施例或者对本技术的实施例进行结构、逻辑或者电性的改变。
23.参照图1,为本发明一实施例的数据管线装置的架构示意图。数据管线装置100包含一前级模组110、一后级模组120及耦接于前级模组110及后级模组120之间的一缓冲区130。前级模组110与后级模组120分别为两个独立的电子器件。在一些实施例中,前级模组110为影像感测器,后级模组120为影像编码器,所传输的数据为影像数据。为便于说明,于后将以此应用场景为例进行说明,然而本发明并非以此应用场景为限。在一些实施例中,后级模组120为符合高效率视频编码(high efficiency video coding,hevc)架构的影像编码器。
24.参照图2,为本发明一实施例的管线式数据传输方法的流程图。所述管线式数据传输方法应用于前述数据管线装置100,使得前级模组110可将数据传输给后级模组120。
25.在步骤s210中,执行复数个写读回合。亦即,在完成一个写读回合之后,继续执行下一个写读回合。换言之,在完成一个写读回合之前,不会进入下一个写读回合。一个写读回合是指,前级模组110将一笔数据完整写入至缓冲区130,且后级模组120将该笔数据完整从缓冲区130读取出来。所述一笔数据,以影像数据为例,可例如是一张影像、一张影像的某一条带(slice)等。在一些实施例中,在前级模组110写入数据的过程中(该数据尚未完整写入),后级模组120即开始读取该数据。在一些实施例中,在一个写/读回合内,读操作在写操作完成之后开始。在两个连续的写/读回合之间,下一个回合写操作可以在上一个回合读操作完成之前开始。
26.参照图3,为本发明一实施例的对缓冲区130执行写入动作的示意图。缓冲区130包含复数储存单元131。储存单元131是执行一次写入动作或读取动作的最小单位。储存单元
131包含一个或多个储存单元(图未示)。所述储存单元为缓冲区130中的最小记忆单位。例如,一个储存单元的储存量为一个位元组,而一个储存单元131的储存量为四个位元组(即一个储存单元131具有四个储存单元)。为了方便说明,在此仅以缓冲区130具有20个储存单元131为例,但本发明不以此数量为限,应可包含更少或更多的储存单元131。在此,储存单元131是呈四行五列的二维排列方式。在一些实施例中,一列储存单元131的个数(在此为五个)与影像数据的跨距(stride)呈正相关,具体来说,一列储存单元131能储存影像的复数列像素数据。在一些实施例中,一行储存单元131的个数(于此为四个)与影像数据的高呈正相关,亦即一行储存单元131能储存影像的复数行像素数据。在一些实施例中,一个储存单元131可以储存一个编码树单元(coding tree unit,ctu)。
27.在步骤s220中,在每一个写读回合中,前级模组110会按照一写入顺序依序分别对各储存单元131执行一写入动作。如图3所示,储存单元131中所标注的数字为对于各储存单元131执行写入动作的序数。数字「1」表示第一个执行写入动作的储存单元131,数字「2」表示第二个执行写入动作的储存单元131,以此类推。在如图3所示的实施例中,是依次从左至右写入第一列的储存单元131后,再从左至右写入第二列的储存单元131,接着从左至右写入第三列的储存单元131,最后从左至右写入第四列的储存单元131,一般可称此种顺序为光栅顺序(raster order)。
28.在步骤s230中,在每一个写读回合中,后级模组120会按照一读取顺序依序分别对各储存单元131执行一读取动作。参照图4,为本发明一实施例的对缓冲区130执行读取动作的示意图。储存单元131中所标注的数字为对于各储存单元131执行读取动作的序数。数字「1」表示第一个执行读取动作的储存单元131,数字「2」表示第二个执行读取动作的储存单元131,以此类推。在如图4所示之例中,是依次从上至下读取左起第一行的储存单元131后,再从上至下读取左起第二行的储存单元131,接着从上至下读取左起第三行的储存单元131,续而从上至下读取左起第四行的储存单元131,最后从上至下读取左起第五行的储存单元131,一般可称此种顺序为块顺序(tile order)。
29.为了方便说明,下述实施例将储存单元131的位址定义为如图3所示的序数。也就是说,第一列第一行的储存单元131的位址为「1」,第一列第二行的储存单元131的位址为「2」,以此类推。前述写入顺序是指按照执行写入动作的次序排列对应各个储存单元131的位址而形成的序列。前述读取顺序是指按照执行读取动作的次序排列对应各个储存单元131的位址而形成的序列。
30.参照表1,是显示本发明一实施例的复数写读回合的写入顺序和读取顺序。可以看到,在连续两个写读回合中,在后的写读回合中的写入顺序与在前的写读回合中的读取顺序相同。例如,第二写读回合的写入顺序与第一写读回合的读取顺序相同,第三写读回合的写入顺序与第二写读回合的读取顺序相同。如此一来,在连续两个写读回合中,若在后的写读回合中的写入顺序的执行序数小于在前的写读回合中的读取顺序的执行序数,就不会让还没有读取的储存单元131被写入新的数据而造成数据遗失。例如,当读取顺序的执行序数为「5」时,写入顺序的执行序数可为「1」、「2」、「3」、「4」,但不可为「5」或其后的序数。所述执行序数是指当前要执行写入动作的储存单元131的位址其位于写入顺序中的序数。例如,在第二写读回合中的写入顺序中,若当前是要对位址为「16」的储存单元131执行写入动作,则执行序数为「4」。
31.表1
[0032][0033]
参照表1,在同一个写读回合中的写入顺序和读取顺序不同。因此,可以让前级模组110与后级模组120分别按照其需求的方式来写入与读取。例如,作为影像感测器的前级模组110是分别逐列将影像数据写入缓冲区130,而作为影像编码器的后级模组120是需要逐块从缓冲区130读取出影像数据以进行编码。
[0034]
参照表1,在同一个写读回合中的写入顺序和读取顺序之间具有一映射关系,并且各写读回合的映射关系为相同。也就是说,在同一写读回合中,写入顺序与读取顺序的同一序数的两位址之间具有一映射关系;在每一写读回合中,写入顺序中的位址映射到读取顺序中的位址是相同的。例如,在第一写读回合中,在写入顺序中序数为「2」的位址为「2」,在读取顺序中序数同样为「2」的位址为「6」,而在其他写读回合中,写入顺序中的位址「2」均映射至读取顺序中的位址「6」(例如第二写读回合中的序数「5」)。表2所示为本发明一实施例的写入顺序中的位址与读取顺序中的位址间的映射关系。
[0035]
表2
[0036][0037]
参照图5,为本发明一实施例的管线式数据传输方法的细部流程图。首先,于步骤s510中,设定参数的初始值。所述参数为后述计算式所用到的参数,将于后说明。
[0038]
在步骤s520中,前级模组110对当前位址的储存单元131执行写入动作;后级模组120对当前位址的储存单元131执行动作。对前级模组110而言,当前位址为写入顺序中对应当前执行序数的位址;对后级模组120而言,当前位址为读取顺序中对应当前执行序数的位址。前级模组110的当前执行序数与后级模组120的当前执行序数可以是不同的。
[0039]
在完成步骤s520之后,进入步骤s530,取得下一个执行序数的位址,以供作为下一次执行写入或读取动作的当前位址,计算式如式(1)所示。add(n)为当前序数的写入位址或读取位址,add(n 1)为下一个序数的写入位址或读取位址。n为当前序数。p为当前位址与下一个位址的位移量。若经式(1)取得的add(n 1)大于z,则依据式(2)更新add(n 1)。z为储存单元131的数量。在此例中,z为20。n、p、z为正整数。在此补充说明前述步骤s510中,所设定的参数的初始值:n为1,add(1)为1,前级模组110的p初始值为1,后级模组120的p初始值为5。
[0040]
add(n 1)=add(n) p
ꢀꢀꢀ
式(1)
[0041]
add(n 1)=add(n 1)-z 1
ꢀꢀꢀ
式(2)
[0042]
在步骤s540中,判断影像数据是否写入或读取完成。若是,则进入步骤s550;若否,则返回步骤s520,继续执行下一次写入或读取动作。
[0043]
在步骤s550中,判断是否执行下一个写读回合(亦即判断本次写读回合的写入顺序或读取顺序是否完成)。若是,则进入步骤s560,以更新参数数值,计算式如式(3)所示;若否,则结束流程。式(3)为p与s的乘积除以z之后取其小于或等于的最大整数(或称[下取整」),再加上p与s的乘积除与z的余数后的结果,作为下一读写回合的p值。s为正整数。在此例中,s与影像数据的跨距呈正相关,具体来说,s为一列储存单元131的数量(于此为5),但本发明实施例不已此为限,s亦可设定为其他数值。各个写读回合中分别对应于写入顺序与读取顺序的p值详如表1所示。
[0044][0045]
在另一实施例中,不使用式(3),而是透过式(3-1)至式(3-3)来更新参数数值,可免除乘法与除法计算,可提升计算效能或降低硬体成本。在执行式(3-1)之前,执行p次式(3-2)来取得q值。在执行p次式(3-2)的过程中,检查每次执行式(3-2)后的结果,若计算得的q值大于z,则依据式(3-3)更新q值,再接续下一次的式(3-2)计算。最后,利用计算得的最终q值作为新的p值(即式(3-1)),并将q值重置为0。在此补充说明前述步骤s510中,所设定的参数的初始值还包括:q的初始值为0。
[0046]
p=q
ꢀꢀꢀ
式(3-1)
[0047]
q=q s
ꢀꢀꢀ
式(3-2)
[0048]
q=q-z 1
ꢀꢀꢀ
式(3-3)
[0049]
综上所述,根据本发明实施例所提出的数据管线装置100及管线式数据传输方法,在使用单一缓冲区130的情形下,可供前级模组110及后级模组120各自使用其写入顺序与读取顺序来存取缓冲区130,同时可避免未读取的数据被覆写所造成的数据丢失问题。
[0050]
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献