会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 向量处理 / 向量处理方法、向量处理单元和微处理器

向量处理方法、向量处理单元和微处理器

阅读:961发布:2020-05-12

IPRDB可以提供向量处理方法、向量处理单元和微处理器专利检索,专利查询,专利分析的服务。并且本发明提供一种向量处理方法、向量处理单元和微处理器,其中该方法包括:响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据;对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。本发明提供的技术方案通过一条指令即完成了一个向量寄存器中存储的向量元数据的求和运算,大幅加速了向量寄存器中向量元数据求和运算的速度。,下面是向量处理方法、向量处理单元和微处理器专利的具体信息内容。

1.一种向量处理方法,其特征在于,包括:

响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据;

对所述多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。

2.根据权利要求1所述的方法,其特征在于,所述向量等分加法指令包括指令码、源向量寄存器地址以及目标向量寄存器地址;所述指令码指示了所述向量元数据的数据类型和对所述向量元数据进行等分时的指定位宽;所述源向量寄存器地址指示了用于存储所述向量元数据的源向量寄存器的地址;所述目标向量寄存器地址指示了用于存储所述等宽元数据的目标向量寄存器的地址;

所述响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据,包括:根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,所述向量元数据的数据类型为有符号数或无符号数。

3.根据权利要求2所述的方法,其特征在于,所述根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,包括:当所述指令码为第一操作码时,将所述源向量寄存器内存储的向量元数据按照字节等分为多个无符号等宽元数据;

当所述指令码为第二操作码时,将所述源向量寄存器内存储的向量元数据按照字节等分为多个有符号等宽元数据。

4.根据权利要求2所述的方法,其特征在于,所述根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,包括:当所述指令码为第三操作码时,将所述源向量寄存器内存储的向量元数据按照半字等分为多个无符号等宽元数据;

当所述指令码为第四操作码时,将所述源向量寄存器内存储的向量元数据按照半字等分为多个有符号等宽元数据。

5.根据权利要求2所述的方法,其特征在于,所述根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,包括:当所述指令码为第五操作码时,将所述源向量寄存器内存储的向量元数据按照字等分为多个无符号等宽元数据;

当所述指令码为第六操作码时,将所述源向量寄存器内存储的向量元数据按照字等分为多个有符号等宽元数据。

6.根据权利要求2所述的方法,其特征在于,所述根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,包括:当所述指令码为第七操作码时,将所述源向量寄存器内存储的向量元数据按照双字等分为多个无符号等宽元数据;

当所述指令码为第八操作码时,将所述源向量寄存器内存储的向量元数据按照双字等分为多个有符号等宽元数据。

7.根据权利要求2所述的方法,其特征在于,所述根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,包括:当所述指令码为第九操作码时,将所述源向量寄存器内存储的向量元数据按照四字等分为多个无符号等宽元数据;

当所述指令码为第十操作码时,将所述源向量寄存器内存储的向量元数据按照四字等分为多个有符号等宽元数据。

8.一种向量处理单元,其特征在于,包括:

执行模块,用于响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据;

求和模块,用于对所述多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。

9.根据权利要求8所述的向量处理单元,其特征在于,所述执行模块,具体用于:根据所述指令码确定所述源向量寄存器内存储的向量元数据的数据类型并将所述向量元数据等分为多个指定位宽的等宽元数据,所述向量元数据的数据类型为有符号数或无符号数。

10.一种微处理器,其特征在于,包括权利要求8或9所述的向量处理单元和多个向量寄存器,源向量寄存器和目标向量寄存器均为多个所述向量寄存器中的任意一个向量寄存器。

说明书全文

向量处理方法、向量处理单元和微处理器

技术领域

[0001] 本发明涉及处理器指令技术领域,尤其涉及一种向量处理方法、向量处理单元和微处理器。

背景技术

