CN112506468B - 支持高吞吐多精度乘法运算的risc-v通用处理器 - Google Patents

支持高吞吐多精度乘法运算的risc-v通用处理器 Download PDF

Info

Publication number
CN112506468B
CN112506468B CN202011424890.0A CN202011424890A CN112506468B CN 112506468 B CN112506468 B CN 112506468B CN 202011424890 A CN202011424890 A CN 202011424890A CN 112506468 B CN112506468 B CN 112506468B
Authority
CN
China
Prior art keywords
precision
register
multiplication
data
instruction
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
Application number
CN202011424890.0A
Other languages
English (en)
Other versions
CN112506468A (zh
Inventor
景乃锋
王琴
张茂全
徐磊
蒋剑飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiang Jianfei
Jing Naifeng
Mao Zhigang
Wang Qin
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202011424890.0A priority Critical patent/CN112506468B/zh
Priority to PCT/CN2021/073517 priority patent/WO2022121090A1/zh
Publication of CN112506468A publication Critical patent/CN112506468A/zh
Application granted granted Critical
Publication of CN112506468B publication Critical patent/CN112506468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种支持高吞吐多精度乘法运算的RISC‑V通用处理器,包括独立的乘法器数据通路,所述乘法器数据通路将多精度乘法器的数据通路与其他运算单元的数据通路分离,且多精度指令在执行阶段之后直接进入寄存器回写阶段而不用经过访存阶段,减少流水线寄存器的使用并节省面积和功耗,所述多精度乘法器具有独立的数据通路,进行将浮点乘法的结果写入矢量化寄存器文件VRF。本发明提供的一种支持高吞吐多精度乘法运算的RISC‑V通用处理器能高效地处理多精度计算需求。

Description

支持高吞吐多精度乘法运算的RISC-V通用处理器
技术领域
本发明涉及通用处理器的技术领域,具体地,涉及一种支持高吞吐多精度乘法运算的RISC-V通用处理器。
背景技术
自英特尔80386以来,在通用处理器中使用32位或64位字已成为常规的方法,在当今的算术逻辑单元(ALU)、体系结构和算法设计中,这已被视为常规方法。深度神经网络的流行使得加速神经网络成为了新的设计方向,已经可以通过对神经网络进行量化和压缩来获得位宽更小的权重数据,可以减少算力的需求和内存带宽的开销。例如,Google的TPU支持浮点格式为BF16的低精度格式;NVIDIA在其最新的GPU中加入了面向多精度计算的TensorCore核心,用以加速通用矩阵乘法。
到目前为止,通用处理器尚未在普通逻辑运算单元中加入多精度的支持。通用处理器在运算电路设计上仍然坚持使用32位或64位的字宽,主要原因有:1)在通用工作负载中的操作数通常具有不同的字宽,为了不失一般性,通用处理器不能像神经网络加速器那样快速的将内部的运算单元位宽降低为低精度位宽。2)为了保证向后兼容性,即可以最新的通用处理器可以运行老旧的程序代码,很难将通用处理器迅速更改为低精度处理器。
因此,如果通用处理器想要使用低精度运算对某些应用进行加速,同时能够实现32位宽或64位宽的通用计算,那么该通用处理器必须是具有多精度运算能力的。在通用处理器中所有的运算电路中,乘法器占据着核心地位,因此,目前的通用处理器具有无法处理多精度计算的缺陷。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种支持高吞吐多精度乘法运算的RISC-V通用处理器。
根据本发明提供的一种支持高吞吐多精度乘法运算的RISC-V通用处理器,包括独立的乘法器数据通路,所述乘法器数据通路将多精度乘法器的数据通路与其他运算单元的数据通路分离,且多精度指令可以在执行阶段之后直接进入寄存器回写阶段而不用经过访存阶段,减少流水线寄存器的使用并节省面积和功耗,所述多精度乘法器具有独立的数据通路,可以进行快速的将浮点乘法的结果写入矢量化寄存器文件VRF。
优选地,还包括通用寄存器和向量寄存器结合的寄存器文件,所述通用寄存器文件GRF主要是给整数运算指令提供整数类型的操作,在通用寄存器文件的基础上,添加了矢量化寄存器文件VRF,用于给浮点运算指令和低精度浮点乘法指令提供浮点操作数。
优选地,所述矢量化寄存器文件VRF被设置为两组独立的寄存器文件,每组寄存器文件的宽度为128bit,深度为16,均具有两读一写端口。第一组寄存器bank0的寄存器地址编号均为偶数,即从上到下的寄存器地址分别为v0,v2,v4…v30,第二组寄存器bank1的寄存器地址编号均为奇数,即从上到下的寄存器地址分别为v1、v3、v5…v31。
优选地,所有精度的乘法结果均通过固定的延迟进入寄存器写回阶段,等待的数据为FP16的乘法结果,那么在第一个乘法周期便可以将结果数据转发至译码阶段;需要的数据为FP32和FP64的乘法结果,那么需要在第二个或第三个乘法周期才能将乘法结果转发至译码阶段。
优选地,以SIMD形式进行低精度乘法运算的扩展指令。vfmul.{precision}vrd,vrs1,vrs2为低精度矢量乘法指令,{precision}指定了乘法指令的精度,有两个选项single(FP32)和half(FP16);vfmadd.{precision}vrd,vrs1,vrs2,vrs3为低精度矢量乘累加指令,vfmul.single可以进行4个FP32乘法,vfmul.half可以进行16个FP16乘法;vld.{precision}vrd,rs1,imm为矢量加载指令,用于从存储器中连续读取数据并送入到向量寄存器中;vst.{precision}vrs1,rs2,imm用于将向量寄存器中的数据存入存储器中;ldcvt.{dprec}{sprec}vrd,rs1,index用于将rs1中的数据转换精度后存入到向量寄存器中。cvt.{dprec}{sprec}rd,rs1用于将rs1中的数据转换精度后存入到普通的标量寄存器。broadcast.{width}vrd,rs1用于将rs1的数据复制多份后存入向量寄存器。
与现有技术相比,本发明具有如下的有益效果:在本发明中,使用了具有三种精度FP64/FP32/FP16的浮点乘法器作为基本的乘法单元,可以计算一个FP64乘法或4个FP32乘法或16个FP16乘法,提出了一种多精度RISC-V处理器的微体系结构,以解决计算低精度乘法时的带宽翻倍、延迟、数据和结构冲突问题,同时可以执行常规的浮点乘法操作。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明多精度RISC-V处理器架构图;
图2为本发明寄存器堆提供操作数示意图;
图3为本发明多精度乘法器数据转发示意图;
图4为本发明转发检测电路;
图5为本发明RISC-V多精度扩展指令。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供的一种支持高吞吐多精度乘法运算的RISC-V通用处理器,如图1所示,提出了基于高吞吐率多精度乘法器的通用RISC-V处理器微架构设计,具有基本的五级流水线设计,分别是取指、译码、执行、访存、回写。具体的微架构创新点如下:
1、独立的乘法器数据通路
由于使用多精度乘法器的指令将不涉及到数据的存储,因此多精度指令可以在执行阶段之后直接进入寄存器回写阶段而不用经过访存阶段,这样可以减少流水线寄存器的使用并节省面积和功耗。此外,如果多精度乘法指令使用与普通指令相同的数据路径,则多精度乘法器的延迟可能会影响Load/Store指令的性能,因为其他指令可以通过数据转发消除延迟的影响,而Load指令只有在经过访存阶段后才能得到想要的数据。
同时由于多精度乘法器在特定领域的计算中往往以高吞吐率为目标,因此本发明将多精度乘法器的数据通路其与其他运算单元(如整数加法器、逻辑移位器和浮点加法器)的数据通路分离。如图1所示,多精度乘法器具有独立的数据通路,可以进行快速的将浮点乘法的结果写入矢量化寄存器文件(VRF)
2、寄存器文件设计
在常规设计中,当一个处理器的运算单元具有固定的位宽w时,它通常会具有一个深度为32,位宽为w的通用寄存器文件,并且具有2个读端口和1个写端口。当使用多精度乘法器时,在计算FP64时,只需要2个64位的浮点操作数;在计算FP32乘法时,由于可以一次性计算4个FP32乘法,因此需要8个32位的操作数,或者是2个128位的操作数;在计算FP16乘法时,由于一次可以计算16个FP16乘法操作,因此需要32个16位的操作数,或者是2个256位的操作数。因此,可以看到由于使用多精度乘法器,低精度的吞吐率是高精度的4倍,会导致在计算低精度时需要的操作数带宽是计算高精度时的2倍,如果支持三种精度,那么计算最低精度时的操作数带宽是计算最高精度时带宽的4倍。
为了解决计算不同精度时需要的带宽不同的问题,本发明设计了图2所示的寄存器文件结构。图2左侧的通用寄存器文件GRF主要是给整数运算指令提供整数类型的操作,在通用寄存器文件的基础上,添加了矢量化寄存器文件VRF,用于给浮点运算指令和低精度浮点乘法指令提供浮点操作数。
矢量化寄存器文件VRF被设置为两组独立的寄存器文件,每组寄存器文件的宽度为128bit,深度为16,均具有两读一写端口。第一组寄存器bank0的寄存器地址编号均为偶数,即从上到下的寄存器地址分别为v0,v2,v4…v30,第二组寄存器bank1的寄存器地址编号均为奇数,即从上到下的寄存器地址分别为v1、v3、v5…v31。
当指令为FP64乘法指令时,两个64位的浮点操作数可以来自32个向量寄存器种的任意两个,既可以在同一组(因为每一组有两个寄存器读端口),可以在不同组,由于只需要两个64位的操作数,因此只需读取两个寄存器的低64位。当指令为计算FP32的低精度乘法指令时,两个128位的浮点操作数同样可以来自32个向量寄存器种的任意两个。当指令为计算FP16的低精度乘法指令时,两个256位的浮点操作数需要来自4个128位的浮点寄存器,由于每组寄存器只有两个寄存器读端口,因此需要每一组寄存器各自提供两个128位的操作数。又由于RISC-V的指令编码格式有限,无法容纳下4个源操作数寄存器地址和2个目的操作数寄存器地址,因此在本发明中,在使用FP16低精度乘法指令时,源寄存器和目的寄存器的地址都被强制设置为偶数寄存器号,这样在读取操作数时,当硬件电路检测到指令的opcode为FP16乘法时,会读取指令中源寄存器rs1对应的数据和与其在同一行的奇数寄存器数据,将两者数据打包为一个256位的操作数,同时会读取指令中源寄存器rs2对应的数据和与其在同一行的奇数寄存器数据,将两者数据打包为另一个256位的操作数。
3、多精度指令调度
由于使用的多精度乘法器在计算不同精度时的延迟不同,例如在计算FP16时,可以在一个时钟周期后便得到FP16乘法的结果,FP32的乘法结果需要在两个周期后才能得到,FP64的乘法结果需要在三个周期后才能得到。乘法器单元可变的延迟可能会导致更多的数据冲突和结构冲突,当一条FP32乘法指令后面紧跟着一条FP16指令时,两条指令的乘法结果同时有效,如果同时提交至寄存器回写阶段,会导致结构冲突。在本发明中采用了图3所示的乘法器数据转发电路,所有精度的乘法结果均通过固定的延迟进入寄存器写回阶段,这就避免了同时提交的结构冲突;在产生了read-after-write数据冲突时,如果等待的数据为FP16的乘法结果,那么在第一个乘法周期便可以将结果数据转发至译码阶段,如果需要的数据为FP32和FP64的乘法结果,那么需要在第二个或第三个乘法周期才能将乘法结果转发至译码阶段。
具体的转发调度电路如图4所示,首先检测译码阶段的源寄存器vrs1或者vrs2是否与M1阶段的目的寄存器相同,如果相同且M1的opcode为FP32或FP64,则阻塞流水线;如果相同且M1的opcode为FP16,则将M1的乘法结果数据直接转发至译码阶段。然后检测译码阶段的源寄存器vrs1或者vrs2是否与M2阶段的目的寄存器相同,如果相同且M2的opcode为FP64,则阻塞流水线;如果相同且M2的opcode为FP32,则将M2的乘法结果数据直接转发至译码阶段。最后检测译码阶段的源寄存器vrs1或者vrs2是否与M3阶段的目的寄存器相同,如果相同且M3的opcode为FP64,则将M3的乘法结果数据直接转发至译码阶段。
4、RISC-V多精度扩展指令
本发明提出了以SIMD形式进行低精度乘法运算的扩展指令。如图5所示,vfmul.{precision}vrd,vrs1,vrs2为低精度矢量乘法指令,{precision}指定了乘法指令的精度,有两个选项single(FP32)和half(FP16);vfmadd.{precision}vrd,vrs1,vrs2,vrs3为低精度矢量乘累加指令,vfmul.single可以进行4个FP32乘法,vfmul.half可以进行16个FP16乘法;vld.{precision}vrd,rs1,imm为矢量加载指令,用于从存储器中连续读取数据并送入到向量寄存器中;vst.{precision}vrs1,rs2,imm用于将向量寄存器中的数据存入存储器中;ldcvt.{dprec}{sprec}vrd,rs1,index用于将rs1中的数据转换精度后存入到向量寄存器中。cvt.{dprec}{sprec}rd,rs1用于将rs1中的数据转换精度后存入到普通的标量寄存器。broadcast.{width}vrd,rs1用于将rs1的数据复制多份后存入向量寄存器。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (3)

