处理器制造技术

技术编号:2848008 阅读:164 留言:0更新日期:2012-04-11 18:40
提供一种执行对作为SIMD运算对象的操作数位置的约束少、弹性高的SIMD运算的处理器。具备解码部(20)和运算部(40)等,若解码部(20)译码命令[vxaddh  Rc,Ra,Rb],则算术逻辑、比较运算器(41)等(i)将寄存器Ra的上位16位与寄存器Rb的下位16位相加,将结果存储在寄存器Rc的上位16位中,同时,(ii)将寄存器Ra的下位16位与寄存器Rb的上位16位相加,将结果存储在寄存器Rc的下位16位中。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及DSP或CPU等处理器,尤其是涉及执行SIMD型命令的处理器。
技术介绍
以前,作为支持SIMD(Single Instruction Multiple Data单命令多数据流)型命令的处理器,有美国因特尔公司的Pentium(R)/Pentium(R)III/Pentium(R)4的MMX/SSE/SSE2等。例如,若是MMX,则以64比特长的MMX寄存器中存储的最大8个整数为对象,可由1个命令来执行相同的操作。但是,在上述现有处理器中,存在对作为SIMD运算对象的操作数(operand)位置的约束多的问题。例如,在第1寄存器的上位数位和下位数位中分别存储数值A及B、在第2寄存器的上位数位和下位数位中分别存储数值C及D的状态下,在由现有处理器执行将第1寄存器和第2寄存器设为操作数的SIMD型加法命令的情况下,得到的加法值为A+C及B+D。即,得到存储在两寄存器的上位数位中的数据彼此的加法值和存储在两寄存器的下位数位中的数据彼此的加法值,由数据在寄存器中的存储位置来唯一确定运算对象。因此,例如在对上述第1寄存器及第2寄存器求出A+D、及B+C的加法值的情况下,需要在调换存储在一方寄存器中的上位数位的数据与下位数位的数据的存储位置后,执行SIMD型的加法命令,或不使用SIMD型加法命令,而执行两次通常的SISD(Single InstructionSingle Data单命令单数据流)型加法命令。但是,随着近年来的通信数字化,在需要博立叶变换或滤波处理等数字信号处理的图像处理或声音处理领域中,必需对多个数据实施相同的运算处理,但此时,例如必需对位于距数据排列中的中心位置左右对称的数据实施相同运算等处理的情况多。在这种情况下,需要反序排列作为运算对象的两种操作数,例如,将存储在两个寄存器中一方上位数位中的数据与存储在另一方下位数位中的数据作为对象,进行运算。但是,在现有处理器的SIMD运算中,如上所述,因为必需按相同顺序排列作为运算对象的操作数,所以必需操作数的重新排列等,存在数字信号处理需要很多时间的问题。
技术实现思路
因此,鉴于这种状况,本专利技术的目的在于提供一种处理器,执行对作为SIMD运算对象的操作数位置的约束少、适应性强的SIMD运算。具体而言,提供一种例如适于高速执行数字信号处理的多媒体用途的处理器。为了实现上述目的,本专利技术的处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)组数据的第1操作数、和指定存储运算结果用数据的第2操作数,对上述n组数据进行上述命令代码指定的运算,将对所得n个运算结果分别仅移位一定位数后得到的n个值,存储在上述第2操作数指定的第2数据中。本专利技术的处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)个数据的第1操作数、和指定存储运算结果用数据的第2操作数,通过对上述n个数据进行上述命令代码指定的运算,算出小于n的个数的运算结果,并将所得的运算结果存储在上述第2操作数指定的第2数据中。本专利技术的处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)×m(≥2)个数据的第1操作数、和指定存储运算结果用数据的第2操作数,对以n个数据为1组的各m组进行上述命令代码指定的运算,将所得的m个运算结果存储在上述第2操作数指定的第2数据中。本专利技术的处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指示数据扩展的命令代码和指定n(≥2)个数据的第1操作数,对上述n个数据中的至少1个进行位宽度扩展,将所得的结果存储在预定的寄存器中。本专利技术的处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含指定运算的命令代码、n比特的第1操作数、和第2操作数的命令的情况下,对将上述第1操作数的上位m(<n)位屏蔽(mask)为0所得的值和上述第2操作数进行上述命令代码指定的运算。本专利技术的处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码、n比特的第1操作数、和第2操作数的命令的情况下,连接将上述第1操作数的下位m(<n)位排列反序后的位列和上述第2操作数的一部分位。本专利技术的处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码和n比特的第1操作数的命令的情况下,将上述第1操作数的下位m(<n)位排列反序,并且将上述第1操作数中的除上述m位的区域的至少一部分屏蔽为0。本专利技术的处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令,上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码、第1操作数和第2操作数的命令的情况下,将上述第1操作数中由上述第2操作数表示的两个位位置确定的区域屏蔽为0。本专利技术的处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码、第1操作数和第2操作数的命令的情况下,对上述第1操作数计数从MSB的1比特之下开始连续的符号位数的数量,并将该结果存储在上述第2操作数中。本专利技术的处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备多个寄存器;译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)组第1数据群的第1操作数、和指定由n个数据排列构成的第2数据群的第2操作数,对以属于上述第1数据群的1个数据和属于上述第2数据群的1个数据为1组的n组分别进行由上述命令代码指示的运算的结果,将得到的n个符号位存储在预定的寄存器中。本专利技术的处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备多个寄存器;译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、和指定n(≥2)个数据排列构成的第1数据群的第1操作数,对以属于上述第1数据群的1个数据和存储在预定的本文档来自技高网
...

