能够复用浮点操作用构件和向量操作用构件的处理器的制作方法

文档序号:6597604阅读:263来源:国知局
专利名称:能够复用浮点操作用构件和向量操作用构件的处理器的制作方法
技术领域
本发明涉及微处理器的体系结构,特别涉及能够复用浮点操作用构件和向量操作 用构件的处理器。
背景技术
随着科学计算、多媒体、网络通讯及数字信号处理等高计算密集应用领域的快速 发展,对处理器的数据处理能力提出了越来越高的要求。向量计算是提高数据并行处理能 力的行之有效的方法,因此处理器普遍引入了向量计算指令。传统的处理器为向量处理单 元与浮点和定点处理单元并列的结构,即在用于定点和浮点操作的寄存器和功能部件之 夕卜,还具有独立的寄存器和功能部件用于进行向量操作。对于上述传统结构,必须通过移数指令来进行向量操作与浮点操作之间的数据传 递,而移数指令一般在访存部件执行,因此存在执行速度慢、数据效率低的缺点。另外,由于浮点操作用寄存器和向量操作用寄存器以及浮点操作用功能部件和向 量操作用功能部件各成一套,上述传统结构还存在处理器面积大、硬件实现成本高的缺点。

发明内容
有鉴于此,本发明目的在于提供一种处理器,其能够对浮点操作用构件和向量操 作用构件进行复用,其中浮点操作用构件包括浮点操作用寄存器和浮点操作用功能部件 等,而向量操作用构件包括向量操作用寄存器和向量操作用功能部件等。为了实现上述目的,本发明提供了一种处理器,其包括兼容了浮点操作用功能部 件的全部功能的向量操作用功能部件,以在所述向量操作用功能部件处执行所述浮点操 作。对于上述处理器,优选地,所述向量操作用功能部件通过指令操作码来识别是标 量操作还是所述向量操作,并将所述浮点操作视为所述标量操作进行处理。为了实现上述目的,本发明提供了另一种处理器,其中向量操作和浮点操作共用 向量操作用寄存器堆。从而使得具有相同的寄存器号的寄存器既可被用作为向量操作用寄 存器,又可被用作为浮点操作用寄存器。进而使得针对浮点操作用寄存器的指令操作相当 于直接对具有相同寄存器号的向量操作用寄存器进行操作,以及针对向量操作用寄存器的 指令操作相当于直接对具有相同寄存器号的浮点操作用寄存器进行操作。对于上述处理器,优选地,所述浮点操作使用所述向量操作用寄存器堆的低64 位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。根据本发明处理器的上述技术方案,一方面,通过在向量操作用功能部件处执行 浮点操作,降低了实现复杂度、减少了处理器面积、节省了硬件资源,从而降低了处理器的 实现成本;另一方面,通过基于寄存器号使得向量操作用寄存器堆被部分复用作为浮点操 作用寄存器,能够节省用以在浮点操作用寄存器与向量操作用寄存器之间移动数据的指令 操作,从而有效提高了处理器的指令执行效率。


图1示出了 MIPS浮点控制寄存器FCSR的结构;以及图2示出了本发明实施例的寄存器堆存储结构。
具体实施例方式如上所述,本发明旨在克服现有技术中浮点操作用构件(包括浮点操作用寄存器 和浮点操作用功能部件)与向量操作用构件(包括向量操作用寄存器和向量操作用功能部 件)相互独立所导致的种种不足,并提供了一种能够复用浮点操作用构件和向量操作用构 件的处理器,其不仅能够降低硬件实现复杂度和成本,还能够有效提高指令的执行效率。
本发明的上述及其他技术特征和有益效果,将通过参照附图进行的优选实施例介 绍得到更充分的阐述。一方面,利用向量操作用功能部件来实现浮点操作功能,从而使得向量操作用功 能部件与浮点操作用功能部件作为同一个处理器而存在。例如,在图1所示的MIPS架构下, 向量操作用功能部件可以与浮点操作用功能部件复用为同一个处理器,共称为处理器1。其中,由于向量操作用功能部件兼容了现有技术中的浮点操作用功能部件的全部 功能,并且不需要额外的控制寄存器。因此,仍可以将向量操作用功能部件设计成协处理器 1(即CPl),并使用与CPl完全相同的控制寄存器以及用以访问CPl的控制寄存器的指令, 例如,用以将值从CPl的控制寄存器移动到通用寄存器的指令CFC1、用以将值从CPl的通用 寄存器移动到CPl的控制寄存器的指令CTCl等。通过将浮点操作复用至向量操作用功能部件,也即,在向量操作用功能部件处执 行浮点操作,降低了实现复杂度、节省了硬件资源、减少了处理器面积,从而降低了处理器 的实现成本。更具体地,假定向量功能部件的模块都采用256位宽,浮点为32位宽。并且,对于 浮点,可以一次实现8个单精度操作或者4个双精度操作;对于定点,可以实现32个字节操 作、16个半字操作、8个字操作、4个双字操作或者2个四字操作,当然也可以256位一起操 作。向量操作用功能部件基本为4个64位浮点操作用功能部件并列而成。因此,浮点操作 可以直接复用向量操作用功能部件中的一个浮点功能部件。例如,向量操作模块中的向量乘加模块(VFMAF)、向量转化模块(VFCVT)、向量浮 点单拍模块(VFONE)、向量浮点开方模块(VFDIV_SQRT)等都是将浮点相同功能的模块复制 4份,其中既执行普通的标量浮点操作也执行向量操作,并通过指令操作码来识别是标量操 作还是向量操作。另一方面,浮点操作用寄存器和向量操作用寄存器还共用向量操作用寄存器堆。 并且,具有相同的寄存器号使得浮点操作用寄存器与向量操作用寄存器之间存在相关关 系。也即,具有相同的寄存器号的寄存器既可被用作为向量操作用寄存器,又可被用作为 浮点操作用寄存器。如图2所示,浮点数据使用寄存器堆的低64位,即只用AO、Al、A2、 A3. . . A63,而向量数据使用寄存器堆的全部256位。由于针对浮点操作用寄存器的指令操作相当于直接对具有相同寄存器号的向量 操作用寄存器进行操作,以及针对向量操作用寄存器的指令操作相当于直接对具有相同寄存器号的浮点操作用寄存器进行操作。由此使得,通过基于寄存器号来使得向量操作用寄 存器被部分复用作为浮点操作用寄存器,能够节省用以将数据从浮点操作用寄存器移动到 向量操作用寄存器的指令操作以及用以将数据从向量操作用寄存器移动到浮点操作用寄 存器的指令操作,从而有效提高了处理器的指令执行效率。接下来,列举两个具体的应用例,一条扩展向量指令和一条浮点指令,以更形象地 说明通过本申请所提供的能够复用浮点操作用构件和向量操作用构件的处理器的工作原理。首先,增加一条向量加指令VPAND vr2 vrO vrl,该指令用于将两个源操作数vrO 和vrl中的256位操作数分别按位相与,并将结果存入vr2中。其中,两个源操作数为
vrO = 0xfl7df2e24103d82-90828821e004d4c02f871f5f7f096bfece8bb69dle0e0 13c ;vrl = 0x0c94e3195cl72fb8ab997857fblbc4f64a9e0f959a205a34e9a2a6d33924f 172。运算结果为vr2 = 0x0014e20040002d8080800801e000c4c00a860fl51a004a34c882a69118040 130。其次,执行浮点指令SUB. D vr2 vr3 vr2,该指令用于将上面vr2的结果与另一个 寄存器vr3相减,并将结果存入vr2中,其中,两个源操作数分别为vr2 = 0x0014e20040002d8080800801e000c4c00a860fl51a004a34c882a69118040 130 ;vr3 = c882a69118040130。运算结果为vr2 = 0x0014e20040002d8080800801e000c4c00a860f151a004a340000000000000 000。如果按照传统方法完成上面两条指令相同的功能,则需要1、首先,在向量功能部件执行第一条指令VPAND,并将运算结果存入向量寄存器;2、接着,经由指令MTCl将第一条指令VPAND的运算结果的最低64位 0xc882a69118040130从向量寄存器移动到浮点寄存器;3、然后,在浮点功能部件执行指令第二条SUB. D,并将所得到结果 0x0000000000000000存入浮点寄存器;4、继续,经由指令MFCl将0x0000000000000000从浮点寄存器移动到向量寄存 器;5、最后,在向量功能部件执行一条混合指令,以将第一条指令VPAND结果的高192 位与从浮点寄存器移动到向量寄存器的低64位进行拼接,从而得到最终结果0x0014e20040002d8080800801e000c4c00a860fl51a004a340000000000000000o由此可见,如果不采用本发明所提供的处理器,需要采用5条指令才能完成上面2 条指令的功能。因此,毋庸置疑,本发明确实能够有效提高处理器的指令执行效率。需要声明的是,上述发明内容及具体实施方式
仅旨在证明本发明所提供技术方案 的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。 本发明的保护范围以所附权利要求书为准。
权利要求
一种处理器,其特征在于,包括兼容了浮点操作用功能部件的全部功能的向量操作用功能部件,以在所述向量操作用功能部件处执行所述浮点操作。
2.根据权利要求1所述的处理器,其特征在于,所述向量操作用功能部件通过指令操 作码来识别是标量操作还是所述向量操作,并将所述浮点操作视为所述标量操作进行处理。
3.根据权利要求1或2所述的处理器,其特征在于,所述向量操作和所述浮点操作共用 向量操作用寄存器堆,从而使得具有相同的寄存器号的寄存器既可被用作为向量操作用寄 存器,又可被用作为浮点操作用寄存器,进而使得针对浮点操作用寄存器的指令操作相当 于直接对具有相同寄存器号的向量操作用寄存器进行操作,以及针对向量操作用寄存器的 指令操作相当于直接对具有相同寄存器号的浮点操作用寄存器进行操作。
4.根据权利要求3所述的处理器,其特征在于,所述浮点操作使用所述向量操作用寄 存器堆的低64位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。
5.一种处理器,其特征在于,向量操作和浮点操作共用向量操作用寄存器堆,从而使得 具有相同的寄存器号的寄存器既可被用作为向量操作用寄存器,又可被用作为浮点操作用 寄存器,进而使得针对浮点操作用寄存器的指令操作相当于直接对具有相同寄存器号的向 量操作用寄存器进行操作,以及针对向量操作用寄存器的指令操作相当于直接对具有相同 寄存器号的浮点操作用寄存器进行操作。
6.根据权利要求5所述的处理器,其特征在于,所述浮点操作使用所述向量操作用寄 存器堆的低64位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。
全文摘要
能够复用浮点操作用构件和向量操作用构件的处理器,其包括兼容了浮点操作用功能部件的全部功能的向量操作用功能部件,其将浮点操作作为标量操作处理;既可用作向量操作用寄存器又可用作浮点操作用寄存器的向量操作用寄存器堆,其中具有相同的寄存器号使得浮点操作用寄存器与向量操作用寄存器相互关联。通过在向量操作用功能部件处执行浮点操作,降低了实现复杂度、减少了处理器面积、节省了硬件资源,从而降低了处理器的实现成本。此外,通过基于寄存器号使得向量操作用寄存器堆被部分复用作为浮点操作用寄存器,能够节省用以在浮点操作用寄存器与向量操作用寄存器之间移动数据的指令操作,从而有效提高了处理器的指令执行效率。
文档编号G06F9/30GK101819516SQ201010100260
公开日2010年9月1日 申请日期2010年1月22日 优先权日2010年1月22日
发明者胡伟武, 郇丹丹 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1