1.一种支持高吞吐多精度乘法运算的RISC-V通用处理器,其特征在于,包括独立的乘法器数据通路,所述乘法器数据通路将多精度乘法器的数据通路与其他运算单元的数据通路分离,且多精度指令在执行阶段之后直接进入寄存器写回阶段而不用经过访存阶段,减少流水线寄存器的使用并节省面积和功耗,所述多精度乘法器具有独立的数据通路,进行将浮点乘法的结果写入矢量化寄存器文件VRF;
还包括通用寄存器和向量寄存器结合的寄存器文件,通用寄存器文件GRF是给整数运算指令提供整数类型的操作,在通用寄存器文件的基础上,添加了矢量化寄存器文件VRF,用于给浮点运算指令和低精度浮点乘法指令提供浮点操作数;
所述矢量化寄存器文件VRF被设置为两组独立的寄存器文件,每组寄存器文件的宽度为128bit,深度为16,均具有两读一写端口;
第一组寄存器bank0的寄存器地址编号均为偶数,从上到下的寄存器地址分别为v0,v2,v4…v30,第二组寄存器bank1的寄存器地址编号均为奇数,从上到下的寄存器地址分别为v1、v3、v5…v31。
2.根据权利要求1所述的一种支持高吞吐多精度乘法运算的RISC-V通用处理器,其特征在于,所有精度的乘法结果均通过固定的延迟进入寄存器写回阶段,等待的数据为FP16的乘法结果,那么在第一个乘法周期便将结果数据转发至译码阶段;需要的数据为FP32和FP64的乘法结果,那么需要在第二个或第三个乘法周期才能将乘法结果转发至译码阶段。
3.根据权利要求1所述的一种支持高吞吐多精度乘法运算的RISC-V通用处理器,其特征在于,以SIMD形式进行低精度乘法运算的扩展指令;
vfmul.{precision}vrd,vrs1,vrs2为低精度矢量乘法指令,{precision}指定了乘法指令的精度,有两个选项single(FP32)和half(FP16);vfmadd.{precision}vrd,vrs1,vrs2,vrs3为低精度矢量乘累加指令,vfmul.single进行4个FP32乘法,vfmul.half进行16个FP16乘法;vld.{precision}vrd,rs1,imm为矢量加载指令,用于从存储器中连续读取数据并送入到向量寄存器中;vst.{precision}vrs1,rs2,imm用于将向量寄存器中的数据存入存储器中;ldcvt.{dprec}{sprec}vrd,rs1,index用于将rs1中的数据转换精度后存入到向量寄存器中,cvt.{dprec}{sprec}rd,rs1用于将rs1中的数据转换精度后存入到普通的标量寄存器,broadcast.{width}vrd,rs1用于将rs1的数据复制多份后存入向量寄存器。
CN202011424890.0A 2020-12-09 2020-12-09 支持高吞吐多精度乘法运算的risc-v通用处理器 Active CN112506468B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011424890.0A CN112506468B (zh) 2020-12-09 2020-12-09 支持高吞吐多精度乘法运算的risc-v通用处理器
PCT/CN2021/073517 WO2022121090A1 (zh) 2020-12-09 2021-01-25 支持高吞吐多精度乘法运算的处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011424890.0A CN112506468B (zh) 2020-12-09 2020-12-09 支持高吞吐多精度乘法运算的risc-v通用处理器

Publications (2)

Publication Number Publication Date
CN112506468A CN112506468A (zh) 2021-03-16
CN112506468B true CN112506468B (zh) 2023-04-28

Family

ID=74971549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011424890.0A Active CN112506468B (zh) 2020-12-09 2020-12-09 支持高吞吐多精度乘法运算的risc-v通用处理器

Country Status (2)

Country Link
CN (1) CN112506468B (zh)
WO (1) WO2022121090A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722669B (zh) * 2021-11-03 2022-01-21 海光信息技术股份有限公司 数据处理方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673407A (en) * 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
US5923871A (en) * 1996-08-07 1999-07-13 Elbrus International Multifunctional execution unit having independently operable adder and multiplier
WO2002084451A2 (en) * 2001-02-06 2002-10-24 Victor Demjanenko Vector processor architecture and methods performed therein
WO2003093974A2 (fr) * 2002-04-30 2003-11-13 Gemplus Procede de multiplication modulaire
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
CN104156195A (zh) * 2014-08-19 2014-11-19 中国航天科技集团公司第九研究院第七七一研究所 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法
CN107368286A (zh) * 2011-12-19 2017-11-21 英特尔公司 用于多精度算术的simd整数乘法累加指令

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1259617C (zh) * 2003-09-09 2006-06-14 大唐微电子技术有限公司 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路
CN100461095C (zh) * 2007-11-20 2009-02-11 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
CN101876892B (zh) * 2010-05-20 2013-07-31 复旦大学 面向通信和多媒体应用的单指令多数据处理器电路结构
CN101894096A (zh) * 2010-06-24 2010-11-24 复旦大学 一种适用于cmmb和dvb-h/t的fft运算电路结构
CN101916180B (zh) * 2010-08-11 2013-05-29 中国科学院计算技术研究所 Risc处理器中执行寄存器类型指令的方法和其系统
CN102184092A (zh) * 2011-05-04 2011-09-14 西安电子科技大学 基于流水线结构的专用指令集处理器
US9292297B2 (en) * 2012-09-14 2016-03-22 Intel Corporation Method and apparatus to process 4-operand SIMD integer multiply-accumulate instruction
US9104474B2 (en) * 2012-12-28 2015-08-11 Intel Corporation Variable precision floating point multiply-add circuit
CN104767544B (zh) * 2014-01-02 2018-08-24 深圳市中兴微电子技术有限公司 一种实现解扰解扩的方法和矢量运算器
TWI681300B (zh) * 2014-11-14 2020-01-01 美商凱為有限責任公司 在64位元資料路徑上實行128位元simd操作之方法、系統及電腦可讀取媒體
CN105045560A (zh) * 2015-08-25 2015-11-11 浪潮(北京)电子信息产业有限公司 一种定点乘加运算方法和装置
CN105335127A (zh) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 Gpdsp中支持浮点除法的标量运算单元结构
US20190073337A1 (en) * 2017-09-05 2019-03-07 Mediatek Singapore Pte. Ltd. Apparatuses capable of providing composite instructions in the instruction set architecture of a processor
CN111542826A (zh) * 2017-12-29 2020-08-14 斯佩罗设备公司 支持模拟协处理器的数字架构
US11093579B2 (en) * 2018-09-05 2021-08-17 Intel Corporation FP16-S7E8 mixed precision for deep learning and other algorithms
CN109634558B (zh) * 2018-12-12 2020-01-14 上海燧原科技有限公司 可编程的混合精度运算单元
FR3090932B1 (fr) * 2018-12-20 2022-05-27 Kalray Système de multiplication de matrices par blocs
CN109918130A (zh) * 2019-01-24 2019-06-21 中山大学 一种具有快速数据旁路结构的四级流水线risc-v处理器
CN110221808B (zh) * 2019-06-03 2020-10-09 深圳芯英科技有限公司 向量乘加运算的预处理方法、乘加器及计算机可读介质
CN110928832A (zh) * 2019-10-09 2020-03-27 中山大学 异步流水线处理器电路、装置及数据处理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5673407A (en) * 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
US5923871A (en) * 1996-08-07 1999-07-13 Elbrus International Multifunctional execution unit having independently operable adder and multiplier
WO2002084451A2 (en) * 2001-02-06 2002-10-24 Victor Demjanenko Vector processor architecture and methods performed therein
WO2003093974A2 (fr) * 2002-04-30 2003-11-13 Gemplus Procede de multiplication modulaire
CN1702613A (zh) * 2004-03-02 2005-11-30 三星电子株式会社 蒙哥马利模乘法器
CN107368286A (zh) * 2011-12-19 2017-11-21 英特尔公司 用于多精度算术的simd整数乘法累加指令
CN104156195A (zh) * 2014-08-19 2014-11-19 中国航天科技集团公司第九研究院第七七一研究所 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何军 ; 黄永勤 ; 朱英 ; .分离通路浮点乘加器设计与实现.计算机科学.2013,(第08期),全文. *
黄兆伟 ; 王连明 ; .基于FPGA的可配置浮点向量乘法单元设计实现.计算机应用研究.2019,(第09期),全文. *