[0002] 处理器的指令可以分为两大类:标量指令和向量指令。其中,标量指令规定处理器在同一时间内只处理一个或一对操作数;向量指令的操作对象是向量,一个向量中可以包含多个或多对操作数,向量指令规定处理器按同一操作同时处理向量中的所有操作数。对于数据量大,同样的操作要对多个数据实施的处理器应用领域,例如:多媒体应用领域,相比执行标量指令的标量处理技术,执行向量指令的向量处理技术可以有效的提高处理器的数据处理性能。
[0003] 目前的微处理器一般都提供了向量指令和位操作指令来加速一些比较规整的图形图像编解码计算,比如:向量加法指令,其可以将一个通用寄存器或者向量指令专用寄存器中的数据看做一个数组进行加法计算,且不同的向量加法指令可以将两个寄存器中不同位宽的元数据进行成组的加法计算。另外,为了在进行向量计算时快速的对一个向量寄存器中的元数据进行位置重排,一般提供了向量指令的微处理器也都提供了混洗指令用于实现存储了向量数据的寄存器中的元数据重排和移位。现有的单个向量寄存器中向量元数据的求和运算就是通过混洗指令和向量加法指令进行多次混洗相加实现的,向量寄存器的位宽越高,所需要的混洗和相加的次数越多。
[0004] 而目前,处理器的向量寄存器位宽已经从64比特、128比特发展到256比特甚至更大的512比特的宽度,因此,如果仍然采用混洗指令和向量加法指令的组合来进行向量元数据的求和运算的话就需要更多次的混洗和相加,也即更多的指令,这样会明显降低向量元数据求和运算的速度。

发明内容

[0005] 有鉴于此,本发明提供一种向量处理方法、向量处理单元和微处理器,用于提高向量元数据求和运算的速度。
[0006] 为了实现上述目的,第一方面,本发明提供一种向量处理方法,该方法包括:
[0007] 响应于向量指令中的向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据;
[0008] 对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。
[0009] 作为本发明一种可选的实施方式,向量等分加法指令包括指令码、源向量寄存器地址以及目标向量寄存器地址;指令码指示了向量元数据的数据类型和对向量元数据进行等分时的指定位宽;源向量寄存器地址指示了用于存储向量元数据的源向量寄存器的地址;目标向量寄存器地址指示了用于存储等宽元数据的目标向量寄存器的地址;
[0010] 响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据,包括:
[0011] 根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,向量元数据的数据类型为有符号数或无符号数。
[0012] 作为本发明一种可选的实施方式,根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,包括:
[0013] 当指令码为第一操作码时,将源向量寄存器内存储的向量元数据按照字节等分为多个无符号等宽元数据;
[0014] 当指令码为第二操作码时,将源向量寄存器内存储的向量元数据按照字节等分为多个有符号等宽元数据。
[0015] 作为本发明一种可选的实施方式,根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,包括:
[0016] 当指令码为第三操作码时,将源向量寄存器内存储的向量元数据按照半字等分为多个无符号等宽元数据;
[0017] 当指令码为第四操作码时,将源向量寄存器内存储的向量元数据按照半字等分为多个有符号等宽元数据。
[0018] 作为本发明一种可选的实施方式,根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,包括:
[0019] 当指令码为第五操作码时,将源向量寄存器内存储的向量元数据按照字等分为多个无符号等宽元数据;
[0020] 当指令码为第六操作码时,将源向量寄存器内存储的向量元数据按照字等分为多个有符号等宽元数据。
[0021] 作为本发明一种可选的实施方式,根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,包括:
[0022] 当指令码为第七操作码时,将源向量寄存器内存储的向量元数据按照双字等分为多个无符号等宽元数据;
[0023] 当指令码为第八操作码时,将源向量寄存器内存储的向量元数据按照双字等分为多个有符号等宽元数据。
[0024] 作为本发明一种可选的实施方式,根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,包括:
[0025] 当指令码为第九操作码时,将源向量寄存器内存储的向量元数据按照四字等分为多个无符号等宽元数据;
[0026] 当指令码为第十操作码时,将源向量寄存器内存储的向量元数据按照四字等分为多个有符号等宽元数据。
[0027] 第二方面,本发明提供一种向量处理单元,包括:
[0028] 执行模块,用于响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据;
[0029] 求和模块,用于对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。
[0030] 作为本发明一种可选的实施方式,执行模块,具体用于:
[0031] 根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,向量元数据的数据类型为有符号数或无符号数。
[0032] 第三方面,本发明提供一种微处理器,包括上述第二方面任一实施方式的向量处理单元和多个向量寄存器,源向量寄存器和目标向量寄存器均为多个向量寄存器中的任意一个向量寄存器。
[0033] 本发明提供的向量处理方法、向量处理单元和微处理器,向量处理单元响应于向量等分加法指令后,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据,然后对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中;通过一条指令即完成了一个向量寄存器中存储的向量元数据的求和运算,大幅加速了向量寄存器中向量元数据求和运算的速度。

