一种数据的重排方法及重排装置的制作方法

文档序号:6652834阅读:160来源:国知局
专利名称:一种数据的重排方法及重排装置的制作方法
技术领域
本发明涉及微处理器和计算机系统领域,具体地说,涉及面向处理器的并行处理, 尤其是并行数据的重排方法及重排装置。
背景技术
随着处理器技术的进步,处理器的速度不断提高,性能不断增强,同时用户对计算 机或者处理器的要求越来越高。但是仅仅依靠电子元件的加速来满足需求是远远不够的, 因此提高计算机的并行处理能力及增加有效的处理指令变的尤其重要。在现有的技术方案中,中国专利CN 200480018443. 8介绍了一种重排数据的方法 和装置,具体的说明如下第一和第二操作数是SIMD寄存器,但,第二操作数的寄存器也可用存储器位置替 换。第一操作数包括用于重排的源数据,对于第一操作数的寄存器也是目的寄存器。除了 改变它们的位置,根据本发明的实施例还包括将选定的字节设定到零的能力。第二操作数包括一组重排控制掩码字节以指定重排模式。用于选择源数据元素的 比特数是源操作数中数据元素数量的log2.例如,一个64比特寄存器,分为8个字节数,因 此需要三个比特指示源操作数中数据元素的数量。以下代码中的[2:0]指数表示3个比特。 如果置位了重排控制字节的最高有效比特7,则将常数零写入结果字节。否则如果第二操作 数的字节I的最低有效三位包含整数J,则重排指令使得第一源寄存器的第J个字节被复制 到目的寄存器的第I字节位置。以下是用于64BIT操作数的紧缩字节重排操作的一个实施 例的示例性伪码
权利要求
1.一种数据重排装置,所述数据重排装置作为处理器的一个组成部分,按照VLIW处理 器的操作过程,在矢量数据处理单元中执行数据重排操作,其特征在于所述数据重排装置 包括指令存储单元,用来存储将要执行的指令代码;数据存储单元,用来存储指令代码执行所需的数据指令读取;指令读取和分发单元,该单元将指令代码从指令存储单元中读取并发送给所有执行单元;矢量数据处理单元,该单元用来执行指令代码当中的矢量处理指令; 矢量寄存器组,包含矢量寄存器VRO,VRl,…,Vfoi,用来存放来自所述数据存储单元的 数据,其运算单元则从适量寄存器组中读写数据;矢量重排顺序寄存器组,包含矢量重排顺序寄存器VR_CFG0,VR_CFG1,VR_CFG2,…,VR_ CFGn,用来配置参与矢量重排运算的单元,来选择部分或是全部矢量元算单元参与运算。
2.根据权利要求1所述的数据重排装置,用于对两个源寄存器中的数据互换重排,或 者用于对一源、二源、三源等多源的数据重排。
3.根据权利要求1或2所述的数据重排装置,其中,所述指令读取和分发单元从所述指令存储单元中读取重排指令,然后分发给所述矢量 数据处理单元,所述矢量数据处理单元根据所述重排指令执行重排操作;所述矢量数据处理单元根据所述重排指令将待重排数据队列从所述数据存储单元读 入到所述矢量寄存器组源的寄存器中,所述源寄存器的指定是由所述重排指令决定的;所述矢量数据处理单元根据指令要求以及所述矢量重排顺序寄存器的内容,完成对所 述矢量寄存器组内保存的数据元素的重排操作,结果存放在所述矢量寄存器组目标寄存器 中,所述目标寄存器的指定是由重排指令决定的;将存放在所述目标寄存器内重排后的结果,存放到所述数据存储单元中。
4.一种数据重排方法,通过一条指令周期即完成两个源寄存器中的部分数据互换重 排,其特征在于包括如下步骤步骤1,将执行重排所需重排指令由指令存储单元中读取出来送至矢量数据处理单元, 所需重排指令是一个指令或一组指令;步骤2,根据所述重排指令,将待重排数据由数据存储单元加载到矢量寄存器组中的两 个寄存器当中,这两个寄存器作为重排的两个源寄存器,同时也是两个目的寄存器; 步骤3,对所述两个源寄存器互换重排,重排后的结果依然存储在这两个寄存器中; 步骤4,将目标寄存器VRO,VRl,…,VRn写回到数据存储器。
5.一种数据重排方法,其特征在于包括如下步骤步骤1,将执行重排所需重排指令由指令存储单元中读取出来送至矢量数据处理单元, 所需重排指令是一个指令或一组指令。步骤2,根据所述重排指令,将待重排数据由数据存储单元加载到矢量寄存器组中的一 个或两个或多个寄存器当中,这些寄存器作为重排的源寄存器。步骤3,加载矢量重排顺序寄存器,将矢量重排顺序数值加载到矢量重排顺序寄存器 VR_CFGa,VR_CFGb,VR_CFGc,…,VR_CFGm ;所述矢量重排寄存器的个数和目标寄存器的个数 相同;按照所述矢量重排顺序寄存器的内容将数据从源矢量寄存器VRO,VRl,…,VRn写入到目标矢量寄存器VRa,VRb, VRc,…,VRm当中;同时根据所述矢量重排顺序寄存 器VR_CFGa,VR_CFGb, VR_CFGc,…,VR_CFGm对应位置的内容判断将所述目标寄存器VI a, VRb, VRc,…,VR的内容置为0或-1或保持原值;步骤4,将目标寄存器VRa,VRb, VRc,…,VRm写回到数据存储器。
6.根据权利要求5所述的数据重排方法,其中在所述步骤3中,所述源寄存器按照所述 重排寄存器中的内容,放入到目标寄存器中。
7.根据权利要求6所述的数据重排方法,其中所述目标寄存器可以是一个或多个矢量 寄存器,不同目标寄存器对应的重排顺序由各自的充排顺序寄存器来确定。
8.一种数据重排方法,其特征在于包括如下步骤步骤1,在矢量重排顺序寄存器组VR_CFG寄存器中,如果数据的最高位为1,则所对应 目标寄存器VRm中的第i位置的数据为0 ;步骤2,矢量重排顺序寄存器组VR_CFG寄存器中,如果数据的次高位为1,则所对应目 标寄存器VRm中的第I位置的数据为1 ;步骤3,矢量重排顺序寄存器组VR_CFG寄存器中,如果数据的次次高位为1,则所对应 目标寄存器VRm中的第I位置的数据为-1 ;步骤4,矢量重排顺序寄存器组VR_CFG寄存器中,如果数据小于对,且数据为J,重排指 令使得源寄存器的第J个数据被复制到目的寄存器的第I位置;步骤5,在矢量重排顺序寄存器组VR_CFG寄存器中,除上述以外的情况,则对所对应目 标寄存器VRm中的第I位置的数据保持不变。
9.一种数据重排方法,其特征在于包括如下步骤步骤1,在矢量重排顺序寄存器组VR_CFGa,VR_CFGb,VR_CFGc,…,VR_CFGm寄存器中, 如果数据的最高位为1,则所对应目标寄存器VRa,VRb, VRc,…,VRm中的第i位置的数据 为零;步骤2,矢量重排顺序寄存器组VR_CFGa,VR_CFGb,VR_CFGc,…,VR_CFGm寄存器中,如 果数据的次高位为1,则所对应目标寄存器VRa,VRb, VRc,…,VRm中的第I位置的数据为 1 ;步骤3,矢量重排顺序寄存器组VR_CFGa,VR_CFGb,VR_CFGc,…,VR_CFGm寄存器中,如 果数据的次次高位为1,则所对应目标寄存器VRa,VRb, VRc,…,VRm中的第I位置的数据 为-1 ;步骤4,矢量重排顺序寄存器组VR_CFGa,VR_CFGb,VR_CFGc,…,VR_CFGm寄存器中,如 果数据小于24,且数据为J,重排指令使得源寄存器的第J个数据被复制到目的寄存器VRa, VRb, VRc,…,VRm的第I位置;步骤5,在矢量重排顺序寄存器组VR_CFGa,VR_CFGb,VR_CFGc,…,VR_CFGm寄存器中, 除上述以外的情况,则对所对应目标寄存器VRa,VRb,VRc,…,VRm中的第I位置的数据保 持不变。
全文摘要
一种数据重排装置,作为处理器的一个组成部分,按照VLIW处理器的操作过程,在矢量数据处理单元中执行数据重排操作,所述数据重排装置包括指令存储单元,用来存储将要执行的指令代码;数据存储单元,用来存储指令代码执行所需的数据指令读取;指令读取和分发单元,该单元将指令代码从指令存储单元中读取并发送给所有执行单元;矢量数据处理单元,该单元用来执行指令代码当中的矢量处理指令;矢量寄存器组,包含矢量寄存器VR0,VR1,…,VRn,用来存放来自所述数据存储单元的数据,其运算单元则从适量寄存器组中读写数据;矢量重排顺序寄存器组,包含矢量重排顺序寄存器VR_CFG0,VR_CFG1,VR_CFG2,…,VR_CFGn,用来配置参与矢量重排运算的单元,来选择部分或是全部矢量元算单元参与运算。
文档编号G06F9/315GK102109978SQ20111004758
公开日2011年6月29日 申请日期2011年2月28日 优先权日2011年2月28日
发明者孙瑞琛 申请人:孙瑞琛
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1