CN115658145A - 数据循环移位方法和电路、以及芯片 - Google Patents
数据循环移位方法和电路、以及芯片 Download PDFInfo
- Publication number
- CN115658145A CN115658145A CN202211592518.XA CN202211592518A CN115658145A CN 115658145 A CN115658145 A CN 115658145A CN 202211592518 A CN202211592518 A CN 202211592518A CN 115658145 A CN115658145 A CN 115658145A
- Authority
- CN
- China
- Prior art keywords
- data
- row
- shift
- column
- shifted
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开提供了一种数据循环移位方法,其包括:根据待移位数据中各单元数据的排序和数据传输的并行度,将待移位数据分成n个数据序列,使各数据序列均包括m个单元数据,得到m×n的数据阵列,m为大于1的整数,n为大于0的整数;基于待移位数据的移位值,确定数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值;基于列移位值和行移位值,对n个数据序列进行移位操作,生成n个移位后数据序列;基于n个移位后数据序列,生成移位后数据。本公开还涉及一种数据循环移位电路,以及包括该电路的芯片。根据本公开的方案能够降低移位操作所需功耗以及数据的翻转率,并且还能够减少后续计算处理所需的并行度及资源耗费。
Description
技术领域
本公开涉及集成电路技术领域,具体地,涉及一种数据循环移位方法和电路,以及还涉及一种包括该电路的芯片。
背景技术
在很多芯片设计中常常会对大位宽的时分数据进行缓存和循环移位操作。数据循环移位操作是指这样的一种操作,即:将从待移位数据一端移出的数据单元按照先后顺序依次从待移位数据的另一端移入,从而得到移位后数据。数据循环操作是芯片设计中用于对数据进行处理的一种常见操作。目前,相关技术中的方法通常是先缓存待移位数据,在所有数据都收齐的情况下同时按需移位,然后再基于时钟一拍一拍移位输出,从而得到移位后数据。然而,相关技术中的方法中,数据反转率高,功耗较高,并且当移位值为任意值时,按需移位操作需要大量的选择器,导致资源耗费较大,物理可实现性较差。
因此,期望提供一种数据循环移位方法和电路,其能够以较低的资源和功耗实现对待移位数据的任意的数据循环移位。
发明内容
根据本公开的一个方面,提供了一种数据循环移位方法,其包括:根据待移位数据中各个单元数据的排序以及数据传输的并行度,将所述待移位数据分成n个数据序列,使每个数据序列均包括m个单元数据,得到m×n的数据阵列,其中,m为大于1的整数,n为大于0的整数;基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值;基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列;基于所述n个移位后数据序列,生成移位后数据。
根据本公开的一些示例性实施例,所述基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值包括:将所述移位值对所述数据阵列的总行数取余,得到所述行移位值;对于所述数据阵列中行号小于或等于所述行移位值的行,用所述移位值除以所述总行数,将得到的商加1,得到所述列移位值;对于所述数据阵列中行号大于所述行移位值的行,所述列移位值为0。
根据本公开的一些示例性实施例,所述基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列包括:基于所述列移位值,对所述数据阵列中行号小于或等于所述行移位值的行的单元数据进行列移位,生成n个列移位数据序列;基于所述行移位值,对所述列移位数据序列的m行单元数据进行行移位,生成所述n个移位后数据序列。
根据本公开的一些示例性实施例,所述基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值包括:将所述移位值对所述数据阵列的总行数取余,得到所述行移位值;对于所述数据阵列中行号小于或等于所述总行数与所述行移位值之差的行,使所述列移位值为0;对于所述数据阵列中行号大于所述差的行,用所述移位值除以所述总行数,将得到的商加1,得到所述列移位值。
根据本公开的一些示例性实施例,所述基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列包括:基于所述行移位值,对所述数据阵列中的m行单元数据进行行移位,生成n个行移位数据序列;基于所述列移位值,对于所述n个行移位数据序列中行号大于所述总行数与所述行移位值的差的行的单元数据进行列移位,生成所述n个移位后数据序列。
根据本公开的一些示例性实施例,响应于所述待移位数据的最后一个单元数据是所述数据阵列的第n列中第m行的单元数据,所述基于所述移位后数据阵列生成所述移位后数据包括:将所述移位后数据阵列中的单元数据按照第1列至第n列的顺序依次输出并进行拼接,生成所述移位后数据。
根据本公开的一些示例性实施例,响应于所述待移位数据的最后一个单元数据是所述数据阵列的第n列中第k行的单元数据,k为大于0且小于m的整数:所述使每个数据序列均包括m个单元数据包括:将所述数据阵列的第n列中第k+1行至第m行的单元数据赋值为特定值;所述基于所述n个移位后数据序列,生成移位后数据包括:将所述n个移位后数据序列的单元数据按照第1列至第n列的顺序依次输出并进行拼接,生成移位后待调整数据;从所述移位后待调整数据中去除内容为特定值的单元数据,生成所述移位后数据。
根据本公开的一些示例性实施例,所述从所述移位后待调整数据中去除为特定值的单元数据,生成所述移位后数据包括:遍历所述移位后待调整数据,响应于单元数据的值为所述特定值,从所述移位后待调整数据中去除所述单元数据,以生成所述移位后数据。
根据本公开的一些示例性实施例,所述从所述移位后待调整数据中去除为特定值的单元数据,生成所述移位后数据包括:从所述移位后待调整数据中去除倒数第S+1个单元数据至倒数第S+m-k个单元数据,以生成所述移位后数据,其中,S为所述移位值。
根据本公开的第二个方面,提供了一种数据循环移位电路,其包括:控制器、行列移位电路和输出电路。控制器被配置成:根据待移位数据中各个单元数据的排序以及数据传输的并行度,将所述待移位数据分成n个数据序列,使每个数据序列均包括m个单元数据,得到m×n的数据阵列,其中,m为大于1的整数,n为大于0的整数;基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值,并且基于所述行移位值和所述列移位值生成移位控制指令。行列移位电路被配置成:从所述控制器依次接收所述数据阵列的n个数据序列,并且基于接收到的所述移位控制指令,对所述n个数据序列进行移位操作,生成n个移位后数据序列。输出电路被配置成:基于从所述控制器接收的输出控制指令和从所述行列移位电路依次接收所述n个移位后数据序列,生成移位后数据。
根据本公开的一些示例性实施例,所述行列移位电路包括:列移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述控制器依次接收的所述n个数据序列进行列移位操作,生成n个列移位数据序列;行移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述列移位电路依次接收的所述n个列移位数据序列进行行移位操作,生成所述n个移位后数据序列。
根据本公开的一些示例性实施例,所述行列移位电路包括:行移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述控制器依次接收的所述n个数据序列进行行移位操作,生成n个行移位数据序列;列移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述行移位电路依次接收的所述n个行移位数据序列进行列移位操作,生成所述n个移位后数据序列。
根据本公开的一些示例性实施例,所述列移位电路包括:m个列移位输入端,其被配置成:并行地接收待进行列移位操作的数据序列的m个单元数据;m个列移位输出端,其被配置成:并行地输出经过列移位操作的数据序列的m个单元数据;列选通电路,其与n条列选通线电连接,并且被配置成:响应于接收到所述移位控制指令,向对应的列选通线施加有效电压信号;行选通电路,其与m条行选通线电连接,并且被配置成:响应于接收到所述移位控制指令,向对应的行选通线施加有效电压信号;m个列移位子电路,其中,每一个列移位子电路包括n个寄存器和n个选择器,其中:每一个寄存器包括输入端和输出端;每一个选择器包括第一输入端、第二输入端、第三输入端、第一控制端、第二控制端和输出端,并且被配置成:响应于施加到所述第一控制端和所述第二控制端的电压信号的第一种组合,使所述选择器的输出端与所述第一输入端导通,响应于施加到所述第一控制端和所述第二控制端的电压信号的第二种组合,使所述选择器的输出端与所述第二输入端导通,响应于施加到所述第一控制端和所述第二控制端的电压信号的第三种组合,使所述选择器的输出端与所述第三输入端导通,其中,所述第一种组合、第二种组合和第三种组合彼此不同;以及,在第i个列移位子电路中:第j个寄存器的输入端与第j个选择器的输出端电连接,第j个寄存器的输出端与第j个选择器的第一输入端和第j+1个选择器的第二输入端电连接,第1个寄存器的输出端与第1个选择器的第一输入端和第二输入端以及第2个寄存器的第二输入端电连接,第n个寄存器的输出端与第n个选择器的第一输入端和第i个列移位输出端电连接,第j个选择器的第一控制端与第i条行选通线电连接,第j个选择器的第二控制端与第j条列选通线电连接,第j个选择器的第三输入端与第i个列移位输入端电连接,其中,i为整数并且1≤i≤m,j为整数并且1≤j≤n。
根据本公开的一些示例性实施例,所述行移位电路包括:m个行移位输入端,其被配置成:并行地接收待进行行移位操作的数据序列的m个单元数据;m个行移位输出端,其被配置成:并行地输出经过行移位操作的数据序列的m个单元数据;m-1个行移位子电路,其中,每一个行移位子电路与所述m个行移位输出端和所述m个行移位输出端均电连接,并且第i个行移位子电路被配置成:将第1个至第i个行移位输入端按照原先的排序一一对应地与第m-i+1个至第m个行移位输出端电连接,并且使第i+1个至第m个行移位输入端按照原先的排序一一对应地与第1个至第m-i个行移位输出端电连接,i为整数并且1≤i≤m-1;其中,所述行移位电路被配置成:响应于接收到的所述移位控制指令,使对应于所述行移位值的行移位子电路被启用,并且其他行移位子电路被禁用。
根据本公开的第三个方面,提供了一种芯片,其中,所述芯片包括根据本公开的第二个方面及其各示例性实施例所述的数据循环移位电路。
根据本公开的数据循环移位方法以及数据循环移位电路能够节省资源以及极大地降低数据的反转率,能够降低移位操作所需功耗,还可以降低后续计算处理所需的并行度。
附图说明
下面将结合附图对本公开的具体实施例进行详细的描述,以便能够对本公开的更多细节、特征和优点具有更加充分的认识和理解;在附图中:
图1示意性地示出了数据循环移位的原理;
图2示意性地示出了相关技术中的一种数据循环移位电路的结构;
图3以流程图的形式,示意性地示出了根据本公开的一些示例性实施例的数据循环移位方法;
图4根据本公开的一些示例性实施例,示意性地示出了图3所示的数据循环移位方法的操作过程;
图5根据本公开的另一些示例性实施例,示意性地示出了图3所示的数据循环移位方法的操作过程;
图6以框图的形式示意性地示出了根据本公开的一些示例性实施例的数据循环移位电路的结构;
图7根据本公开的一些示例性实施例,示意性地示出了图6所示的数据循环移位电路中的行列移位电路的细节;
图8根据本公开的另一些示例性实施例,示意性地示出了图6所示的数据循环移位电路中的行列移位电路的细节;
图9根据本公开的一些示例性实施例,示意性地示出了行列移位电路中的列移位电路的结构;
图10根据本公开的一些示例性实施例,示意性地示出了行列移位电路中的行移位电路的结构;以及
图11以框图的形式示意性地示出了根据本公开一些示例性实施例的芯片的结构。
应理解的是,附图中显示的内容都仅仅是示意性的,因此,其不必按照比例进行绘制。此外,在全部附图中,相同、相似或者同类型的特征由相同或相似的附图标记指示。
具体实施方式
下文中的描述提供了本公开的各示例性实施例的具体细节,由此,使本领域的技术人员能够充分理解以及实施根据本公开的各示例性实施例描述的技术方案。
参见图1,其示意性地示出了数据循环移位的原理。数据循环移位是指这样的一种操作,即:将从待移位数据一端移出的单元数据按照先后顺序再依次从待移位数据的另一端移入,从而得到移位后数据。如图1所示,待移位数据101的总长度为42,也就是说其包括42个单元数据(在图1中,各个单元数据以附图标记1至42分别标记)。假设数据传输的并行度(即,数据传输过程中能够以并行方式同时传输的单元数据的数量)为7,那么待移位数据101需要6个时钟拍(或者时钟脉冲)进行传输,因此,待移位数据101可以被构造成一个7×6的数据阵列。假设对待移位数据101进行数据循环移位操作的移位值为5,那么第1至第5个单元数据需要被移位到第38至第42个单元数据原来的位置,并且第6至第42个单元数据被相应地移位到第1至第37个单元数据原来的位置,由此,得到移位后数据102。由于数据传输的并行度为7,因此,移位后数据102同样被构造成一个7×6的数据阵列。移位后数据102的各数据序列可以按照时钟被一拍一拍地读出并依次进行拼接,从而得到总长度为42的一维的移位后数据102。应理解的是,在本公开中,术语“移位值”是指待移位数据中需要进行数据循环移位操作的单元数据的数量,假设移位值为正整数N,那么其意指需要将待移位数据中第1至第N个单元数据移位并且拼接至待移位数据原先的最后一个单元数据后面,即,使原第1个单元数据直接排序在原最后一个单元数据的后面。还应理解的是,图1中待移位数据101的总长度为42仅仅是示例性的,在实际应用中,待移位数据的总长度可以高达几百甚至几千。
参见图2,其示意性地示出了相关技术中的一种数据循环移位电路的结构,该数据循环移位电路可以用于对图1中的待移位数据101实现数据循环移位操作。如图2所示,数据循环移位电路110包括:6个选择器M1至M6、6个寄存器Q1至Q6、以及按需移位模块111。在数据循环移位电路110中,第i个选择器M(i)的输出端与第i个寄存器Q(i)的输入端电连接,并且第i个寄存器Q(i)的输出端与第i+1个选择器M(i+1)的第一输入端电连接,i为整数且1≤i≤5;第1个选择器M1的第一输入端与并行数据输入端Shift-in[1:7]电连接,第6个寄存器Q6的输出端与并行数据输出端Shift-out[1:7]电连接,每一个选择器的第一输入端和第二输入端均与按需移位模块111电连接。结合参照图1和图2,对于图1中的待移位数据101,假设移位值依然是5,那么在一个时钟拍中,数据循环移位电路110从并行数据输入端Shift-in[1:7]读取待移位数据101的7×6的数据阵列中的一个数据序列并将其存储到寄存器中。因此,在前5个时钟拍中,数据循环移位电路110依次读取待移位数据101中的数据序列1-7、8-14、9-21、22-28、29-35,并以移位的方式将它们依次分别写入到寄存器Q5至Q1中。在第6个时钟拍,按需移位模块111读取从并行数据输入端Shift-in[1:7]输入的数据序列36-42以及同时读取存在寄存器Q5至Q1中的数据序列1-7、8-14、9-21、22-28、29-35,对所读取的数据序列所包括单元数据进行移位以得到移位后的数据序列6-12、13-19、20-26、27-33、34-40、41-42/1-5,然后将移位后的数据序列分别对应地存入到寄存器Q6至Q1中。然后,在第7至第12个时钟拍中,通过并行数据输出端Shift-out[1:7]依次输出各数据序列,以生成移位后数据102。
然而,图2所示的数据循环移位电路110中数据反转率高,功耗较大。此外,按需移位模块111需要针对特定的移位值进行设计,因此如果需要使按需移位模块111针对待移位数据的任意移位值实现数据循环移位,那么按需移位模块111需要大量的选择器,导致资源耗费很大,并且其物理可实现性较差。
参见图3,其以流程图的形式,示意性地示出了根据本公开的一些示例性实施例的数据循环移位方法。如图3所示,数据循环移位方法200包括步骤210、220、230和240:
在步骤210,根据待移位数据中各个单元数据的排序以及数据传输的并行度,将所述待移位数据分成n个数据序列,使每个数据序列均包括m个单元数据,得到m×n的数据阵列,其中,m为大于1的整数,n为大于0的整数;
在步骤220,基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值;
在步骤230,基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列;以及
在步骤240,基于所述n个移位后数据序列,生成移位后数据。
应理解的是,步骤210中得到的数据阵列是按照待移位数据中各个单元数据的排序以及数据传输的并行度,将一维的待移位数据进行划分成多个数据序列而得到的。以图1所示的待移位数据101为例,其总长度为42,在数据传输的并行度为7的情况下,待移位数据101被划分成6个数据序列1-7、8-14、9-21、22-28、29-35、36-42,从而构成一个7×6的数据阵列。因此,数据阵列中所有数据序列按照列的顺序依次拼接,就能得到待移位数据。其中,m为并行度。
在本公开的一些示例性实施例中,待移位数据的总长度可能无法被数据传输的并行度整除,也就是说,数据阵列中最后一个数据序列包括的单元数据的数量小于数据传输的并行度,那么这种情形下,可以对该最后一个数据序列进行单元数据的补齐操作。例如,可以将数据阵列的最后一个数据序列中不属于待移位数据的单元数据赋值为特定值(例如,表示特定符号的值),从而使数据阵列保持完整,以便随后进行列移位操作和行移位操作。应理解的是,特定值可以是任何合适的值,只要使内容为特定值的单元数据能够与待移位数据中的其他单元数据区别开便可,本公开对于上述特定值的具体类型不作任何限制。因此,作为非限制性示例,在由待移位数据生成m×n的数据阵列的情形中,响应于待移位数据的最后一个单元数据是所述数据阵列的第n列中第k行的单元数据,k为大于0且小于m的整数,步骤210中的使每个数据序列均包括m个单元数据包括:将所述数据阵列的第n列中第k+1行至第m行的单元数据赋值为特定值。由此,可以得到m×n的数据阵列。
在本公开的一些示例性实施例中,步骤220可以采用以下方式来确定数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值,即,可以包括下述步骤:
将所述移位值对所述数据阵列的总行数取余,得到所述行移位值;
对于所述数据阵列中行号小于或等于所述行移位值的行,用所述移位值除以所述总行数,将得到的商加1,得到所述列移位值;
对于所述数据阵列中行号大于所述行移位值的行,所述列移位值为0。
对应地,基于上述示例性实施例中确定的行移位值和列移位值,步骤230可以包括下述步骤:
基于所述列移位值,对所述数据阵列中行号小于或等于所述行移位值的行的单元数据进行列移位,生成n个列移位数据序列;
基于所述行移位值,对所述列移位数据序列的m行单元数据进行行移位,生成所述n个移位后数据序列。
因此,在该示例性实施例中,对于数据阵列中的每一列数据序列,只对其中行号小于或等于行移位值的行的单元数据进行列移位,对于行号大于行移位值的行的单元数据,因为列移位值为0,所以不进行列移位;在完成列移位操作后,基于行移位值对各个列移位数据序列的单元数据进行行移位,从而得到移位后数据序列。
参见图4,其根据本公开的一些示例性实施例,示意性地示出了图3所示的数据循环移位方法中先进行列移位再进行行移位的操作过程。需要说明的是,图4中采用了图1中示出的待移位数据101和移位后数据102来进行图示,并且待移位数据101和移位后数据102均被图示为对应的数据阵列。如图4所示,待移位数据101构成了7×6的数据阵列,假设其移位值为5,则可以得到对应的行移位值为5,并且对于各数据序列,第1至5行的单元数据的列移位值为1,第6和7行的单元数据的列移位值为0。因为行移位值为5并且列移位值为1,所以只需要对待移位数据101中第1个数据序列1-7中排序为第1至5个单元数据进行列移位,即,将其移位到第6个数据序列36-42中排序为第1至5个单元数据的位置,并且第2至第6个数据序列中相应的单元数据依次向第1个数据序列的方向移位,由此得到6个列移位数据序列,这些列移位数据序列构成列移位数据阵列101a。列移位数据阵列101a同样是7×6的数据阵列。然后,因为行移位值为5,所以在列移位数据阵列101a的各个列移位数据序列中将第1至第5行的单元数据移位到第3至7行,将第6至7行的单元数据移位到第1至2行,由此得到包括6个移位后数据序列的移位后数据102。因此,在移位后数据102中,第3至7行的单元数据是先经过上述列移位操作再经过上述行移位操作后得到的结果,并且第1至2行的单元数据是经过上述行移位操作后得到的结果。
继续参见图3,在本公开的另一些示例性实施例中,步骤220可以采用以下方式来确定数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值,即,可以包括下述步骤:
将所述移位值对所述数据阵列的总行数取余,得到所述行移位值;
对于所述数据阵列中行号小于或等于所述总行数与所述行移位值之差的行,使所述列移位值为0;
对于所述数据阵列中行号大于所述差的行,用所述移位值除以所述总行数,将得到的商加1,得到所述列移位值。
对应地,基于上述另一些示例性实施例中确定的行移位值和列移位值,步骤230可以包括下述步骤:
基于所述行移位值,对所述数据阵列中的m行单元数据进行行移位,生成n个行移位数据序列;
基于所述列移位值,对于所述n个行移位数据序列中行号大于所述总行数与所述行移位值的差的行的单元数据进行列移位,生成所述n个移位后数据序列。
因此,在该示例性实施例中,对于待移位数据的数据阵列,先进行行移位以得到n个行移位数据序列,然后在由n个行移位数据序列构成行移位数据阵列中,对于行号大于总行数与行移位值之差的行进行列移位,从而得到移位后数据序列。
参见图5,其根据本公开的另一些示例性实施例,示意性地示出了图3所示的数据循环移位方法中先进行行移位再进行列移位的原理。需要说明的是,图5中采用了图1中示出的待移位数据101和移位后数据102来进行图示,并且待移位数据101和移位后数据102均被图示为对应的数据阵列。如图5所示,待移位数据101构成了7×6的数据阵列,假设其移位值为5,则可以得到对应的行移位值为5。因为行移位值为5,所以在待移位数据101中将第1至第5行的单元数据移位到第3至7行,将第6至7行的单元数据移位到第1至2行,由此得到包括6个行移位数据序列的行移位数据阵列101b。因此,行移位数据阵列101b同样是7×6的数据阵列。因为行移位值为5并且总行数为7,两者之差为2,所以在行移位数据阵列101b中,对于行号小于或等于2的行,即第1行和第2行,令它们的单元数据的列移位值为0,对于行号大于2的行,即第3至7行,令它们的单元数据的列移位值为1。所以在该示例性实施例中,只需要对行移位数据阵列101b中第1个数据序列1-7中排序为第3至7个单元数据进行列移位,即,将其移位到第6个数据序列36-42中排序为第3至7的单元数据的位置,并且第2至第6个数据序列中相应的单元数据依次向第1个数据序列的方向移位,由此得到包括6个移位后数据序列的移位后数据102。因此,在移位后数据102中,第1至2行的单元数据是经过上述行移位后得到的结果,并且第3至7行的单元数据是先经过上述行移位再经过上述列移位后得到的结果。
继续参见图1,步骤240中基于所述n个移位后数据序列,生成移位后数据,也就是说,可以对移位后数据阵列中的单元数据按照第1列至第n列的顺序依次输出并进行拼接,从而生成移位后数据。如前面已经详细描述的,在步骤210中,可能存在需要对数据阵列的最后一个序列进行单元数据的补齐操作的情形,因此对应地,在步骤240中可以包括从拼接的数据中去除内容为特定值的单元数据的步骤。如上文中详细描述的,对于由待移位数据生成m×n的数据阵列的情形中,响应于待移位数据的最后一个单元数据是所述数据阵列的第n列中第k行的单元数据,k为大于0且小于m的整数,可以将所述数据阵列的第n列中第k+1行至第m行的单元数据赋值为特定值。对于该情形,根据本公开的一些示例性实施例,步骤240可以包括:将所述n个移位后数据序列的单元数据按照第1列至第n列的顺序依次输出并进行拼接,生成移位后待调整数据;以及,从所述移位后待调整数据中去除内容为特定值的单元数据,生成所述移位后数据。在一些示例性实施例中,可以根据用于补齐的单元数据的内容(即,内容为特定值)来进行操作,即:遍历所述移位后待调整数据,响应于单元数据的值为所述特定值,从所述移位后待调整数据中去除所述单元数据,以生成所述移位后数据。根据本公开的另一些示例性实施例,还可以从移位后待调整数据中去除特定排序位置处的单元数据,从而从拼接的数据中剔除补齐操作中添加的单元数据,得到移位后数据。具体而言,假设移位值为S,那么可以从所述移位后待调整数据中去除倒数第S+1个单元数据至倒数第S+m-k个单元数据,以生成所述移位后数据。
根据本公开的数据循环移位方法能够极大地降低移位操作所需功耗以及极大地降低数据的翻转率,并且还可以降低后续计算处理所需的并行度及减少资源耗费。
参见图6,其以框图的形式示意性地示出了根据本公开一些示例性实施例的数据循环移位电路的结构。如图6所示,数据循环移位电路300包括控制器310、行列移位电路320和输出电路330。控制器310接收待移位数据,并且被配置成:根据待移位数据中各个单元数据的排序以及数据传输的并行度,将所述待移位数据分成n个数据序列,使每个数据序列均包括m个单元数据,得到m×n的数据阵列,其中,m为大于1的整数,n为大于0的整数;以及,基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值,并且基于所述行移位值和所述列移位值生成移位控制指令。应理解的是,m×n的数据阵列的行数m等于数据传输的并行度,其列数n等于待移位数据的总长度除以数据传输的并行度而得到的商(正好被整除的情形),或者等于所述商加1(存在余数的情形)。以图1所示的待移位数据101为例,其总长度为42,在数据传输的并行度为7的情况下,待移位数据101被划分成6个数据序列1-7、8-14、9-21、22-28、29-35、36-42,从而构成一个7×6的数据阵列。应理解的是,当待移位数据的总长度无法被数据传输的并行度整除时,可以对该最后一个序列进行单元数据的补齐操作,例如,可以将数据阵列的最后一个序列中不属于待移位数据的单元数据赋值为特定值(例如,表示特定符号的值),从而使数据阵列保持完整,以便进行列移位操作和行移位操作。
控制器310可以针对行列移位电路320的不同结构(例如,先进行列移位操作还是先进行行移位操作)来相应地确定行移位值和列移位值,以及确定移位控制指令,例如可以采用前面关于数据循环移位方法200中的步骤220及其各示例性实施例描述的方式。应理解的是,控制器310可以是单独的部件,也可以是另外的控制电路的一部分,本公开对此不作任何限制。
行列移位电路320被配置成:从控制器310依次接收m×n的数据阵列的n个数据序列,并且基于接收到的所述移位控制指令,对所述n个数据序列进行移位操作,生成n个移位后数据序列。行列移位电路320可以先对n个数据序列进行列移位操作,然后再进行行移位操作,或者可以先对n个数据序列进行行移位操作,然后在进行列移位操作,这将在下文中进行详细描述。
输出电路330被配置成:基于从所述控制器接收的输出控制指令和从所述行列移位电路依次接收所述n个移位后数据序列,生成移位后数据。具体而言,在输出控制指令指示m×n的数据阵列中不存在补齐单元数据的情形时,输出电路330可以根据接收n个移位后数据序列的先后顺序,对各移位后数据序列进行拼接,以生成所述移位后数据;以及,在输出控制指令指示m×n的数据阵列中存在补齐单元数据的情形时,输出电路330可以在对各移位后数据序列进行拼接后,从各移位后数据序列中去除补齐操作中添加的单元数据,以生成所述移位后数据。应理解的是,输出电路330可以基于所添加的特定值,从各移位后数据序列中去除补齐操作中添加的单元数据,或者可以去除各移位后数据序列中特定位置处的单元数据,以便去除补齐操作中添加的单元数据。
参见图7和图8,其根据本公开的一些示例性实施例,分别示意性地示出了图6所示的数据循环移位电路中的行列移位电路的细节。如图7所示,行列移位电路320a包括列移位电路321和行移位电路322。列移位电路321被配置成:基于接收到的所述移位控制指令,对从所述控制器320依次接收的所述n个数据序列进行列移位操作,生成n个列移位数据序列。行移位电路322被配置成:基于接收到的所述移位控制指令,对从所述列移位电路321依次接收的所述n个列移位数据序列进行行移位操作,生成所述n个移位后数据序列。因此,图7所示的行列移位电路320a先对数据序列进行列移位操作,然后再进行行移位操作(例如,以图4所示的方式),以生成移位后数据序列。如图8所示,行列移位电路320b同样包括列移位电路321和行移位电路322。其中,行移位电路322被配置成:基于接收到的所述移位控制指令,对从所述控制器310依次接收的所述n个数据序列进行行移位操作,生成n个行移位数据序列。列移位电路321被配置成:基于接收到的所述移位控制指令,对从行移位电路322依次接收的所述n个行移位数据序列进行列移位操作,生成所述n个移位后数据序列。因此,图8所示行列移位电路320b先对数据序列进行行列移位操作,然后再进行列移位操作(例如,以图5所示的方式),以生成移位后数据序列。
参见图9,其根据本公开的一些示例性实施例,示意性地示出了行列移位电路中的列移位电路的结构。如图9所示,行列移位电路321包括:m个列移位输入端S-IN1至S-INm、m个列移位输出端S-OUT1至S-OUTm、行选通电路321-1、列选通电路321-2、以及m个列移位子电路321-3-1至321-3-m。m个列移位输入端S-IN1至S-INm被配置成:并行地接收待进行列移位操作的数据序列的m个单元数据。m个列移位输出端S-OUT1至S-OUTm被配置成:并行地输出经过列移位操作的数据序列的m个单元数据。行选通电路321-1与m条行选通线d1至d(m)电连接,并且被配置成:响应于接收到所述移位控制指令,向对应的行选通线施加有效电压信号。列选通电路321-2与n-1条列选通线c1至c(n-1)电连接,并且被配置成:响应于接收到所述移位控制指令,向对应的列选通线施加有效电压信号。m个列移位子电路中的每一个列移位子电路均包括n个寄存器和n个选择器。每一个寄存器包括输入端和输出端。每一个选择器包括第一输入端、第二输入端、第三输入端、第一控制端、第二控制端和输出端,并且被配置成:且被配置成:响应于施加到所述第一控制端和所述第二控制端的电压信号的第一种组合,使所述选择器的输出端与所述第一输入端导通,响应于施加到所述第一控制端和所述第二控制端的电压信号的第二种组合,使所述选择器的输出端与所述第二输入端导通,响应于施加到所述第一控制端和所述第二控制端的电压信号的第三种组合,使所述选择器的输出端与所述第三输入端导通,其中,所述第一种组合、第二种组合和第三种组合彼此不同。在第i个列移位子电路中(i为整数并且1≤i≤m):第j个寄存器Q(i, j)的输入端与第j个选择器M(i, j)的输出端电连接,第j个寄存器Q(i, j)的输出端与第j个选择器M(i,j)的第一输入端和第j+1个选择器M(i, j+1)的第二输入端电连接,第1个寄存器Q(i, 1)的输出端与第1个选择器M(i, 1)的第一输入端和第二输入端以及第2个寄存器Q(i, 2)的第二输入端电连接,第n个寄存器Q(i, n)的输出端与第n个选择器M(i, n)的第一输入端和第i个列移位输出端S-OUTi电连接,第j个选择器M(i, j)的第一控制端与第i条行选通线d(i)电连接,第j个选择器M(i, j)的第二控制端与第j条列选通线c(j)电连接,第j个选择器M(i, j)的第三输入端与第i个列移位输入端S-INi电连接,其中,j为整数并且1≤j≤n。
应理解的是,在本公开中,术语“有效电压信号”和“无效电压信号”根据需要可以具有不同的含义。例如,在一些示例性实施例中,有效电压信号可以是指高电压信号或者逻辑含义为“1”的电压信号,对应地,无效电压信号可以是指低电压信号或者逻辑含义为“0”的电压信号;然而,在另一些示例性实施例中,有效电压信号可以是指低电压信号或者逻辑含义为“0”的电压信号,对应地,无效电压信号是指高电压信号或者逻辑含义为“1”的电压信号。本公开不对术语“有效电压信号”和“无效电压信号”施加任何限制,只要它们能够协作以实现相应的功能便可。还应理解的是,施加到选择器的第一控制端和第二控制端的电压信号的组合可以是任意的,只要三种不同的组合能够对应于三个输入端与一个输出端之间的导通关系便可。作为非限制性示例,选择器可以被配置成:响应于施加到第一控制端和第二控制端的电压信号的低电压信号,使选择器的输出端与第一输入端导通,响应于施加到第一控制端的高电压信号和施加到第二控制端的低电压信号,使选择器的输出端与第二输入端导通,响应于施加到第一控制端和第二控制端的高电压信号,使选择器的输出端与第三输入端导通。然而,应理解的是,对选择器的其他配置也是可能的。
以图1所示的待移位数据101为例,其总长度为42,在数据传输的并行度为7的情况下,待移位数据101被划分成6个数据序列1-7、8-14、9-21、22-28、29-35、36-42,从而构成一个7×6的数据阵列。因此,对应的列移位电路321可以包括:7个列移位输入端S-IN1至S-IN7、7个列移位输出端S-OUT1至S-OUT7、行选通电路321-1、列选通电路321-2、以及7个列移位子电路321-3-1至321-3-7,每一个列移位子电路包括6个寄存器和6个选择器。结合参见图4和图9,当列移位电路321通过列移位输入端S-IN1至S-IN7接收到数据序列1-7时,行选通电路321-1基于接收到的移位控制指令向行选通线d1至d5施加有效电压信号,并且列选通电路321-2基于接收到的移位控制指令向列选通线c6施加有效电压信号,由此,将数据序列1-7中的单元数据1至单元数据5分别写入到寄存器Q(1, 6)至Q(5, 6)中,然后,行选通电路321-1向行选通线d6至d7施加有效电压信号,并且列选通电路321-2向列选通线c1施加有效电压信号,由此,将数据序列1-7中的单元数据6和单元数据7分别写入到寄存器Q(6, 1)至Q(7, 1)中。类似地,在列移位电路321通过列移位输入端S-IN1至S-IN7依次接收到数据序列8-14、9-21、22-28、29-35、36-42时,基于接收到的移位控制指令,通过行选通电路321-1向对应的行选通线施加有效电压信号,并且通过列选通电路321-2向对应的列选通线施加有效电压信号,从而能够实现对各数据序列的列移位操作,并且将经过列移位的各数据序列的单元数据写入到对应的寄存器中。在完成对所有数据序列的列移位操作后,列选通电路321-2对所有列选通线施加无效电压信号,行选通电路321-1对所有行选通线施加有效电压信号,由此,能够按照寄存器的列顺序(即,从第6列寄存器开始,到第1列寄存器结束),将经过列移位的各数据序列依次输出。
参见图10,其根据本公开的一些示例性实施例,示意性地示出了行移位电路的结构。如图10所示,行移位电路322包括:m个行移位输入端SS-IN1至SS-INm、m个行移位输出端SS-OUT1至SS-OUTm、以及m-1个行移位子电路322-1至322-(m-1)。m个行移位输入端SS-IN1至SS-INm被配置成:并行地接收待进行行移位操作的数据序列的m个单元数据。m个行移位输出端SS-OUT1至SS-OUTm被配置成:并行地输出经过行移位操作的数据序列的m个单元数据。m-1个行移位子电路322-1至322-(m-1)中的每一个行移位子电路与m个行移位输出端SS-IN1至SS-INm和所述m个行移位输出端SS-OUT1至SS-OUTm均电连接,并且第i个行移位子电路被配置成:将第1个至第i个行移位输入端SS-IN1至SS-INi按照原先的排序一一对应地与第m-i+1个至第m个行移位输出端SS-OUT(m-i+1)至SS-OUTm电连接,并且使第i+1个至第m个行移位输入端SS-IN(i+1)至SS-INm按照原先的排序一一对应地与第1个至第m-i个行移位输出端SS-OUT1至SS-OUT(m-i)电连接,其中,i为整数并且1≤i≤m-1。由此,行移位电路322被配置成:响应于接收到的所述移位控制指令,使对应于所述行移位值的行移位子电路被启用,并且其他行移位子电路被禁用。也就是说,对于m×n的数据阵列而言,进行行移位的可能类型只有m-1种,并且m-1种行移位与行移位值一一对应。因此,行移位电路322针对各种可能的行移位构建对应的行移位子电路,并且基于行移位值来启用对应的行移位子电路,实现对数据阵列的行移位。当然,应理解的是,在一些示例性实施例中,如果只需要进行特定的行移位操作(即,行移位值是特定值),那么图10所示的行移位电路中可以包括与特定行移位值对应的行移位子电路,而无需包括全部可能的行移位子电路。
根据本公开的各示例性实施例的数据循环移位电路能够极大地节省资源以及极大地降低数据的反转率,能够降低移位操作所需功耗,并且还能够降低后续计算处理所需的并行度
参见图11,其以框图的形式示意性地示出了根据本公开一些示例性实施例的芯片的结构。如图11所示,芯片400包括数据循环移位电路410,数据循环移位电路410可以被实施为上文中参照图6至图10描述的各示例性的数据循环移位电路。应理解的是,芯片400可以是任何合适的芯片,包括但不限于CPU、GPU等等。本公开对于可包括各示例性的数据循环移位电路的芯片的类型不作任何限制。
本公开中使用的术语仅用于描述本公开中的实施例,并不意图限制本公开。如本文中使用的,单数形式“一个”、“一”和“该”旨在也包括复数形式,除非上下文清楚地另有指示。还要理解的是,术语“包括”和“包含”当在本公开中使用时,是指所述及的特征的存在,但不排除一,个或多个其他特征的存在或者添加一个或多个其他特征。如本文中使用的,术语“和/或”包括相关联的列出项目中的一个或多个的任意和全部组合。将理解的是,尽管术语“第一”、“第二”、“第三”等在本文中可以用来描述各种特征,但是这些特征不应当由这些术语限制。这些术语仅用来将一个特征与另一个特征相区分。
除非另有定义,本公开中使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员所通常理解的相同含义。还要理解的是,诸如那些在通常使用的字典中定义的之类的术语应当被解释为具有与其在相关领域和/或本说明书上下文中的含义相一致的含义,并且将不在理想化或过于正式的意义上进行解释,除非本公开中明确地如此定义。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点被包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下以及不违背技术原理的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合,或者可以从本说明书中描述的不同实施例或示例中省略一些技术特征,并且基于这样的结合、组合或省略而得到的实施例或示例也被认为落在本公开的范围内。
本公开所描述的方法包括一个或多个步骤或动作。这些方法步骤和/或动作并不必须按照本公开描述的顺序来执行,而是可以按照不同的顺序来执行,例如它们可以同时被执行或者以相反的顺序来执行,只要不与本公开描述的技术方案的原理矛盾便可。此外,根据实际需要,本公开所描述的方法中的步骤或动作可以被替换成不同的步骤或动作,或者还可以包括附加的步骤或动作。
本公开所描述的各种描述性逻辑框、模块、以及电路是能够以本领域已知的任何合适的技术来实现的硬件电路,例如但不限于,具有合适的组合逻辑门电路的专用集成电路、可编程门阵列、现场可编程门阵列等等。本公开对此不作任何限制。
尽管已经结合一些示例性实施例详细地描述了本公开,但是其并不局限于在本文中所描述的特定形式。相反,本公开的范围仅由所附权利要求限定。
Claims (15)
1.一种数据循环移位方法,其特征在于,包括:
根据待移位数据中各个单元数据的排序以及数据传输的并行度,将所述待移位数据分成n个数据序列,使每个数据序列均包括m个单元数据,得到m×n的数据阵列,其中,m为大于1的整数,n为大于0的整数;
基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值;
基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列;
基于所述n个移位后数据序列,生成移位后数据。
2.根据权利要求1所述的数据循环移位方法,其特征在于,所述基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值包括:
将所述移位值对所述数据阵列的总行数取余,得到所述行移位值;
对于所述数据阵列中行号小于或等于所述行移位值的行,用所述移位值除以所述总行数,将得到的商加1,得到所述列移位值;
对于所述数据阵列中行号大于所述行移位值的行,所述列移位值为0。
3.根据权利要求2所述的数据循环移位方法,其特征在于,所述基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列包括:
基于所述列移位值,对所述数据阵列中行号小于或等于所述行移位值的行的单元数据进行列移位,生成n个列移位数据序列;
基于所述行移位值,对所述列移位数据序列的m行单元数据进行行移位,生成所述n个移位后数据序列。
4.根据权利要求1所述的数据循环移位方法,其特征在于,所述基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值包括:
将所述移位值对所述数据阵列的总行数取余,得到所述行移位值;
对于所述数据阵列中行号小于或等于所述总行数与所述行移位值之差的行,使所述列移位值为0;
对于所述数据阵列中行号大于所述差的行,用所述移位值除以所述总行数,将得到的商加1,得到所述列移位值。
5.根据权利要求4所述的数据循环移位方法,其特征在于,所述基于所述列移位值和所述行移位值,对所述n个数据序列进行移位操作,生成n个移位后数据序列包括:
基于所述行移位值,对所述数据阵列中的m行单元数据进行行移位,生成n个行移位数据序列;
基于所述列移位值,对于所述n个行移位数据序列中行号大于所述总行数与所述行移位值的差的行的单元数据进行列移位,生成所述n个移位后数据序列。
6.根据权利要求1所述的数据循环移位方法,其特征在于,响应于所述待移位数据的最后一个单元数据是所述数据阵列的第n列中第m行的单元数据,所述基于所述移位后数据阵列生成所述移位后数据包括:
将所述移位后数据阵列中的单元数据按照第1列至第n列的顺序依次输出并进行拼接,生成所述移位后数据。
7.根据权利要求1所述的数据循环移位方法,其特征在于,响应于所述待移位数据的最后一个单元数据是所述数据阵列的第n列中第k行的单元数据,k为大于0且小于m的整数:
所述使每个数据序列均包括m个单元数据包括:将所述数据阵列的第n列中第k+1行至第m行的单元数据赋值为特定值;
所述基于所述n个移位后数据序列,生成移位后数据包括:
将所述n个移位后数据序列的单元数据按照第1列至第n列的顺序依次输出并进行拼接,生成移位后待调整数据;
从所述移位后待调整数据中去除内容为特定值的单元数据,生成所述移位后数据。
8.根据权利要求7所述的数据循环移位方法,其特征在于,所述从所述移位后待调整数据中去除为特定值的单元数据,生成所述移位后数据包括:
遍历所述移位后待调整数据,响应于单元数据的值为所述特定值,从所述移位后待调整数据中去除所述单元数据,以生成所述移位后数据。
9.根据权利要求7所述的数据循环移位方法,其特征在于,所述从所述移位后待调整数据中去除为特定值的单元数据,生成所述移位后数据包括:
从所述移位后待调整数据中去除倒数第S+1个单元数据至倒数第S+m-k个单元数据,以生成所述移位后数据,其中,S为所述移位值。
10.一种数据循环移位电路,其特征在于,包括:
控制器,其被配置成:
根据待移位数据中各个单元数据的排序以及数据传输的并行度,将所述待移位数据分成n个数据序列,使每个数据序列均包括m个单元数据,得到m×n的数据阵列,其中,m为大于1的整数,n为大于0的整数;
基于所述待移位数据的移位值,确定所述数据阵列中每一列单元数据的行移位值和每一行单元数据的列移位值,并且基于所述行移位值和所述列移位值生成移位控制指令;
行列移位电路,其被配置成:从所述控制器依次接收所述数据阵列的n个数据序列,并且基于接收到的所述移位控制指令,对所述n个数据序列进行移位操作,生成n个移位后数据序列;
输出电路,其被配置成:基于从所述控制器接收的输出控制指令和从所述行列移位电路依次接收所述n个移位后数据序列,生成移位后数据。
11.根据权利要求10所述的数据循环移位电路,其特征在于,所述行列移位电路包括:
列移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述控制器依次接收的所述n个数据序列进行列移位操作,生成n个列移位数据序列;
行移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述列移位电路依次接收的所述n个列移位数据序列进行行移位操作,生成所述n个移位后数据序列。
12.根据权利要求10所述的数据循环移位电路,其特征在于,所述行列移位电路包括:
行移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述控制器依次接收的所述n个数据序列进行行移位操作,生成n个行移位数据序列;
列移位电路,其被配置成:基于接收到的所述移位控制指令,对从所述行移位电路依次接收的所述n个行移位数据序列进行列移位操作,生成所述n个移位后数据序列。
13.根据权利要求11或12所述的数据循环移位电路,其特征在于,所述列移位电路包括:
m个列移位输入端,其被配置成:并行地接收待进行列移位操作的数据序列的m个单元数据;
m个列移位输出端,其被配置成:并行地输出经过列移位操作的数据序列的m个单元数据;
列选通电路,其与n条列选通线电连接,并且被配置成:响应于接收到所述移位控制指令,向对应的列选通线施加有效电压信号;
行选通电路,其与m条行选通线电连接,并且被配置成:响应于接收到所述移位控制指令,向对应的行选通线施加有效电压信号;
m个列移位子电路,其中,每一个列移位子电路包括n个寄存器和n个选择器,其中:
每一个寄存器包括输入端和输出端;
每一个选择器包括第一输入端、第二输入端、第三输入端、第一控制端、第二控制端和输出端,并且被配置成:响应于施加到所述第一控制端和所述第二控制端的电压信号的第一种组合,使所述选择器的输出端与所述第一输入端导通,响应于施加到所述第一控制端和所述第二控制端的电压信号的第二种组合,使所述选择器的输出端与所述第二输入端导通,响应于施加到所述第一控制端和所述第二控制端的电压信号的第三种组合,使所述选择器的输出端与所述第三输入端导通,其中,所述第一种组合、第二种组合和第三种组合彼此不同;以及
在第i个列移位子电路中:第j个寄存器的输入端与第j个选择器的输出端电连接,第j个寄存器的输出端与第j个选择器的第一输入端和第j+1个选择器的第二输入端电连接,第1个寄存器的输出端与第1个选择器的第一输入端和第二输入端以及第2个寄存器的第二输入端电连接,第n个寄存器的输出端与第n个选择器的第一输入端和第i个列移位输出端电连接,第j个选择器的第一控制端与第i条行选通线电连接,第j个选择器的第二控制端与第j条列选通线电连接,第j个选择器的第三输入端与第i个列移位输入端电连接,其中,i为整数并且1≤i≤m,j为整数并且1≤j≤n。
14.根据权利要求11或12所述的数据循环移位电路,其特征在于,所述行移位电路包括:
m个行移位输入端,其被配置成:并行地接收待进行行移位操作的数据序列的m个单元数据;
m个行移位输出端,其被配置成:并行地输出经过行移位操作的数据序列的m个单元数据;
m-1个行移位子电路,其中,每一个行移位子电路与所述m个行移位输出端和所述m个行移位输出端均电连接,并且第i个行移位子电路被配置成:将第1个至第i个行移位输入端按照原先的排序一一对应地与第m-i+1个至第m个行移位输出端电连接,并且使第i+1个至第m个行移位输入端按照原先的排序一一对应地与第1个至第m-i个行移位输出端电连接,i为整数并且1≤i≤m-1;
其中,所述行移位电路被配置成:响应于接收到的所述移位控制指令,使对应于所述行移位值的行移位子电路被启用,并且其他行移位子电路被禁用。
15.一种芯片,其特征在于,所述芯片包括根据权利要求10至14中任一项所述的数据循环移位电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211592518.XA CN115658145B (zh) | 2022-12-13 | 2022-12-13 | 数据循环移位方法和电路、以及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211592518.XA CN115658145B (zh) | 2022-12-13 | 2022-12-13 | 数据循环移位方法和电路、以及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115658145A true CN115658145A (zh) | 2023-01-31 |
CN115658145B CN115658145B (zh) | 2023-03-28 |
Family
ID=85019421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211592518.XA Active CN115658145B (zh) | 2022-12-13 | 2022-12-13 | 数据循环移位方法和电路、以及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658145B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191650A1 (en) * | 2008-10-08 | 2011-08-04 | Takashi Yokokawa | Cyclic Shift Device, Cyclic Shift Method, LDPC Decoding Device, Television Receiver, and Reception System |
CN102207846A (zh) * | 2010-03-31 | 2011-10-05 | 国际商业机器公司 | 一种实现数据排序的电路和方法 |
CN102355271A (zh) * | 2011-10-31 | 2012-02-15 | 南京邮电大学 | 一种随机行列循环移位交织器的编解码方法 |
US20130242655A1 (en) * | 2012-03-15 | 2013-09-19 | Wanfang Tsai | Techniques for Accessing Column Selecting Shift Register with Skipped Entries in Non-Volatile Memories |
CN111262592A (zh) * | 2018-11-30 | 2020-06-09 | 展讯半导体(南京)有限公司 | 序列的循环移位装置及方法、存储介质 |
CN114721908A (zh) * | 2022-04-11 | 2022-07-08 | 摩尔线程智能科技(北京)有限责任公司 | 片上功耗控制电路、芯片以及功耗控制方法 |
-
2022
- 2022-12-13 CN CN202211592518.XA patent/CN115658145B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191650A1 (en) * | 2008-10-08 | 2011-08-04 | Takashi Yokokawa | Cyclic Shift Device, Cyclic Shift Method, LDPC Decoding Device, Television Receiver, and Reception System |
CN102207846A (zh) * | 2010-03-31 | 2011-10-05 | 国际商业机器公司 | 一种实现数据排序的电路和方法 |
CN102355271A (zh) * | 2011-10-31 | 2012-02-15 | 南京邮电大学 | 一种随机行列循环移位交织器的编解码方法 |
US20130242655A1 (en) * | 2012-03-15 | 2013-09-19 | Wanfang Tsai | Techniques for Accessing Column Selecting Shift Register with Skipped Entries in Non-Volatile Memories |
CN111262592A (zh) * | 2018-11-30 | 2020-06-09 | 展讯半导体(南京)有限公司 | 序列的循环移位装置及方法、存储介质 |
CN114721908A (zh) * | 2022-04-11 | 2022-07-08 | 摩尔线程智能科技(北京)有限责任公司 | 片上功耗控制电路、芯片以及功耗控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115658145B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4914379A (en) | Semiconductor integrated circuit and method of testing same | |
US4215401A (en) | Cellular digital array processor | |
US7827345B2 (en) | Serially interfaced random access memory | |
US10338136B2 (en) | Integrated circuit with low power scan system | |
JP5035239B2 (ja) | 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス | |
EP0122048A2 (en) | Data processing cells and parallel data processors incorporating such cells | |
US20060233006A1 (en) | Programmable pipeline array | |
US20230176999A1 (en) | Devices for time division multiplexing of state machine engine signals | |
KR890002782A (ko) | 데이타 처리 회로용 교차 메모리 | |
JPH0651028A (ja) | テスト・パターン発生装置 | |
CN115658145B (zh) | 数据循环移位方法和电路、以及芯片 | |
US20040250165A1 (en) | Semiconductor memory device permitting boundary scan test | |
JP3562581B2 (ja) | スキュー調整回路及び半導体集積回路 | |
JPH10340341A (ja) | 画像照合回路および画像照合集積回路 | |
JPH09259115A (ja) | ビット−シリアルマトリックス転置のための超大規模集積回路 | |
US7386650B2 (en) | Memory test circuit with data expander | |
US10664241B2 (en) | Memory systems including support for transposition operations and related methods and circuits | |
US6487550B1 (en) | Method and apparatus for finding a first element | |
KR19990067519A (ko) | 메모리테스트회로 | |
US20080104155A1 (en) | Digital electronic binary rotator and reverser | |
WO1993006552A1 (en) | Random access compare array | |
US20080177817A1 (en) | Inversion of alternate instruction and/or data bits in a computer | |
JPH10116226A (ja) | 半導体記憶装置のアドレス整列装置 | |
JP2591448B2 (ja) | セレクタ回路およびマルチポートメモリセル | |
JPH0431977A (ja) | 色データの拡張回路 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |