CN103038744A - 数据移位器及其控制方法、复用器、数据筛分器和数据分类器 - Google Patents
数据移位器及其控制方法、复用器、数据筛分器和数据分类器 Download PDFInfo
- Publication number
- CN103038744A CN103038744A CN2010800671576A CN201080067157A CN103038744A CN 103038744 A CN103038744 A CN 103038744A CN 2010800671576 A CN2010800671576 A CN 2010800671576A CN 201080067157 A CN201080067157 A CN 201080067157A CN 103038744 A CN103038744 A CN 103038744A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- input
- elementary cell
- sequence
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/015—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/762—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
数据移位器(10)包括多个级,每级包括N个基本单元(20),每个基本单元最初指派有一比特值c和正整数q。第p级中的第m个基本单元输入目标数据和表示输入目标数据的逻辑“或”Data(p,m)应路由选择到的通道号的目的地数据;比较来自输入目的地数据的逻辑“或”Des(p,m)的LSB的第q比特和该c;以及基于比较结果,输出Data(p,m)或值0及Des(p,m)或值0去往下一级中的第m个基本单元,并且如果m-1+2q-1<N,则还输出Data(p,m)和值0中的另一个及Des(p,m)和值0中的另一个去往下一级中的第(m+2q-1)个基本单元。移位器将要作为目标数据处理的N通道数据序列和每个数据序列的目的地数据输入第一级中的N个基本单元,并且将最后级中的基本单元输出的目标数据的逻辑“或”作为第m个通道的移位输出数据来输出去往下一级中的第m个基本单元。
Description
技术领域
本发明涉及数据移位器及其控制方法、复用器、数据筛分器和数据分类器,并且具体但不限于涉及数据扩展移位器和数据填充移位器。
背景技术
数字电路的要求处理速度在逐年上升。然而,基带芯片的时钟频率的改进慢于要求的处理速度的上升。另外,一直在研究用于基带芯片的并行处理技术以便改进其处理速度。
向量处理是用于实现并行处理的关键技术。根据掩码比特插入和删除数据元素在向量处理的实现中起到重要的作用。
图1以示意图方式示出根据掩码比特在输入数据中插入零。在图1中,输入数据由六个通道组成,这些通道表示为#0到#5。在图1的示例中,两个“零数据”插入输入数据中。掩码/使能比特使用比特0指定零数据的插入位置。因此,每个输入数据#0到#5转移到指派有比特1的位置,并且零数据插入到指派有比特0的位置。如在图1中容易看到的一样,输入数据“扩展”到一些块。因此,我们称此处理数据为扩展移位。
图2以示意图方式示出根据掩码比特从输入数据删除一些数据元素。在图2中,输入数据由八个通道组成,这些通道表示为#0到#7。在图2的示例中,删除输入数据的两个数据元素,并且将剩余的数据元素组装到数据序列中。掩码/使能比特使用比特0指定数据元素的每个删除位置。因此,删除指派有比特0的数据元素,即,在此示例中的数据元素#1和#4;收集其它数据元素#0、#2、#3和#5-#7。由于此处理类似于数据填充,因此,我们称此处理数据为填充移位。
图3示出在任意位置插入零元素的常规复用器,我们称其为常规数据扩展移位器。图4示出用于删除任意元素的常规数据复用器,我们称其为常规数据填充移位器。这些常规复用器构建带有由O(N2)给出的电路大小,其中,N是数据通道的数量,并且因此此实现的效率低。
GB 2 370 384 A公开了一种N比特移位器,该移位器将N比特的序列x0...XN-1作为其输入接收,并且给出表示输入比特的选定置换移项或重新布置的多个比特z0...ZN-1作为其输出。此移位器能够构建带有O(N log N)的电路大小,并且能够在O(log N)个步骤中执行数据扩展/填充。
GB 2 370 384 A的移位器包括存储器和复用器的N个一比特切片。首先,将N比特的输入数据存储到存储器中。接着,每个切片接收在对应于该切片的存储器区域中存储的数据的一个单比特和在其它存储器区域中存储的数据的至少一比特作为输入,并且根据选择信号选择输入比特数据的任一个。更具体地说,对于0≤i<N,第i个切片接收在对应于第i个切片的第i个存储器区域中存储的数据的一比特和在第(i±2k)个(k:非负整数)存储器区域中存储的比特数据,并且随后根据选择信号选择和输出输入比特数据的任一个。对于每个处理周期,N个切片分别执行此类操作,并且随后N个切片输出的N比特数据存储在存储器中。随后,N个切片对存储的N比特数据重复执行类似的操作,直至实现输入比特数据的所需置换移项或重新布置。
GB 2 370 384 A公开了作为数据填充移位器操作的移位器的一实施例,其中,对于k=0,1,...,(log2N)-1和对于i=0,...,N-1,在第(k+l)个处理周期,第i个切片选择并输出在对应于第i个切片的第i个存储器区域中存储的比特数据或在第(i±2k)个存储器区域中存储的比特数据。此移位器只要求O(log N)个处理步骤,并且电路大小是O(N log N)。GB 2 370 384 A也公开带有基于类似想法的O(log N)个处理步骤,作为数据扩展移位器的移位器的一实施例。另外,GB 2 370 384 A公开构建O(log N)多个N切片的级联的可能性,这允许在单一步骤中执行“选择”。
GB 2 370 384 A中所述数据扩展/填充移位器要求每个处理周期将选择信号输入到每个切片。然而,为每个处理周期确定要输入到切片中的适当选择信号会是繁重的。这是因为GB 2 370 384 A的移位器在每个切片重复执行比特选择,将选定比特写入存储器,以及再次对存储器中存储的比特执行比特选择。因此,在适当选择信号的确定期间的处理负载能够变成一系列信号处理中的“瓶颈”。GB 2 370 384 A也公开了切片的级联以改进处理速度。然而,级联的简单实现要求大小是O(N log2 N)的大处理电路。
发明内容
相应地,本发明提供一种用于通过小电路大小可实现的快速、易于控制的数据扩展/填充移位器。
根据本发明的一方面,提供了一种对N通道数据序列执行数据移位操作的数据移位器。数据移位器包括多个级,其中每级包括N个基本单元。在第p级中包括的第m个基本单元最初指派有预确定的一比特值c和正整数q,并且包括
-用于输入其大小大于或等于一比特的要处理的目标数据的部件;
-用于输入目的地数据的部件,该目的地数据表示输入目标数据的逻辑“或”Data(p,m)应路由选择到的通道的通道号,目的地数据的大小是 比特;
-用于比较来自输入目的地数据的逻辑“或”Des(p,m)的最低有效比特的第q比特和一比特值c的部件;以及
-用于输出的部件,所述部件基于比较结果,输出值0和Data(p,m)之一作为目标数据及值0和Des(p,m)之一作为目的地数据去往下一级中包括的第m个基本单元,并且如果m-1+2q-1<N,则还输出值0和Data(p,m)中的另一个作为目标数据及值0和Des(p,m)中的另一个作为目的地数据去往下一级中包括的第(m+2q-1)个基本单元。
数据移位器分别将要作为目标数据处理的N通道数据序列和每个数据序列的目的地数据输入在第一级中包括的N个基本单元,并且将最后级中包括的基本单元输出的目标数据的逻辑“或”作为第m个通道的移位输出数据来输出去往下一级中包括的第m个基本单元。
我们能够根据本发明构建数据扩展/填充移位器,该移位器包括其大小是O(N log N)的控制电路,并且只要求O(1)个处理步骤。因此,所述数据移位器与GB 2 370 384 A相比非常有效。另外,预确定的参数最初被指派到每个基本单元,这允许轻松控制数据移位器和轻松实现移位器。
参照附图,从示范实施例的下面描述中将明白本发明的其它特征。
附图说明
图1以示意图方式示出根据掩码比特在输入数据中插入零。
图2以示意图方式示出根据掩码比特从输入数据删除数据元素。
图3以示意图方式示出常规数据扩展移位器。
图4以示意图方式示出常规数据填充移位器。
图5以示意图方式示出根据本发明的一实施例的数据扩展序列的示例。
图6以示意图方式示出根据本发明的一实施例的数据填充序列的示例。
图7以示意图方式示出根据本发明的一实施例的用于数据扩展移位器的开关控制和路由选择路径的示例。
图8以示意图方式示出根据本发明的一实施例的用于数据扩展/填充移位器的基本单元的示范电路。
图9以示意图方式示出根据本发明的一实施例的包括基本单元的8通道数据扩展移位器。
图10以示意图方式示出根据本发明的一实施例的包括基本单元的8通道数据填充移位器。
图11以示意图方式示出通过数据扩展移位将两个数据序列复用到单个数据序列中的示例。
图12以示意图方式示出通过数据填充移位将一个数据序列筛分到多个数据序列中的示例。
图13以示意图方式示出8x8完全交叉开关的示例。
图14A和14B以示意图方式示出32x32完全交叉开关的示例。
图15以示意图方式示出32x4完全交叉开关的示例。
图16以示意图方式示出带有4个读端口和两个写端口的多端口寄存器堆的示例。
图17是根据本发明的一实施例的由数据移位器执行的示范处理过程的流程图。
具体实施方式
现在将参照附图描述本发明的实施例。下述每个实施例将有助于理解包括一般概述到更具体概念的多个概念。应注意的是,本发明的技术范围由权利要求书定义,并且不限于下述每个实施例。另外,在实施例中所述特征的所有组合并非始终对本发明是必不可少的。
(概述)
根据本发明的一实施例的数据移位器是基于通过多级二进制复用器构建的桶形移位器。通过控制复用器中的多个开关的每个开关而实现扩展/填充移位器。
图5示出根据本发明的实施例的用于带有N (=8)个通道的数据扩展移位器的数据通道。数据扩展移位器构建带有多个级。每级包括用于选择两个输入通道之一和输出选定通道使得在必要时第p个MUX将数据移位个通道的复用器(MUX)。更具体地说,对于m=0,...,,第p级(p=0,1,...,-1)选择第m个通道和第个通道之一,并且输出选定通道的输入数据作为用于第通道的输出。另外,对于m=0,...,,如果选择第m个通道用作用于第通道的输出,则零数据(即,所有比特具有值零的数据)输出为用于第m个通道的输出;否则,用于第m个通道的输入数据输出为用于第m个通道的输出。如后面将描述的一样,通过控制每个MUX将输入数据适当地移位,可能独特地实现任何形式的所需数据扩展。
数据填充移位器能够如图6中一样构建。图6示出根据本发明的实施例的用于带有N (=8)个通道的数据填充移位器的数据通道。复用器级以数据扩展移位器的相反顺序连接。也就是说,在必要时,第p个MUX将给定通道的数据移位2p个通道。更具体地说,对于m=0,...,(N-1-2p) ,第p级(p=0,1,...,-1)选择第m个通道和第(m+2p)个通道之一,并且输出选定通道的输入数据作为用于第m个通道的输出。另外,对于m=0,...,(N-1-2p),如果选择第m个通道用作用于第(m+2p)通道的输出,则零数据输出为用于第m个通道的输出;否则,第m个通道的输入数据输出为用于第m个通道的输出。如后面将描述的一样,通过控制每个MUX将输入数据适当地移位,可能独特地实现任何形式的所需数据填充。
上述数据扩展/填充移位器能够构建带有O(N log N)的电路大小。注意,如果复用器级的顺序反转(即,交换数据扩展移位器和数据填充移位器),则能够发生路由选择资源的冲突。
(开关的基本控制)
根据本发明的实施例的用于扩展/填充移位器的数据通道的结构已在上面描述为基本概念。现在,将提供有关可如何控制开关和可如何避免路由选择资源的冲突的描述。
因此,能够通过将第个开关设成bn而执行信号的路由选择。此处,如果第Sn(u,v)个开关的输入数据值为1,则第Sn(u,v)开关将输入数据移位2n个通道,否则,它不移位并且原样输出输入数据。换而言之,如果bn为1,则开关将其输入数据移位2n。
图7以示意图方式示出用于数据扩展移位器的开关控制和路由选择路径的示例。输入和输出通道的映射如上所述确定。图7示出在确定输入和输出通道的组合时应开启哪些开关。在图7的示例中,第u=2通道的输入数据路由选择到第v=12通道。此处,。因此,(b3, b2, b1, b0)=(1, 0, 1, 0),并且适用于将输入数据移位23个通道的第一MUX和适用于将输入数据移位21个通道的第三MUX均被激活以移位输入数据。路由选择路径如图7所示。注意,用于数据填充移位器的开关能够以相同方式控制。
(路由选择资源的冲突)
在数学上,可能证明在我们使用复用器级的某个排序时,能够路由选择数据而无路由选择资源的任何冲突。对于此路由选择,可能证明对于以下两个路由,将不会发生路由选择资源的冲突。
a)从第u输入通道到第v输出通道。
b)从第u+1输入通道到第v+l+a (a≥0)输出通道
证明:
我们假设β和γ是整数,并且:
同样地,我们能够证明路由选择资源冲突不能发生。
(用于实现的开关的控制)
在参照图5-7所述的开关的基本控制方法中,必要的是输入用于所有数据通道的掩码/使能信息以便只设置开关的状态。可能将数据通道的宽度看成O(1),即某个常数。诸如目的地信号等控制信号的比特宽度比用于数据通道的宽度更窄,并且它也能够视为O(1)的宽度。在此假设中,根据本发明的实施例的数据移位器的开关的数量是O(N log N)个开关,并且数据移位器能够构建带有O(N log N)的电路大小。然而,我们需要生成用于O(N log N)个开关的O(N log N)个控制信号。简单地说,控制信号能够由对应于N个输入的N个目的地生成。用于生成所有控制信号的电路大小将是O(N2 log N),但开关能够构建带有O(N log N)的电路大小。因此,必要具有优化的方法控制开关。
相应地,我们介绍了如图8所描绘的基本单元20,该单元包括用于数据通道和控制的电路。根据本发明的实施例的数据移位器10包括多个基本单元20,如图9和10所示。多个基本单元20以矩阵模式布置以便作为上述数据扩展/填充移位器执行。在图9和10中,我们将在相同列中的基本单元20的每个集称为级。要作为目标数据处理的N通道数据序列和标识数据的目的地通道的信息一起输入第一级中的基本单元20。对于N通道数据序列,数据移位器10包括级,其中每级包括N个基本单元20。最终级,即第(-1)级,输出对输入数据序列进行移位操作的结果。
(基本单元)
如图8所示,基本单元20包括用于目标数据、目标数据的目的地数据和使能器信号(enabler signal)的输入电路21-23。输入电路21输入其大小大于或等于一比特的要处理的目标数据。我们将输入到第p级中包括的第m个基本单元20的目标数据表示为Data(p,m)。应注意的是,一个基本单元20可输入来自前一级中的多个基本单元的多个目标数据。在此类情况下,基本单元20将多个目标数据的逻辑“或(OR)”作为Data(p,m)输入。对于所有p和m,Data(p,m)的比特宽度是相同的。也就是说,N通道数据序列的每个通道数据的比特宽度是相同的。
输入电路22输入表示Data(p,m)应路由选择到的通道的通道号的目的地数据。目的地数据的大小是比特。我们将输入第p级中的第m个基本单元20的目的地数据表示为Destination(p,m)或Des(p,m)。输入电路23输入一比特使能器信号。输入电路23将零比特作为使能器信号输入时,基本单元20及其随后的基本单元被禁用。我们将输入到第p级中的第m个基本单元20的使能器信号表示为Enable (p,m)。
每个基本单元20最初指派有预确定的一比特值c和非负整数q。整数q的比特长度是。基本单元20比较来自输入目的地数据的逻辑“或”Des(p,m)的最低有效比特(LSB)的第q比特和值c。随后,基本单元20基于比较结果,输出(i)值0和Data(p,m)值之一作为目标数据及(ii)值0和Des(p,m)值之一作为目的地数据去往下一级中的第m个基本单元。另外,如果m+2q<N,则基本单元20还输出值0和Data(p,m)值中的另一个作为目标数据及值0和Des(p,m)值中的另一个作为目的地数据去往下一级中的第(m+2q)个基本单元。
更具体地说,根据所述实施例的数据移位器20包括“异或(exclusive OR)”电路24、多个“与(AND)”电路31-38及多个输出电路25-30。“异或”电路24对Des(p,m)值的第q比特和比特c执行“异或”算术运算,并且将结果比特到输出“与”电路31以及将逆结果比特到“与”电路32。“与”电路31对Enable(p,m)值和“异或”电路24的输出执行“与”算术运算,并且将结果输出到“与”电路33-35中的每个电路。类似地,“与”电路32对Enable(p,m)值和“异或”电路24的输出的逆执行“与”算术运算,并且将结果输出到“与”电路36-38中的每个。
“与”电路33对“与”电路31的输出和Data(p,m)的每个比特执行“与”算术运算,并且将结果输出到输出电路25。类似地,“与”电路34对“与”电路31的输出和Des(p,m)的每个比特执行“与”算术运算,并且将结果输出到输出电路26。“与”电路35对“与”电路31的输出和Enable(p,m)的每个比特执行“与”算术运算,并且将结果输出到输出电路27。注意,如果m+2q<N,则输出电路25传送“与”电路33的输出作为去往下一级中的第(m+2q)个基本单元的目标数据。如果m+2q≥N,则输出电路25被终止。类似地,如果m+2q <N,则输出电路26和27分别传送“与”电路34和35的输出作为去往下一级中的第(m+2q)个基本单元的目的地数据和使能器信号。如果m+2q≥N,则输出电路26和27被终止。
和“与”电路33类似,“与”电路36对“与”电路32的输出和Data(p,m)的每个比特执行“与”算术运算,并且将结果输出到输出电路28。类似地,“与”电路37对“与”电路32的输出和Des(p,m)的每个比特执行“与”算术运算,并且将结果输出到输出电路29。“与”电路38对“与”电路32的输出和Enable(p,m)的每个比特执行“与”算术运算,并且将结果输出到输出电路30。输出电路28传送“与”电路36的输出作为去往下一级中的第m个基本单元的目标数据。类似地,输出电路29和30分别传送“与”电路37和38的输出作为去往下一级中的第m个基本单元的目的地数据和使能器信号。
这样,根据本发明的实施例的第q级中的第m个基本单元20执行根据来自Des(p,m)的最低有效比特的第q比特是否匹配比特值c而分成两种情况的输出:(i)如果来自Des(p,m)的最低有效比特的第q比特确实匹配比特值c,则输出作为目标数据的Data(p,m)和作为目的地数据的Des(p,m)去往下一级中包括的第m个基本单元。如果m+2q<N,则基本单元20还输出作为目标数据和目的地数据的值0去往下一级中包括的第(m+2q)个基本单元。否则,(ii)如果来自Des(p,m)的最低有效比特的第q比特不匹配比特值c,则基本单元20输出作为目标数据和目的地数据的值0去往下一级中包括的第m个基本单元,并且如果m+2q<N,则还输出作为目标数据的Data(p,m)和作为目的地数据的Des(p,m)去往下一级中包括的第(m+2q)个基本单元。
作为操作示例,如果输入电路23输入Enable(p,m)=0,则所有“与”电路33-38输出“0”到输出电路25-30,因此,基本单元20及输入0(“与”电路35或38的输出)作为使能器信号的其随后的基本单元被禁用。
相反,如果输入电路23输入Enable(p,m)=1,并且如果Dest(p,m)的第q比特匹配比特#c,则“异或”24的输出是0,并且因此“与”电路31的输出是0,而“与”电路32的输出是1。因此,在此类情况下,所有输出电路25-27输出0,而输出电路28-30分别输出Data(p,m)、Dest(p,m)和Enable(p,m)。如果输入电路23输入Enable(p,m)=1,并且如果Dest(p,m)的第q比特不匹配比特#c,则“异或”24的输出是1,并且因此“与”电路31的输出是1,而“与”电路32的输出是0。因此,在此类情况下,输出电路25-27分别输出Data(p,m)、Dest(p,m)和Enable(p,m),而所有输出电路28-30输出0。
(数据移位器)
如已经所述的一样,根据所述实施例的数据移位器10包括多个级,其中每级包括处于矩阵模式的N个基本单元20以对N通道数据序列执行数据移位操作。数据移位器10输入要作为目标数据处理的N通道数据序列和每个所述数据序列的目的地数据到第一级中包括的N个基本单元。随后,数据移位器10将最后级中包括的基本单元输出的目标数据的逻辑“或”作为第m个通道的移位输出数据来输出去往下一级中包括的第m个基本单元。
如本领域技术人员将明白的一样,值c和q的指派确定基本单元20和包括多个基本单元的数据移位器10的操作。图9示出作为带有八个通道的数据扩展移位器操作的数据移位器10。图10示出作为带有八个通道的数据填充移位器操作的数据移位器10。目的地信号Dest(p,m)包括比特,其中,第(-1)比特表示用于“最宽区域”的地址,并且第0比特表示用于最“本地区域”的地址。可能将此视为地址的分层结构的个级。在基本单元20中,地址的一个层次结构,目的地的第q比特被提取并与对应于当前位置#m的第q比特的c的值进行比较。如果比较结果失配,则按对应于分层结构的大小执行移位。
如图9所示,通过比较目的地Dest(p,m)的第比特和c的值,数据扩展移位器在第p级中执行通道的移位。如图10所示,通过比较目的地Dest(p,m)的第q=p比特和c的值,数据填充移位器在第p级中执行2 p 通道的移位。
通过引入基本单元,我们能够构建包括大小是O(N log N)的控制电路的数据扩展/填充移位器,这等于GB 2 370 384 A中的大小。更具体地说,根据所述实施例的数据移位器的门数是O(N log N),并且导线的数量是O(N log N)。此外,根据本发明的数据移位器只要求O(1)个处理步骤。因此,根据所述实施例的数据移位器与GB 2 370 384 A相比非常有效。另外,参数c和q最初指派到每个基本单元20,并且不必根据数据移位器10的操作状态的更改控制基本单元的操作。这允许轻松控制数据移位器10和轻松实现移位器10。
(复用器)
上述数据扩展/填充移位器不是只能够应用到数据通道元素的插入或删除,而是也能够应用到各种数据处理应用。例如,根据所述实施例的数据扩展移位器允许轻松实现用于复用多个数据序列的复用器。
图11示出利用两个数据扩展移位器来复用两个流的复用器的示例。在图11中,第一流X (41)通过根据所述实施例的数据扩展移位器进行扩展,使得第0-第5数据序列(42)被转移到第0-第2和第4-6通道,并且数据0被插入第3和第7通道 (43)。同时,第二流Y (44)通过根据所述实施例的数据扩展移位器进行扩展,使得第0和第1数据序列(45)分别被转移到第3和第7通道,并且数据0被插入第0-第3和第4-第6通道(46)。随后,在逻辑上添加扩展的流X和Y以形成复用的流(47)。应注意的是,用于扩展流X的数据扩展移位器和用于扩展流Y的扩展移位器可以是相同的,或者可以分开提供。逻辑“或”的计算可通过至少一个逻辑“或”电路实现。基于根据所述实施例的数据扩展移位器的复用器的电路大小是O(N log N)并因此是很小的。
(数据筛分器)
根据所述实施例的数据转移器的另一应用是数据筛分器,数据筛分器用于基于对应于数据元素的分类关键字K(m)和取分类关键字K(m)作为输入并且输出布尔结果的预确定的判定函数f(K(m)),将输入数据序列中包括的每个数据元素Data(m)“筛分”到两个群组中。图12示出用于利用根据所述实施例的两个数据填充移位器将数据筛分到正值和负值中的数据筛分器的示例。在图12中,输入序列(51)包括其值为正或负的多个数据元素。通过根据所述实施例的数据填充移位器,将输入序列(51)中的正数据元素和负数据元素分别筛分到第一群组(52)和第二群组(53)中。在图12的示例中,正数据元素被筛分到第0-第5通道中,并且负数据元素被筛分到第6-第10通道。随后,在逻辑上添加填充的数据序列(52,53)以形成筛分的流(54)。
在上述示例中,数据填充移位器基于通过比较分类关键字K(m)和阈值0而输出布尔结果的判定函数f(K(m)),将数据元素集筛分到两个群组中,但任意操作能够在判定函数中执行。另外,在上述示例中,数据填充移位器基于所述数据元素本身的值,筛分输入数据序列中的数据元素,但数据筛分可基于对应于数据元素的任何分类关键字。例如,如果输入数据序列是存储器地址的序列,则数据填充移位器可基于存储器地址指向的数据元素的值,筛分数据元素(存储器地址)。
因此,数据筛分器可基于以下项来筛分在输入数据序列中包括的每个数据Data(m)元素:对应于所述数据元素的分类关键字K(m)和取分类关键字K(m)作为输入并且输出布尔结果的预确定的判定函数f(K(m))。通过使用根据所述实施例的数据填充移位器,数据筛分器可从在输入数据序列中包括的数据元素收集对应分类关键字值使判定函数输出“真”的数据元素,以便输出第一数据序列。此外,通过使用根据所述实施例的数据填充移位器,数据筛分器可从在输入数据序列中包括的数据元素收集对应分类关键字值使判定函数输出“假”的数据元素,以输出第二数据序列。如在前一示例中一样,对应于给定数据元素的分类关键字可以是所述数据本身的值。
通过统计为每个收集已经填充的数据,计算用于上述填充移位器的目的地通道号。也就是说,在我们将用于第m通道的判定的结果定义为d(m),并且对于正值d(m)=0,以及对于负值d(m)=1时,目的地Des(m)被确定为:
应注意的是,用于筛分正数据元素的数据填充移位器和用于筛分负数据元素的填充移位器可以是相同的,或者可以分开提供。逻辑“或”的计算可通过至少一个逻辑“或”电路实现。基于根据所述实施例的数据填充移位器的数据筛分器的电路大小是O(N log N)并因此是很小的。
(完全交叉开关)
我们可通过重复筛分上述数据筛分器的每个输出来构建分类输入数据序列中包括的每个数据元素的数据分类器。图13示出此类数据分类器的示例。如图13所示,数据分类器60可通过多个数据筛分器51-57建立。我们将通过数据移位器建立的此类数据分类器称为完全交叉开关。根据所述实施例的完全交叉开关能够构建带有用于N个数据通道的O(N log2 N)的电路大小,而常规交叉开关一般要求O(N2)的电路大小。
图13示出利用三个级的数据筛分器51-57的8x8完全交叉开关60的示例。输出通道号可使用3比特表示为{0, 1, …, 6, 7}。在第0级(51)中,如果输出通道号的最高有效比特(MSB,即,比特2)是零,则数据被转移到通道{0, 1, 2, 3}之一;否则,数据被转移到通道{4, 5, 6, 7}之一。第1级由两个数据筛分器52、53组成;一个筛分器用于处理通道{0, 1, 2, 3},而另一筛分器用于通道{4, 5, 6, 7}。第2级由四个数据筛分器54-57组成。同样地,数据根据输出通道号的比特进行筛分。
这样,根据所述实施例的数据分类器将输入数据序列中包括的每个数据元素分类。数据分类器先将输入数据序列中包括的每个数据元素输入上述数据筛分器,并随后执行控制以将两个独立数据序列中包括的每个数据元素重复输入数据筛分器,使得将输入数据序列中包括的所有数据分类。
因此,作为数据分类器的示例的完全交叉开关包括多个数据筛分器。多个数据筛分器包括将输入数据序列作为目标数据序列输入的一个数据筛分器。多个数据筛分器的每个筛分器输入目标数据序列,基于最初指派到所述数据筛分器的分类关键字,将目标数据序列筛分到第一和第二数据序列中,将包括不止一个数据元素的第一和/或第二数据序列作为目标数据序列输出到另一数据筛分器(或多个数据筛分器),以及将只包括一个数据元素的第一和/或第二数据序列作为分类结果输出。
一个移位器能够构建带有电路大小O(N log N)以及完全交叉开关和数据分类器能够构建带有O(N log2 N)。
图14A和14B描绘32x32完全交叉开关61,作为更大的示例。如果事先已知在随后处理中不使用至少一个输出,则多个部分变得不必要,并且可能通过省略不必要的部分而设计带有更少电路的交叉开关。图15示出32x4完全交叉开关62的示例,其中,输入和输出通道的数量不同。图15中例示的完全交叉开关62只输出最大的两个数据元素和最小的两个数据元素。
(寄存器堆)
图16示出多端口寄存器堆70,四个读端口和两个写端口利用图15例示的完全交叉开关实现。多端口寄存器堆70包括2x32完全交叉开关71、32个寄存器(R0-R31) 72和32x4完全交叉开关73。最多两个并行输入数据乘以2x32完全交叉开关71并写入寄存器72。最多四个并行读数据乘以32x4完全交叉开关70并发送到输出端口。
(数据移位器的处理过程)
图17是由数据移位器10执行的处理过程的流程图。如上所述,数据移位器10包括多个级,其中每级包括N个基本单元20以对N通道数据序列执行数据移位操作。在第p级中包括的第m个基本单元20最初指派有预确定的一比特值c和非负整数q。首先,数据移位器10分别输入要作为目标数据处理的N通道数据序列和每个所述数据序列的目的地数据到第一级中包括的N个基本单元(S81)。随后,数据移位器10为每级执行S83-S87的处理(S82)。数据移位器10为活动级中包括的每个基本单元执行S84-S87的处理。
在S84中,基本单元20输入大小大于或等于一比特的要处理的目标数据。同时,基本单元20输入目的地数据,目的地数据表示输入目标数据的逻辑“或”Data(p,m)应路由选择到的通道的通道号,目的地数据的大小是比特(S85)。随后,基本单元20比较来自输入目的地数据的逻辑“或”Des(p,m)的最低有效比特的第q比特和比特值c (S86)。基于比较结果,基本单元20输出(i)值0和Data(p,m)之一作为目标数据及(ii)值0和Des(p,m)之一作为目的地数据去往下一级中包括的第m个基本单元。如果m+2q<N,则基本单元20还输出值0和Data(p,m)中的另一个作为目标数据及值0和Des(p,m)中的另一个作为目的地数据去往下一级中包括的第(m+2q)个基本单元(S87)。在为所有级中的所有基本单元执行S84-S87的处理后,数据移位器10将最后级中包括的基本单元输出的目标数据的逻辑“或”作为第m通道的移位输出数据来输出去往下一级中包括的第m个基本单元(S88)。
通过上述处理,可能构建包括带有O(N log N)的电路大小的控制电路的数据扩展/填充移位器。
如上所述,本发明的实施例已详细描述。然而,除信息处理设备外,实施例可能涉及方法,其中,计算机执行上述处理,或者作为在存储媒体上的程序,程序存储在存储媒体中。
虽然本发明已参照示范实施例描述,但要理解的是,本发明不限于公开的示范实施例。以下权利要求书的范围要给予最广泛的解释,以便涵盖所有此类修改和等效结构与功能。
Claims (12)
1. 一种对N通道数据序列执行数据移位操作的数据移位器(10),
(a)包括多个级,其中每级包括N个基本单元(20),
(b)其中包括在第p级中的第m个基本单元(20)
最初指派有预确定的一比特值c和正整数q,以及
包括:
-用于输入其大小大于或等于一比特的要处理的目标数据的部件(21);
-部件(24),用于比较来自所述输入目的地数据的逻辑“或”Des(p,m)的最低有效比特的第q比特和所述一比特值c;以及
-部件(25,26,28,29),用于基于所述比较结果,输出值0和Data(p,m)之一作为目标数据及值0和Des(p,m)之一作为目的地数据去往下一级中包括的第m个基本单元,并且如果m-1+2q-1<N,则还输出值0和Data(p,m)中的另一个作为目标数据及值0和Des(p,m)中的另一个作为目的地数据去往下一级中包括的第(m+2q-1)个基本单元,
(c)分别输入要作为目标数据处理的N通道数据序列和每个所述数据序列的目的地数据到第一级中包括的N个基本单元,以及
(d)将最后级中包括的基本单元输出的目标数据的逻辑“或”作为第m个通道的移位输出数据来输出去往下一级中包括的第m个基本单元。
2. 根据权利要求1所述的数据移位器,其中用于输出的部件(25,26,28,29)执行根据来自Des(p,m)的最低有效比特的第q比特是否匹配所述比特值c而分成两种情况的输出:
(i)其中如果来自Des(p,m)的最低有效比特的第q比特确实匹配所述一比特值c,则输出Data(p,m)作为目标数据和Des(p,m)作为目的地数据去往下一级中包括的第m个基本单元,并且如果m-1+2q-1<N,则还输出值0作为目标数据和值0作为目的地数据去往下一级中包括的第(m+2q-1)个基本单元,否则
(ii)其中如果来自Des(p,m)的最低有效比特的第q比特不匹配所述一比特值c,则输出值0作为目标数据和值0作为目的地数据去往下一级中包括的第m个基本单元,并且如果m-1+2q-1<N,则输出Data(p,m)作为目标数据和Des(p,m)作为目的地数据去往下一级中包括的第(m+2q-1)个基本单元。
3. 根据权利要求2所述的数据移位器,其中所述N通道数据序列的每个通道数据的比特宽度是相同的。
4. 根据权利要求2或3所述的数据移位器,其中级的数量是。
6. 根据权利要求2-4任一项所述的数据移位器,其中q=p,并且指派到在第p级中包括的第m个基本单元的一比特值c是来自(m)2的最低有效比特的第p比特。
7. 一种用于第一数据序列和第二数据序列的复用器,包括:
扩展部件,用于通过使用根据权利要求5所述的数据移位器,扩展所述第一和所述第二数据序列中的每个序列;以及
计算部件,用于计算所述扩展的第一数据序列和所述扩展的第二数据序列的逻辑“或”。
8. 一种将输入数据序列中包括的每个数据元素Data(m)筛分到两个群组中的数据筛分器,所述筛分是基于对应于所述数据元素Data(m)的分类关键字K(m)和取所述分类关键字K(m)作为输入并且输出从两个候选X和Y选择的值的预确定的判定函数f(K(m)),所述数据筛分器包括:
第一收集部件,用于通过使用根据权利要求6所述的数据移位器,从所述输入数据序列中包括的数据元素收集对应于所述判定函数f(K(m))输出值X的分类关键字的数据元素,以输出第一数据序列;以及
第二收集部件,用于通过使用根据权利要求6所述的数据移位器,从所述输入数据序列中包括的数据元素收集对应于所述函数f(K(m))输出值Y的分类关键字的数据元素,以输出第二数据序列。
9. 根据权利要求8所述的数据筛分器,其中对应于所述数据元素的分类关键字是所述数据元素本身的值。
10. 一种将输入数据序列中包括的每个数据元素分类的数据分类器,包括:
输入部件,用于将所述输入数据序列中包括的每个数据元素输入到根据权利要求8或9所述的数据筛分器以便获得数据元素的两个序列;
控制部件,用于执行控制以将所述两个独立数据序列中包括的每个数据元素重复输入到根据权利要求8或9所述的数据筛分器,使得将所述输入数据序列中包括的所有数据元素分类。
11. 一种将输入数据序列中包括的每个数据元素分类的数据分类器,
包括根据权利要求8或9所述的多个数据筛分器,
其中所述多个数据筛分器包括将所述输入数据序列作为目标数据序列输入的一个数据筛分器,以及
所述多个数据筛分器的每个筛分器:
-输入目标数据序列,
-基于最初指派到所述数据筛分器的判定函数,将所述目标数据序列筛分到第一和第二数据序列中,
-将包括不止一个数据元素的第一和/或第二数据序列作为目标数据序列输出到另一数据筛分器或多个数据筛分器,以及
-将只包括一个数据元素的第一和/或第二数据序列作为分类结果输出。
12. 一种包括多个级的数据移位器(10)的控制方法,其中每级包括N个基本单元(20)以对N通道数据序列执行数据移位,
(a)其中包括在第p级中的第m个基本单元(20)
最初指派有预确定的一比特值c和正整数q,以及
包括以下步骤:
-输入(S84)其大小大于或等于一比特的要处理的目标数据;
-比较(S86)来自所述输入目的地数据的逻辑“或”Des(p,m)的最低有效比特的第q比特和所述一比特值c;以及
-基于所述比较结果,输出(S87)值0和Data(p,m)之一作为目标数据及值0和Des(p,m)之一作为目的地数据去往下一级中包括的第m个基本单元,并且如果m-1+2q-1<N,则还输出值0和Data(p,m)中的另一个作为目标数据及值0和Des(p,m)中的另一个作为目的地数据去往下一级中包括的第(m+2q-1)个基本单元,
(b)所述数据移位器(10)分别输入要作为目标数据处理的N通道数据序列和每个所述数据序列的目的地数据到第一级中包括的N个基本单元,以及
(c)所述数据移位器(10)将最后级中包括的基本单元输出的目标数据的逻辑“或”作为第m个通道的移位输出数据来输出去往下一级中包括的第m个基本单元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/056269 WO2011121795A1 (en) | 2010-03-31 | 2010-03-31 | Data shifter and control method thereof, multiplexer, data sifter, and data sorter |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103038744A true CN103038744A (zh) | 2013-04-10 |
Family
ID=44711579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800671576A Pending CN103038744A (zh) | 2010-03-31 | 2010-03-31 | 数据移位器及其控制方法、复用器、数据筛分器和数据分类器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130018933A1 (zh) |
EP (1) | EP2553569A4 (zh) |
CN (1) | CN103038744A (zh) |
WO (1) | WO2011121795A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116013A (zh) * | 2022-01-29 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102122406B1 (ko) * | 2013-11-06 | 2020-06-12 | 삼성전자주식회사 | 셔플 명령어 처리 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002171401A (ja) * | 2000-11-29 | 2002-06-14 | Canon Inc | 間引き演算命令を備えたsimd型演算装置 |
US20040015526A1 (en) * | 2002-07-17 | 2004-01-22 | Ziegler James Craig | Apparatus and method for data shifting |
CN1551507A (zh) * | 2003-05-09 | 2004-12-01 | �ձ�������ʽ���� | 串行和并行之间的数据格式转换器 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5750049A (en) * | 1980-09-09 | 1982-03-24 | Toshiba Corp | Shifting circuit |
JPH0823809B2 (ja) * | 1990-01-22 | 1996-03-06 | 株式会社東芝 | バレルシフタ |
US5465222A (en) * | 1994-02-14 | 1995-11-07 | Tektronix, Inc. | Barrel shifter or multiply/divide IC structure |
US6381690B1 (en) * | 1995-08-01 | 2002-04-30 | Hewlett-Packard Company | Processor for performing subword permutations and combinations |
US5771183A (en) * | 1996-06-28 | 1998-06-23 | Intel Corporation | Apparatus and method for computation of sticky bit in a multi-stage shifter used for floating point arithmetic |
US6622242B1 (en) * | 2000-04-07 | 2003-09-16 | Sun Microsystems, Inc. | System and method for performing generalized operations in connection with bits units of a data word |
GB2370384B (en) * | 2000-12-22 | 2004-11-10 | Cambridge Consultants | Shifter |
US8285766B2 (en) * | 2007-05-23 | 2012-10-09 | The Trustees Of Princeton University | Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor |
-
2010
- 2010-03-31 EP EP10848971.7A patent/EP2553569A4/en not_active Withdrawn
- 2010-03-31 CN CN2010800671576A patent/CN103038744A/zh active Pending
- 2010-03-31 WO PCT/JP2010/056269 patent/WO2011121795A1/en active Application Filing
- 2010-03-31 US US13/636,360 patent/US20130018933A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002171401A (ja) * | 2000-11-29 | 2002-06-14 | Canon Inc | 間引き演算命令を備えたsimd型演算装置 |
US20040015526A1 (en) * | 2002-07-17 | 2004-01-22 | Ziegler James Craig | Apparatus and method for data shifting |
CN1551507A (zh) * | 2003-05-09 | 2004-12-01 | �ձ�������ʽ���� | 串行和并行之间的数据格式转换器 |
Non-Patent Citations (1)
Title |
---|
宣传忠等: "高速桶式移位器的设计研究", 《微电子学与计算机》, vol. 24, no. 1, 20 February 2007 (2007-02-20), pages 42 - 44 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116013A (zh) * | 2022-01-29 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
WO2023142733A1 (zh) * | 2022-01-29 | 2023-08-03 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011121795A1 (en) | 2011-10-06 |
EP2553569A1 (en) | 2013-02-06 |
US20130018933A1 (en) | 2013-01-17 |
EP2553569A4 (en) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Thomsen et al. | Reversible arithmetic logic unit for quantum arithmetic | |
JP3613396B2 (ja) | 機能ブロック | |
WO2010107114A1 (ja) | パターンマッチング装置 | |
Song et al. | Parallel hardware merge sorter | |
WO2017157267A1 (en) | Reconfigurable data interface unit for compute systems | |
JP2007058571A (ja) | 回路および回路接続方法 | |
CN113064852A (zh) | 一种可重构处理器及配置方法 | |
CN102982205A (zh) | 一种用于数字电路设计的固定极性转换方法 | |
CN114169274B (zh) | 一种面向fpga的多路选择器工艺映射方法 | |
Kent et al. | Design, implementation, and analysis of high-speed single-stage N-sorters and N-filters | |
US10101965B1 (en) | Method and apparatus for high speed streaming sorter | |
JP2006139427A (ja) | データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体 | |
CN103038744A (zh) | 数据移位器及其控制方法、复用器、数据筛分器和数据分类器 | |
US6987401B1 (en) | Compare, select, sort, and median-filter apparatus in programmable logic devices and associated methods | |
CN101312346A (zh) | 具有带改进的寄存器性能的逻辑模块的可编程逻辑器件 | |
JP4011007B2 (ja) | リコンフィギュラブル回路を備えた集積回路装置および処理装置 | |
US8358653B1 (en) | Generating a pipeline of a packet processor from a parsing tree | |
US5192882A (en) | Synchronization circuit for parallel processing | |
JP4260197B2 (ja) | 処理装置 | |
Lee et al. | A shift register architecture for high-speed data sorting | |
Das | Characterization of non-uniform number conserving cellular automata | |
EP2270647A1 (en) | Multi-bit carry chain | |
CN113795831B (zh) | 一种多功能的数据重组网络 | |
JP2005275698A (ja) | データフローグラフ処理方法、リコンフィギュラブル回路および処理装置 | |
CN106024056A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130410 |