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

在寄存器和存储器之间移动数据的数据处理设备和方法技术

技术编号:2846389 阅读:203 留言:0更新日期:2012-04-11 18:40
一种为在寄存器和存储器之间移动数据而提供的数据处理设备和方法。该数据处理设备包括寄存器数据存储体,具有多个寄存器,可以用来存入数据元素。处理器可以用来并行地对占用该寄存器中至少一个的不同的并行处理通道的多个数据元素执行数据处理操作。提供访问逻辑,所述访问逻辑响应单一访问指令,在指定的寄存器中选定的通道和具有结构格式的存储器内的构之间移动多个数据元素,所述结构格式具有多个分量。单一访问指令识别结构格式中分量的数目,而访问逻辑可以用来来在多个数据元素被移动时将它们这样排列,使得不同分量的数据元素存储在不同的指定的寄存器中选定的通道内,而同时把所述数据元素以所述结构的形式存储在存储器中。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于。
技术介绍
当需要对若干个单独的数据元素执行特定的数据处理操作时,一种加速执行这样一种操作的已知方法是使用SIMD(单指令多数据)方法。按照SIMD方法,所述多个数据元素并排地放在寄存器内,然后并行地对那些数据元素执行操作。但是,SIMD方法实际性能上的优点只有在这些数据元素可以无须重大的系统开销即能以适当的顺序排列在寄存器内才能充分现实。一般,执行SIMD操作之前,这些相关的数据元素需要从存储器装入这些寄存器,而情况往往是,所述SIMD操作所需要的数据元素并非连续地定位在存储器的地址空间内。作为实例,存储器中的数据可能代表像素值的红、绿和蓝分量(亦即,RGB数据),而可能希望对不处在连续存储块中的某些像素的红、绿和蓝分量施行特定的SIMD操作。因而,这要求从存储器检索数据,送入某些寄存器,然后重新排列数据,使得红、绿和蓝数据元素占用不同的寄存器。将要求多次访问来检索所需的数据,然后一般要求重新安排该数据,以保证数据正确地排列在该寄存器中,以便允许执行SIMD操作。访问所需的数据元素的一种方法是为每个数据元素发出一条单独的指令,然后把数据元素放置在指定的目的地寄存器内。作为示例,考虑用于上面讨论的像素值的红数据元素,这会使每一行数据元素占用单独的寄存器。然后,可以执行重新排列操作,以便把各个红数据元素采集到一个或多个寄存器中,此后可以对那些数据元素执行SIMD处理。若想对那些元素施行SIMD处理,则对绿和蓝数据元素也需要进行类似的过程。下面将要指出,这样一种方法涉及对存储器的大量的访问,另外,要求在它们重新排列之前,要有相当数目的寄存器来接纳该数据元素。另外,除多重访问对性能造成有害影响以外,在数据排列成可以经受SIMD处理的顺序以前,重新排列数据所用的时间也对性能造成冲击,而这种消极的影响冲击使用SIMD操作可能现实的潜在的性能上的优点。若该体系结构允许,对上述已知的技术一种可能的增强将是同时检索一个像素的红、绿和蓝数据元素,并把那3个数据元素置入特定的寄存器。尽管这可以减少所需的访问次数,但是它仍旧会要求执行重新排列的操作,以便在能在发生SIMD操作之前,把不同的分量的数据元素移入不同的寄存器。另外,为了为SIMD处理作准备而重新排列所检索的数据元素之前存储它们,仍旧需要相当数量的寄存器。在矢量处理的不同的
中,已知提供装入指令,它可以通过指定起始地址和步距而从存储器不连续的位置采集各个数据元素。例如,这可以允许每隔二个数据元素从特定的地址开始装入寄存器。还可以提供类似的存储指令。但是,这个方法一般涉及实现这样的跨越功能所需的装入/存储硬件复杂性增大,尽管这在矢量处理系统中被认为是值得的,但是在大部分其它的数据处理系统是不希望有的。另外,这种方法有相当大的限制性,因为在为后续的SIMD处理中要采集到寄存器中的数据元素将需要以特定的跨距隔开,而情况往往并非如此。例如,该数据元素可以通过链接表而彼此相关,其中存储器中一个和下一个数据元素之间的间隔因数据元素而异。另外,考虑早期的示例,其中该数据代表像素的红、绿和蓝分量,然后若需要所有3个分量,则每一个分量都将需要单独的跨距指令。因而,尽管为了支持跨越功能而增大装入/存储单元的复杂性可以允许红分量被采集进入特定的寄存器,蓝分量采集进入另一个寄存器,而绿分量采集进入另一个寄存器(在该受限制的情况下,其中所需的数据元素隔开固定的跨距),但是这要求为每一个分量发出单独的指令。因此,为了支持有效的SIMD处理操作,最好提供一种改善的技术,用来在指定的寄存器和存储器之间移动数据元素。专利技术概要从第一方面看,本专利技术提供一种数据处理设备,它包括寄存器数据存储体,具有多个寄存器,可以用来保存数据元素;处理器,可以用来并行地对占用所述寄存器中至少一个的不同的并行处理通道的多个数据元素执行数据处理操作;访问逻辑,可以用来响应单一访问指令,在指定的寄存器中所述各通道中选定的一个和存储器中具有结构格式的结构之间移动多个数据元素,所述结构格式具有多个分量;所述单一访问指令识别所述结构格式中分量的数目;以及所述访问逻辑可以用来在多个数据元素被移动时对它们进行排列,使得不同分量的数据元素被保存所述选择的通道中不同的指定的寄存器中,同时在存储器中所述数据元素以所述结构格式被保存。按照本专利技术,该数据处理设备具有具有多个寄存器的寄存器数据存储体,可以用来存储数据元素;和处理器,可以用来并行地对占用这些寄存器中的至少一个的不同的并行处理通道的多个数据元素执行数据处理操作。因而,作为示例,若一个特定的寄存器保存八个截然不同的数据元素,每一个都要独立地经受数据处理操作(亦即,对该八个数据元素执行SIMD操作),则可以认为存在八个并行处理通道。按照本专利技术,访问逻辑可以用来响应单一的访问指令,在指定的寄存器中一个选定的通道和具有结构格式存储器内的结构之间移动多个数据元素,该结构格式具有多个分量。相应地,考虑以红、绿和蓝数据元素的形式代表像素数据的早期结构示例,可以看出,若希望对红、绿和蓝数据元素执行不同的操作,则该结构格式具有3个分量。作为另一个示例,若存储器中的数据代表复数,具有实部和虚部,则该结构格式可以有两个分量,一个代表实部的分量和一个代表虚部的分量,假定希望对这些分量执行不同的操作。安排单一访问指令来识别结构格式中分量的数目,而访问逻辑可以用来在所述多个数据元素被移动时排列所述多个数据元素,使得不同分量的数据元素存入不同的指定的寄存器的选定的通道内,而同时在存储器中所述数据元素是以所述结构的形式存储的。相应地,所述单一访问指令使同时移动特定的指定结构内的数据元素成为可能,另外,要在所述数据元素被移动时适当地排列它们,使得不同分量的数据元素可以放入不同的寄存器。在采取装入指令形式的单一访问指令方面,这意味着,形成特定的结构的分量的所有数据元素可以在一个操作中装入,并且将它们这样排列,得使它们被放置入所述被选定来接纳该数据元素的寄存器中的特定的通道内。相应地,以具有红、绿和蓝数据元素的像素的早期示例为例,可以用一个装入指令来装入一个像素的红、绿和蓝数据元素,并且这样排列那些数据元素,使得在那些寄存器的选定的通道内,红数据元素进入一个寄存器,绿数据元素进入另一个寄存器,而蓝数据元素进入另一个寄存器。因而,这提供一种特别有效的技术,用来把一种结构从存储器装入并使组成的数据元素以它们在后续的SIMD处理中有效的形式进入寄存器。类似地,该单一访问指令也可以采取存储指令的形式,所述存储指令安排来执行类似的过程,以便为特定的结构从指定的寄存器的选定通道提取数据元素,然后这样排列所述数据元素使得那些数据元素以正确的结构格式存回存储器。因而,这使当数据已经经受SIMD处理之后存回存储器时实现性能的重大提高成为可能。下面将要指出,可以以各种各样的方法指定所述选定的通道。例如,在一个实施例中,预定的通道可以在每次执行单一访问指令时识别,该访问是针对预定的通道进行的。这会允许在循环中多次重复相同的指令,但是可以要求该数据的某些重新排列,例如,保证刚装入的任何数据都不被正在装入的新数据覆盖,或万一进行存储时要保证不同的数据在每一次叠代时存回存储器。但是,在一个实施例中,所述单一本文档来自技高网
...