【技术保护点】
一种处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于:具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)组数据的第1操作数、和指定存储运算结果用数据的第2操作数,对上述n组数据进行上述命令代码指定的运算,将对所得n个运算结果分别仅移位一定位数后得到的n个值,存储在上述第2操作数指定的第2数据中。

【技术特征摘要】
JP 2002-6-3 161381/20021.一种处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)组数据的第1操作数、和指定存储运算结果用数据的第2操作数,对上述n组数据进行上述命令代码指定的运算,将对所得n个运算结果分别仅移位一定位数后得到的n个值,存储在上述第2操作数指定的第2数据中。2.根据权利要求1所述的处理器,其特征在于上述命令代码指定的运算种类中包含加法及减法。3.根据权利要求1所述的处理器,其特征在于上述一定位数是包含在上述命令中的操作数或预定的寄存器指定的可变值。4.根据权利要求1所述的处理器,其特征在于上述一定位数是对应于包含在上述命令中的命令代码所预定的固定值。5.根据权利要求1所述的处理器,其特征在于由包含在上述命令中的操作数或预定的寄存器来指定移位上述运算结果的方向。6.根据权利要求1所述的处理器,其特征在于对应于包含在上述命令中的命令代码来预定移位上述运算结果的方向。7.一种处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)个数据的第1操作数、和指定存储运算结果用数据的第2操作数,通过对上述n个数据进行上述命令代码指定的运算,算出小于n的个数的运算结果,并将所得的运算结果存储在上述第2操作数指定的第2数据中。8.根据权利要求7所述的处理器,其特征在于上述小于n的个数是1个。9.一种处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指定运算种类的命令代码、指定n(≥2)×m(≥2)个数据的第1操作数、和指定存储运算结果用数据的第2操作数,对以n个数据为1组的各m组进行上述命令代码指定的运算,将所得的m个运算结果存储在上述第2操作数指定的第2数据中。10.根据权利要求7-9之任一项所述的处理器,其特征在于上述命令代码指定的运算种类中包含加法及积和。11.一种处理器,执行由1个命令来运算多个数据的SIMD型命令,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码SIMD型命令的情况下,其中,SIMD型命令包含指示数据扩展的命令代码和指定n(≥2)个数据的第1操作数,对上述n个数据中的至少1个进行位宽度扩展,将所得的结果存储在预定的寄存器中。12.根据权利要求11所述的处理器,其特征在于上述执行单元在译码上述命令的情况下,对上述n个数据的每个都进行位宽度扩展,并将所得的n个扩展部分存储在预定的寄存器中。13.一种处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含指定运算的命令代码、n比特的第1操作数、和第2操作数的命令的情况下,对将上述第1操作数的上位m(<n)位屏蔽(mask)为0所得的值和上述第2操作数进行上述命令代码指定的运算。14.根据权利要求13所述的处理器,其特征在于上述处理器还具备指定上述m的寄存器。15.一种处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码、n比特的第1操作数、和第2操作数的命令的情况下,连接将上述第1操作数的下位m(<n)位排列反序后的位列和上述第2操作数的一部分位。16.一种处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令;上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码和n比特的第1操作数的命令的情况下,将上述第1操作数的下位m(<n)位排列反序,并且将上述第1操作数中的除上述m位的区域的至少一部分屏蔽为0。17.一种处理器,其特征在于具备译码单元,译码命令;和执行单元,根据译码单元的译码结果,执行命令,上述执行单元在通过上述译码单元译码包含确定命令种类的命令代码、第1操作数和第2操作数的命令的情况下,将上述第1操作数中由上述第2操作数表示的两个位位置确定的区域屏蔽为0。18.根据权利要求17所述的处理器,其特征在于上述第2操作数存储指定上述第1操作数中两个位位置每个的两个数据,上述执行单元将上述第1操作数中、由上述第2操作数表示的两个位位置夹持的位屏蔽为0,或将上述第1操作数中、比上述第2操作数表示的两个位位置中上位的位位置还上位的位和比上述两个位位置中下位的位位置还下位的位屏蔽为0。19.根据权利要求18所述的处理器,其特征在于上述第2操作数中存储的两个数据中、第1数据表示第1位位置,第2数据表示第2位位置,上述执行单元根据上述第1位位置与上述第2位位置的位置关系,对将上述第1操作数中由上述第2位位置与上述第1位位置夹持的位屏蔽为0、或将上述第1操作数中...

【专利技术属性】
技术研发人员:田中哲也冈林羽月瓶子岳人小川一古贺义宏黑田学铃木正人清原督三田中健西田英志宫阪修二
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

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

1