CN103218314B - 一种应用于并行滤波运算的数据缓存装置 - Google Patents

一种应用于并行滤波运算的数据缓存装置 Download PDF

Info

Publication number
CN103218314B
CN103218314B CN201310139573.8A CN201310139573A CN103218314B CN 103218314 B CN103218314 B CN 103218314B CN 201310139573 A CN201310139573 A CN 201310139573A CN 103218314 B CN103218314 B CN 103218314B
Authority
CN
China
Prior art keywords
data
row
buffer
buffer zone
signal
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
Application number
CN201310139573.8A
Other languages
English (en)
Other versions
CN103218314A (zh
Inventor
王东琳
尹磊祖
杨勇勇
谢少林
汪涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Silang Technology Co ltd
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201310139573.8A priority Critical patent/CN103218314B/zh
Publication of CN103218314A publication Critical patent/CN103218314A/zh
Application granted granted Critical
Publication of CN103218314B publication Critical patent/CN103218314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Input (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种用于并行滤波运算的数据缓存装置,包括缓冲区实体,该缓冲区实体用于缓冲来自一个多粒度存储器的数据,还包括读缓冲逻辑、初始化缓冲逻辑和更新缓冲逻辑。所述读缓冲逻辑用于接收所述读缓冲区使能信号、读缓冲区列号、读缓冲区列内偏移,并且根据这些信号读取所述缓冲区实体某一列的数据;所述初始化缓冲逻辑用于在初始化开始信号有效时对所述缓冲区实体进行初始化;所述更新缓冲逻辑用于在所述列移信号有效时,按列整体移动缓冲区实体,同时输出所述作用于多粒度存储器的信号组。本发明可以在滤波前对数据进行处理,在滤波时提供并行运算所需的数据,充分利用数据局部性原理,减少访存次数,达到数据的最大利用率。

Description

一种应用于并行滤波运算的数据缓存装置
技术领域
本发明涉及数字信号处理器与微处理器技术领域,特别是指一种用于滤波运算的数据缓冲区结构,与滤波算法、集成电路结构密切相关。
背景技术
在图像处理等信号处理系统中,对于获得信噪比较低的图像,图像滤波是个不可或缺的处理操作。针对不同的滤波模板,二维滤波的计算量有所不同,一般情况下,对于一个K×K的滤波模板,计算每个滤波结果需要K2个乘法和K2个加法,那么对于一个M×N大小的输入矩阵,所需计算量为2MNK2,所以二维滤波是个计算密集型算法。
对于上面巨大的计算量,其数据使用具有极大的局部性特征,对于一个K×K的滤波模板,相邻两次滤波运算,其数据重复量达到K×(K-1)个。若是采用传统的标量处理方式,存在着大量的数据重复访问过程,大大增加存储器访问次数,使得滤波效率低下。
另外存在其它与二维滤波运算特性相似的算法,它们都表现出如下算法特征:
1、运算对象为输入信号矩阵和输入系数矩阵。该系数矩阵一般为一个规整的表达结构,如矩形窗口、十字窗口等。
2、运算特征为每一个点的输出结果为输入系数矩阵窗口与输入信号矩阵相对应的部分运算,得出一个点的滤波结果,然后将输入矩阵逐点进行该运算,直到得出整个结果矩阵。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是现有的数据缓冲装置不适于并行滤波运算,导致运算效率不足的问题。
(二)技术方案
本发明提出一种用于并行滤波运算的数据缓存装置,包括缓冲区实体,该缓冲区实体用于缓冲来自一个多粒度存储器的数据,所述数据缓存装置还包括读缓冲逻辑、初始化缓冲逻辑和更新缓冲逻辑,其中,所述数据缓存装置的输入信号包括读缓冲区使能信号、读缓冲区列号、读缓冲区列内偏移、初始化开始信号和列移信号;所述数据缓存装置的输出信号包括作用于所述多粒度存储器的由读请求、读粒度和读地址组成的信号组;所述读缓冲逻辑用于接收所述读缓冲区使能信号、读缓冲区列号、读缓冲区列内偏移,并且根据这些信号读取所述缓冲区实体某一列的数据;所述初始化缓冲逻辑用于在初始化开始信号有效时对所述缓冲区实体进行初始化;所述更新缓冲逻辑用于在所述列移信号有效时,按列整体移动缓冲区实体,同时输出所述作用于所述多粒度存储器的信号组。
根据本发明的一种具体实施方式,所述述缓冲区实体包括三个部分:上区、主区和下区。
根据本发明的一种具体实施方式,所述上区和下区的大小相等,尺寸由滤波计算的滤波系数决定;所述主区的大小与所述二维滤波运算的向量乘累加器的运算尺寸有关。
根据本发明的一种具体实施方式,当向量乘累加器运算尺寸为BS,最大支持滤波系数为K×K时,所述上区和下区均为(K-1)/2×K的二维阵列,所述主区为BS×K的二维阵列,其中K为支持的最大滤波模板尺寸。
根据本发明的一种具体实施方式,当初始化该数据缓存装置时,所述初始化逻辑使所述从多粒度存储器取得的数据对应待滤波数据矩阵的第1~K-(k-1)/2列,并将所述数据放入所述主区的第(k-1)/2+1~K列。
根据本发明的一种具体实施方式,当初始化该数据缓存装置时,当加载到主区的数据不含待滤波数据矩阵的最后一行数据时,对于所述主区第1~BS行与第(k-1)/2+1~K列交叉的部分,需要加载多粒度存储器里面的相应待滤波数据;若加载的数据含待滤波数据矩阵的最后一行数据,且当前加载的行数为N且N<BS时,主区第1~N行与第(k-1)/2+1~K列交叉的部分,需要加载多粒度存储器里面的相应待滤波数据,而主区(102)的第N+1~BS行与第(k-1)/2+1~K列交叉的部分,根据填充模式选择信号来决定是填零还是填充第N行的对应元素;主区第1~(k-1)/2列则根据填充模式选择信号来决定是填零还是填充主区的第(k-1)/2+1列的元素。
根据本发明的一种具体实施方式,当初始化该数据缓存装置时,若加载到所述主区的数据包含了待滤波数据矩阵的第一行,则所述上区的第(k-1)/2+1~K列的填充是根据填充模式选择信号来决定是填充零还是填充主区的对应边界数据;若加载到所述主区的数据不包含待滤波数据矩阵的第一行,则需要从多粒度存储器里面取特定位置的值来填充;所述上区的第1~(k-1)/2列则根据填充模式选择信号来决定是填零还是填充上区的第(k-1)/2+1列数据得到。
根据本发明的一种具体实施方式,当初始化该数据缓存装置时,若加载到所述主区的数据包含了待滤波数据矩阵的最后一行,则所述下区的第(k-1)/2+1~K列的填充是根据填充模式选择信号来决定是填充零还是填充主区的对应边界数据;若加载的数据不包含待滤波数据矩阵的最后一行,则需要从多粒度存储器里面取特定位置的值来填充;所述下区的第1~(k-1)/2列则根据填充模式选择信号来决定是填零还是填充下区的第(k-1)/2+1列数据。
根据本发明的一种具体实施方式,当读取该数据缓存装置时,所述读缓冲逻辑通过读缓冲区列号、读缓冲区列内偏移读出所述数据缓冲区实体中某一列的BS个元素。
根据本发明的一种具体实施方式,当所述列移信号有效时,所述缓冲区实体按列整体移动,最左边的一列移出舍弃,最右边一列从所述多粒度存储器里面取数。
(三)有益效果
本发明提出的应用于并行滤波运算的数据缓存装置,可以在滤波前对数据进行处理,在滤波时提供并行运算所需的数据,充分利用数据局部性原理,减少访存次数,达到数据的最大利用率。
附图说明
图1显示了本发明的用于并行滤波运算的数据缓存装置在二维滤波装置中的位置;
图2为本发明的用于并行滤波运算的数据缓存装置的结构图;
图3为本发明的数据缓存装置中的缓冲区实体的内部组成图;
图4是本发明的一个实施例中一个大滤波数据矩阵与数据缓冲区实体的存放对应关系图;
图5为本发明的一个实施例中待滤波数据矩阵在多粒度存储器中的分布图;
图6为适应本发明的一个实施例的数据缓冲区实体大小及其初始化图;
图7为本发明的一个实施例发生列移时缓冲区实体内容变化图;
图8本发明的一个实施例加载待滤波数据矩阵的第5~8行的初始化后数据分布图;
图9为本发明的一个实施例列移信号有效时,数据缓冲区实体内容变化图;
图10为本发明的一个实施例加载待滤波数据矩阵的第17行的初始化后数据分布图;
图11为本发明的一个实施例列移信号有效时,数据缓冲区实体内容变化图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明需要利用支持多粒度并行读写的存储器(或称多粒度存储器),该多粒度存储器的描述参见申请号为201110460585.1、名称为“多粒度并行存储系统与存储器”的中国专利公开说明书。
图1显示了本发明的用于并行滤波运算的数据缓存装置在二维滤波装置中的位置。如图1所示,该图为并行滤波运算对应的装置结构图。该装置中主要包括以下几个部分:多粒度存储器10、数据缓存装置200、系数缓冲区30、向量运算部件40和命令队列50。其中数据缓存装置200包括数据缓存体2001和数据缓冲控制单元2002,用来缓存待滤波数据的部分元素,并进行数据的读取与更新;系数广播装置30包括系数缓存体301和系数缓冲区控制单元302、303、304,用来缓存滤波系数,并对所读取缓冲体301的数据进行广播;存储器10用来存储并行运算的数据、系数以及滤波完毕后的结果数据,该存储器一般包括三个存储块,如存储块101存放待滤波数据,102存放滤波系数,103存放滤波结果;命令队列50用来存放并行运算的操作队列;运算部件40用来做各种运算,该部件可以同时进行一个或多个运算,并将滤波结果写入多粒度存储器103中。
图2为本发明的用于并行滤波运算的数据缓存装置的结构图。如图2所示,该数据缓存装置包括缓冲区实体10、读缓冲逻辑20、初始化缓冲逻辑30和更新缓冲逻辑40。该数据缓存装置的输入信号包括读缓冲区使能信号102、读缓冲区列号103、读缓冲区列内偏移104、初始化开始信号105、填充模式选择信号110、初始化逻辑30或更新缓冲逻辑40从多粒度存储器取得的数据108、滤波系数模板宽度106和列移信号109。数据108是初始化逻辑30或更新逻辑40从多粒度存储器取得的数据。该数据缓存装置的输出信号包括读取的缓冲区数据1001和初始化逻辑30或更新逻辑40对多粒度存储器的由读请求、读粒度和读地址组成的信号组107。
下面来描述本发明的数据缓存装置的各组成部分的作用。
缓冲区实体10的作用是缓冲来自多粒度存储器的数据,为本发明的存储实体部分;读缓冲逻辑20接收外部的读缓冲区使能信号102、读缓冲区列号103、读缓冲区列内偏移104,并且根据这些信号读取缓冲区实体10某一列的BS个数据;初始化缓冲逻辑30在外部输入的初始化开始信号105有效时对缓冲区实体10进行初始化;更新缓冲逻辑40在列移信号109有效时,按列整体移动缓冲区实体10,同时作用于多粒度存储器的读请求、读粒度和读地址信号组107。
根据本发明,上述缓冲区实体10包括三部分:上区101、主区102和下区103,三个区域以二维网格的形式组成了整个数据缓冲区的实体部分。其中上区101和下区103大小相等,其尺寸与二维滤波系数尺寸有关,主区102大小与二维滤波装置的向量乘累加器运算尺寸有关。现假定每个区域的最小组成单元为8bit大小,二维滤波实现结构的向量乘累加器运算尺寸为BS,最大支持滤波系数为K×K,则如图3所示,三个区域分别大小为:上区101和下区103均为一个(K-1)/2×K的二维阵列,主区102为一个BS×K的二维阵列,其中K为支持的最大滤波模板尺寸,BS为运算尺寸,各个区域二维阵列中的每个元素大小为8bit。
下面来具体说明本发明的数据缓存装置的工作过程。
当初始化开始信号105有效时,开始了缓冲区的初始化工作,即初始化逻辑30通过对多粒度存储器的读请求、读粒度和读地址信号组107作用,使得多粒度存储器取得的数据108对应待滤波数据矩阵的第1~K-(k-1)/2列,并将数据108放入缓冲区实体10的主区102的第(k-1)/2+1~K列,其中K是指本发明所能支持的最大模板,k是指当前滤波系数模板大小;之后再根据填充模式选择信号110,将主区102的第1~(k-1)/2列、上区101和下区103初始化。填充模式选择信号110在处理待滤波数据矩阵的第一列时决定了主区102的第1~(k-1)/2列的填充内容,在处理待滤波数据矩阵的最开始BS行时决定了上区101的填充内容,在处理待滤波数据矩阵的最后BS行时,决定了下区103的填充内容,其内容来源可以填充零,也可以填充临近主区的内容。
上述初始化完毕后,外部功能部件或者类似于二维滤波实现结构中的向量乘累加器即可以对本发明的数据缓存装置进行读操作了,在缓冲区内部是通过读缓冲逻辑20实现的,读缓冲逻辑20在读缓冲区使能信号102有效时,通过读缓冲区列号103、读缓冲区列内偏移104,读出需要的数据缓冲区实体10中某一列的BS个元素。
当列移信号109有效时,整个缓冲区实体10按列整体移动,最左边的一列移出舍弃,最右边一列从多粒度存储器里面取数,若待滤波数据矩阵的最后一列已经取到数据缓冲区实体中,则在列移时,根据填充模式选择信号110来决定是复制边界元素,还是直接在最右列填零。通过重复上述的初始化数据缓冲区、列移缓冲区过程,可以将一个大的待滤波数据矩阵加载到数据缓冲区中。
图4是本发明的一个实施例中一个大滤波数据矩阵与数据缓冲区实体10的存放对应关系图。如图4所示,其中section(i)部分为即将进行滤波运算的数据,其行数为BS,列数没有限定。section(i-1)为待滤波数据矩阵中处于section(i)上方且与其相邻的(k-1)/2行(如果存在),section(i+1)为待滤波数据矩阵中处于section(i)下方且与其相邻的(k-1)/2行(如果存在)。
在数据缓冲区的初始化阶段,对于上区101、主区102和下区103的填充遵从以下一般规则:
[规则1]主区102的填充
当加载到主区102的数据不含待滤波数据矩阵的最后一行数据时,对于缓冲区主区102第1~BS行与第(k-1)/2+1~K列交叉的部分,需要加载多粒度存储器里面的相应待滤波数据;若加载的数据含待滤波数据矩阵的最后一行数据,且当前加载的行数为N,N<BS时,主区102第1~N行与第(k-1)/2+1~K列交叉的部分,需要加载多粒度存储器里面的相应待滤波数据,而主区102的第N+1~BS行与第(k-1)/2+1~K列交叉的部分,根据填充模式选择信号110来决定是填零还是填充第N行的对应元素。
主区102第1~(k-1)/2列则根据填充模式选择信号110来决定是填零还是填充主区102的第(k-1)/2+1列的元素。
[规则2]上区101的填充
若加载到主区102的数据包含了待滤波数据矩阵的第一行,则上区101的第(k-1)/2+1~K列的填充是根据填充模式选择信号110来决定是填充零还是填充主区102的对应边界数据;若加载到主区102的数据不包含待滤波数据矩阵的第一行,则需要从多粒度存储器里面取特定位置的值来填充。上区101的第1~(k-1)/2列则根据填充模式选择信号110来决定是填零还是填充上区101的第(k-1)/2+1列数据得到。
[规则3]下区103的填充
若加载到主区102的数据包含了待滤波数据矩阵的最后一行,下区的第(k-1)/2+1~K列的填充是根据填充模式选择信号110来决定是填充零还是填充主区102的对应边界数据;若加载的数据不包含待滤波数据矩阵的最后一行,则需要从多粒度存储器里面取特定位置的值来填充。下区103的第1~(k-1)/2列则根据填充模式选择信号110来决定是填零还是填充下区103的第(k-1)/2+1列数据。
上述规则的执行在下面将详细说明。
在数据缓冲区的列移阶段,当加载到待滤波矩阵的最后一列元素时,对于上区101、主区102和下区103的填充遵从以下一般规则:
[规则4]:缓冲区实体10列移时的填充
此时每发生一次列移,缓冲区实体10的上区101、主区102和下区103所需新移入的数据,根据填充模式选择信号110来决定是填充零还是复制当前各个区域最右侧一列的数据。
本实施例中,假定如图1所示的二维滤波装置中的多粒度存储器的读写位宽或向量乘累加器的运算尺寸BS=4,最大可支持滤波系数模板K×K=5×5,待滤波数据D为17×9的矩阵,实际滤波模板T为3×3的矩阵,即k=3,则由上面的描述可以知道数据缓冲区实体10的各个区域大小如图6所示,即上区101和下区103的尺寸为2×5的二维网格,主区103的尺寸为4×5的二维网格,且各个区域二维阵列中的每个元素大小为8bit。同时假定填充模式选择信号110指定填充边界元素。待滤波数据矩阵D和滤波模板T如下所示:
D = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 45 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 T = 1 2 3 4 5 6 7 8 9
下面说明如何将上述待滤波数据矩阵加载到数据缓冲区实体中。
图5为上述待滤波数据矩阵D在多粒度存储器的分布情况。如图可以看出,待滤波数据矩阵的每四行数据依次被放入多粒度存储器的各个bank中,这样可以做到将每个BS=4行数据,逐列取出。
图6所示缓冲区实体10适应于本施例时的大小,同时上面标注的数字为初始化完毕后,所加载的部分待滤波数据矩阵元素。由前面叙述的[规则1]、[规则2]和[规则3]可知,待滤波数据矩阵的第1~4行和第1~4列交叉位置的数据被放入了缓冲区实体10的主区102的第2~5列中,主区102的最左边(K-1)/2=1列按填充模式选择信号110,填充了边界元素;对于上区101的第2~5列,由于加载的数据包含待滤波数据矩阵的第1行,所以根据填充模式选择信号110,填充了边界元素。对于上区101的第1列,同样根据填充模式选择信号110,填充了上区102的第2列;对于下区103的第2~5列,由于加载的数据不包含待滤波数据矩阵的最后一行,故此时应加载多粒度存储器的特定值,即待滤波系数矩阵的第5行的特定元素。对于下区103的第1列,同样根据填充模式选择信号110,填充了上区103的第2列。另外由于本施例中实际滤波模板k<最大支持滤波模板K,存在在滤波算法过程中不使用的区域,即图中标注x的区域。
对缓冲区实体10读操作,读缓冲逻辑20在读缓冲区使能信号102有效时,通过读缓冲区列号103、读缓冲区列内偏移104,读出需要的数据缓冲区实体10中某一列的BS=4个元素。如在本施例中,读缓冲区使能信号102有效时,读缓冲区列号103为1,读缓冲区列内偏移104分别为1、2、3时,分别返回如下三组数据:d1={1、1、10、19};d2={1、10、19、28};d3={10、19、28、28}。这些数据恰好是基于本发明的二维滤波结构前三次运算所需要的数据。
图7为列移信号109有效时,数据缓冲区实体10内容变化图。由图中可以看出,此时缓冲区实体10的整个最左边一列被移除,而最右边一列则加载了待滤波数据矩阵第5列的前BS个元素。
通过不断的列移,待滤波数据矩阵的第9列的前BS个数据也加载到了缓冲区实体102中,即待滤波数据矩阵D的前BS=4行数据均已经加载到过数据缓冲区实体10的主区102中了。
图8为加载待滤波数据矩阵的第5~8行的初始化后数据分布图。此时和加载前BS=4行数据初始化所不同的是边界数据填充的区别,根据前述[规则1]、[规则2]和[规则3]可以知道,对于主区102的第2~5列,填充多粒度存储器中的值,即待滤波数据矩阵的第5~8行与其第1~4列交叉的数据元素。对于主区102的边界第(k-1)/2=1列,填充主区102的第二列;对于上区101的第2~5列,加载待滤波数据矩阵的第4行和第1~4列交叉部分的数据。对于上区101的第1列,填充上区101的第2列;对于下区103的第2~5列,加载对应待滤波矩阵数据的第9行数据的前4列元素。对于下区103的第1列,填充下区103的第2列。
图9为列移信号109有效时,数据缓冲区实体10内容变化图。由图中可以看出,此时缓冲区实体10的整个最左边一列被移除,而最右边一列则加载了待滤波数据矩阵第5列的前BS个元素。
此时通过重复上述的初始化数据缓冲区、列移缓冲区过程,可以将待滤波数据矩阵D的第5~8行加载到缓冲区实体主区102中去。
类似的,可以将待滤波数据矩阵的第9~12和第13~16行数据加载到缓冲区实体102中去。
图10为加载待滤波数据矩阵的第17行的初始化后数据分布图,也就是加载待滤波数据矩阵的最后一行的情况。此时和加载前面各行数据初始化所不同的是边界数据填充的区别,根据前述[规则1]、[规则2]和[规则3]可以知道,对于主区102的第1行和第2~5列交叉的地方,填充多粒度存储器中的值,即待滤波数据矩阵的第17行的前BS=4个数据元素,对于主区102的第2~4行和第2~5列交叉的地方,填充主区102第一行的对应元素。对于主区102的边界第(k-1)/2=1列,填充主区102的第二列;对于上区101的第2~5列,加载待滤波数据矩阵的第16行前BS=4个数据元素。对于上区101的第1列,填充上区101的第2列;对于下区103的第2~5列,填充待滤波数据矩阵的第17行在上区101中的数据元素。对于下区103的第1列,填充下区103的第2列。
图11为列移信号109有效时,数据缓冲区实体10内容变化图。由图中可以看出,此时缓冲区实体10的整个最左边一列被移除,而最右边一列则加载了第17行待滤波数据矩阵的一个数据。
此时通过重复上述的初始化数据缓冲区、列移缓冲区过程,可以将待滤波数据矩阵D的第17行加载到缓冲区实体102中去,并且相应的位置做了正确的填充。
到此处,已经将整个待滤波数据矩阵D顺序的加载到了数据缓冲区中。
采用本发明完成二维滤波实现结构中的待滤波数据缓冲功能,具有以下有益效果:
1.滤波速度快。在运算操作数供应充分的前提下,二维滤波实现结构比传统标量实现快BS倍,而本发明则使得该前提得以满足。
2.减少访存次数,提高数据使用效率。通过本发明可以解决传统处理器对数据的重复加载问题,充分利用数据局部性,提高数据使用效率,减少访存次数。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种用于并行滤波运算的数据缓存装置,包括缓冲区实体,该缓冲区实体用于缓冲来自一个多粒度存储器的数据,其特征在于,所述数据缓存装置还包括读缓冲逻辑、初始化缓冲逻辑和更新缓冲逻辑,其中,
所述数据缓存装置的输入信号包括读缓冲区使能信号、读缓冲区列号、读缓冲区列内偏移、初始化开始信号和列移信号;
所述数据缓存装置的输出信号包括作用于所述多粒度存储器的由读请求、读粒度和读地址组成的信号组;
所述读缓冲逻辑用于接收所述读缓冲区使能信号、读缓冲区列号、读缓冲区列内偏移,并且根据这些信号读取所述缓冲区实体某一列的数据;
所述初始化缓冲逻辑用于在初始化开始信号有效时对所述缓冲区实体进行初始化;
所述更新缓冲逻辑用于在所述列移信号有效时,按列整体移动缓冲区实体,同时输出所述作用于所述多粒度存储器的信号组;
所述述缓冲区实体包括三个部分:上区、主区和下区;
所述上区和下区的大小相等,尺寸由滤波计算的滤波系数决定;所述主区的大小与所述滤波运算的向量乘累加器的运算尺寸有关;
当向量乘累加器运算尺寸为BS,最大支持滤波系数为K×K时,所述上区和下区均为(K-1)/2×K的二维阵列,所述主区为BS×K的二维阵列,其中K为支持的最大滤波模板尺寸;
当初始化该数据缓存装置时,所述初始化逻辑使从多粒度存储器取得的数据对应待滤波数据矩阵的第1~K-(k-1)/2列,并将所述数据放入所述主区的第(k-1)/2+1~K列。
2.如权利要求1所述的用于并行滤波运算的数据缓存装置,其特征在于:当初始化该数据缓存装置时,当加载到主区的数据不含待滤波数据矩阵的最后一行数据时,对于所述主区第1~BS行与第(k-1)/2+1~K列交叉的部分,需要加载多粒度存储器里面的相应待滤波数据;若加载的数据含待滤波数据矩阵的最后一行数据,且当前加载的行数为N且N<BS时,主区第1~N行与第(k-1)/2+1~K列交叉的部分,需要加载多粒度存储器里面的相应待滤波数据,而主区的第N+1~BS行与第(k-1)/2+1~K列交叉的部分,根据填充模式选择信号来决定是填零还是填充第N行的对应元素;主区第1~(k-1)/2列则根据填充模式选择信号来决定是填零还是填充主区的第(k-1)/2+1列的元素。
3.如权利要求1所述的用于并行滤波运算的数据缓存装置,其特征在于:当初始化该数据缓存装置时,若加载到所述主区的数据包含了待滤波数据矩阵的第一行,则所述上区的第(k-1)/2+1~K列的填充是根据填充模式选择信号来决定是填充零还是填充主区的对应边界数据;若加载到所述主区的数据不包含待滤波数据矩阵的第一行,则需要从多粒度存储器里面取特定位置的值来填充;所述上区的第1~(k-1)/2列则根据填充模式选择信号来决定是填零还是填充上区的第(k-1)/2+1列数据得到。
4.如权利要求1所述的用于并行滤波运算的数据缓存装置,其特征在于:当初始化该数据缓存装置时,若加载到所述主区的数据包含了待滤波数据矩阵的最后一行,则所述下区的第(k-1)/2+1~K列的填充是根据填充模式选择信号来决定是填充零还是填充主区的对应边界数据;若加载的数据不包含待滤波数据矩阵的最后一行,则需要从多粒度存储器里面取特定位置的值来填充;所述下区的第1~(k-1)/2列则根据填充模式选择信号来决定是填零还是填充下区的第(k-1)/2+1列数据。
5.如权利要求1所述的用于并行滤波运算的数据缓存装置,其特征在于:当读取该数据缓存装置时,所述读缓冲逻辑通过读缓冲区列号、读缓冲区列内偏移读出所述数据缓冲区实体中某一列的BS个元素。
6.如权利要求1所述的用于并行滤波运算的数据缓存装置,其特征在于:当所述列移信号有效时,所述缓冲区实体按列整体移动,最左边的一列移出舍弃,最右边一列从所述多粒度存储器里面取数。
CN201310139573.8A 2013-04-19 2013-04-19 一种应用于并行滤波运算的数据缓存装置 Active CN103218314B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310139573.8A CN103218314B (zh) 2013-04-19 2013-04-19 一种应用于并行滤波运算的数据缓存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310139573.8A CN103218314B (zh) 2013-04-19 2013-04-19 一种应用于并行滤波运算的数据缓存装置

Publications (2)

Publication Number Publication Date
CN103218314A CN103218314A (zh) 2013-07-24
CN103218314B true CN103218314B (zh) 2015-12-23

Family

ID=48816128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310139573.8A Active CN103218314B (zh) 2013-04-19 2013-04-19 一种应用于并行滤波运算的数据缓存装置

Country Status (1)

Country Link
CN (1) CN103218314B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108388537B (zh) 2018-03-06 2020-06-16 上海熠知电子科技有限公司 一种卷积神经网络加速装置和方法
CN109064424A (zh) * 2018-07-24 2018-12-21 郑州云海信息技术有限公司 图像滤波数据存取的控制方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020065833A1 (en) * 2000-11-30 2002-05-30 Emc Corporation System and method for evaluating changes in performance arising from reallocation of files among disk storage units
US7870345B2 (en) * 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
CN102497174A (zh) * 2011-12-27 2012-06-13 中国科学院自动化研究所 一种待滤波数据提供装置
CN102541774B (zh) * 2011-12-31 2015-02-04 中国科学院自动化研究所 多粒度并行存储系统与存储器

Also Published As

Publication number Publication date
CN103218314A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
CN107992943B (zh) 接收输入数据的方法、介质和系统、硬件逻辑及制造方法
CN101189797B (zh) 可重构的装置
CN103218174B (zh) 一种用于遥感图像的io双缓存交互多核处理方法
CN103150265B (zh) 面向嵌入式片上异构存储器的细粒度数据分配方法
US8819376B2 (en) Merging arrays using shiftable memory
CN103647850B (zh) 一种分布式版本控制系统的数据处理方法、设备及系统
CN103168289A (zh) 转置运算装置及其集成电路、以及转置处理方法
CN104571949A (zh) 基于忆阻器实现计算与存储融合的处理器及其操作方法
CN103760525B (zh) 一种补齐式原地矩阵转置方法
CN104679481A (zh) 一种指令集转换系统和方法
US11455781B2 (en) Data reading/writing method and system in 3D image processing, storage medium and terminal
CN101083643A (zh) 一种低存储器开销的混合基fft处理器及其方法
CN104778077A (zh) 基于随机和连续磁盘访问的高速核外图处理方法及系统
CN116010299B (zh) 一种数据处理方法、装置、设备及可读存储介质
CN110308835A (zh) 控制视图控件的方法、装置及电子设备
CN103218314B (zh) 一种应用于并行滤波运算的数据缓存装置
CN102662855A (zh) 一种二叉树的存储方法、系统
CN102306124A (zh) Nand Flash芯片硬件驱动层的实现方法
CN102799750B (zh) 几何体表面三角形剖分的公共边和非公共边快速生成方法
CN112732630A (zh) 针对深度学习的浮点矩阵乘算子众核并行优化方法
CN106897131A (zh) 一种用于天文软件Gridding的并行计算方法及其装置
CN109902821A (zh) 一种数据处理方法、装置及相关组件
CN102339255B (zh) 一种Nand写平衡处理方法
CN105373497A (zh) 基于dsp芯片的矩阵转置装置
CN102043591B (zh) Pram的写操作方法

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
TR01 Transfer of patent right

Effective date of registration: 20171129

Address after: 102412 Beijing City, Fangshan District Yan Village Yan Fu Road No. 1 No. 11 building 4 layer 402

Patentee after: Beijing Si Lang science and Technology Co.,Ltd.

Address before: 100190 Zhongguancun East Road, Beijing, No. 95, No.

Patentee before: Institute of Automation, Chinese Academy of Sciences

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee after: Shanghai Silang Technology Co.,Ltd.

Address before: 102412 room 402, 4th floor, building 11, No. 1, Yanfu Road, Yancun Town, Fangshan District, Beijing

Patentee before: Beijing Si Lang science and Technology Co.,Ltd.

CP03 Change of name, title or address