当前位置: 首页 > 专利查询>ARM有限公司专利>正文

用于执行重新排列操作的设备及方法技术

技术编号:20499676 阅读:22 留言:0更新日期:2019-03-03 03:19
本发明专利技术提供一种用于随着数据元素在内存与向量寄存器之间移动而执行向量重新排列操作的设备及方法。该设备具有用于执行由程序指令序列规定的操作的处理电路及一组向量寄存器,其中各个向量寄存器被布置以存储包含多个数据元素的向量。该处理电路包括存取电路,用以在内存与该组的多个向量寄存器之间移动数据元素并且随着移动这些数据元素执行重新排列操作使得这些数据元素在该内存中以第一组织排列并在这些向量寄存器中以第二不同组织排列。解码电路被布置以响应于在该程序指令序列内的一组重新排列指令以产生控制信号来控制通过该处理电路执行各个重新排列指令。该组中各个重新排列指令定义数据元素存取模式,该模式不同于由该组中各个其他重新排列指令定义的数据元素存取模式,并且导致该存取电路存取在该重新排列操作中所涉及的这些多个向量寄存器中的一个以上向量寄存器。经由该方法,由于该处理电路执行该组中全部重新排列指令,该存取电路执行该重新排列操作。使用此组重新排列指令可使得通过在该设备内降低停滞有效执行重新排列操作,若响应于执行单个指令实施待执行以实施该重新排列操作的全部所需步骤,则可发生该停滞。

Equipment and methods for performing rearrangement operations

The invention provides a device and method for performing vector rearrangement operation as data elements move between memory and vector registers. The device has a processing circuit for performing operations specified by a sequence of program instructions and a set of vector registers, in which each vector register is arranged to store vectors containing multiple data elements. The processing circuit includes an access circuit for moving data elements between memory and multiple vector registers of the group and performing a rearrangement operation along with the movement of these data elements so that the data elements are arranged in the memory in the first organization and in the vector registers in the second different organization. The decoding circuit is arranged to generate control signals in response to a set of rearrangement instructions within the sequence of program instructions to control the execution of each rearrangement instruction through the processing circuit. Each rearrangement instruction in the group defines the data element access mode, which is different from the data element access mode defined by each other rearrangement instruction in the group, and causes the access circuit to access more than one vector register in these multiple vector registers involved in the rearrangement operation. Through this method, since the processing circuit executes all rearrangement instructions in the group, the access circuit executes the rearrangement operation. Using this set of rearrangement instructions enables the rearrangement operation to be effectively performed by reducing the stagnation within the device, which can occur if all the steps required to perform the rearrangement operation are implemented in response to the execution of a single instruction.

