一种数据移位方法、系统、计算机设备及可读存储介质与流程

文档序号:31715312发布日期:2022-10-04 21:35阅读:64来源:国知局
一种数据移位方法、系统、计算机设备及可读存储介质与流程

1.本发明涉及数据处理技术领域,尤其涉及一种数据移位方法、系统、计算机设备及可读存储介质。


背景技术:

2.在向量处理器的向量寄存器中,存在一个向量a,该向量a由n个元素构成,每个元素表示一个数据,若用计算机专业语言描述的话,便是存在一个数组a[n]。这个向量中,根据某些规则,有的数据是有效的,有的数据是无效的。我们可以用一个bit来描述每个数字的有效和无效状态,例如00010001,则表示在一个拥有八个数字(n=8)的向量中,其第0个(自右向左)和第4个数字是有效的。而在后续的向量处理时,我们有时会期望有效数字能够合并在一起进行处理,即将该向量整理为有效状态为00000011的样式。
[0003]
因此,本发明要解决的问题是,如何进行将有效数字合并在一起进行处理,即给定一个长度为n的向量,以及该向量数据是否符合某个预设规则的有效标志,经过操作后,排除掉不符合规则的向量,并将余下的数据紧密排列为一个新向量。
[0004]
现有技术一,处理该类问题通常使用标量处理器,执行标量指令。现有技术一的缺点为速度慢。
[0005]
现有技术二,是申请号为cn202210109599.7的中国专利申请,该专利中,通过利用若干个由并列的多个处理单元组成的处理层实现数据管理,且各处理单元所依据的有效数据管理逻辑较为简单,每个处理单元都能快速实现元素移位处理,从而提高了有效数据的管理效率。对于上述移位方案,假设对于一个拥有n个数据的向量进行处理,而处理阵列拥有n层,那么每进行一次拒绝采样,其门延迟就是n+m,整个处理阵列的延迟时间较长。


技术实现要素:

