CN117251132A - 定浮点simd乘加指令融合处理装置、方法及处理器 - Google Patents
定浮点simd乘加指令融合处理装置、方法及处理器 Download PDFInfo
- Publication number
- CN117251132A CN117251132A CN202311211479.9A CN202311211479A CN117251132A CN 117251132 A CN117251132 A CN 117251132A CN 202311211479 A CN202311211479 A CN 202311211479A CN 117251132 A CN117251132 A CN 117251132A
- Authority
- CN
- China
- Prior art keywords
- fixed
- point
- floating point
- result
- floating
- 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.)
- Granted
Links
- 238000007499 fusion processing Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 48
- 230000010354 integration Effects 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims description 13
- 238000010009 beating Methods 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及数字信号处理技术领域,尤其涉及一种定浮点SIMD乘加指令融合处理装置、方法及处理器,包括数据拆分模块、数据整合模块和若干并行的运算模块;每个运算模块包括连接的浮点运算模块和定点运算模块;数据拆分模块根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据;浮点运算模块将定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的定点运算模块的输出选择流水线阶段中;定点运算模块根据将其计算得到的定点通路结果和浮点通路结果输出定点运算结果,以通过数据整合模块进行结果整合。本发明通过复用浮点资源,不仅减少定点运算模块的计算资源,从而有效地减小了电路的面积,而且简化了控制逻辑。
Description
技术领域
本发明涉及数字信号处理技术领域,尤其涉及一种定浮点SIMD乘加指令融合处理装置、方法及处理器。
背景技术
定点乘法和浮点乘法是数字信号处理中的基本运算,目前的处理器通常是将定点指令的运算和浮点指令的运算分开的,而分开处理需要两个部分的硬件资源,对于标量指令来说,增加的资源相对较少,但是对于SIMD(Single Instruction Multiple Data,单指令流多数据流)指令来说,就需要增加大量重复的资源,特别是对于乘加指令来说,加法器和乘法器所占用面积相对较大,这使得处理器占有较大的面积且增加了功耗,因此,亟需提供一种能够将定浮点指令融合操作的装置。
发明内容
本发明提供了一种定浮点SIMD乘加指令融合处理装置、方法及处理器,解决的技术问题是,现有的处理器将定点指令和浮点指令分开运算,导致增加大量重复的资源,使得处理器的面积和功耗较大。
为解决以上技术问题,本发明提供了一种定浮点SIMD乘加指令融合处理装置、方法及处理器。
第一方面,本发明提供了一种定浮点SIMD乘加指令融合处理装置,包括:依次连接的数据拆分模块、运算装置和数据整合模块;其中,所述运算装置包括若干并行的运算模块,每个所述运算模块包括一一对应连接的浮点运算模块和定点运算模块;
所述数据拆分模块,用于根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;其中,所述拆分数据包括不同位宽的浮点运算操作数和定点操作数,所述浮点运算操作数包括浮点操作数或者定点复用浮点操作数;
所述浮点运算模块,用于利用预设浮点多级流水线结构逐级对所述浮点运算操作数进行运算,得到浮点运算结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的所述定点运算模块的输出选择流水线阶段中;
所述定点运算模块,用于利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;所述定点运算模块和所述浮点运算模块的流水线结构级数相同;
所述数据整合模块,用于根据指令集位宽,对浮点运算模块或定点运算模块输出的运算结果进行整合,得到数据整合结果。
在进一步的实施方案中,所述数据拆分模块,具体用于:
对输入的定浮点操作数进行类型检测,若所述定浮点操作数的类型属于预设的资源复用类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个定点复用浮点操作数和/或定点操作数,将所述定点复用浮点操作数和/或定点操作数分别分配至不同运算模块中的浮点运算模块和/或定点运算模块,以通过复用浮点运算模块的结构,在计算过程中将定点复用浮点操作数转换为浮点数尾数的位宽进行计算;
若所述定浮点操作数的类型属于浮点类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个浮点操作数,将多个所述浮点操作数分别分配至不同运算模块中的浮点运算模块;
若所述定浮点操作数的类型属于定点类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个定点操作数,将多个所述定点操作数分别分配至不同运算模块中的定点运算模块;
其中,所述资源复用类型为将定浮点操作数中的部分或者全部定点数转换为浮点数进行计算的类型。
在进一步的实施方案中,所述资源复用类型至少包括定点word类型和定点halfword类型,其中,定点word类型的指令全部复用浮点运算模块,定点halfword类型的指令部分复用浮点运算模块,以将定点word类型的指令和定点halfword类型的指令全部或者部分转换为浮点数进行乘加计算。
在进一步的实施方案中,所述定点运算模块的多级流水线结构至少包括布设在不同级流水线结构中的第一定点乘法单元、第二定点乘法单元、定点加法单元、输出选择单元和结果输出单元;其中,所述第一定点乘法单元包括第一乘法器,所述第二定点乘法单元包括第二乘法器和第三乘法器,所述定点加法单元包括与所述第二乘法器和所述第三乘法器分别连接的第一加法器和第二加法器;
所述第一定点乘法单元用于对输入的所述定点操作数进行乘法运算,得到第一乘法运算结果;
所述第二定点乘法单元用于对所述第一乘法运算结果进行乘法运算,得到第二乘法运算结果;
所述定点加法单元用于对所述第二乘法运算结果进行加法运算,得到定点通路结果;
所述输出选择单元用于响应于定浮点选择信号的输入,对所述定点通路结果和所述浮点通路结果进行选择,得到选择结果,以通过所述结果输出单元根据所述选择结果输出定点运算结果。
在进一步的实施方案中,所述浮点运算模块包括数据解码单元、浮点乘法单元、浮点加法单元、数据规格化单元和舍入及状态位生成单元;
所述数据解码单元,用于对输入的所述浮点操作数以符号位、指数和尾数进行拆分,得到浮点拆分数据;
所述浮点乘法单元,用于对浮点拆分数据的指数位进行加法运算,对浮点拆分数据的符号位进行异或运算,对所述浮点拆分数据中的尾数或输入的所述定点复用浮点操作数进行乘法运算,得到对应的浮点乘法运算结果或复用乘法运算结果;
所述浮点加法单元,用于对所述浮点乘法运算结果或所述复用乘法运算结果进行加法运算,得到对应的浮点加法运算结果或浮点通路结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的所述定点运算模块的输出选择单元中,将所述浮点加法运算结果打拍至所述数据规格化单元中;
所述数据规格化单元,用于对浮点乘法运算结果进行规格化处理;
所述舍入及状态位生成单元,用于对规格化的尾数进行舍入操作,得到舍入结果,并生成异常状态位,以符号位、指数位和尾数位的浮点数格式输出浮点运算结果。
在进一步的实施方案中,所述数据整合结果包括定点数据整合结果或者浮点数据整合结果,所述数据整合模块,具体用于:
响应于定点指令的输入,根据指令集位宽对各个定点运算模块输出的定点运算结果进行选择并整合,生成定点数据整合结果。
在进一步的实施方案中,所述数据整合结果包括定点数据整合结果或者浮点数据整合结果,所述数据整合模块,具体用于:
响应于浮点指令的输入,根据指令集位宽对各个浮点运算模块输出的浮点运算结果进行选择并整合,生成浮点数据整合结果。
第二方面,本发明提供了一种定浮点SIMD乘加指令融合处理方法,应用于若干并行的运算模块,所述方法包括以下步骤:
根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;其中,所述拆分数据包括不同位宽的浮点运算操作数和定点操作数,所述浮点运算操作数包括浮点操作数或者定点复用浮点操作数;
利用预设浮点多级流水线结构逐级对所述浮点运算操作数进行运算,得到浮点运算结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至定点数的输出选择流水线阶段中;
利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;
根据指令集位宽,对所述浮点运算结果或定点运算结果进行整合,得到数据整合结果。
第三方面,本发明还提供了一种处理器,包括处理器本体和设于处理器本体中的如上述的定浮点SIMD乘加指令融合处理装置。
第四方面,本发明还提供了一种计算机设备,包括处理器和存储器,所述处理器与所述存储器相连,所述处理器包括处理器本体和设于处理器本体中的如上述的定浮点SIMD乘加指令融合处理装置。
本发明提供了一种定浮点SIMD乘加指令融合处理装置、方法及处理器,所述装置包括数据拆分模块、浮点运算模块、定点运算模块和数据整合模块,数据拆分模块将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;浮点运算模块对浮点运算操作数进行运算,并将定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的定点运算模块的输出选择流水线阶段中;定点运算模块对所述定点操作数进行运算,并根据浮点通路结果和所述定点通路结果输出定点运算结果,以通过数据整合模块对浮点运算模块或定点运算模块输出的运算结果进行整合。与现有技术相比,该装置采用乘法器、加法器复用的方式来实现定点指令和浮点指令的运算,能够减少加法器和乘法器的数量,从而有效地减小了电路的面积,同时本发明提供的装置能够实现所有类型的SIMD乘加指令的运算,降低了设计的复杂性,提高了计算正确率。
附图说明
图1是本发明实施例提供的定浮点SIMD乘加指令融合处理装置框图;
图2是本发明实施例提供的标量指令和向量指令对比示意图;
图3是本发明实施例提供的不同类型指令数据格式示意图;
图4是本发明实施例提供的定点运算模块结构示意图;
图5是本发明实施例提供的浮点运算模块结构示意图;
图6是本发明实施例提供的定浮点SIMD乘加指令融合处理装置的一种具体结构示意图;
图7是本发明实施例提供的操作数拆分逻辑示意图;
图8是本发明实施例提供的定点运算模块复用浮点计算资源的资源占用示例图;
图9是本发明实施例提供的定点运算模块不复用浮点计算资源的资源占用示例图;
图10是本发明实施例提供的定浮点SIMD乘加指令融合处理方法流程示意图;
图11是本发明实施例提供的计算机设备的结构示意图。
具体实施方式
下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
参考图1,本发明实施例提供了一种定浮点SIMD乘加指令融合处理装置,为了便于理解本实施例提供的定浮点SIMD乘加指令融合处理装置,本实施例先针对SIMD指令和指令集进行简要说明:
SIMD(Single Instruction Multiple Data,单指令流多数据流)指令也叫做向量(Vector)指令,如图2所示,不同于标量(Scalar)指令只操作一个数据项的方式,SIMD指令是一种常用的空间并行的技术,能够对同一条指令同时处理多个数据,在图2中,当当输入是X和Y时,Scalar指令只能处理X*Y,而SIMD指令则可以同时处理X0*Y0、X1*Y1、X2*Y2和X3*Y3数据。
表1为指令集表,如表1所示,本实施例提供的定浮点SIMD乘加指令融合处理装置可以处理的操作包括定浮点加法、减法、乘法和乘加指令,其中,这些指令包含标量指令和向量指令,标量指令默认操作为1个,此处不做分析,表1如下所示:
表1
在表1中,bit表示字,占1位数据位宽;dp表示双精度浮点数64bit;sp表示单精度浮点数32bit;b表示byte,字节8bit;h表示halfword,半字16bit;w表示word,字32bit,其中,不同类型指令数据格式如图3所示,其中,Byte型定点SIMD指令允许在一个时钟周期内对多个字节大小的数据进行并行操作;Halfword型定点SIMD指令允许在一个时钟周期内对多个半字(16位)大小的数据进行并行操作;Word型定点SIMD指令允许在一个时钟周期内对多个字(32位)大小的数据进行并行操作;单精度型浮点SIMD指令允许在一个时钟周期内对多个单精度浮点数(32位)进行并行操作;双精度型浮点SIMD指令允许在一个时钟周期内对多个双精度浮点数(64位)进行并行操作,这些SIMD指令可以在支持SIMD指令集的处理器上使用,利用并行性加速计算过程,以提高计算性能和效率;由表1所示的指令集可知,定点指令的word类型所占位宽和操作个数与单精度浮点数相同,因此,定点指令的word类型可以完全复用浮点资源,而halfword类型操作个数是单精度浮点数的两倍,且数据位宽为一半,因此,定点指令的halfword类型可以部分复用浮点资源,byte类型操作个数为单精度浮点的四倍,且数据位宽为四分之一,因此,综合以上分析,本实施例提供了如图1所示的定浮点SIMD乘加指令融合处理装置,该装置包括依次连接的数据拆分模块101、运算装置102和数据整合模块103;其中,所述运算装置102包括若干并行的运算模块104,每个所述运算模块包括一一对应连接的定点运算模块1041和浮点运算模块1042。
本实施例采用的定浮点SIMD乘加指令融合处理装置可以使定点指令复用浮点运算硬件,采用浮点运算模块来处理定点复用浮点操作数指令,实现了将定点复用浮点操作数指令转换为浮点数进行计算,简化硬件设计,减少组件数量和复杂度,而且能够充分利用浮点运算模块的能力,提供更多的计算能力和功能可以加快计算速度,提高***整体性能和效率。
所述数据拆分模块101,用于根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;其中,所述拆分数据包括不同位宽的浮点运算操作数和定点操作数,所述浮点运算操作数包括浮点操作数或者定点复用浮点操作数;需要说明的是,定点复用浮点操作数是指在计算过程中将定点数操作数转换为浮点数进行计算,并在计算完成后将结果转换回定点数,这种转换计算的方式可以优化提高定点数操作的性能。
在本实施例中,所述数据拆分模块具体用于:对输入的定浮点操作数进行类型检测,若所述定浮点操作数的类型属于预设的资源复用类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个定点复用浮点操作数和/或定点操作数,将所述定点复用浮点操作数和/或定点操作数分别分配至不同运算模块中的浮点运算模块,以通过复用浮点运算模块的结构,在计算过程中将定点复用浮点操作数转换为浮点数尾数的位宽进行计算;若所述定浮点操作数的类型属于浮点类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个浮点操作数,将多个所述浮点操作数分别分配至不同运算模块中的浮点运算模块;若所述定浮点操作数的类型属于定点类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个定点操作数,将多个所述定点操作数分别分配至不同运算模块中的定点运算模块;其中,所述资源复用类型为将定浮点操作数中的部分或者全部定点数转换为浮点数进行计算的类型。
在进行浮点运算和定点运算时,浮点运算和定点运算通常需要不同的硬件资源,本实施例采用将定点数操作数部分或者全部转换为浮点数进行计算的复用方式可以实现硬件资源共享,减少定点运算模块中所需的硬件资源,从而有效减少处理器所占面积,而且本实施例将定点数转换为浮点数进行计算可以在一定程度上减少定点运算的次数,减少了硬件资源和时间的消耗。
具体地,本实施例预设的所述资源复用类型至少包括定点word类型和定点halfword类型,其中,定点word类型的指令全部复用浮点运算模块,定点halfword类型的指令部分复用浮点运算模块,以将定点word类型的指令和定点halfword类型的指令全部或者部分转换为浮点数进行乘加计算。
本实施例将定点word类型指令完全复用浮点运算模块,将定点halfword类型指令的部分数据复用浮点运算模块,通过将定点word和halfword类型的指令复用浮点运算硬件可以共享硬件资源,省去定点word类型指令运算和halfword类型部分所需的乘法器和加法器,减少组件数量和复杂度,提高硬件资源的利用率。
在本实施例中,所述定点运算模块1041用于利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;所述定点运算模块和所述浮点运算模块的流水线结构级数相同,其中,如图4所示,所述定点运算模块1041的多级流水线结构至少包括布设在不同级流水线结构中的第一定点乘法单元411、第二定点乘法单元412、定点加法单元413、输出选择单元414和结果输出单元415;其中,所述第一定点乘法单元包括第一乘法器,所述第二定点乘法单元包括第二乘法器和第三乘法器,所述定点加法单元包括与所述第二乘法器和所述第三乘法器分别连接的第一加法器和第二加法器。
所述第一定点乘法单元411用于对输入的所述定点操作数进行乘法运算,得到第一乘法运算结果;
所述第二定点乘法单元412用于对所述第一乘法运算结果进行乘法运算,得到第二乘法运算结果;
所述定点加法单元413用于对所述第二乘法运算结果进行加法运算,得到定点通路结果;
所述输出选择单元414用于响应于定浮点选择信号的输入,对所述定点通路结果和所述浮点通路结果进行选择,得到选择结果,以通过所述结果输出单元415输出所述选择结果。
在本实施例中,所述浮点运算模块用于利用预设浮点多级流水线结构逐级对所述浮点运算操作数进行运算,得到浮点运算结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的所述定点运算模块的输出选择流水线阶段中,如图5所示,所述浮点运算模块1042包括数据解码单元421、浮点乘法单元422、浮点加法单元423、数据规格化单元424和舍入及状态位生成单元425。
其中,所述数据解码单元421,用于对输入的所述浮点操作数以符号位、指数和尾数进行拆分,得到浮点拆分数据;
所述浮点乘法单元422,用于对浮点拆分数据的指数位进行加法运算,对浮点拆分数据的符号位进行异或运算,对所述浮点拆分数据中的尾数或输入的所述定点复用浮点操作数进行乘法运算,得到对应的浮点乘法运算结果或复用乘法运算结果;
所述浮点加法单元423,用于对所述浮点乘法运算结果或所述复用乘法运算结果进行加法运算,得到对应的浮点加法运算结果或浮点通路结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的所述定点运算模块的输出选择单元中,将所述浮点加法运算结果打拍至所述数据规格化单元中;
所述数据规格化单元424,用于对浮点乘法运算结果进行规格化处理;
所述舍入及状态位生成单元425,用于对规格化的尾数进行舍入操作,得到舍入结果,并生成异常状态位,以符号位、指数位和尾数位的浮点数格式输出浮点运算结果。
由于定点运算和浮点运算需要不同的硬件资源,分别设计定点运算模块和浮点运算模块,就需要更多的硬件组件和更复杂的控制逻辑,因此,本实施例通过浮点运算模块对定点复用浮点操作数进行乘加操作后,将结果转换回定点运算模块,可以实现硬件资源共享,减少了定点运算模块中定点复用浮点操作数计算所需的硬件资源,简化控制逻辑,加快计算速度,从而提高计算效率和减少资源消耗。在本实施例中,所述数据整合模块103,用于根据指令集位宽,对浮点运算模块或定点运算模块输出的运算结果进行整合,得到数据整合结果,具体为:
响应于定点指令的输入,根据指令集位宽对各个定点运算模块输出的定点运算结果进行选择并整合,生成定点数据整合结果;
或者,响应于浮点指令的输入,根据指令集位宽对各个浮点运算模块输出的浮点运算结果进行选择并整合,生成浮点数据整合结果。
由于定浮点数据运算通常会有多个运算结果,本实施例通过数据整合模块对定浮点数据的多个运算结果进行选择并整合,可以快速地选择并整合这些结果,确保最终输出数据的一致性和准确性,同时无需分别处理每个运算结果,能够避免不必要的计算和重复操作,提高计算效率,减少计算时间和资源消耗。
为了便于说明本实施例提供的定浮点SIMD乘加指令融合处理装置,本实施例后续主要基于表1所示的指令集位宽128位以及五个执行周期(五级流水线)进行示例性阐述,如图6所示,在本实施例中,数据拆分模块产生当前指令操作的有效信号,并且将128位的操作数拆分给各个运算模块,其中,64位浮点数给到浮点运算模块,本实施例优先设置四组运算模块,每组运算模块包括一一对应链接的浮点运算模块和定点运算模块,具体为:第一组运算模块包括连接的第一浮点运算模块0和第一定点运算模块0,第二组运算模块包括连接的第二浮点运算模块1和第二定点运算模块1,第三组运算模块包括连接的第三浮点运算模块2和第三定点运算模块2,第四组运算模块包括连接的第四浮点运算模块3和第四定点运算模块3,本实施例优先设置将128位的操作数拆分成四个部分,分别给到四个浮点运算模块进行操作,每个浮点运算模块处理的数据长度为64位,其中,操作数0到63位给到第一浮点运算模块0;操作数32到63,低32位拼接上0给到第二浮点运算模块1;操作数64到127位给到第三浮点运算模块2;操作数96到127,低32位拼接上0给到第四浮点运算模块3,图7为本实施例提供的操作数拆分逻辑示意图,本实施例通过数据拆分模块生成定点数、浮点数的有效信号。
而在本实施例中,对于需要复用浮点资源的定点指令则输出53位操作数,其中,若是word类型的定点数,则将操作数0到31位,高21位拼接上0或符号位(有符号指令拼接符号位,无符号指令拼接0)给到第一浮点运算模块0;将操作数32到63位,高21位拼接上0或符号位给到第二浮点运算模块1;将操作数64到95位,高21位拼接上0或符号位给到第三浮点运算模块2;将操作数96到127位,高21位拼接上0或符号位给到第四浮点运算模块3。
若是halfword类型的定点数,则将操作数0到15位,高37位拼接上0或符号位(同word类型的定点数)给到第一浮点运算模块0;将操作数32到47位,高37位拼接上0或符号位给到第二浮点运算模块1;将操作数64到79位,高37位拼接上0或符号位给到第三浮点运算模块2;将操作数96到111位,高37位拼接上0或符号位给到第四浮点运算模块3;对于输入到定点运算模块的操作数,halfword类型的定点数和byte类型的定点数指令以16位的格式输出,halfword类型的定点数分别输出操作数16到31位,高16位拼接0或符号位给第一定点运算模块0;操作数48到63位,高16位拼接0或符号位给第二定点运算模块1;操作数80到95位,高16位拼接0或符号位给第三定点运算模块2;操作数112到127位,高16位拼接0或符号位给第四定点运算模块3。
若是byte类型,则将操作数0到31位给到第一定点运算模块0;操作数32到63位给到第二定点运算模块1;操作数64到95位给到第三定点运算模块2;操作数96到127位给到第四定点运算模块3。
具体地,每个浮点运算模块在第一级流水线结构中,数据解码单元将数据拆分模块输出的浮点数按照符号位、指数位和尾数位的格式拆分,并且将尾数的隐藏位拓展出来,双精度格式的带隐藏位尾数最大位宽为53,因此,各个浮点运算模块中采用的计算位宽为53位需要处理最多53位尾数(双精度尾数53位,单精度尾数24位),单精度浮点数的尾数最大位宽只有24位,因此,对于单精度浮点数需要在尾数低位拓展0到53位,需要说明的是,由于复用该浮点运算模块通路的定点数已经在数据拆分模块中拆分为53位,因此,在浮点运算模块的第一级流水线结构中无需做额外处理,在浮点运算模块的第二级流水线结构和第三级流水线结构中,本实施例采用的乘法器和加法器为53位位宽,其中,第二级流水线结构中的浮点乘法单元采用53位乘法器,第三级流水线结构中的浮点加法单元采用53位加法器,本实施例复用浮点运算资源的定点指令在浮点运算模块的第三级流水线结构计算完加法之后经过寄存器打拍输出给到定点运算模块的第四级流水线结构,浮点运算模块的第四级流水线结构利用数据规格化单元对计算完成的浮点数据进行规格化处理,第五级流水线结构利用舍入及状态位生成单元对规格化完成的尾数进行舍入操作,并且生成异常状态位,将数据按照符号位、指数位和尾数位的浮点数格式组合起来输出。
本实施例优先将定点运算模块设置为五个执行周期(五级流水线结构),在以输入的指令集位宽128位为例进行说明时,本实施例以图6中第一定点运算模块0的五个执行周期具体说明每个定点运算模块的结构:在第一定点运算模块0中,第一级流水线结构的第一定点乘法单元包括一个16位乘法器,第二级流水线结构的第二定点乘法单元包括4个8位乘法器和一个16位乘法器,第三级流水线结构的定点加法单元包括4个8位加法器和一个16位加法器,第四级流水线结构包括输出选择单元,第五级流水线结构的结果输出单元用于根据选择结果输出定点运算结果,具体地,定点运算模块的第一级流水线结构将输入的32位操作数拆分为4个8位和2个16位,对于halfword类型的指令直接进行乘法计算,为了使每级流水线所需计算时间相近,本实施例将16位乘法器拆分为两部分,并分别放在第一级流水线和第二级流水线操作,byte类型的定点数在第一级流水线不计算;第二级流水线计算有4组8位乘法器和1组16位乘法器,同时计算8位乘法和16位乘法,第三级流水线采用4组8位加法器和1个16位加法器,同时计算8位的加法和16位的加法;第四级流水线用于获取复用浮点运算模块的浮点通路结果,并对定点运算模块得到的8位或16位指令计算结果根据数据拆分模块产生的有效信号进行选择输出;第五级流水线将浮点运算模块计算的浮点通路结果和定点运算模块计算的定点通路结果再次进行选择,输出最终的选择结果。
相比于传统的定点运算模块,本实施例采用乘法器、加法器复用的方式来实现将定点word和halfword类型的指令输入到浮点运算模块中进行运算,不仅减少了32位加法器和乘法器、一个16位乘法器和加法器,从而有效地减小电路的面积,而且使定点运算模块与浮点运算模块的执行周期相同,简化了控制逻辑,有助于提高***的整体性能和效率。
需要说明的是,本实施例中的定点运算模块包含四个8位的booth乘法器和加法器,本实施例设置定点word类型指令完全复用浮点运算模块,得到乘加结果后回到定点运算模块输出;由于若要完整完成定点halfword指令的操作,总共需要8个乘法器和加法器,而浮点运算模块只有4个乘法器和加法器,因此,本实施例需要在定点模块采用4个乘法器和加法器实现计算,即将定点halfword类型指令一半数据复用浮点运算模块,一半在定点运算模块中实现;对于定点byte类型指令,由于byte类型为8位操作,位宽较小,其所需乘法器和加法器资源较小,复用省去的资源较少,若将其采用复用的方式,复用的控制逻辑增加了较大的复杂度,因此,本实施例优先设置定点byte类型不复用,定点byte类型指令全部在定点运算模块中实现,但是本领域技术人员也可根据具体实施情况,将定点byte类型指令也采用资源复用的方式进行复用运算。
如图8、图9所示,传统处理器在定点运算模块中不仅设置有32位乘法器和32位加法器,需要额外设置一个16位乘法器,增加了定点运算模块的计算资源,而且采用了四个执行周期,若按照传统处理器对定点进行处理,由于浮点和定点的控制逻辑和执行周期不同,会使计算资源比较多,而本实施例采用复用浮点运算模块中的乘法器和加法器的方式实现定点指令和浮点指令的运算,省去了32位加法器和乘法器,减少了加法器和乘法器的数量,从而有效地减小处理器的面积,而且本实施例设计定点运算模块与浮点运算模块的执行周期相同,比如为了和浮点运算模块的五个执行周期一致,将定点运算模块划分了五个周期,以使定点和浮点采用统一的流水线控制逻辑,避免因执行周期不同使得控制逻辑复杂化,需要说明的是,对于一个简述的流水线来说,指令的完整过程为:取指->译码->执行->访存->写回这五个步骤,但是对于一个复杂的处理器来说,若要实现五个步骤,则需要十几个甚至数十个时钟周期来完成,实现这五个步骤还包含指令的分派、指令相关性的检测,数据的旁路、写回等等相关逻辑,虽然指令的执行周期只是减少一个,但这些控制逻辑都需要有相应配套的设计,因此,本实施例将定点运算模块和浮点运算模块的执行周期统一,从而使用统一的流水线控制逻辑,这样的处理方式虽然在定点指令多一个执行周期,损失一定的性能,但是简化了控制逻辑;同时本实施例提供的装置能够实现所有类型的SIMD乘加指令的运算,降低了设计的复杂性,提高了计算正确率。
具体地,浮点运算模块和定点运算模块整体计算完之后,共计输出4组浮点运算结果和4组定点运算结果,数据整合模块根据数据拆分模块产生的有效信号将8个计算结果选择出128位进行输出,若有效信号为定点指令,则每个定点运算模块的32位输出全部选择,并优先设置将定点运算模块0的结果放在计算结果的0到31位,定点运算模块1的结果放在计算结果的32到63位,定点运算模块2的结果放在计算结果的64到95位,定点运算模块3的结果放在计算结果的96到127位。
而浮点运算模块的计算结果为64位,对于双精度浮点指令,本实施例优先选择浮点运算模块0和浮点运算模块2,并将浮点运算模块0和浮点运算模块2分别放在计算结果的高64位和低64位;对于单精度浮点指令,每个浮点运算模块的64位结果只输出高32位,浮点运算模块0的结果放在计算结果的0到31位,浮点运算模块1的结果放在计算结果的32到63位,浮点运算模块2的结果放在计算结果的64到95位,浮点运算模块3的结果放在计算结果的96到127位。
本实施例提供的定浮点SIMD乘加指令融合处理装置包含了四组运算模块,这四组运算模块能够满足SIMD指令所需的所有操作位宽和个数,输入的操作数经过数据拆分模块,将128bit的操作数拆分为不同位宽的数据,分别给到对应的运算模块,在计算完成后,将每组运算模块的计算结果根据指令的不同组合成一个128bit的数据即为最终计算结果,需要说明的是,本发明实施例提供的定浮点SIMD乘加指令融合处理装置也能够实现标量指令的计算,在实现标量指令的计算时,默认使用定点运算模块0和浮点运算模块0,向量双精度浮点指令默认使用定点运算模块0和浮点运算模块0、定点运算模块2和浮点运算模块2;其余SIMD指令则使用全部计算资源。
本发明实施例提供了一种定浮点SIMD乘加指令融合处理装置,所述装置包括数据拆分模块、数据整合模块和若干并行的运算模块,每组运算模块包括一一对应连接的浮点运算模块和定点运算模块;数据拆分模块用于根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;浮点运算模块用于将定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的定点运算模块的输出选择流水线阶段中;定点运算模块用于利用预设定点多级流水线结构逐级对定点操作数进行运算,得到定点通路结果,并根据浮点通路结果和定点通路结果输出定点运算结果。相较于传统处理器将定点指令和浮点指令分开运算的方式,本实施例采用复用浮点运算模块中的乘法器和加法器的方式实现定点指令和浮点指令的运算,减少了加法器和乘法器的数量,从而有效地减小处理器的面积,同时本实施例提供的装置能够实现所有类型的SIMD乘加指令的运算,降低了设计的复杂性,提高了计算正确率。
在一个实施例中,如图10所示,本发明实施例提供了一种定浮点SIMD乘加指令融合处理方法,应用于若干并行的运算模块,所述方法包括以下步骤:
S1.根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;其中,所述拆分数据包括不同位宽的浮点运算操作数和定点操作数,所述浮点运算操作数包括浮点操作数或者定点复用浮点操作数;
S2.利用预设浮点多级流水线结构逐级对所述浮点运算操作数进行运算,得到浮点运算结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至定点数的输出选择流水线阶段中;
S3.利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;
S4.根据指令集位宽,对所述浮点运算结果或定点运算结果进行整合,得到数据整合结果。
需要说明的是,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
关于一种定浮点SIMD乘加指令融合处理方法的具体限定可以参见上述对于一种定浮点SIMD乘加指令融合处理装置的限定,此处不再赘述。本领域普通技术人员可以意识到,结合本申请所公开的实施例描述的各个模块和步骤,能够以硬件、软件或者两者结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本发明实施例提供了一种定浮点SIMD乘加指令融合处理方法,所述方法根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;利用预设浮点多级流水线结构逐级对浮点运算操作数进行运算,得到浮点运算结果,并将定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至定点数的输出选择流水线阶段中;利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;根据指令集位宽,对所述浮点运算结果或定点运算结果进行整合,得到数据整合结果。与现有技术相比,本申请采用复用浮点资源的方式,可以减少定点运算模块的计算资源,而且本申请将定点运算模块和浮点运算模块的执行周期统一,使得两者可以采用统一的流水线控制逻辑,简化了控制逻辑。
图11是本发明实施例提供的一种计算机设备,包括存储器、处理器和收发器,它们之间通过总线连接;所述处理器包括处理器本体和设于处理器本体中的如上述的定浮点SIMD乘加指令融合处理装置。
其中,存储器可以包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者;处理器可以是中央处理器、微处理器、特定应用集成电路、可编程逻辑器件或其组合。通过示例性但不是限制性说明,上述可编程逻辑器件可以是复杂可编程逻辑器件、现场可编程逻辑门阵列、通用阵列逻辑或其任意组合。
另外,存储器可以是物理上独立的单元,也可以与处理器集成在一起。
本领域普通技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有相同的部件布置。
本发明实施例提供的一种定浮点SIMD乘加指令融合处理装置、方法及处理器,其定浮点SIMD乘加指令融合处理装置通过复用浮点的计算资源简化了控制逻辑,而且减少了定点运算模块的乘法器和加法器数量,从而提高硬件利用率,同时有助于减少加法器和乘法器硬件实现所需的面积,有效减少了处理器所占用的面积。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)等。
本领域技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种定浮点SIMD乘加指令融合处理装置,其特征在于,包括:依次连接的数据拆分模块、运算装置和数据整合模块;其中,所述运算装置包括若干并行的运算模块,每个所述运算模块包括一一对应连接的浮点运算模块和定点运算模块;
所述数据拆分模块,用于根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;其中,所述拆分数据包括不同位宽的浮点运算操作数和定点操作数,所述浮点运算操作数包括浮点操作数或者定点复用浮点操作数;
所述浮点运算模块,用于利用预设浮点多级流水线结构逐级对所述浮点运算操作数进行运算,得到浮点运算结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的所述定点运算模块的输出选择流水线阶段中;
所述定点运算模块,用于利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;所述定点运算模块和所述浮点运算模块的流水线结构级数相同;
所述数据整合模块,用于根据指令集位宽,对浮点运算模块或定点运算模块输出的运算结果进行整合,得到数据整合结果。
2.如权利要求1所述的一种定浮点SIMD乘加指令融合处理装置,其特征在于,所述数据拆分模块,具体用于:
对输入的定浮点操作数进行类型检测,若所述定浮点操作数的类型属于预设的资源复用类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个定点复用浮点操作数和/或定点操作数,将所述定点复用浮点操作数和/或定点操作数分别分配至不同运算模块中的浮点运算模块和/或定点运算模块,以通过复用浮点运算模块的结构,在计算过程中将定点复用浮点操作数转换为浮点数尾数的位宽进行计算;
若所述定浮点操作数的类型属于浮点类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个浮点操作数,将多个所述浮点操作数分别分配至不同运算模块中的浮点运算模块;
若所述定浮点操作数的类型属于定点类型,则将所述定浮点操作数按照其对应的位宽和指令集位宽拆分为多个定点操作数,将多个所述定点操作数分别分配至不同运算模块中的定点运算模块;
其中,所述资源复用类型为将定浮点操作数中的部分或者全部定点数转换为浮点数进行计算的类型。
3.如权利要求1所述的一种定浮点SIMD乘加指令融合处理装置,其特征在于:所述资源复用类型至少包括定点word类型和定点halfword类型,其中,定点word类型的指令全部复用浮点运算模块,定点halfword类型的指令部分复用浮点运算模块,以将定点word类型的指令和定点halfword类型的指令全部或者部分转换为浮点数进行乘加计算。
4.如权利要求1所述的一种定浮点SIMD乘加指令融合处理装置,其特征在于:所述定点运算模块的多级流水线结构至少包括布设在不同级流水线结构中的第一定点乘法单元、第二定点乘法单元、定点加法单元、输出选择单元和结果输出单元;其中,所述第一定点乘法单元包括第一乘法器,所述第二定点乘法单元包括第二乘法器和第三乘法器,所述定点加法单元包括与所述第二乘法器和所述第三乘法器分别连接的第一加法器和第二加法器;
所述第一定点乘法单元用于对输入的所述定点操作数进行乘法运算,得到第一乘法运算结果;
所述第二定点乘法单元用于对所述第一乘法运算结果进行乘法运算,得到第二乘法运算结果;
所述定点加法单元用于对所述第二乘法运算结果进行加法运算,得到定点通路结果;
所述输出选择单元用于响应于定浮点选择信号的输入,对所述定点通路结果和所述浮点通路结果进行选择,得到选择结果,以通过所述结果输出单元根据所述选择结果输出定点运算结果。
5.如权利要求4所述的一种定浮点SIMD乘加指令融合处理装置,其特征在于:所述浮点运算模块包括数据解码单元、浮点乘法单元、浮点加法单元、数据规格化单元和舍入及状态位生成单元;
所述数据解码单元,用于对输入的所述浮点操作数以符号位、指数和尾数进行拆分,得到浮点拆分数据;
所述浮点乘法单元,用于对浮点拆分数据的指数位进行加法运算,对浮点拆分数据的符号位进行异或运算,对所述浮点拆分数据中的尾数或输入的所述定点复用浮点操作数进行乘法运算,得到对应的浮点乘法运算结果或复用乘法运算结果;
所述浮点加法单元,用于对所述浮点乘法运算结果或所述复用乘法运算结果进行加法运算,得到对应的浮点加法运算结果或浮点通路结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至与其连接的所述定点运算模块的输出选择单元中,将所述浮点加法运算结果打拍至所述数据规格化单元中;
所述数据规格化单元,用于对浮点乘法运算结果进行规格化处理;
所述舍入及状态位生成单元,用于对规格化的尾数进行舍入操作,得到舍入结果,并生成异常状态位,以符号位、指数位和尾数位的浮点数格式输出浮点运算结果。
6.如权利要求1所述的一种定浮点SIMD乘加指令融合处理装置,其特征在于,所述数据整合结果包括定点数据整合结果或者浮点数据整合结果,所述数据整合模块,具体用于:
响应于定点指令的输入,根据指令集位宽对各个定点运算模块输出的定点运算结果进行选择并整合,生成定点数据整合结果。
7.如权利要求1所述的一种定浮点SIMD乘加指令融合处理装置,其特征在于,所述数据整合结果包括定点数据整合结果或者浮点数据整合结果,所述数据整合模块,具体用于:
响应于浮点指令的输入,根据指令集位宽对各个浮点运算模块输出的浮点运算结果进行选择并整合,生成浮点数据整合结果。
8.一种定浮点SIMD乘加指令融合处理方法,其特征在于,应用于若干并行的运算模块,所述方法包括以下步骤:
根据操作数类型和位宽,将输入的定浮点操作数拆分为多个拆分数据,并将多个拆分数据分配到不同的运算模块;其中,所述拆分数据包括不同位宽的浮点运算操作数和定点操作数,所述浮点运算操作数包括浮点操作数或者定点复用浮点操作数;
利用预设浮点多级流水线结构逐级对所述浮点运算操作数进行运算,得到浮点运算结果,并将所述定点复用浮点操作数进行乘加操作后输出的浮点通路结果打拍至定点数的输出选择流水线阶段中;
利用预设定点多级流水线结构逐级对所述定点操作数进行运算,得到定点通路结果,并根据所述浮点通路结果和所述定点通路结果输出定点运算结果;
根据指令集位宽,对所述浮点运算结果或定点运算结果进行整合,得到数据整合结果。
9.一种处理器,其特征在于:包括处理器本体和设于处理器本体中的如权利要求1~7中任意一项所述的定浮点SIMD乘加指令融合处理装置。
10.一种计算机设备,其特征在于:包括处理器和存储器,所述处理器与所述存储器相连,所述处理器包括处理器本体和设于处理器本体中的如权利要求1~7中任意一项所述的定浮点SIMD乘加指令融合处理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211479.9A CN117251132B (zh) | 2023-09-19 | 2023-09-19 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211479.9A CN117251132B (zh) | 2023-09-19 | 2023-09-19 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117251132A true CN117251132A (zh) | 2023-12-19 |
CN117251132B CN117251132B (zh) | 2024-05-14 |
Family
ID=89128792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311211479.9A Active CN117251132B (zh) | 2023-09-19 | 2023-09-19 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251132B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986264A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
US20110072066A1 (en) * | 2009-09-21 | 2011-03-24 | Arm Limited | Apparatus and method for performing fused multiply add floating point operation |
CN102566967A (zh) * | 2011-12-15 | 2012-07-11 | 中国科学院自动化研究所 | 一种采用多级流水线结构的高速浮点运算器 |
CN104111816A (zh) * | 2014-06-25 | 2014-10-22 | 中国人民解放军国防科学技术大学 | Gpdsp中多功能simd结构浮点融合乘加运算装置 |
CN105335127A (zh) * | 2015-10-29 | 2016-02-17 | 中国人民解放军国防科学技术大学 | Gpdsp中支持浮点除法的标量运算单元结构 |
US9904514B1 (en) * | 2015-10-06 | 2018-02-27 | Altera Corporation | Fused floating-point arithmetic circuitry |
CN108287681A (zh) * | 2018-02-14 | 2018-07-17 | 中国科学院电子学研究所 | 一种单精度浮点融合点乘运算单元 |
CN108459840A (zh) * | 2018-02-14 | 2018-08-28 | 中国科学院电子学研究所 | 一种simd结构浮点融合点乘运算单元 |
CN115390790A (zh) * | 2022-08-01 | 2022-11-25 | 中国人民解放军国防科技大学 | 一种具有融合精度转换功能的浮点乘加单元及其应用方法 |
CN116450085A (zh) * | 2023-05-25 | 2023-07-18 | 中国人民解放军国防科技大学 | 一种可扩展的BFloat16点乘运算器及微处理器 |
CN116627379A (zh) * | 2023-05-23 | 2023-08-22 | 上海交通大学 | 可重构的支持多精度浮点或定点运算的方法及*** |
CN116643718A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
-
2023
- 2023-09-19 CN CN202311211479.9A patent/CN117251132B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110072066A1 (en) * | 2009-09-21 | 2011-03-24 | Arm Limited | Apparatus and method for performing fused multiply add floating point operation |
CN101986264A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
CN102566967A (zh) * | 2011-12-15 | 2012-07-11 | 中国科学院自动化研究所 | 一种采用多级流水线结构的高速浮点运算器 |
CN104111816A (zh) * | 2014-06-25 | 2014-10-22 | 中国人民解放军国防科学技术大学 | Gpdsp中多功能simd结构浮点融合乘加运算装置 |
US9904514B1 (en) * | 2015-10-06 | 2018-02-27 | Altera Corporation | Fused floating-point arithmetic circuitry |
CN105335127A (zh) * | 2015-10-29 | 2016-02-17 | 中国人民解放军国防科学技术大学 | Gpdsp中支持浮点除法的标量运算单元结构 |
CN108287681A (zh) * | 2018-02-14 | 2018-07-17 | 中国科学院电子学研究所 | 一种单精度浮点融合点乘运算单元 |
CN108459840A (zh) * | 2018-02-14 | 2018-08-28 | 中国科学院电子学研究所 | 一种simd结构浮点融合点乘运算单元 |
CN115390790A (zh) * | 2022-08-01 | 2022-11-25 | 中国人民解放军国防科技大学 | 一种具有融合精度转换功能的浮点乘加单元及其应用方法 |
CN116627379A (zh) * | 2023-05-23 | 2023-08-22 | 上海交通大学 | 可重构的支持多精度浮点或定点运算的方法及*** |
CN116450085A (zh) * | 2023-05-25 | 2023-07-18 | 中国人民解放军国防科技大学 | 一种可扩展的BFloat16点乘运算器及微处理器 |
CN116643718A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
Non-Patent Citations (2)
Title |
---|
BABOJI 等: "FFT implementation using floating point fused multiplier with four term adder", 2017 INTERNATIONAL CONFERENCE ON MICROELECTRONIC DEVICES, CIRCUITS AND SYSTEMS (ICMDCS), 1 January 2017 (2017-01-01) * |
何军;黄永勤;朱英;: "基于SIMD部件的四倍精度浮点乘加器设计", 计算机科学, no. 12, 15 December 2013 (2013-12-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117251132B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9519460B1 (en) | Universal single instruction multiple data multiplier and wide accumulator unit | |
EP0699318B1 (en) | Unified floating point and integer datapath for risc processor | |
US5991785A (en) | Determining an extremum value and its index in an array using a dual-accumulation processor | |
US8918445B2 (en) | Circuit which performs split precision, signed/unsigned, fixed and floating point, real and complex multiplication | |
US20060041610A1 (en) | Processor having parallel vector multiply and reduce operations with sequential semantics | |
WO2021078212A1 (zh) | 用于向量内积的计算装置、方法和集成电路芯片 | |
US20120278590A1 (en) | Reconfigurable processing system and method | |
US10949168B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
CN112732221A (zh) | 用于浮点运算的乘法器、方法、集成电路芯片和计算装置 | |
US9317478B2 (en) | Dual-path fused floating-point add-subtract | |
WO2021078210A1 (zh) | 用于神经网络运算的计算装置、方法、集成电路和设备 | |
JP2012528391A (ja) | 飽和を伴う整数乗算および乗算加算演算 | |
WO2021041139A1 (en) | Signed multiword multiplier | |
TWI774093B (zh) | 用於轉換資料類型的轉換器、晶片、電子設備及其方法 | |
US5721697A (en) | Performing tree additions via multiplication | |
CN117251132B (zh) | 定浮点simd乘加指令融合处理装置、方法及处理器 | |
US6745318B1 (en) | Method and apparatus of configurable processing | |
US6209012B1 (en) | System and method using mode bits to support multiple coding standards | |
US7047271B2 (en) | DSP execution unit for efficient alternate modes for processing multiple data sizes | |
US20230289141A1 (en) | Operation unit, floating-point number calculation method and apparatus, chip, and computing device | |
US20240220202A1 (en) | Multi-Modal Systolic Array For Matrix Multiplication | |
US20070011222A1 (en) | Floating-point processor for processing single-precision numbers | |
CN112148371B (zh) | 基于单指令多数据流的数据运算方法、装置、介质和设备 | |
WO2024144950A1 (en) | Multi-modal systolic array for matrix multiplication | |
CN116382618A (zh) | 单精度浮点运算装置 |
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 |