Also Published As

Publication number Publication date
CN112506468A (zh) 2021-03-16
WO2022121090A1 (zh) 2022-06-16

Similar Documents

Publication Publication Date Title
US10599429B2 (en) Variable format, variable sparsity matrix multiplication instruction
US10209989B2 (en) Accelerated interlane vector reduction instructions
US8122078B2 (en) Processor with enhanced combined-arithmetic capability
US9778911B2 (en) Reducing power consumption in a fused multiply-add (FMA) unit of a processor
US20120191767A1 (en) Circuit which Performs Split Precision, Signed/Unsigned, Fixed and Floating Point, Real and Complex Multiplication
CN107918546B (zh) 利用经掩码的全寄存器访问实现部分寄存器访问的处理器、方法和系统
US20160378715A1 (en) Hardware processors and methods for tightly-coupled heterogeneous computing
CN107145335B (zh) 用于大整数运算的向量指令的装置和方法
CN107533460B (zh) 紧缩有限冲激响应(fir)滤波处理器、方法、系统和指令
US11474825B2 (en) Apparatus and method for controlling complex multiply-accumulate circuitry
EP3623940A2 (en) Systems and methods for performing horizontal tile operations
US7117342B2 (en) Implicitly derived register specifiers in a processor
US7558816B2 (en) Methods and apparatus for performing pixel average operations
CN112506468B (zh) 支持高吞吐多精度乘法运算的risc-v通用处理器
US6915411B2 (en) SIMD processor with concurrent operation of vector pointer datapath and vector computation datapath
CN111814093A (zh) 一种乘累加指令的处理方法和处理装置
US11182458B2 (en) Three-dimensional lane predication for matrix operations
KR100636596B1 (ko) 고에너지 효율 병렬 처리 데이터 패스 구조
US11080230B2 (en) Hardware accelerators and methods for out-of-order processing
US7587582B1 (en) Method and apparatus for parallel arithmetic operations
Moon et al. An area-efficient standard-cell floating-point unit design for a processing-in-memory system
US20230094414A1 (en) Matrix operation with multiple tiles per matrix dimension
US11669489B2 (en) Sparse systolic array design
CN114860319A (zh) 一种用于simd计算指令的交互型运算装置及执行方法
Vardhan et al. High Performance Data Level Parallelism based Instruction Set Architecture in RISC-V

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240422

Address after: Room 201, No. 54, Lane 51, Shuicheng South Road, Changning District, Shanghai, 201103

Patentee after: Mao Zhigang

Country or region after: China

Patentee after: Jing Naifeng

Patentee after: Wang Qin

Patentee after: Jiang Jianfei

Address before: 200240 No. 800, Dongchuan Road, Shanghai, Minhang District

Patentee before: SHANGHAI JIAO TONG University

Country or region before: China