[0006]
有鉴于此,本发明提出了一种数据移位方法、系统、计算机设备及可读存储介质,通过超前决策链对移位单元中的数据进行移位,降低了门延迟,提高了数据移位的速度,解决了现有技术中数据移位速度慢,延迟时间长的问题。
[0007]
基于上述目的,本发明实施例的一方面提供了一种数据移位方法,应用于数据移位系统,所述数据移位系统包括多个并行的移位层,每个移位层包括多个移位单元,所述移位层的所述移位单元之间串行连接,并且本移位层的移位单元还连接到下个移位层的下一列移位单元,所述方法包括:配置每个所述移位单元的决策逻辑;所述移位层接收待处理数据,并将所述待处理数据输入到对应的移位单元进行处理,所述对应的移位单元包括本移位层的第一移位单元和下一移位层的第一移位单元;所述移位单元接收本移位层数据和上一移位层数据,并基于对应的决策逻辑对所述本移位层数据和所述上一移位层数据进行选择移位。
[0008]
在一些实施方式中,基于对应的决策逻辑对所述本移位层数据和所述上一移位层
数据进行选择移位包括:基于对应的决策逻辑对所述本移位层数据与所述上一移位层数据进行布尔运算,并基于所述布尔运算结果输出所述本移位层数据或所述上一移位层数据。
[0009]
在一些实施方式中,方法还包括:所述布尔运算结果为所述移位单元输出数据对应的标志位。
[0010]
在一些实施方式中,配置每个所述移位单元的决策逻辑包括:基于所述移位单元所在的本移位层以及所述本移位层接收到的待处理数据对应的标志位配置所述移位单元决策逻辑。
[0011]
在一些实施方式中,基于所述移位单元所在的本移位层以及所述本移位层接收到的待处理数据对应的标志位配置所述移位单元决策逻辑包括:对最下移位层接收到的待处理数据对应的标志位进行布尔运算以配置最下移位层的第一列移位单元的决策逻辑;对除所述最下移位层以外的其他移位层的第一列移位单元所在移位层及其相邻的下一移位层接收到的待处理数据对应的标志位进行布尔运算以配置所述其他移位层的第一列移位单元的决策逻辑;获取所述移位单元在本移位层中的列数,基于所述列数到对应移位层的第一列移位单元获取所述第一移位单元对应的决策逻辑中包含的待处理数据对应的标志位,基于所述列数对所述待处理数据对应的标志位进行组合布尔运算以配置所述移位层中除所述第一列移位单元以外的其他列移位单元的决策逻辑。
[0012]
在一些实施方式中,在配置所述移位层中除所述第一列移位单元以外的其他列移位单元的决策逻辑时,若是基于所述列数未获取到对应的决策逻辑,则所述移位单元的决策逻辑与上一列移位单元的决策逻辑相同。
[0013]
在一些实施方式中,对最下移位层接收到的待处理数据对应的标志位进行布尔运算包括:对所述最下移位层接收到的待处理数据对应的标志位进行非运算。
[0014]
在一些实施方式中,对除所述最下移位层以外的其他移位层的第一列移位单元所在移位层及其相邻的下一移位层接收到的待处理数据对应的标志位进行布尔运算包括:对所述其他移位层的第一列移位单元所在移位层接收到的待处理数据对应的标志位与其相邻的下一移位层接收到的待处理数据对应的标志位进行与非运算。
[0015]
在一些实施方式中,基于所述列数对所述待处理数据对应的标志位进行组合布尔运算包括:基于所述列数对获取到的标志位进行组合,得到多个加数;对所述加数内的标志位进行非运算和与运算,并对所述加数进行或运算。
[0016]
在一些实施方式中,每个所述移位层最后一列的移位单元,在输出最终移位数据的同时还输出布尔运算结果。
[0017]
在一些实施方式中,本移位层的移位单元还连接到下个移位层的下一列移位单元包括:所述本移位层的所述移位单元的输出还连接到所述下个移位层的下一列移位单元的输入。
[0018]
在一些实施方式中,所述移位单元为二选一多路数据选择器。
[0019]
本发明实施例的另一方面,还提供了一种数据移位系统,所述数据移位系统包括配置模块以及多个并行的移位层,每个移位层包括多个移位单元,所述移位层的所述移位单元之间串行连接,并且本移位层的移位单元还连接到下个移位层的下一列移位单元,其中,所述配置模块配置为配置每个所述移位单元的决策逻辑;所述移位层配置为接收待处理数据,并将所述待处理数据输入到对应的移位单元进行处理,所述对应的移位单元包括本移位层的第一移位单元和下一移位层的第一移位单元;所述移位单元配置为接收本移位层数据和上一移位层数据,并基于对应的决策逻辑对所述本移位层数据和所述上一移位层数据进行选择移位。
[0020]
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如下方法的步骤:配置每个所述移位单元的决策逻辑;所述移位层接收待处理数据,并将所述待处理数据输入到对应的移位单元进行处理,所述对应的移位单元包括本移位层的第一移位单元和下一移位层的第一移位单元;所述移位单元接收本移位层数据和上一移位层数据,并基于对应的决策逻辑对所述本移位层数据和所述上一移位层数据进行选择移位。
[0021]
在一些实施方式中,基于对应的决策逻辑对所述本移位层数据和所述上一移位层数据进行选择移位包括:基于对应的决策逻辑对所述本移位层数据与所述上一移位层数据进行布尔运算,并基于所述布尔运算结果输出所述本移位层数据或所述上一移位层数据。
[0022]
在一些实施方式中,方法还包括:所述布尔运算结果为所述移位单元输出数据对应的标志位。
[0023]
在一些实施方式中,配置每个所述移位单元的决策逻辑包括:基于所述移位单元所在的本移位层以及所述本移位层接收到的待处理数据对应的标志位配置所述移位单元决策逻辑。
[0024]
在一些实施方式中,基于所述移位单元所在的本移位层以及所述本移位层接收到的待处理数据对应的标志位配置所述移位单元决策逻辑包括:对最下移位层接收到的待处理数据对应的标志位进行布尔运算以配置最下移位层的第一列移位单元的决策逻辑;对除所述最下移位层以外的其他移位层的第一列移位单元所在移位层及其相邻的下一移位层接收到的待处理数据对应的标志位进行布尔运算以配置所述其他移位层的第一列移位单元的决策逻辑;获取所述移位单元在本移位层中的列数,基于所述列数到对应移位层的第一列移位单元获取所述第一移位单元对应的决策逻辑中包含的待处理数据对应的标志位,基于所述列数对所述待处理数据对应的标志位进行组合布尔运算以配置所述移位层中除所述第一列移位单元以外的其他列移位单元的决策逻辑。
[0025]
在一些实施方式中,在配置所述移位层中除所述第一列移位单元以外的其他列移位单元的决策逻辑时,若是基于所述列数未获取到对应的决策逻辑,则所述移位单元的决
策逻辑与上一列移位单元的决策逻辑相同。
[0026]
在一些实施方式中,对最下移位层接收到的待处理数据对应的标志位进行布尔运算包括:对所述最下移位层接收到的待处理数据对应的标志位进行非运算。
[0027]
在一些实施方式中,对除所述最下移位层以外的其他移位层的第一列移位单元所在移位层及其相邻的下一移位层接收到的待处理数据对应的标志位进行布尔运算包括:对所述其他移位层的第一列移位单元所在移位层接收到的待处理数据对应的标志位与其相邻的下一移位层接收到的待处理数据对应的标志位进行与非运算。
[0028]
在一些实施方式中,基于所述列数对所述待处理数据对应的标志位进行组合布尔运算包括:基于所述列数对获取到的标志位进行组合,得到多个加数;对所述加数内的标志位进行非运算和与运算,并对所述加数进行或运算。
[0029]
在一些实施方式中,每个所述移位层最后一列的移位单元,在输出最终移位数据的同时还输出布尔运算结果。
[0030]
在一些实施方式中,本移位层的移位单元还连接到下个移位层的下一列移位单元包括:所述本移位层的所述移位单元的输出还连接到所述下个移位层的下一列移位单元的输入。
[0031]
在一些实施方式中,所述移位单元为二选一多路数据选择器。
[0032]
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0033]
本发明至少具有以下有益技术效果:通过配置每个移位单元的决策逻辑;移位层接收待处理数据,并将待处理数据输入到对应的移位单元进行处理,对应的移位单元包括本移位层的第一移位单元和下一移位层的第一移位单元;移位单元接收本移位层数据和上一移位层数据,并基于对应的决策逻辑对本移位层数据和上一移位层数据进行选择移位,大大地降低了门延迟,提高了数据移位的速度。
附图说明
[0034]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0035]
图1为本发明提供的数据移位系统的一实施例的示意图;图2为本发明提供的数据移位方法的一实施例的框图;图3为本发明提供的基于决策逻辑对待处理数据进行移位的一实施例的示意图;图4为本发明提供的数据移位系统的又一实施例的示意图;图5为本发明提供的计算机设备的一实施例的结构示意图;图6为本发明提供的计算机可读存储介质的一实施例的结构示意图。
+b’+c’+d’,
“’”
符号表示对该bit取反。即对于第一行的移动决策来说,第一行四个单元需要移位决策,这四个单元的移位决策结果是一样的,都是(abcd)’,即t[3]’+t[2]’+t[1]’+t[0]。
[0044]
对于第二行的移位单元,第一列移位单元的决策逻辑与其他三列不同。u03(表示本行第一列)使用公式b’+c’+d’进行决策,u13~u33使用公式a’b’+a’c’+a’d’+b’c’+b’d’+c’d’进行决策。
[0045]
对于第三行的移位单元,第一列移位单元、第二列的决策逻辑、与其他两列的决策逻辑有所不同。u02(表示本行第一列)使用公式(cd)’,即c’+d’进行决策,u12使用公式b’c’+b’d’+c’d’进行决策,u22~u32使用公式a’b
’ꢀ
c’+a’b’d’+a’c’d’+b’c’d’进行决策。
[0046]
对于第四行的移位单元,每一列的决策逻辑均不同。u01(表示本行第一列)使用公式d’进行决策,u11使用公式c’d’进行决策,u21使用公式b’c’d’进行决策,u31使用公式a’b’c’d’进行决策。
[0047]
通过上述方案可以看出,无论整个移位阵列的大小如何,在获得标志位向量之后,至多两个逻辑门延迟内,就可以获得整个阵列所有移位单元的移位决策。
[0048]
基于本发明实施例的超前决策链,根据数据对应的标志位,将每一层的所有单元的决策直接做出,其逻辑门延迟为2,因此整个移位阵列的逻辑门延迟可以降低至m+2,大大地降低了门延迟,提高了数据移位的速度。
[0049]
在一些实施方式中,基于对应的决策逻辑对所述本移位层数据和所述上一移位层数据进行选择移位包括:基于对应的决策逻辑对所述本移位层数据与所述上一移位层数据进行布尔运算,并基于所述布尔运算结果输出所述本移位层数据或所述上一移位层数据。
[0050]
在一具体实施例中,基于对应的决策逻辑对每一个移位单元进行移位,大大地降低了门延迟,提高了数据移位的速度。
[0051]
在一些实施方式中,方法还包括:所述布尔运算结果为所述移位单元输出数据对应的标志位。
[0052]
在一些实施方式中,配置每个所述移位单元的决策逻辑包括:基于所述移位单元所在的本移位层以及所述本移位层接收到的待处理数据对应的标志位配置所述移位单元决策逻辑。
[0053]
在一具体实施例中,通过配置每个移位单元的决策逻辑,基于对应的决策逻辑对每一个移位单元进行移位,大大地降低了门延迟,提高了数据移位的速度。
[0054]
在一些实施方式中,基于所述移位单元所在的本移位层以及所述本移位层接收到的待处理数据对应的标志位配置所述移位单元决策逻辑包括:对最下移位层接收到的待处理数据对应的标志位进行布尔运算以配置最下移位层的第一列移位单元的决策逻辑;对除所述最下移位层以外的其他移位层的第一列移位单元所在移位层及其相邻的下一移位层接收到的待处理数据对应的标志位进行布尔运算以配置所述其他移位层的第一列移位单元的决策逻辑;获取所述移位单元在本移位层中的列数,基于所述列数到对应移位层的第一列移位单元获取所述第一移位单元对应的决策逻辑中包含的待处理数据对应的标志位,基于所
述列数对所述待处理数据对应的标志位进行组合布尔运算以配置所述移位层中除所述第一列移位单元以外的其他列移位单元的决策逻辑。
[0055]
在一些实施方式中,在配置所述移位层中除所述第一列移位单元以外的其他列移位单元的决策逻辑时,若是基于所述列数未获取到对应的决策逻辑,则所述移位单元的决策逻辑与上一列移位单元的决策逻辑相同。
[0056]
在一些实施方式中,对最下移位层接收到的待处理数据对应的标志位进行布尔运算包括:对所述最下移位层接收到的待处理数据对应的标志位进行非运算。
[0057]
在一些实施方式中,对除所述最下移位层以外的其他移位层的第一列移位单元所在移位层及其相邻的下一移位层接收到的待处理数据对应的标志位进行布尔运算包括:对所述其他移位层的第一列移位单元所在移位层接收到的待处理数据对应的标志位与其相邻的下一移位层接收到的待处理数据对应的标志位进行与非运算。
[0058]
在一些实施方式中,基于所述列数对所述待处理数据对应的标志位进行组合布尔运算包括:基于所述列数对获取到的标志位进行组合,得到多个加数;对所述加数内的标志位进行非运算和与运算,并对所述加数进行或运算。
[0059]
在一些实施方式中,每个所述移位层最后一列的移位单元,在输出最终移位数据的同时还输出布尔运算结果。
[0060]
在一具体实施例中,通过对各个移位单元配置不同的决策逻辑,即,对于最下移位层的第一列移位单元:对最下移位层接收到的待处理数据对应的标志位进行非运算;对于其他移位层的第一列移位单元:对其他移位层的第一列移位单元所在移位层接收到的待处理数据对应的标志位与其相邻的下一移位层接收到的待处理数据对应的标志位进行与非运算;对于每个移位层中除第一列移位单元以外的其他列移位单元:获取移位单元在本移位层中的列数,若是基于列数未获取到对应的决策逻辑,则移位单元的决策逻辑与上一列移位单元的决策逻辑相同,基于列数到对应移位层的第一列移位单元获取第一移位单元对应的决策逻辑中包含的待处理数据对应的标志位,基于列数对获取到的标志位进行组合,得到多个加数;对加数内的标志位进行非运算和与运算,并对加数进行或运算,大大地降低了门延迟,提高了数据移位的速度。
[0061]
在一些实施方式中,本移位层的移位单元还连接到下个移位层的下一列移位单元包括:所述本移位层的所述移位单元的输出还连接到所述下个移位层的下一列移位单元的输入。
[0062]
在一些实施方式中,所述移位单元为二选一多路数据选择器。
[0063]
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种数据移位系统20,所述数据移位系统20包括配置模块21以及多个并行的移位层22,每个移位层22包括多个移位单元23,所述移位层22的所述移位单元23之间串行连接,并且本移位层的移位单元还连接到下个移位层的下一列移位单元,其中,所述配置模块21配置为配置每个所述移位单元23的决策逻辑;所述移位层22配置为接收待处理数据,并将所述待处理数据输入到对应的移位单元23进行处理,所述对应的移位单元包括本移位层的第一移位单元和下一移位层的第一移
位单元;所述移位单元23配置为接收本移位层数据和上一移位层数据,并基于对应的决策逻辑对所述本移位层数据和所述上一移位层数据进行选择移位。
[0064]
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备30,在该计算机设备30中包括处理器310以及存储器320,存储器320存储有可在处理器上运行的计算机程序321,处理器310执行程序时执行如上的方法的步骤。
[0065]
其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的所述数据移位方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行系统的各种功能应用以及数据处理,即实现上述方法实施例的数据移位方法。
[0066]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据系统的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0067]
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
[0068]
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。
[0069]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0070]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模
块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0071]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0072]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0073]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1