【技术保护点】
一种数据处理设备,它包括:寄存器数据存储体,具有多个寄存器,可以用来保存数据元素;处理器,可以用来并行地对占用所述寄存器中至少一个的不同的并行处理通道的多个数据元素执行数据处理操作;访问逻辑,可以用来响应单一访问指令,在指定的寄存器内所述通道中选定的一个和存储器内具有结构格式的结构之间移动多个数据元素,所述结构格式具有多个分量;所述单一访问指令识别所述结构格式中分量的数目;以及所述访问逻辑可以用来在所述多个数据元素移动时这样排列所述多个数据元素,使得不同分量的数据元素保存在不同的指定的寄存器中选定的通道内,而同时以所述结构的形式把所述数据元素保存在存储器中。

【技术特征摘要】
【国外来华专利技术】GB 2003-12-9 0328538.41.一种数据处理设备,它包括寄存器数据存储体,具有多个寄存器,可以用来保存数据元素;处理器,可以用来并行地对占用所述寄存器中至少一个的不同的并行处理通道的多个数据元素执行数据处理操作;访问逻辑,可以用来响应单一访问指令,在指定的寄存器内所述通道中选定的一个和存储器内具有结构格式的结构之间移动多个数据元素,所述结构格式具有多个分量;所述单一访问指令识别所述结构格式中分量的数目;以及所述访问逻辑可以用来在所述多个数据元素移动时这样排列所述多个数据元素,使得不同分量的数据元素保存在不同的指定的寄存器中选定的通道内,而同时以所述结构的形式把所述数据元素保存在存储器中。2.如权利要求1所述的数据处理设备,其中所述单一访问指令指定所述选定的通道。3.如权利要求1或权利要求2所述的数据处理设备,其中所述访问逻辑响应一序列所述单一访问指令,在指定的寄存器中多个选定的通道和存储器中相应的多个结构之间移动数据元素。4.如上述权利要求中任何一项所述的数据处理设备,其中所述结构包括一个分量,而所述指定的寄存器包括一个寄存器。5.如上述权利要求中任何一项所述的数据处理设备,其中所述单一访问指令识别所述指定的寄存器,所述指定的寄存器的数目是分量数目的倍数。6.如上述权利要求中任何一项所述的数据处理设备,其中所述单一访问指令包括识别与所述要移动的数据元素相联系的数据类型的数据类型信息。7.如权利要求6所述的数据处理设备,其中所述要移动的数据元素中的每一个具有相同的数据类型。8.如上述权利要求中任何一项所述的数据处理设备,其中所述指定的寄存器具有固定的彼此关系。9.如权利要求8所述的数据处理设备,其中按照所述固定的关系,所述指定的寄存器被n个中间寄存器隔开,其中n是2m-1,而m是大于或等于零的整数。10.如权利要求8或权利要求9所述的数据处理设备,其中所述指定的寄存器是所述寄存器数据存储体内一系列相邻的寄存器。11.如上述权利要求中任何一项所述的数据处理设备,其中所述单一访问指令是单一装入指令,所述访问逻辑可以用来响应该单一装入指令,把所述多个数据元素从所述存储器内的所述结构装入所述指定的寄存器的选定通道,而且在所述数据元素存储在所述指定的寄存器的选定通道之前,这样排列所述数据元素,使得不同分量的数据元素存储在所述指定的寄存器的不同寄存器中。12.如权利要求1至10中任何一项所述的数据处理设备,其中所述单一访问指令是单一存储指令,所述访问逻辑可以用来响应该单一存储指令,把所述多个数据元素从所述指定的寄存器的选定通道存入所述存储器内的所述结构,而且在所述数据元素存储在所述结构之前,这样排列所述数据元素,以便以所述结构格式存储所述数据元素。13.如权利要求11所述的数据处理设备,其中所述访问逻辑可以用来用一个或多个预定的值填充所述指定的寄存器的未填满部分。14.如上述权利要求中任何一项所述的数据处理设备,其中所述单一访问指令识别要用来识别所述要移动的数据元素的寻址方式。15.如权利要求14所述的数据处理设备,其中所述寻址方式识别所述存储器内所述结构的起始地址。16.如上述权利要求中任何一项所述的数据处理设备,其中所述指定的寄存器具有相同的尺寸。17.如上述权利要求中任何一项所述的数据处理设备,其中所述单一访问指令识别要对所述数据元素施行的转换,而所述访问逻辑可以用来在所述数据元素被移动时对所述数据元素施行所述转换。18.一种操作数据处理设备的方法,所述数据处理设备包...

【专利技术属性】
技术研发人员:SA福德DH斯梅斯AC罗塞DR鲁茨CN欣德斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

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

1
相关领域技术
  • 暂无相关专利