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.一种设备,其包含:处理电路,用于执行由程序指令的序列规定的操作;一组向量寄存器,每个向量寄存器被布置为存储包含多个数据元素的向量;所述处理电路包含存取电路,所述存取电路用于在内存与所述一组向量寄存器中的多个向量寄存器之间移动数据元素,并用于随着移动所述数据元素执行重新排列操作,使得所述数据元素在所述内存中以第一组织排列并且在所述向量寄存器中以不同于所述第一组织的第二组织排列;以及解码电路,被布置为响应于在所述程序指令的序列内的一组重新排列指令,解码所述一组重新排列指令以产生控制信号来控制由所述处理电路执行每个重新排列指令,所述一组重新排列指令中的每个重新排列指令定义数据元素存取模式,该数据元素存取模式不同于由所述一组重新排列指令中的每个其他重新排列指令定义的数据元素存取模式并且导致所述存取电路存取所述多个向量寄存器中的一个以上向量寄存器,其中因为所述处理电路执行所述一组重新排列指令中的全部重新排列指令,所述存取电路被布置为执行所述重新排列操作。
【技术特征摘要】
【国外来华专利技术】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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。