当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于对数据字内的数据进行重新定位的可重配置设备制造技术

技术编号:10355973 阅读:99 留言:0更新日期:2014-08-27 12:17
在此公开了用于数据操纵(尤其是用于SIMD操作(诸如置换、移位和轮转))的系统和设备以及相关方法。装置包括对子字边界上的数据进行重新定位的置换部分以及将数据重新定位小于子字宽度的距离的移位部分。子字宽度是可配置和可选择的,并且置换部分和移位部分可在不同的边界宽度上操作。在第一级中,置换部分在最近的子字边界处对数据进行重新定位,并且在第二级中,移位部分将数据重新定位到其最终希望位置。移位部分包括成对数级联关系的多级集合。附加地,多级的每一级内的每个移位器是高度连接的,允许快速和准确的数据移动。

【技术实现步骤摘要】
【国外来华专利技术】用于对数据字内的数据进行重新定位的可重配置设备
所公开的技术涉及平行数据重新定位电路,并且更具体地涉及以可选择的子字(sub-word)长度对数据执行置换、移位、和轮转功能。背景为了继续在消费者中流行,移动及其他设备中的微处理器必须在各种任务下运行良好。微处理器的某些最繁重的功能包括视频处理、图形处理、高质量音频处理、以及实时数据处理,所有这些对消费者而言都很重要。这些应用都具有高数据吞吐量要求,这转换为高功率要求,而同时,平台还要求低功率预算,以便最大化电池寿命。许多微处理器指令集架构包括单指令多数据(SMD)处理指令,其在多段数据上执行相同的指令、或指令集。这种指令比要求每个数据部分具有其自己的指令更高效。许多这些指令集架构包括子字平行整数/浮点算术向量指令,诸如AVX和SSE指令集。这些指令集通过在低精度数据上并行地执行若干操作,改善这种数据密集型应用的性能。SMD架构常用于处理这种指令的高吞吐量需求。这些指令集中的关键数据功能包括置换、移位、和轮转,所有这些是被构造成用于执行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位边界上执行,反而要求I位分辨率或粒度。对于那些情况,置换器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,它本文档来自技高网...
用于对数据字内的数据进行重新定位的可重配置设备

【技术保护点】
一种装置,包括:输入端,用于接收数据字内的数据并且用于接收在所述数据字内重新定位所述数据的命令,所述数据字包括具有预定宽度的多个子字;置换部分,被构造成用于当所述命令是将所述数据重新定位所述预定宽度整数倍的距离时重新定位所述数据;以及移位部分,被构造成用于当所述命令是将所述数据重新定位小于所述子字的所述预定宽度的距离时重新定位所述数据。

【技术特征摘要】
【国外来华专利技术】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所述的方法,其中,使用移位/轮转单元重新排列所述数据包括: 在第一级中移位或轮转所述数据通过第一距离; 在第...

【专利技术属性】
技术研发人员:A·阿加瓦尔S·徐R·克里西那莫西
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1