附图说明

[0034] 图1为本发明实施例提供的向量处理方法的流程示意图;
[0035] 图2为本发明实施例提供的一种向量寄存器等分结构示意图;
[0036] 图3为本发明实施例提供的另一种向量寄存器等分结构示意图;
[0037] 图4为本发明实施例提供的又一种向量寄存器等分结构示意图;
[0038] 图5为本发明实施例提供的又一种向量寄存器等分结构示意图;
[0039] 图6为本发明实施例提供的又一种向量寄存器等分结构示意图;
[0040] 图7为本发明实施例提供的向量处理单元的结构示意图;
[0041] 图8为本发明实施例提供的微处理器的结构示意图。
[0042] 附图标记说明:
[0043] 10-执行模块;
[0044] 20-求和模块;
[0045] 100-向量处理单元;
[0046] 200-向量寄存器。

具体实施方式

[0047] 针对现有技术中,单个向量寄存器中向量元数据的求和运算通过混洗指令和向量加法指令进行多次混洗相加实现,向量寄存器的位宽越高,所需要的混洗和相加的次数越多,导致向量元数据求和运算的速度越低的技术问题,本发明提供一种向量处理方法和微处理器,主要是通过一种新的能够将单个向量寄存器中的数据按照指定位宽等分为多个等宽元数据后相加求和的向量等分加法指令,由一条向量等分加法指令完成一个向量寄存器中存储的向量元数据的求和运算,来提高向量元数据求和运算的速度。
[0048] 下面结合附图,对本发明的实施例进行描述。
[0049] 图1为本发明实施例提供的向量处理方法的流程示意图,如图1所示,本实施例提供的方法包括如下步骤:
[0050] S101、响应于向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据。
[0051] 具体的,本实施例提供的方法可以应用于微处理器,微处理器包括向量处理单元和多个向量寄存器,向量处理单元可以运行向量指令,并根据向量指令访问向量寄存器。向量寄存器可以是通用寄存器、浮点寄存器和向量指令专用寄存器中的任意一种寄存器。本实施例中,源向量寄存器为多个向量寄存器中的任意一个向量寄存器。向量寄存器的位宽可以是64比特、128比特、256比特、512比特,甚至更大位宽,向量寄存器的具体位宽本实施例不做特别限定。
[0052] 本实施例中,向量处理单元响应于向量等分加法指令后(即向量指令),可以从向量等分加法指令中获取源向量寄存器的地址,然后到该地址指示的源向量寄存器中取得向量元数据,按照向量等分加法指令的指示将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据。
[0053] 在对源向量寄存器中的向量元数据按照指定位宽等分时,可以按照字节、半字、字、双字或四字,甚至更大位宽进行等分,当然,指令位宽也可以是其他整数个字节,如三字、五字等,具体可以根据图形图像编解码支持的宽度信息进行选择,本实施例不做特别限定。
[0054] 另外,源向量寄存器中的向量元数据可以是无符号数,也可以是有符号数,对应的,等分后的等宽元数据可以是无符号数,也可以是有符号数。
[0055] 需要说明的是,本实施例中,向量等分加法指令只是用于表示向量处理单元响应于该条指令后执行本实施例提供的向量元数据求和运算,该指令也可以是其他名称。
[0056] 作为向量等分加法指令的一种具体实现方式,向量等分加法指令可以包括指令码、源向量寄存器地址以及目标向量寄存器地址;其中,指令码指示了向量元数据的数据类型和对向量元数据进行等分时的指定位宽;源向量寄存器地址指示了用于存储向量元数据的源向量寄存器的地址;目标向量寄存器地址指示了用于存储等宽元数据的目标向量寄存器的地址。
[0057] 则,本步骤中具体的,向量处理单元根据指令码确定源向量寄存器内存储的向量元数据类型并将向量元数据等分为多个指定位宽的等宽元数据,其中,向量元数据类型为有符号数或无符号数。向量处理单元在执行向量等分加法指令时,从源向量寄存器地址指示的源向量寄存器中取向量元数据,向目标向量寄存器地址指示的目标向量寄存器中存储等宽元数据。
[0058] 其中,向量等分加法指令中的指令码可以包括多种操作码:
[0059] 当指令码为第一操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照字节等分为多个无符号等宽元数据;
[0060] 当指令码为第二操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照字节等分为多个有符号等宽元数据;
[0061] 当指令码为第三操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照半字等分为多个无符号等宽元数据;
[0062] 当指令码为第四操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照半字等分为多个有符号等宽元数据;
[0063] 当指令码为第五操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照字等分为多个无符号等宽元数据;
[0064] 当指令码为第六操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照字等分为多个有符号等宽元数据;
[0065] 当指令码为第七操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照双字等分为多个无符号等宽元数据;
[0066] 当指令码为第八操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照双字等分为多个有符号等宽元数据;
[0067] 当指令码为第九操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照四字等分为多个无符号等宽元数据;
[0068] 当指令码为第十操作码时,向量处理单元将源向量寄存器内存储的向量元数据按照四字等分为多个有符号等宽元数据。
[0069] S102、对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。
[0070] 具体的,向量处理单元将源向量寄存器中的向量元数据等分为多个等宽元数据后,则对该多个等宽元数据同时进行求和运算,然后将求和的结果存入向量等分加法指令指示的目标向量寄存器中。这样无需进行多次的混洗和相加,从而可以大幅提高向量寄存器中向量元数据求和运算的速度。
[0071] 目标向量寄存器与源向量寄存器可以为同一个向量寄存器,也可以为不同的向量寄存器。与源向量寄存器类似,目标向量寄存器也可以为多个向量寄存器中的任意一个向量寄存器。
[0072] 下面通过举例来详细说明本发明的技术方案:
[0073] 举例1:
[0074] 图2所示是一个存储了16个以字节为单位元数据的128比特位宽的向量寄存器,通过本发明提供的向量等分加法指令可以将这16个字节的向量元数据,按照字节(8比特)均分为16个8比特的等宽元数据后,将16个等宽元数据当做无符号数或有符号数进行求和,然后将求和的结果存入目标向量寄存器中。向量等分加法指令具体的汇编指令形式如下:
[0075] BVADDU$DST,$SRC
[0076] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;BVADDU(即第一操作码)表示将$SRC向量寄存器中的向量元数据按照字节均分,把每个字节的等宽元数据当做无符号数看待,对均分后的所有无符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0077] BVADDS$DST,$SRC
[0078] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;BVADDS(即第二操作码)表示将$SRC向量寄存器中的向量元数据按照字节均分,把每个字节的等宽元数据当做有符号数看待,对均分后的所有有符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0079] 举例2:
[0080] 与举例1一样,图3所示是一个存储了16个以字节为单位元数据的128比特位宽的向量寄存器。与上述举例1所示的将向量寄存器中的向量元数据按照字节均分为16个等宽元数据不同,本举例2中,通过本发明提供的向量等分加法指令可以将这16个字节的向量元数据,按照半字(16比特)均分为8个16比特的等宽元数据,然后将8个等宽元数据当做无符号数或有符号数进行求和,并将求和的结果存入目标向量寄存器中。向量等分加法指令具体的汇编指令形式如下:
[0081] HVADDU$DST,$SRC
[0082] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;HVADDU(即第三操作码)表示将$SRC向量寄存器中的向量元数据按照半字均分,把每个16比特的等宽元数据当做无符号数看待,对均分后的所有无符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0083] HVADDS$DST,$SRC
[0084] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;HVADDS(即第四操作码)表示将$SRC向量寄存器中的向量元数据按照半字均分,把每个16比特的等宽元数据当做有符号数看待,对均分后的所有有符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0085] 举例3:
[0086] 举例1和举例2的向量寄存器位宽为128比特,如前所述,本发明不限定向量寄存器的位宽。图4所示是一个存储了16个以半字为单位元数据的256比特位宽的向量寄存器,通过本发明提供的向量等分加法指令可以将这个向量寄存器中的向量元数据,按照字(32比特)均分为8个等宽元数据后,将8个32比特的等宽元数据当做无符号数或有符号数进行求和,然后将求和的结果存入目标向量寄存器中。向量等分加法指令具体的汇编指令形式如下:
[0087] WVADDU$DST,$SRC
[0088] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;WVADDU(即第五操作码)表示将$SRC向量寄存器中的向量元数据按照字均分,把每个32比特的等宽元数据当做无符号数看待,对均分后的所有无符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0089] WVADDS$DST,$SRC
[0090] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;WVADDS(即第六操作码)表示将$SRC向量寄存器中的向量元数据按照字均分,把每个32比特的等宽元数据当做有符号数看待,对均分后的所有有符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0091] 举例4:
[0092] 与举例3一样,图5所示是一个存储了16个以半字为单位元数据的256比特位宽的向量寄存器。与上述举例3所示的将向量寄存器中的向量元数据按照字均分为8个等宽元数据不同,本举例4中,通过本发明提供的向量等分加法指令可以将向量寄存器中的向量元数据,按照双字(64比特)均分为4个64比特的等宽元数据,然后将4个等宽元数据当做无符号数或有符号数进行求和,将求和的结果存入目标向量寄存器中。向量等分加法指令具体的汇编指令形式如下:
[0093] DVADDU$DST,$SRC
[0094] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;DVADDU(即第七操作码)表示将$SRC向量寄存器中的向量元数据按照双字均分,把每个64比特的等宽元数据当做无符号数看待,对均分后的所有无符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0095] DVADDS$DST,$SRC
[0096] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;DVADDS(即第八操作码)表示将$SRC向量寄存器中的向量元数据按照双字均分,把每个64比特的等宽元数据当做有符号数看待,对均分后的所有有符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0097] 举例5:
[0098] 与举例4一样,图6所示是一个存储了16个以半字为单位元数据的256比特位宽的向量寄存器。与上述举例4所示的将向量寄存器中的向量元数据按照双字均分为4个等宽元数据不同,本举例5中,通过本发明提供的向量等分加法指令可以将向量寄存器中的向量元数据,按照四字(128比特)均分为2个128比特的等宽元数据后,将2个等宽元数据当做无符号数或有符号数进行求和,然后将求和的结果存入目标向量寄存器中。向量等分加法指令具体的汇编指令形式如下:
[0099] QVADDU$DST,$SRC
[0100] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;QVADDU(即第九操作码)表示将$SRC向量寄存器中的向量元数据按照四字均分,把每个128比特的等宽元数据当做无符号数看待,对均分后的所有无符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0101] QVADDS$DST,$SRC
[0102] 其中,SRC表示源向量寄存器,DST表示目标向量寄存器;QVADDS(即第十操作码)表示将$SRC向量寄存器中的向量元数据按照四字均分,把每个128比特的等宽元数据当做有符号数看待,对均分后的所有有符号等宽元数据进行求和,求和的结果存入$DST寄存器中。
[0103] 需要说明的是,上述各向量等分加法指令的指令码名称,即BVADDU、BVADDS、HVADDU、HVADDS、WVADDU、WVADDS、DVADDU、DVADDS、QVADDU、QVADDS,只是本发明提供的一种示例,具体也可以是其他名称,本实施例不做特别限定。
[0104] 本实施例提供的向量处理方法,向量处理单元响应于向量指令中的向量等分加法指令后,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据,然后对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中;通过一条指令即完成了一个向量寄存器中存储的向量元数据的求和运算,大幅加速了向量寄存器中向量元数据求和运算的速度。
[0105] 图7为本发明实施例提供的向量处理单元的结构示意图,如图7所示,本实施例提供的向量处理单元包括:执行模块10和求和模块20;其中:
[0106] 执行模块10,用于响应于向量指令中的向量等分加法指令,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据;
[0107] 求和模块20,用于对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中。
[0108] 作为本发明一种可选的实施方式,向量等分加法指令包括指令码、源向量寄存器地址以及目标向量寄存器地址;指令码指示了向量元数据的数据类型和对向量元数据进行等分时的指定位宽;源向量寄存器地址指示了用于存储向量元数据的源向量寄存器的地址;目标向量寄存器地址指示了用于存储等宽元数据的目标向量寄存器的地址。
[0109] 则执行模块10具体用于:
[0110] 根据指令码确定源向量寄存器内存储的向量元数据的数据类型并将向量元数据等分为多个指定位宽的等宽元数据,向量元数据的数据类型为有符号数或无符号数。
[0111] 作为本发明一种可选的实施方式,执行模块10具体用于:
[0112] 当指令码为第一操作码时,将源向量寄存器内存储的向量元数据按照字节等分为多个无符号等宽元数据;
[0113] 当指令码为第二操作码时,将源向量寄存器内存储的向量元数据按照字节等分为多个有符号等宽元数据。
[0114] 作为本发明一种可选的实施方式,执行模块10具体用于:
[0115] 当指令码为第三操作码时,将源向量寄存器内存储的向量元数据按照半字等分为多个无符号等宽元数据;
[0116] 当指令码为第四操作码时,将源向量寄存器内存储的向量元数据按照半字等分为多个有符号等宽元数据。
[0117] 作为本发明一种可选的实施方式,执行模块10具体用于:
[0118] 当指令码为第五操作码时,将源向量寄存器内存储的向量元数据按照字等分为多个无符号等宽元数据;
[0119] 当指令码为第六操作码时,将源向量寄存器内存储的向量元数据按照字等分为多个有符号等宽元数据。
[0120] 作为本发明一种可选的实施方式,执行模块10具体用于:
[0121] 当指令码为第七操作码时,将源向量寄存器内存储的向量元数据按照双字等分为多个无符号等宽元数据;
[0122] 当指令码为第八操作码时,将源向量寄存器内存储的向量元数据按照双字等分为多个有符号等宽元数据。
[0123] 作为本发明一种可选的实施方式,执行模块10具体用于:
[0124] 当指令码为第九操作码时,将源向量寄存器内存储的向量元数据按照四字等分为多个无符号等宽元数据;
[0125] 当指令码为第十操作码时,将源向量寄存器内存储的向量元数据按照四字等分为多个有符号等宽元数据。
[0126] 本实施例提供的向量处理单元,可以执行上述图1所示实施例中的方法,其工作原理和技术效果类似,此处不再赘述。
[0127] 本实施例提供的向量处理单元,响应于向量指令中的向量等分加法指令后,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据,然后对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中;通过一条指令即完成了一个向量寄存器中存储的向量元数据的求和运算,大幅加速了向量寄存器中向量元数据求和运算的速度。
[0128] 图8为本发明实施例提供的微处理器的结构示意图,如图8所示,本实施例提供的微处理器包括上述图7所示的实施例中的向量处理单元100和多个向量寄存器200,源向量寄存器和目标向量寄存器均为多个向量寄存器中的任意一个向量寄存器。
[0129] 本发明实施例提供的微处理器,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。
[0130] 值得说明的是,所述多个向量寄存器包括:通用寄存器、浮点寄存器和向量指令专用寄存器。
[0131] 本实施例提供的微处理器,其中的向量处理单元响应于向量指令中的向量等分加法指令后,将源向量寄存器中的向量元数据按照指定位宽等分为多个等宽元数据,然后对多个等宽元数据进行求和,将求和的结果存入目标向量寄存器中;通过一条指令即完成了一个向量寄存器中存储的向量元数据的求和运算,大幅加速了向量寄存器中向量元数据求和运算的速度。
[0132] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0133] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用