【技术实现步骤摘要】
【国外来华专利技术】用于执行重新排列操作的设备及方法
本技术涉及数据处理领域,并且更具体地,涉及向量指令的处理以便随着数据元素在内存与一组向量寄存器之间移动执行重新排列操作。
技术介绍
一些数据处理系统支持向量指令的处理,对于这些向量指令,指令的源操作数或结果值是包含多个数据元素的向量。通过支持响应于单个指令处理多个不同数据元素,代码密度可经改进并且获取及解码指令的额外负担可降低。可通过将数据值加载到向量操作数的各自元素并且使用单个向量指令一次处理若干元素的数据值来更有效处理待处理的数据值的数组。已知提供向量加载及存储指令,当将这些指令从内存加载到向量寄存器或从向量寄存器存储回内存也可执行数据元素的重新排列。这些重新排列操作是有用的,因为存在多种情况,其中数据以与在向量寄存器内需要以实现有效向量处理的组织方式不同的形式在内存中组织。例如,存在众多情形,其中在内存中的数据经交织并且在处理器中需要以去交织形式处理该数据。此数据的一些示例包括多信道音频数据、RGBA影像数据及复数。然而,各个这种向量加载或存储指令表示大量计算。例如,已知类型的向量加载指令可从内存加载512位数据,并且填充四个全部向量寄存器,各自由128位。在小的有序核心上,这意味该指令可停滞若干周期。这可因此导致性能问题。此外,这些性能影响可在某些类型处理器排列中加剧。例如,在允许重叠执行内存与算术操作的处理器中,任何内存相关的停滞可表示错失执行算术操作的机会,因此加剧性能问题。因此期望提供用于在内存与向量寄存器之间在任一方向中移动数据时而执行这些重新排列操作的经改进机制。
技术实现思路
在一个示例配置中,提供一种设备,其包含:处理电路,用以执行由程序指令序列规定的操作;一组向量寄存器,各个向量寄存器被布置以存储包含多个数据元素的向量;该处理电路包含存取电路,该存取电路用以在内存与该组向量寄存器中的多个向量寄存器之间移动数据元素并且用于随着移动数据元素执行重新排列操作,使得这些数据元素在该内存中以第一组织排列并且在这些向量寄存器中以不同于第一组织的第二组织排列;以及解码电路,其被布置以响应于在该程序指令序列中的一组重新排列指令而解码该组重新排列指令以产生控制信号来控制通过该处理电路执行各个重新排列指令,该组中各个重新排列指令定义数据元素存取模式,该模式不同于由该组中各个其他重新排列指令定义的数据元素存取模式并且导致该存取电路存取这些多个向量寄存器的一个以上向量寄存器,其中由于该处理电路执行该组中全部重新排列指令,该存取电路被布置以执行该重新排列操作。根据另一示例配置,提供一种在具有用以执行由程序指令序列规定的操作的处理电路及一组向量寄存器的装置内执行重新排列操作的方法,各个向量寄存器被布置以存储包含多个数据元素的向量,该方法包含:采用该处理电路的存取电路以在内存与该组多个向量寄存器中的多个向量寄存器之间移动数据元素,并且用以随着移动这些数据元素执行该重新排列操作,使得这些数据元素在该内存中以第一组织排列并且在这些向量寄存器中以不同于第一组织的第二组织排列;以及解码在该程序指令序列内的一组重新排列指令以产生控制信号来控制通过该处理电路执行各个重新排列指令,该组中各个重新排列指令定义数据元素存取模式,该模式不同于由该组中各个其他重新排列指令定义的数据元素存取模式并且导致该存取电路存取这些多个向量寄存器中的一个以上向量寄存器;其中,由于通过该处理电路执行该组中全部重新排列指令,该重新排列操作通过该存取电路执行。根据另一示例配置,提供一种装置,其包含:处理单元,用于执行由程序指令序列规定的操作;一组向量寄存器单元,各个向量寄存器单元用于存储包含多个数据元素的向量;该处理单元包含存取单元,该存取单元用于在内存与该组的多个向量寄存器单元之间移动数据元素并且用于随着移动数据元素执行重新排列操作,使得这些数据元素在该内存中以第一组织排列并且在该向量寄存器单元中以不同于该第一组织的第二组织排列;以及解码单元,用于响应于在该程序指令序列中的一组重新排列指令通过解码该组重新排列指令以产生控制信号来控制通过该处理单元执行各个重新排列指令,该组中各个重新排列指令定义数据元素存取模式,该模式不同于由该组中各个其他重新排列指令定义的数据元素存取模式并且导致该存取单元存取该多个向量寄存器单元中的一个以上向量寄存器单元,其中,由于该处理电路执行该组中全部重新排列指令,该存取单元被布置以执行重新排列操作。根据又一示例配置,提供一种虚拟机计算机程序,其包含用以控制主机数据处理装置的程序指令以提供对应于上文所论述的装置的指令执行环境。也可提供存储虚拟机计算机程序之计算机可读存储介质。此存储介质可是非暂时性存储介质。附图说明仅通过示例的方式,将参考在附图中示出的实施例进一步描述本技术,其中:图1示意地例示了支持向量指令的处理的数据处理设备的示例;图2示出了重叠执行向量指令的示例;图3示出了三个实例,它们缩放在不同处理器实现之间的连续向量指令之间的重叠量或在运行时间在执行这些指令的不同实例之间的重叠量;图4示出了其中标量指令的执行破坏在两个向量指令之间的重叠的示例;图5是示意地例示该组向量寄存器可如何在多个区段中逻辑上排列的图;图6是示意地例示在一个实施例中一组加载指令可如何排列以在从内存加载到向量寄存器的数据上共同地执行去交织操作的图;图7A至图7G例示了可与在用于不同大小数据元素的一组重新排列指令内的个别指令相关的不同数据元素存取模式;图8是例示根据一个实施例模式ID及节拍ID信息可如何用以产生地址词组偏移以当执行具有跨距4的向量加载指令之一(VLD4n指令)时识别在内存中的待存取的地址的图;图9例示了根据一个实施例在执行VLD4n指令期间可用于决定要存取的向量寄存器的适当部分的电路;图10是例示根据一个实施例可如何重叠向量加载及乘法累加指令的时序图;图11A至图11D例示了根据一个实施例编码可提供的加载及存储指令的各种示例;图12是例示根据一个实施例当处置一组重新排列指令时操作图1的指令解码器的流程图;图13例示了根据一个实施例可执行的数据加宽操作;图14A及图14B例示了根据一个实施例述语信息可如何用以影响在执行一组重新排列指令期间执行的操作;图15示意地示出了根据一个实施例的具有写入存取电路的向量寄存器文件的一部分;图16示意地示出了根据一个实施例的具有读取存取电路的向量寄存器文件的一部分;图17示意地示出了根据一个实施例的具有写入存取电路的向量寄存器文件;图18示意地示出了根据一个实施例的具有读取存取电路的向量寄存器文件;图19A例示了在向量寄存器文件中单扭转的示例,其中以示出的这些词组的文本格式说明该向量寄存器文件;图19B例示了在向量寄存器文件中单扭转的示例,其中以示出的字节的文本格式说明该向量寄存器文件;图20例示了在向量寄存器文件中双重扭转的示例,其中以字节格式说明该向量寄存器文件;图21根据一个实施例示意地示出了向量寄存器文件的一个区段,其中该电路执行双重扭转;图22是根据一个实施例例示了可如何一般化执行扭转的过程以执行嵌套扭转任意次数的图;图23根据一个实施例示意地示出了作为寄存器存取电路的示例的读取存取电路;图24根据一个实施例示意地示出了作为寄存器存取电路的示例的写本文档来自技高网...

