CN104011617A - 用于对数据字内的数据进行重新定位的可重配置设备 - Google Patents
用于对数据字内的数据进行重新定位的可重配置设备 Download PDFInfo
- Publication number
- CN104011617A CN104011617A CN201180076085.6A CN201180076085A CN104011617A CN 104011617 A CN104011617 A CN 104011617A CN 201180076085 A CN201180076085 A CN 201180076085A CN 104011617 A CN104011617 A CN 104011617A
- Authority
- CN
- China
- Prior art keywords
- data
- word
- displacement
- sub
- described data
- 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
- 238000000034 method Methods 0.000 claims abstract description 12
- 238000006073 displacement reaction Methods 0.000 claims description 64
- 230000009471 action Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 235000019580 granularity Nutrition 0.000 description 4
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
Abstract
在此公开了用于数据操纵(尤其是用于SIMD操作(诸如置换、移位和轮转))的系统和设备以及相关方法。装置包括对子字边界上的数据进行重新定位的置换部分以及将数据重新定位小于子字宽度的距离的移位部分。子字宽度是可配置和可选择的,并且置换部分和移位部分可在不同的边界宽度上操作。在第一级中,置换部分在最近的子字边界处对数据进行重新定位,并且在第二级中,移位部分将数据重新定位到其最终希望位置。移位部分包括成对数级联关系的多级集合。附加地,多级的每一级内的每个移位器是高度连接的,允许快速和准确的数据移动。
Description
技术领域
所公开的技术涉及平行数据重新定位电路,并且更具体地涉及以可选择的子字(sub-word)长度对数据执行置换、移位、和轮转功能。
背景
为了继续在消费者中流行,移动及其他设备中的微处理器必须在各种任务下运行良好。微处理器的某些最繁重的功能包括视频处理、图形处理、高质量音频处理、以及实时数据处理,所有这些对消费者而言都很重要。这些应用都具有高数据吞吐量要求,这转换为高功率要求,而同时,平台还要求低功率预算,以便最大化电池寿命。
许多微处理器指令集架构包括单指令多数据(SIMD)处理指令,其在多段数据上执行相同的指令、或指令集。这种指令比要求每个数据部分具有其自己的指令更高效。许多这些指令集架构包括子字平行整数/浮点算术向量指令,诸如AVX和SSE指令集。这些指令集通过在低精度数据上并行地执行若干操作,改善这种数据密集型应用的性能。SIMD架构常用于处理这种指令的高吞吐量需求。这些指令集中的关键数据功能包括置换、移位、和轮转,所有这些是被构造成用于执行SIMD指令的特殊化硬件的功率及性能关键组件。
现有的电路中的典型移位/轮转单元具有固定的操作数位宽度和并行度。然而,位宽度和并行度的配置对不同的应用具有不同的要求。一种处理各种应用的要求的方法是具有包括用于多个平行数据宽度中的每一个的单独移位器的移位/轮转电路,然而,这导致可观的面积和泄露功率开销。
图1是包括具有不同宽度的多个移位器的常规设计的移位/轮转设备的功能框图。移位/轮转系统100包括一系列四个移位/轮转电路110、112、114、和116,每个电路包括64位的数据字宽度。64位数据字可配置用于32位、16位、和8位的子字尺寸。同时,移位/轮转系统100可操纵高达256位。
如图1所见,基于所选择的子字的宽度在移位/轮转电路中选择特定的移位器。例如,如果子字具有8位宽度,那么八个8位移位器用于执行所选择的移位/轮转动作。如果代替子字具有32位的宽度,则使用两个32位移位器。
例如,参考图2,假定操作是将32位子字向右轮转19位距离。使用常规的移位/轮转系统,诸如图1的系统100,会首先使用解复用器将32位子字加载到移位/轮转电路110的32位移位器之一中。然后,执行轮转命令并且32位移位器将数据向右轮转19个位置。最终使用4:1复用器将所轮转的数据发送到输出。不在本操作中使用移位/轮转电路110的8位和16位移位器。因而,移位/轮转系统100不仅较大而且包括很少使用的若干组件,导致可观的面积和泄露功率开销。
本发明实施例解决了现有技术中的这些和其他限制。
附图简要说明
通过举例而非通过限制在附图中示出本发明实施例,并且在附图中,相似的附图标记指代相似的元素。
图1是常规设计的移位/轮转设备的功能框图。
图2是示出图1的移位/轮转设备中的移位操作的框图。
图3是根据本发明实施例的置换/移位/轮转设备的功能框图。
图4是示出图3的置换/移位/轮转设备中的移位操作的框图。
图5是示出根据本发明实施例的置换/移位/轮转设备的置换部分的附加细节的功能框图。
图6是示出根据本发明实施例的置换/移位/轮转设备的移位部分的附加细节的功能框图。
图7是示出根据本发明实施例的图6的移位设备的移位部分之一的附加细节的功能框图。
图8是示出根据本发明实施例的图7所示移位部分之一的一个级的进一步的细节的功能框图。
图9是可实现本发明实施例的计算机系统的功能框图。
详细说明
图3是根据本发明实施例的置换/移位/轮转设备的功能框图。置换/移位/轮转设备300包括置换部分310和移位/轮转部分350。为了简明,置换/移位/轮转设备300在此被称为数据操纵设备300,置换部分310被称为置换器310,并且移位/轮转部分350在此被称为移位器350,不管移位器350是在移位功能还是在轮转功能上操作,以下详细描述这两者。
置换器310包括32个单独的置换电路,每个具有8位粒度。换言之,8个位同时移动。在图3所示的实施例中,置换器310是265位宽度,其可跨32个8位子字执行任意置换。
移位器350包括八个8位移位器362的四个单独的实例,以及下述的控制和掩码电路372。对于总共256位,移位器350的每个实例在八个8位移位器中处理64位,其匹配置换器310的数据路径尺寸。
总体上,在操作中,通过数据操纵设备300在两个流水线级中对数据进行重新排列。在第一流水线级中,数据由置换器310操作,而在第二流水线级中,数据由移位器350操作。如果所希望的数据操纵可由置换器310自身执行,而不要求移位器350,则在单个流水线级中执行数据操纵并且将其从置换器310输出到输出320。如果所希望的操作在8位边界上发生(诸如16位、32位、以及64位粒度),则数据操纵可仅由置换器310执行。
对于其中数据被移位或轮转小于8位的那些情况而言,则无需使用置换器310,并且仅移位器350执行该操作。
然而,更常见的是数据操纵将大于8位,不在8位边界上执行,反而要求1位分辨率或粒度。对于那些情况,置换器310用于将数据移动到最近的8位边界,并且然后移位器350用于进行最终的按位移动。图4示出使用上述结合图2所引用的相同示例的示例。在图4中,希望32位数据字向右轮转19位距离。使用本发明实施例,在两个级中执行这个操作。在第一级中,使用置换器310在第一级中将32位数据字向右置换16位距离。16位距离在8位边界上对齐,并且因此置换器310用于执行该操作的该第一部分。接下来,移位器350用于将32位数据字(剩余的3位)轮转到最终所希望的位置。一组寄存器或触发器330可用于在第一和第二级之间存储数据。
参考图5,其是示出数据操纵设备的置换部分的附加细节的框图,当数据操纵设备500在置换模式下时,控制地址通过选择器504(诸如复用器)被直接馈送到置换器510。这导致最小的延迟开销。相反,当数据操纵设备500在移位/轮转模式下时,首先在解码器502中解码这些地址位。尽管解码级耗费附加时间,但是在移位/轮转模式下,数据被旁路通过置换器510到最终输出,并且旁路最终4:1选择器516所导致的延迟增益补偿移位/轮转模式期间的附加解码器延迟。
在移位模式下解码地址可以基于不同的移位/轮转量和操作模式生成将被置换器在第一级中操作的置换地址。操作模式表明数据是在8位、16位、32位、还是64位边界上操作。由于最大粒度的移位/轮转操作是64位,仅一个8:18位置换子单元512用于在移位/轮转模式期间执行按字节混洗。在图5的数据操纵设备500中示出了四个置换子单元512,因为本实施例的最大数据字尺寸是256位。
返回参考图3,数据操纵设备300包括用于接收被划分为具有预定宽度的多个子字的数据字内的数据的输入端。例如,数据字可以是64位并且每个子字是16位。数据操纵设备还接收对数据字内的数据进行重新定位的命令。置换器310被构造成用于当该命令是将数据重新定位预定宽度整数倍的距离时重新定位该数据。移位器350被构造成用于当该命令是将数据重新定位小于子字的预定宽度的距离时重新定位该数据。
图6示出可以是图3的移位器350的实施例的移位器600的进一步的细节。移位器600包括移位单元的四个实例,被标记为620、630、640和650,它们可以是相同的。例如,移位单元620包括八个8位移位器611-618以及八个选择器(诸如复用器621-628)。为了实现多个粒度,初始输入和中间数据在多个子字(8位、16位、32位、64位)边界回环。这在每个移位/轮转级的边界处添加了选择器621-628之一。依赖于其在移位单元620内的位置,选择器可以是4:1、3:1、或2:1,移位单元基于操作模式选择不同的回环数据。通过以这种方式将移位器611-618彼此耦合,移位器可单独地作为8位移位器操作或者可被分组以便形成16位、32位、或64位移位器。例如,在32位模式下,四个移位器611-614一起作为32位移位器来操作,而剩余的四个移位器615-618作为第二32位移位器来操作。
这些单独移位器611-618中的每一个包括以对数顺序排列的三个级,诸如图7所示。在图7中,可以是图6的移位器611-618之一的实施例的单个移位器700包括第一级710、第二级720、和第三级730。级710-730中的每一个包括选择器或复用器系列,诸如图8所示。图8包括用于每个字节的两位复用器系列。例如,字节7包括八个两输入复用器811-818(仅在图8中示出了其中四个)、以及四输入复用器819。数据线连接用于所示不同字节的不同复用器。注意,每个两输入复用器的连接允许将数据移位一位或不移位,依赖于该特定级的所希望的动作。
返回参考图7,级710、720和730中的每一个串联耦合,并且每个级可将其数据移位特定的距离。例如,如图8所示,级一710被构造成将其数据仅移位单个位距离或者不移位。级二710被构造成将其数据仅移位两位距离或者不移位。最终,级三710被构造成将其数据仅移位四位距离或者不移位。使用以这种方式级联连接的移位器,可以移位任意位距离量。例如,为了移位三位距离,第一和第二级710、720都移位其数据,而第三级不移位传递到其上的数据。为了移位四位距离,仅第三级730执行其移位操作,而不是第一或第二级710、720。使用移位器的对数级联,可在非常少的周期内非常高效地移动数据。在其他实施例中,移位器的顺序可反转,诸如第一级被构造成移位四位距离,而第三级被构造成仅移位一位。
还如图7所示的是操作用于生成当执行移位功能时使用的掩码位的可重配置掩码生成器740。回顾上述内容,移位器350(图3)可操作用于移位或轮转。在移位时,从输入侧移入零。例如,当将8位子字向右移位3位时,向左输入三个零。另一方面,轮转将正在从一端移出的位包绕到另一端的输入。可重配置的掩码生成器允许来自移位器的第三级730的输出被无效、或掩码,依赖于所希望的操作。而且,二补码生成器750操作用于在将轮转地址位发送到右轮转单元之前通过对其进行二补码操作来以已知方式将右移位改变为左移位。
图9示出计算机架构900的实施例,其可表示任意已知的计算设备,诸如主机、服务器、个人计算机、工作站、膝上计算机、手持式计算机、电话设备、媒体播放器、网络应用、虚拟化设备、存储控制器等等。架构900可包括处理器902(例如,微处理器)、存储器904(例如,非易失性存储器设备)、以及存储906(例如,非易失性存储,诸如磁盘驱动器、光盘驱动器、磁带驱动器等等)。存储906可包括内部存储设备或附接或网络可访问存储。存储906内的程序可被加载到存储器904并且被处理器902以已知方式执行。处理器902可包括SIMD指令,并且在此所述的数据操纵设备可被包括在处理器902内以便在SIMD或其他数据操纵指令上操作。
在一些实施例中,无线通信单元907可与其他无线设备(诸如蜂窝电话、无线语音和数据网络、无线输入/输出设备等等)通信。架构900进一步包块网络控制器或适配器908以便使能与网络(诸如以太网、光纤通道仲裁环等等)进行通信。而且,在某些实施例中,架构900可包括视频控制器909以便在显示监视器上渲染信息,其中视频控制器909可被实现在视频卡或集成于安装上在主板上的集成电路组件上。除了包括在处理器902上之外或者作为其替代,在此所述的数据操纵设备可被包括在视频控制器909内以便在SIMD或其他数据操纵指令上操作。输入设备910用于向处理器902提供用户输入,并且可包括键盘、鼠标、触控笔、麦克风、触敏显示屏、或任意其他激活或输入机构。输出设备912能够渲染从处理器902、或其他组件(诸如显示监视器、打印机、存储等等)发送的信息。
网络适配器908可被实现在网络卡(诸如外围组件互连(PCI)卡、PCI-快速、或某个其他I/O卡)上、或在安装于主板上的集成电路组件上。存储906可被内部存储设备或者附接存储或网络可访问存储实现。存储906内的程序可被加载到存储器904并且被处理器902执行。
在此所述的技术可被结合在各种硬件架构中。例如,所公开的技术的实施例可被实现为以下内容的组合中的任意一种:使用主板互连的一个或多个微芯片或集成电路、图形和/或视频处理器、多核处理器、硬件逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路(ASIC)、和/或现场可编程门阵列(FPGA)。在此所使用的术语“逻辑”可包括例如软件、硬件、或其任意组合。
尽管已经在此示出和描述了特定实施例,本领域普通技术人员将认识到各种各样的替代和/或等效实现方式可在不背离所公开的技术的实施例的范围的情况下替换所示出和描述的特定实施例。本申请旨在覆盖在此示出和描述的实施例的任意适配或变动。因此,主要旨在所公开的技术的实施例仅由以下权利要求书及其等效物限制。
Claims (35)
1.一种装置,包括:
输入端,用于接收数据字内的数据并且用于接收在所述数据字内重新定位所述数据的命令,所述数据字包括具有预定宽度的多个子字;
置换部分,被构造成用于当所述命令是将所述数据重新定位所述预定宽度整数倍的距离时重新定位所述数据;以及
移位部分,被构造成用于当所述命令是将所述数据重新定位小于所述子字的所述预定宽度的距离时重新定位所述数据。
2.如权利要求1所述的装置,其中,所述子字的所述预定宽度是可配置的。
3.如权利要求2所述的装置,其中,所述输入端被构造成用于接受所述子字的所述预定宽度作为操作模式。
4.如权利要求1所述的装置,其中,所述置换部分附加地被构造成用于当所述命令是将所述数据重新定位大于所述预定宽度的距离时在第一动作中重新定位所述数据,并且其中,所述移位部分被构造成用于在第二动作中将所述经置换的数据重新定位小于所述预定宽度。
5.如权利要求1所述的装置,进一步包括:
所述置换部分中的多个地址解码器,所述多个地址解码器中每一个与所述置换部分的多个置换子部分中的一个相关联;并且其中,所述多个子部分中的每一个子部分被构造成用于独立于其他子部分对数据进行重新排列。
6.如权利要求1所述的装置,进一步包括:
所述移位部分中的多个地址解码器,所述多个地址解码器中每一个与所述移位部分的多个移位子部分中的一个相关联;并且其中,所述多个子部分中的每一个子部分被构造成用于独立于其他子部分对数据进行移位。
7.如权利要求1所述的装置,其中,所述移位部分还被构造成用于轮转所述数据。
8.如权利要求1所述的装置,其中,所述移位部分是对数移位部分。
9.如权利要求8所述的装置,其中,所述对数移位部分包含三个级。
10.如权利要求1所述的装置,其中,所述移位部分包括多个级,并且其中,第一级包括:
单位移位器系列;以及
反馈电路,在所述反馈电路中,来自所述单位移位器系列的输出被作为可选择输入反馈到所述单位移位器系列。
11.如权利要求10所述的装置,其中,所述系列包括八个单位移位器,并且其中所述反馈电路将所述八个单位移位器中第一个的输出耦合到所述单位移位器系列中所述八个单位移位器中的第二个、第四个和第八个。
12.如权利要求11所述的装置,其中,所述八个单位移位器中所述第一个的输出还耦合到其自身的输入端。
13.如权利要求1所述的装置,其中,所述装置包括四个64位置换部分和四个64位移位部分。
14.一种方法,包括:
接受数据字内的数据,所述数据字具有由多个子字边界限制的多个子字;
接受对所述字内的所述数据进行重新排列的命令;
当所述命令是将所述数据重新排列到与所述子字边界中的一个对齐的位置时,仅使用一个置换单元重新排列所述数据字内的所述数据;以及
当所述命令是将所述数据重新排列小于所述子字边界中的最小边界时,使用移位/轮转单元重新排列所述数据。
15.如权利要求14所述的方法,进一步包括:
使用所述置换单元将所述数据字内的所述数据重新排列到所述多个子字边界中离所述数据字的最终希望位置最近的目标子字边界。
16.如权利要求14所述的方法,进一步包括:
使用所述移位/轮转单元将所述数据从与所述目标子字边界对其的位置移动到所述数据字的所述最终希望位置。
17.如权利要求14所述的方法,其中,使用移位/轮转单元重新排列所述数据包括:
在第一级中移位或轮转所述数据通过第一距离;
在第二级中移位或轮转所述数据通过第二距离;以及
在第三级中移位或轮转所述数据通过第三距离。
18.如权利要求17所述的方法,其中,所述第三距离是子字宽度的一半,并且其中所述第二距离是所述第三距离的一半。
19.如权利要求17所述的方法,其中,使用移位/轮转单元重新排列所述数据包括将移位器的输出反馈回所述移位/轮转单元中的一个或多个其他移位器。
20.如权利要求14所述的方法,其中,使用移位/轮转单元重新排列所述数据包括在任一方向上移位或轮转所述数据。
21.如权利要求14所述的方法,进一步包括:
在使用所述移位/轮转单元重新排列数据之前存储所述数据。
22.如权利要求14所述的方法,其中,使用移位/轮转单元重新排列所述数据包括在轮转期间掩码所述位中的一些位。
23.一种系统,包括:
处理器;
存储器,耦合到所述处理器;
视频控制器,耦合到所述处理器和所述存储器;以及
数据操纵装置,包括:
输入端,用于接收数据字内的数据并且用于接收重新定位所述数据字内的所述数据的命令,所述数据字包括具有预定宽度的多个子字;
置换部分,被构造成用于当所述命令是将所述数据重新定位所述预定宽度整数倍的距离时重新定位所述数据;以及
移位部分,被构造成用于当所述命令是将所述数据重新定位小于所述子字的所述预定宽度的距离时重新定位所述数据。
24.如权利要求23所述的系统,其中,所述子字的所述预定宽度是可配置的。
25.如权利要求23所述的系统,其中,所述输入端被构造成用于接受所述子字的所述预定宽度作为操作模式。
26.如权利要求23所述的系统,其中,所述置换部分附加地被构造成用于当所述命令是将所述数据重新定位大于所述预定宽度的距离时在第一动作中重新定位所述数据,并且其中所述移位部分被构造成用于在第二动作中将所述经置换的数据重新定位小于所述预定宽度。
27.如权利要求23所述的系统,进一步包括:
所述置换部分中的多个地址解码器,所述多个地址解码器中每一个与所述置换部分的多个置换子部分中的一个相关联,其中,所述多个子部分中的每一个子部分被构造成用于独立于其他部分对数据进行重新排列。
28.如权利要求23所述的装置,进一步包括:
所述移位部分中的多个地址解码器,所述多个地址解码器中每一个与所述移位部分的多个移位子部分中的一个相关联,其中,所述多个子部分中的每一个子部分被构造成用于独立于其他子部分对数据进行移位。
29.如权利要求23所述的系统,其中,所述移位部分还被构造成用于轮转所述数据。
30.如权利要求23所述的系统,其中,所述移位部分是对数移位部分。
31.如权利要求30所述的系统,其中,所述对数移位部分包含三个级。
32.如权利要求23所述的系统,其中,所述移位部分包括多个级,并且其中,第一级包括:
单位移位器系列;以及
反馈电路,在所述反馈电路中,来自所述单位移位器系列的输出被作为可选择输入反馈到所述单位移位器系列。
33.如权利要求32所述的系统,其中,所述系列包括八个单位移位器,并且其中,所述反馈电路将所述八个单位移位器中第一个的输出耦合到所述单位移位器系列中所述八个单位移位器中的第二个、第四个和第八个。
34.如权利要求33所述的系统,其中,所述八个单位移位器中的所述第一个的输出还耦合到其自身的输入端。
35.如权利要求23所述的系统,其中,所述装置包括四个64位置换部分和四个64位移位部分。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/068224 WO2013101222A1 (en) | 2011-12-30 | 2011-12-30 | Reconfigurable device for repositioning data within a data word |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104011617A true CN104011617A (zh) | 2014-08-27 |
CN104011617B CN104011617B (zh) | 2018-03-30 |
Family
ID=48698454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076085.6A Active CN104011617B (zh) | 2011-12-30 | 2011-12-30 | 用于对数据字内的数据进行重新定位的可重配置设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140013082A1 (zh) |
EP (1) | EP2798429A4 (zh) |
CN (1) | CN104011617B (zh) |
TW (1) | TWI506547B (zh) |
WO (1) | WO2013101222A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2798454A4 (en) * | 2011-12-30 | 2016-08-17 | Intel Corp | VARIABLE SIMD DISPLACEMENT AND ROTATION USING A CONTROL PANELULATION |
US9292298B2 (en) * | 2013-07-08 | 2016-03-22 | Arm Limited | Data processing apparatus having SIMD processing circuitry |
US11157275B2 (en) | 2018-07-03 | 2021-10-26 | The Board Of Trustees Of The University Of Illinois | Reconfigurable crypto-processor |
CN116383803B (zh) * | 2023-03-14 | 2024-07-19 | 成都海泰方圆科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5113503A (en) * | 1985-07-24 | 1992-05-12 | Hitachi, Ltd. | Data processor providing plural decoders for effecting fast register selection |
EP0757312A1 (en) * | 1995-08-01 | 1997-02-05 | Hewlett-Packard Company | Data processor |
WO2002029552A1 (en) * | 2000-10-04 | 2002-04-11 | Arm Limited | Single instruction multiple data processing |
CN1503936A (zh) * | 2001-02-21 | 2004-06-09 | ƽ | 部分逐位置换 |
CN1506807A (zh) * | 2002-10-25 | 2004-06-23 | ض� | 用于数据的并行右移位合并的方法和装置 |
US20070106882A1 (en) * | 2005-11-08 | 2007-05-10 | Stexar Corp. | Byte-wise permutation facility configurable for implementing DSP data manipulation instructions |
US20070124631A1 (en) * | 2005-11-08 | 2007-05-31 | Boggs Darrell D | Bit field selection instruction |
US20090138534A1 (en) * | 2007-05-23 | 2009-05-28 | The Trustees Of Princeton University | Microprocessor Shifter Circuits Utilizing Butterfly and Inverse Butterfly Routing Circuits, and Control Circuits Therefor |
US20090268085A1 (en) * | 2008-04-25 | 2009-10-29 | Myaskouvskey Artiom | Device, system, and method for solving systems of linear equations using parallel processing |
US20100095097A1 (en) * | 2008-10-14 | 2010-04-15 | International Business Machines Corporation | Floating Point Only Single Instruction Multiple Data Instruction Set Architecture |
US20100107027A1 (en) * | 2008-10-28 | 2010-04-29 | Canon Kabushiki Kaisha | Decoding apparatus, decoding method, and storage medium |
US20100318771A1 (en) * | 2009-06-11 | 2010-12-16 | Ranganathan Sudhakar | Combined byte-permute and bit shift unit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
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 |
US7631025B2 (en) * | 2001-10-29 | 2009-12-08 | Intel Corporation | Method and apparatus for rearranging data between multiple registers |
US8281198B2 (en) * | 2009-08-07 | 2012-10-02 | Via Technologies, Inc. | User-initiatable method for detecting re-grown fuses within a microprocessor |
-
2011
- 2011-12-30 EP EP11878976.7A patent/EP2798429A4/en not_active Withdrawn
- 2011-12-30 CN CN201180076085.6A patent/CN104011617B/zh active Active
- 2011-12-30 WO PCT/US2011/068224 patent/WO2013101222A1/en active Application Filing
- 2011-12-30 US US13/976,923 patent/US20140013082A1/en not_active Abandoned
-
2012
- 2012-11-23 TW TW101143996A patent/TWI506547B/zh active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5113503A (en) * | 1985-07-24 | 1992-05-12 | Hitachi, Ltd. | Data processor providing plural decoders for effecting fast register selection |
EP0757312A1 (en) * | 1995-08-01 | 1997-02-05 | Hewlett-Packard Company | Data processor |
WO2002029552A1 (en) * | 2000-10-04 | 2002-04-11 | Arm Limited | Single instruction multiple data processing |
US7260711B2 (en) * | 2000-10-04 | 2007-08-21 | Arm Limited | Single instruction multiple data processing allowing the combination of portions of two data words with a single pack instruction |
CN1503936A (zh) * | 2001-02-21 | 2004-06-09 | ƽ | 部分逐位置换 |
CN1506807A (zh) * | 2002-10-25 | 2004-06-23 | ض� | 用于数据的并行右移位合并的方法和装置 |
US20070124631A1 (en) * | 2005-11-08 | 2007-05-31 | Boggs Darrell D | Bit field selection instruction |
US20070106882A1 (en) * | 2005-11-08 | 2007-05-10 | Stexar Corp. | Byte-wise permutation facility configurable for implementing DSP data manipulation instructions |
US20090138534A1 (en) * | 2007-05-23 | 2009-05-28 | The Trustees Of Princeton University | Microprocessor Shifter Circuits Utilizing Butterfly and Inverse Butterfly Routing Circuits, and Control Circuits Therefor |
US20090268085A1 (en) * | 2008-04-25 | 2009-10-29 | Myaskouvskey Artiom | Device, system, and method for solving systems of linear equations using parallel processing |
US20100095097A1 (en) * | 2008-10-14 | 2010-04-15 | International Business Machines Corporation | Floating Point Only Single Instruction Multiple Data Instruction Set Architecture |
US20100107027A1 (en) * | 2008-10-28 | 2010-04-29 | Canon Kabushiki Kaisha | Decoding apparatus, decoding method, and storage medium |
US20100318771A1 (en) * | 2009-06-11 | 2010-12-16 | Ranganathan Sudhakar | Combined byte-permute and bit shift unit |
Also Published As
Publication number | Publication date |
---|---|
CN104011617B (zh) | 2018-03-30 |
EP2798429A4 (en) | 2016-07-27 |
US20140013082A1 (en) | 2014-01-09 |
EP2798429A1 (en) | 2014-11-05 |
TW201346750A (zh) | 2013-11-16 |
TWI506547B (zh) | 2015-11-01 |
WO2013101222A1 (en) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7315550B2 (ja) | ソフトウェア定義された量子コンピュータ | |
JP3477584B2 (ja) | ロジックシステム | |
CN101097512B (zh) | 用于实施混洗和移位操作的方法、设备和系统 | |
US20200026745A1 (en) | Apparatuses, methods, and systems for instructions of a matrix operations accelerator | |
CN117724766A (zh) | 用于执行将矩阵变换为行交错格式的指令的系统和方法 | |
EP1267256A2 (en) | Conditional execution of instructions with multiple destinations | |
US10324687B2 (en) | Single operation array index computation | |
JPH09128238A (ja) | Cpuデータ経路における同時入出力動作のための複数レジスタバンクシステム | |
CN104011662A (zh) | 用于提供向量混合和置换功能的指令和逻辑 | |
CN110909883A (zh) | 用于执行指定三元片逻辑操作的指令的系统和方法 | |
CN114625418A (zh) | 用于执行快速转换片并且将片用作一维向量的指令的系统 | |
JP4485272B2 (ja) | 半導体装置 | |
CN103959236A (zh) | 用于提供向量横向多数表决功能的指令和逻辑 | |
CN104011617A (zh) | 用于对数据字内的数据进行重新定位的可重配置设备 | |
CN104204991A (zh) | 将较小的已排序向量合并和排序为较大的已排序向量的指令的方法和装置 | |
CN110321072A (zh) | 针对存储器通信量的存活性保障 | |
CN109992299A (zh) | 用于计算两个区块操作数中的半字节的数量积的系统和方法 | |
US9933996B2 (en) | Selectively combinable shifters | |
US9542343B2 (en) | Memory modules with reduced rank loading and memory systems including same | |
CN107003848A (zh) | 用于融合乘法‑乘法指令的装置和方法 | |
US9916159B2 (en) | Programmable linear feedback shift register | |
JP4483991B2 (ja) | 高速pe間データ再配置機能を有するプロセッサアレイシステム | |
CN101727434A (zh) | 一种特定应用算法专用集成电路结构 | |
US10877729B2 (en) | Reconfigurable segmented scalable shifter | |
JP2013246816A (ja) | ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |