CN101819516B - 能够复用浮点操作用构件和向量操作用构件的处理器 - Google Patents
能够复用浮点操作用构件和向量操作用构件的处理器 Download PDFInfo
- Publication number
- CN101819516B CN101819516B CN201010100260.8A CN201010100260A CN101819516B CN 101819516 B CN101819516 B CN 101819516B CN 201010100260 A CN201010100260 A CN 201010100260A CN 101819516 B CN101819516 B CN 101819516B
- Authority
- CN
- China
- Prior art keywords
- register
- floating
- vector operations
- point operation
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
能够复用浮点操作用构件和向量操作用构件的处理器,其包括:兼容了浮点操作用功能部件的全部功能的向量操作用功能部件,其将浮点操作作为标量操作处理;既可用作向量操作用寄存器又可用作浮点操作用寄存器的向量操作用寄存器堆,其中具有相同的寄存器号使得浮点操作用寄存器与向量操作用寄存器相互关联。通过在向量操作用功能部件处执行浮点操作,降低了实现复杂度、减少了处理器面积、节省了硬件资源,从而降低了处理器的实现成本。此外,通过基于寄存器号使得向量操作用寄存器堆被部分复用作为浮点操作用寄存器,能够节省用以在浮点操作用寄存器与向量操作用寄存器之间移动数据的指令操作,从而有效提高了处理器的指令执行效率。
Description
技术领域
本发明涉及微处理器的体系结构,特别涉及能够复用浮点操作用构件和向量操作用构件的处理器。
背景技术
随着科学计算、多媒体、网络通讯及数字信号处理等高计算密集应用领域的快速发展,对处理器的数据处理能力提出了越来越高的要求。向量计算是提高数据并行处理能力的行之有效的方法,因此处理器普遍引入了向量计算指令。传统的处理器为向量处理单元与浮点和定点处理单元并列的结构,即在用于定点和浮点操作的寄存器和功能部件之外,还具有独立的寄存器和功能部件用于进行向量操作。
对于上述传统结构,必须通过移数指令来进行向量操作与浮点操作之间的数据传递,而移数指令一般在访存部件执行,因此存在执行速度慢、数据效率低的缺点。
另外,由于浮点操作用寄存器和向量操作用寄存器以及浮点操作用功能部件和向量操作用功能部件各成一套,上述传统结构还存在处理器面积大、硬件实现成本高的缺点。
发明内容
有鉴于此,本发明目的在于提供一种处理器,其能够对浮点操作用构件和向量操作用构件进行复用,其中浮点操作用构件包括浮点操作用寄存器和浮点操作用功能部件等,而向量操作用构件包括向量操作用寄存器和向量操作用功能部件等。
为了实现上述目的,本发明提供了一种处理器,其包括兼容了浮点操作用功能部件的全部功能的向量操作用功能部件,以在所述向量操作用功能部件处执行所述浮点操作,所述向量操作用功能部件为协处理器。
对于上述处理器,优选地,所述向量操作用功能部件通过指令操作码来识别是标量操作还是所述向量操作,并将所述浮点操作视为所述标量操作进行处理。
为了实现上述目的,本发明提供了另一种处理器,其中向量操作和浮点操作共用向量操作用寄存器堆。从而使得具有相同的寄存器号的寄存器既可被用作为向量操作用寄存器,又可被用作为浮点操作用寄存器。进而使得针对浮点操作用寄存器的指令操作相当于直接对具有相同寄存器号的向量操作用寄存器进行操作,以及针对向量操作用寄存器的指令操作相当于直接对具有相同寄存器号的浮点操作用寄存器进行操作。
对于上述处理器,优选地,所述浮点操作使用所述向量操作用寄存器堆的低64位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。
根据本发明处理器的上述技术方案,一方面,通过在向量操作用功能部件处执行浮点操作,降低了实现复杂度、减少了处理器面积、节省了硬件资源,从而降低了处理器的实现成本;另一方面,通过基于寄存器号使得向量操作用寄存器堆被部分复用作为浮点操作用寄存器,能够节省用以在浮点操作用寄存器与向量操作用寄存器之间移动数据的指令操作,从而有效提高了处理器的指令执行效率。
附图说明
图1示出了MIPS浮点控制寄存器FCSR的结构;以及
图2示出了本发明实施例的寄存器堆存储结构。
具体实施方式
如上所述,本发明旨在克服现有技术中浮点操作用构件(包括浮点操作用寄存器和浮点操作用功能部件)与向量操作用构件(包括向量操作用寄存器和向量操作用功能部件)相互独立所导致的种种不足,并提供了一种能够复用浮点操作用构件和向量操作用构件的处理器,其不仅能够降低硬件实现复杂度和成本,还能够有效提高指令的执行效率。
本发明的上述及其他技术特征和有益效果,将通过参照附图进行的优选实施例介绍得到更充分的阐述。
一方面,利用向量操作用功能部件来实现浮点操作功能,从而使得向量操作用功能部件与浮点操作用功能部件作为同一个处理器而存在。例如,在图1所示的MIPS架构下,向量操作用功能部件可以与浮点操作用功能部件复用为同一个处理器,共称为处理器1。
其中,由于向量操作用功能部件兼容了现有技术中的浮点操作用功能部件的全部功能,并且不需要额外的控制寄存器。因此,仍可以将向量操作用功能部件设计成协处理器1(即CP1),并使用与CP1完全相同的控制寄存器以及用以访问CP1的控制寄存器的指令,例如,用以将值从CP1的控制寄存器移动到通用寄存器的指令CFC1、用以将值从CP1的通用寄存器移动到CP1的控制寄存器的指令CTC1等。
通过将浮点操作复用至向量操作用功能部件,也即,在向量操作用功能部件处执行浮点操作,降低了实现复杂度、节省了硬件资源、减少了处理器面积,从而降低了处理器的实现成本。
更具体地,假定向量功能部件的模块都采用256位宽,浮点为32位宽。并且,对于浮点,可以一次实现8个单精度操作或者4个双精度操作;对于定点,可以实现32个字节操作、16个半字操作、8个字操作、4个双字操作或者2个四字操作,当然也可以256位一起操作。向量操作用功能部件基本为4个64位浮点操作用功能部件并列而成。因此,浮点操作可以直接复用向量操作用功能部件中的一个浮点功能部件。
例如,向量操作模块中的向量乘加模块(VFMAF)、向量转化模块(VFCVT)、向量浮点单拍模块(VFONE)、向量浮点开方模块(VFDIV_SQRT)等都是将浮点相同功能的模块复制4份,其中既执行普通的标量浮点操作也执行向量操作,并通过指令操作码来识别是标量操作还是向量操作。
另一方面,浮点操作用寄存器和向量操作用寄存器还共用向量操作用寄存器堆。并且,具有相同的寄存器号使得浮点操作用寄存器与向量操作用寄存器之间存在相关关系。也即,具有相同的寄存器号的寄存器既可被用作为向量操作用寄存器,又可被用作为浮点操作用寄存器。如图2所示,浮点数据使用寄存器堆的低64位,即只用A0、A1、A2、A3…A63,而向量数据使用寄存器堆的全部256位。
由于针对浮点操作用寄存器的指令操作相当于直接对具有相同寄存器号的向量操作用寄存器进行操作,以及针对向量操作用寄存器的指令操作相当于直接对具有相同寄存器号的浮点操作用寄存器进行操作。由此使得,通过基于寄存器号来使得向量操作用寄存器被部分复用作为浮点操作用寄存器,能够节省用以将数据从浮点操作用寄存器移动到向量操作用寄存器的指令操作以及用以将数据从向量操作用寄存器移动到浮点操作用寄存器的指令操作,从而有效提高了处理器的指令执行效率。
接下来,列举两个具体的应用例,一条扩展向量指令和一条浮点指令,以更形象地说明通过本申请所提供的能够复用浮点操作用构件和向量操作用构件的处理器的工作原理。
首先,增加一条向量加指令VPAND vr2vr0vrl,该指令用于将两个源操作数vr0和vrl中的256位操作数分别按位相与,并将结果存入vr2中。其中,两个源操作数为:
vr0=0xfl7df2e24103d82-90828821e004d4c02f871f5f7f096bfece8bb69d1e0e013c:
vr1=0x0c94e3195c172fb8ab997857fb1bc4f64a9e0f959a205a34e9a2a6d33924f172。
运算结果为:
vr2=0x0014e20040002d8080800801e000c4c00a860f151a004a34c882a69118040130。
其次,执行浮点指令SUB.D vr2vr3vr2,该指令用于将上面vr2的结果与另一个寄存器vr3相减,并将结果存入vr2中,其中,两个源操作数分别为:
vr2=0x0014e20040002d8080800801e000c4c00a860f151a004a34c882a69118040130:
vr3=c882a69118040130。
运算结果为:
vr2=0x0014e20040002d8080800801e000c4c00a860fl51a004a340000000000000000。
如果按照传统方法完成上面两条指令相同的功能,则需要:
1、首先,在向量功能部件执行第一条指令VPAND,并将运算结果存入向量寄存器;
2、接着,经由指令MTC1将第一条指令VPAND的运算结果的最低64位0xc882a69118040130从向量寄存器移动到浮点寄存器;
3、然后,在浮点功能部件执行指令第二条SUB.D,并将所得到结果0x0000000000000000存入浮点寄存器;
4、继续,经由指令MFC1将0x0000000000000000从浮点寄存器移动到向量寄存器;
5、最后,在向量功能部件执行一条混合指令,以将第一条指令VPAND结果的高192位与从浮点寄存器移动到向量寄存器的低64位进行拼接,从而得到最终结果
0x0014e20040002d8080800801e000c4c00a860f151a004a340000000000000000。
由此可见,如果不采用本发明所提供的处理器,需要采用5条指令才能完成上面2条指令的功能。因此,毋庸置疑,本发明确实能够有效提高处理器的指令执行效率。
需要声明的是,上述发明内容及具体实施方式仅旨在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。
Claims (3)
1.一种处理器,其特征在于,包括兼容了浮点操作用功能部件的全部功能的向量操作用功能部件,以在所述向量操作用功能部件处执行所述浮点操作,所述向量操作用功能部件为协处理器;所述向量操作和所述浮点操作共用向量操作用寄存器堆,从而使得具有相同的寄存器号的寄存器既可被用作为向量操作用寄存器,又可被用作为浮点操作用寄存器,进而使得针对浮点操作用寄存器的指令操作相当于直接对具有相同寄存器号的向量操作用寄存器进行操作,以及针对向量操作用寄存器的指令操作相当于直接对具有相同寄存器号的浮点操作用寄存器进行操作。
2.根据权利要求1所述的处理器,其特征在于:
所述向量操作用功能部件通过指令操作码来识别是标量操作还是所述向量操作,并将所述浮点操作视为所述标量操作进行处理。
3.根据权利要求1所述的处理器,其特征在于,所述浮点操作使用所述向量操作用寄存器堆的低64位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010100260.8A CN101819516B (zh) | 2010-01-22 | 2010-01-22 | 能够复用浮点操作用构件和向量操作用构件的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010100260.8A CN101819516B (zh) | 2010-01-22 | 2010-01-22 | 能够复用浮点操作用构件和向量操作用构件的处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101819516A CN101819516A (zh) | 2010-09-01 |
CN101819516B true CN101819516B (zh) | 2014-04-16 |
Family
ID=42654634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010100260.8A Active CN101819516B (zh) | 2010-01-22 | 2010-01-22 | 能够复用浮点操作用构件和向量操作用构件的处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101819516B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262525B (zh) * | 2011-08-29 | 2014-11-19 | 孙瑞玮 | 基于矢量运算的矢量浮点运算装置及方法 |
CN104572020B (zh) * | 2014-12-31 | 2017-03-15 | 中国电子科技集团公司第三十八研究所 | 一种寄存器堆分页式扩展装置及其实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5423051A (en) * | 1992-09-24 | 1995-06-06 | International Business Machines Corporation | Execution unit with an integrated vector operation capability |
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
-
2010
- 2010-01-22 CN CN201010100260.8A patent/CN101819516B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5423051A (en) * | 1992-09-24 | 1995-06-06 | International Business Machines Corporation | Execution unit with an integrated vector operation capability |
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
Also Published As
Publication number | Publication date |
---|---|
CN101819516A (zh) | 2010-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656875B2 (en) | Method and system for instruction block to execution unit grouping | |
US10146576B2 (en) | Method for executing multithreaded instructions grouped into blocks | |
US10503514B2 (en) | Method for implementing a reduced size register view data structure in a microprocessor | |
US10255076B2 (en) | Method for performing dual dispatch of blocks and half blocks | |
US10146548B2 (en) | Method for populating a source view data structure by using register template snapshots | |
JP4339245B2 (ja) | スカラー/ベクトルプロセッサ | |
US9891924B2 (en) | Method for implementing a reduced size register view data structure in a microprocessor | |
US10275255B2 (en) | Method for dependency broadcasting through a source organized source view data structure | |
US20180225123A1 (en) | Method for populating and instruction view data structure by using register template snapshots | |
US20140282601A1 (en) | Method for dependency broadcasting through a block organized source view data structure | |
US20150046683A1 (en) | Method for using register templates to track interdependencies among blocks of instructions | |
US20140281428A1 (en) | Method for populating register view data structure by using register template snapshots | |
US9753726B2 (en) | Computer for amdahl-compliant algorithms like matrix inversion | |
KR20040027409A (ko) | 프로세서 | |
CN101739235A (zh) | 将32位dsp与通用risc cpu无缝混链的处理器装置 | |
CN101021832A (zh) | 支持局部寄存和条件执行的64位浮点整数融合运算群 | |
CN101819516B (zh) | 能够复用浮点操作用构件和向量操作用构件的处理器 | |
JP2005044336A (ja) | 情報処理装置 | |
Nadeem et al. | JOP-plus-A processor for efficient execution of java programs extended with GALS concurrency | |
CN101216755B (zh) | Risc处理器及其浮点寄存器的非对齐访存方法 | |
Abdelhamid et al. | Condensing an overload of parallel computing ingredients into a single architecture recipe | |
CN114489791B (zh) | 处理器装置及其指令执行方法、计算设备 | |
KR100308182B1 (ko) | 데이터처리시스템및이시스템의동작방법 | |
JP6307975B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
SE536099C2 (sv) | Digital signalprocessor och basbandskommunikationsanordning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100080 No. 10 South Road, Haidian District Academy of Sciences, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CP03 | Change of name, title or address |