【技术保护点】
1.一种设备,其包含:处理电路,用于执行由程序指令的序列规定的操作;一组向量寄存器,每个向量寄存器被布置为存储包含多个数据元素的向量;所述处理电路包含存取电路,所述存取电路用于在内存与所述一组向量寄存器中的多个向量寄存器之间移动数据元素,并用于随着移动所述数据元素执行重新排列操作,使得所述数据元素在所述内存中以第一组织排列并且在所述向量寄存器中以不同于所述第一组织的第二组织排列;以及解码电路,被布置为响应于在所述程序指令的序列内的一组重新排列指令,解码所述一组重新排列指令以产生控制信号来控制由所述处理电路执行每个重新排列指令,所述一组重新排列指令中的每个重新排列指令定义数据元素存取模式,该数据元素存取模式不同于由所述一组重新排列指令中的每个其他重新排列指令定义的数据元素存取模式并且导致所述存取电路存取所述多个向量寄存器中的一个以上向量寄存器,其中因为所述处理电路执行所述一组重新排列指令中的全部重新排列指令,所述存取电路被布置为执行所述重新排列操作。

【技术特征摘要】
【国外来华专利技术】2016.07.08 GB 1611943.01.一种设备,其包含:处理电路,用于执行由程序指令的序列规定的操作;一组向量寄存器,每个向量寄存器被布置为存储包含多个数据元素的向量;所述处理电路包含存取电路,所述存取电路用于在内存与所述一组向量寄存器中的多个向量寄存器之间移动数据元素,并用于随着移动所述数据元素执行重新排列操作,使得所述数据元素在所述内存中以第一组织排列并且在所述向量寄存器中以不同于所述第一组织的第二组织排列;以及解码电路,被布置为响应于在所述程序指令的序列内的一组重新排列指令,解码所述一组重新排列指令以产生控制信号来控制由所述处理电路执行每个重新排列指令,所述一组重新排列指令中的每个重新排列指令定义数据元素存取模式,该数据元素存取模式不同于由所述一组重新排列指令中的每个其他重新排列指令定义的数据元素存取模式并且导致所述存取电路存取所述多个向量寄存器中的一个以上向量寄存器,其中因为所述处理电路执行所述一组重新排列指令中的全部重新排列指令,所述存取电路被布置为执行所述重新排列操作。2.根据权利要求1所述的设备,其中,所述存取电路响应于执行所述一组重新排列指令中的每个重新排列指令以在所述内存与所述多个向量寄存器之间移动不同的数据元素,而非通过执行所述一组重新排列指令中的每个其他重新排列指令移动。3.根据权利要求1或2所述的设备,其中,所述一组重新排列指令中的每个重新排列指令识别所述多个向量寄存器,并且定义数据元素存取模式,该数据元素存取模式导致所述存取电路存取在所述多个向量寄存器中的每个中的至少一个数据元素。4.根据前述权利要求中任一项所述的设备,其中:在执行所述一组重新排列指令中的每个重新排列指令期间,所述存取电路被布置为对所述内存中的连续词组执行至少一个存取。5.根据权利要求4所述的设备,其中:在执行所述一组重新排列指令中的每个重新排列指令期间,所述存取电路被布置为对所述内存中的连续词组执行独立存取。6.根据权利要求5所述的设备,其中:所述一组向量寄存器在逻辑上可分为多列,所述多列中的每列被布置以存储每个向量的相同部分,所述一组向量寄存器包含至少两个部分,其中每个部分包含至少一列,并且每列仅驻留在一个部分中;以及与每个重新排列指令相关的向量寄存器存取模式是使得,与对所述内存中的连续词组独立存取中的每个相关地,所述存取电路被布置为存取在这些部分中的一个不同部分中的数据元素。7.根据权利要求6所述的设备,其中:所述处理电路包含用以执行由算术处理指令规定的算术操作的算术处理电路;以及所述解码电路响应于包括所述算术处理指令及所述重新排列指令的程序指令序列来产生导致执行所述重新排列指令中的至少一个与执行所述算术处理指令中的至少一个至少部分重叠的控制信号,在所述重叠执行期间,所述算术处理电路被布置为将所述一组寄存器的不同部分存取至由所述存取电路存取的部分。8.根据权利要求1所述的设备,其中:所述内存是由多个内存组形成;以及针对各个重新排列指令,所述数据元素存取模式被定义以导致当由所述处理电路执行所述重新排列指令时存取一个以上所述内存组。9.根据权利要求8所述的设备,其中:在执行所述一组重新排列指令中的每个重新排列指令期间,所述存取电路被布置以对所述内存中的连续词组执行独立存取;以及针对所述独立存取中的每个,所述数据元素存取模式被定义以导致由所述存取电路存取一个以上所述内存组。10.根据权利要求8所述的设备,其中:在执行所述一组重新排列指令中的每个重新排列指令期间,所述存取电路被布置以对所述内存中的连续词组执行独立存取;以及所述数据元素存取模式被定义以导致所述存取电路在所述独立存取中的至少一个期间存取所述内存组的第一子组,所述第一子组不同于在所述独立存取中的至少另一个期间存取的内存组的第二子组。11.根据权利要求1所述的设备,其中:所述数据元素被分为数据结构;根据所述第一组织,每个数据结构的数据元素在所述内存中连续排列;以及根据所述第二组织,来自多个数据结构的对应数据元素在每个向量寄存器内连续排列。12.根据权利要求11所述的设备,其中,执行所述一组重新排列指令导致所述存取电路从内存加载多个数据结构的数据元素并且在将所述数据元素写入所述多个向量寄存器之前执行去交织操作作为所述重新排列操作。13.根据权利要求11所述的设备,其中执行所述一组重新排列指令导致所述存取电路从所述多个向量寄存器读取所述数据元素并且在将所述数据元素作为多个数据结构存储在所述内存中之前执行交织操作作为所述重新排列操作。14.根据权利要求1所述的设备,其中:所述数据元素被分组为...

【专利技术属性】
技术研发人员:托马斯·克里斯多夫·格鲁卡特
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1