CN105335127A - Gpdsp中支持浮点除法的标量运算单元结构 - Google Patents
Gpdsp中支持浮点除法的标量运算单元结构 Download PDFInfo
- Publication number
- CN105335127A CN105335127A CN201510718454.7A CN201510718454A CN105335127A CN 105335127 A CN105335127 A CN 105335127A CN 201510718454 A CN201510718454 A CN 201510718454A CN 105335127 A CN105335127 A CN 105335127A
- Authority
- CN
- China
- Prior art keywords
- floating
- point
- instruction
- scalar
- precision
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000008901 benefit Effects 0.000 claims abstract description 17
- 238000007667 floating Methods 0.000 claims description 62
- 238000012545 processing Methods 0.000 claims description 24
- 230000001413 cellular effect Effects 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 17
- 102100021935 C-C motif chemokine 26 Human genes 0.000 claims description 11
- 101000897493 Homo sapiens C-C motif chemokine 26 Proteins 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 10
- 229920006395 saturated elastomer Polymers 0.000 claims description 10
- 238000006073 displacement reaction Methods 0.000 claims description 9
- 238000012856 packing Methods 0.000 claims description 9
- 238000002360 preparation method Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000000926 separation method Methods 0.000 claims description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 4
- 241001269238 Data Species 0.000 claims description 3
- HVXBOLULGPECHP-UHFFFAOYSA-N combretastatin A4 Natural products C1=C(O)C(OC)=CC=C1C=CC1=CC(OC)=C(OC)C(OC)=C1 HVXBOLULGPECHP-UHFFFAOYSA-N 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims description 3
- 125000002950 monocyclic group Chemical group 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 5
- 101150082208 DIABLO gene Proteins 0.000 description 10
- 102100033189 Diablo IAP-binding mitochondrial protein Human genes 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000006872 improvement Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 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/52—Multiplying; Dividing
-
- 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/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种GPDSP中支持浮点除法的标量运算单元结构,其包括作为标量运算部件的第一部件SMAC1、第二部件SMAC2和第三部件SIEU,用于支持标量基础运算;每个所述标量运算部件对应VLIW执行包中的一条标量指令。本发明具有指令执行周期少、延迟小、结构简单、可行性好等优点。
Description
技术领域
本发明主要涉及到微处理器领域,特指一种适用于在高性能通用DSP(GPDSP)芯片中支持浮点除法的标量运算单元实现结构。
背景技术
随着互联网、移动通信、消费电子、多媒体技术带动的数字业务的飞速发展,人们需要更加强大的数字信号处理器,来处理庞大的数据业务。例如高清2D或3D数字图像处理、雷达信号处理、自主导航信息处理、移动通信等。由于这些算法都具有数据运算密集型的特点,涉及到大量浮点、定点、逻辑、复数的基本操作和除法等运算。尤其除法,单精度浮点除法或者双精度浮点除法运算的性能将对整个处理器整体性能的产生较大影响,将成为某些应用中的性能瓶颈。
目前,没有一款能直接支持浮点除法指令的高性能通用DSP(GPDSP)。例如TI通用浮点系列DSP不能直接实现浮点除法指令,硬件通过查找表的方法得到倒数的近似值,然后通过牛顿迭代方式调用相关子程序来实现除法运算。这种实现方式面积较小,但是无法通过迭代方法获得IEEE-754标准的浮点除法结果,而且相对于直接硬件实现,该方法迭代计算时间较长。
由于除法硬件实现算法复杂度高、设计结构复杂、占用面积较大,一般不在并行性较大的向量部件直接设计除法部件。因此,一种支持浮点除法的标量运算单元设计具有重要的意义。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种指令执行周期少、延迟小、结构简单、可行性好的GPDSP中支持浮点除法的标量运算单元结构。
为解决上述技术问题,本发明采用以下技术方案:
一种GPDSP中支持浮点除法的标量运算单元结构,其包括作为标量运算部件的第一部件SMAC1、第二部件SMAC2和第三部件SIEU,用于支持标量基础运算;每个所述标量运算部件对应VLIW执行包中的一条标量指令。
作为本发明的进一步改进:还包括标量寄存器文件,用于数据的读取及写回操作;当接收到派发部件派发的标量指令,译码后判断是属于哪个标量运算部件,同时将对应的源操作数地址及读请求送至标量寄存器文件,待指令有效信号送至对用的标量运算部件后,将得到从标量寄存器文件得到的数据,开始执行运算,最后将结果写回标量寄存器文件。
作为本发明的进一步改进:所述第一部件SMAC1和第二部件SMAC2为同构MAC运算部件;所述MAC运算部件包括浮点乘加单元FMAC、定点乘加单元IMAC、浮点算术逻辑单元FALU、浮点除法单元FDIV;上述各功能单元是拥有相同数据通路的独立单元,同一周期只能有一个功能部件执行有效指令,执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址。
作为本发明的进一步改进:所述第一部件SMAC1和第二部件SMAC2为同构MAC运算部件;所述MAC运算部件包括浮点乘加单元FMAC、定点乘加单元IMAC、浮点算术逻辑单元FALU、浮点除法单元FDIV;上述各功能单元是拥有相同数据通路的独立单元,同一周期只能有一个功能部件执行有效指令,执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址。
作为本发明的进一步改进:所述浮点乘加单元FMAC用来处理多周期复杂浮点运算,采用动态流水线结构,每个周期可以流出一条指令,同一个时钟周期各流水站可以执行不同的操作。
作为本发明的进一步改进:所述浮点乘加单元FMAC采用双精度对阶移位操作和单精度对阶移位操作分离FMAC结构,包括:操作数准备模块R、尾数乘法模块X、双精度乘加运算通路Y、单精度乘加运算通路Z、单双精度通路复用的规格化处理模块S;所述操作数准备模块R根据指令,按照IEEE-754标准完成浮点单精度、双精度操作数的符号、指数、尾数的分离和输入操作数的例外判断;所述尾数乘法模块X负责所有指令的单精度乘法结果尾数计算;所述双精度乘加运算通路Y用来完成双精度操作的指数阶差计算及双精度操作数C的161位对阶移位、双精度结果尾数计算的最后一级CSA4:2部分积压缩;所述单精度乘加运算通路Z用来完成SIMD乘加、SIMD乘减、SIMD乘法和点积、复数乘法操作的指数阶差计算、尾数交换和尾数交换后的对阶;所述单双精度通路复用的规格化处理模块S用来完成对阶移位后的结果尾数计算、规格化处理及指数修正操作。
作为本发明的进一步改进:所述定点乘加单元IMAC用来执行定点乘累加;在实现定点和浮点乘加、乘减指令的时候,输入乘法器的两操作数为64位浮点数据,第三操作数为53位的的浮点操作数,结果为64位的浮点操作数;而执行定点乘加减指令时,乘法器的两个操作数为32位有符号/无符号的操作数,第三个操作数为一个64位的有符号/无符号操作数,结果为一个64位的有符号/无符号的目的操作数。
作为本发明的进一步改进:所述浮点算术逻辑单元FALU包括浮点FALU短周期指令模块、浮点ALU转换指令模块和浮点ALU加减法指令模块;所述浮点FALU短周期指令模块包含所有单周期的浮点算术逻辑指令,包括单/双精度的大于、小于及相等比较指令,求单/双精度的指数、尾数和绝对值的指令,计算单/双精度倒数和平方根倒数的指令以及单精度浮点转换成双精度浮点数的指令。
作为本发明的进一步改进:所述第三部件SIEU包括位处理单元BP和定点算术逻辑单元IALU,两者是具有相同数据通路的独立单元,同一周期只能有一个功能单元执行有效指令;执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址;同时,根据指令执行时候的饱和和非饱和情况,还会产生置位信号,标示出该条指令执行情况。
作为本发明的进一步改进:所述BP单元包括三个功能单元,分别是64位移位器单元shifter、位处理单元Bitp和打包解包单元PK;从译码站出来的译码信号以及来自于寄存器的源操作数被三个功能单元接收,并立即开始运算,最终的输出结果根据选择信号从移位和打包解包功能单元的运算结果中选择及位处理单元结果输出;若是打包解包指令,且需要判饱和,饱和标志会在结果输出的同时输出给状态寄存器。
与现有技术相比,本发明的优点在于:
1、本发明的GPDSP中支持浮点除法的标量运算单元结构,基于SRT-8算法的浮点除法指令硬件实现结构,具有指令执行周期少,延迟小,结构简单,可行性好的特点。同时,整个SPE结构能够提供逻辑复用设计,更好的满足设计的可移植性及面积可控性的特点。
2、本发明的GPDSP中支持浮点除法的标量运算单元结构,为混合运算单元,能够实现64位定点、32位定点、双精度浮点和单精度浮点相关运算,功能全面。
3、本发明的GPDSP中支持浮点除法的标量运算单元结构,可实现三条流水线的并行执行,适合在处理器中实现;浮点运算部分支持浮点乘加、乘法、加法,还有复数、点积等相关运算,可以满足多种应用场合的要求。
4、本发明的GPDSP中支持浮点除法的标量运算单元结构,复用关键部件64*64乘法器,能在同一硬件平台上实现定点和浮点混合乘法,面积开销小。本发明支持基于SRT-8算法的除法设计,能够实现64位有符号无符号定点整数除法、32位有符号无符号定点整数除法、双精度浮点除法和单精度浮点除法的指令。
附图说明
图1是本发明标量运算单元(SPE)在处理器中的位置示意图。
图2是本发明标量运算单元(SPE)的拓扑结构示意图。
图3是本发明标量运算单元(SPE)的数据通路结构示意图。
图4是本发明在具体应用实例中SMAC部件的拓扑结构示意图。
图5是本发明在具体应用实例中SMAC部件子单元FMAC的结构示意图。
图6是本发明在具体应用实例中SMAC部件子单元IMAC的结构示意图。
图7是本发明在具体应用实例中SMAC部件子单元FALU的结构示意图。
图8是本发明在具体应用实例中SMAC部件子单元FDIV的结构示意图。
图9是本发明在具体应用实例中SMAC部件复用64*64乘法器的结构示意图。
图10是本发明在具体应用实例中IEU部件的拓扑结构示意图。
图11是本发明在具体应用实例中SIEU部件子单元BP的结构示意图。
图12是本发明在具体应用实例中SIEU部件子单元IALU的结构示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,为本发明的标量运算单元(SPE)在处理器中的位置。本发明的标量运算单元SPE位于处理器的标量处理单元SC中,通过接收指令流控单元中派发部件派发的标量运算类指令,译码后送到SPE内对应的功能运算单元执行。标量处理单元SC中还包含标量数据访存单元,它能实现标量访存指令译码、地址计算及数据写回等访存流水站控制,还可以为SPE提供数据支持;同时SPE也可以给标量访存单元提供地址处理、数据读取等相关运算。
如图2所示,为本发明的标量运算单元SPE的拓扑结构示意图。SPE内部集成三个运算部件,分别是第一部件SMAC1、第二部件SMAC2和第三部件SIEU,用于支持标量基础运算。每个标量运算部件,对应VLIW执行包中的一条标量指令,即SPE包括三条可并行执行的流水线。同时,SPE中还包含一个标量寄存器文件,用于数据的读取及写回操作。当SPE接收到派发部件派发的标量指令,译码后判断是属于哪个运算部件,同时将对应的源操作数地址及读请求送至标量寄存器文件,待指令有效信号送至对用的运算部件后,将得到从标量寄存器文件得到的数据,开始执行运算,最后将结果写回标量寄存器文件。处理器中的标量寄存器文件位于标量运算单元SPE中,它能够为第一部件SMAC1、第二部件SMAC2和第三部件SIEU这三个功能部件提供独立的读写端口,以保证每个功能部件满足其实现指令所需操作数数目,如第一部件SMAC1、第二部件SMAC2分别有3个读端口和1个写端口,第三部件SIEU有2个读端口,1个写端口。
如图3和图4所示,第一部件SMAC1、第二部件SMAC2为同构MAC运算部件,每个MAC运算部件包含四个独立的功能单元,分别为:浮点乘加单元FMAC、定点乘加单元IMAC、浮点算术逻辑单元FALU、浮点除法单元FDIV。其中,浮点乘加单元FMAC和定点乘加单元IMAC复用了一个64*64乘法器,使得整个处理器的面积有所减少。浮点乘加单元FMAC、定点乘加单元IMAC、浮点算术逻辑单元FALU、浮点除法单元FDIV这四个功能单元是拥有相同数据通路的独立单元,同一周期只能有一个功能部件执行有效指令,执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址;即同一周期四者不能同时开始执行或写回,但可由软件流水调度并行;其操作数来源主要为标量寄存器文件中的数据,还可以来自立即数Imm。除了浮点算术逻辑单元FALU只有两操作数指令,其他三个单元都支持三操作数指令。第三部件SIEU包括位处理单元BP和定点算术逻辑单元IALU,两者是具有相同数据通路的独立单元,同一周期两者不能同时开始执行或写回,可由软件流水调度实现并行;其操作数来源主要为标量寄存器文件中的数据,还可以来自立即数Imm、标向量共享寄存器SVR、向量单元局部控制寄存器VULCR,两者都只有两操作数指令。
如图5所示,浮点乘加单元FMAC是处理器运算单元中处理多周期复杂浮点运算的功能部件。该部件能实现4类浮点指令:乘法指令、乘加指令、乘后加指令、加法指令。它采用动态流水线结构,每个周期可以流出一条指令,同一个时钟周期各流水站可以执行不同的操作。
本实施例中,浮点乘加单元FMAC采用双精度对阶移位操作和单精度对阶移位操作分离FMAC结构,即通路分离的FMAC结构,目的是为了简化硬件实现算法和减少站间的大位宽数据寄存出发。其总体结构由五部分组成:操作数准备模块R,尾数乘法模块X,双精度乘加运算通路Y,单精度乘加运算通路Z,单双精度通路复用的规格化处理模块S。其中,操作数准备模块R根据指令,按照IEEE-754标准完成浮点单精度、双精度操作数的符号、指数、尾数的分离和输入操作数的例外判断。尾数乘法模块X负责所有指令的单精度乘法结果尾数计算。双精度通路Y完成双精度操作的指数阶差计算及双精度操作数C的161位对阶移位、双精度结果尾数计算的最后一级CSA4:2部分积压缩。单精度通路Z完成SIMD乘加,SIMD乘减,SIMD乘法和点积、复数乘法操作的指数阶差计算、尾数交换和尾数交换后的对阶。S模块完成对阶移位后的结果尾数计算、规格化处理及指数修正等操作。
如图6所示,定点乘加单元IMAC是运算处理单元中执行定点乘累加的功能单元,可以执行定点加减法运算、乘法运算、乘加运算、乘减运算、MOV类运算。在定点算法运行和控制过程中都存在大量定点加减法以及MOV运算,将定点加减法和MOV集成到定点MAC单元的目的是为了在VLIW指令中增加定点加减法和MOV类的指令槽,提高运算速率。在实现定点和浮点乘加、乘减指令的时候,输入乘法器的两操作数为64位浮点数据,第三操作数为53位的的浮点操作数,结果为64位的浮点操作数;而定点乘加减指令的实现,乘法器的两个操作数为32位有符号/无符号的操作数,第三个操作数为一个64位的有符号/无符号操作数,结果为一个64位的有符号/无符号的目的操作数。还支持定点点积和复数的相关运算。
如图7所示,在浮点算术逻辑单元FALU的结构中,根据实现功能及指令周期的不同,分成了三个子执行模块:浮点FALU短周期指令模块、浮点ALU转换指令模块和浮点ALU加减法指令模块;其中,浮点FALU短周期指令模块包含所有单周期的浮点算术逻辑指令,包括单/双精度的大于、小于及相等比较指令,求单/双精度的指数、尾数和绝对值的指令,计算单/双精度倒数和平方根倒数的指令以及单精度浮点转换成双精度浮点数的指令;浮点ALU转换指令模块实现了2周期浮点与定点之间以及单/双精度浮点之间的类型转换指令,包括单/双精度浮点数转换为整数指令、单/双精度浮点数截断转换成整数、(有符号或无符号)整数转换为单/双精度浮点数、双精度浮点转换成单精度浮点数指令;浮点ALU加减法指令模块实现了4周期的单/双精度浮点加减法指令。
如图8所示,为本实施例中的浮点除法单元FDIV,其中两个遵循IEEE-754浮点格式的操作数A和B,它们之间执行除法操作,其运算可以分为以下几步:
S1.检测操作数是否为例外数据,并设置结果数据。
S2.计算结果值的符号位:两符号位异或。
S3.计算结果的指数部分,两指数阶码相减。
S4.尾数相除:将除数的尾数低位增加0以此来扩展除数的尾数位数使之增加为原来的一倍,获得精度限制的位数结果。
S5.结果规格化:尾数相除后,可能需要左移,同时减小指数,并根据舍入模式,进行尾数结果调整。
S6.异常检测:在IEEE-754中对浮点除法规定了两种异常的产生上溢和下溢:如果结果指数超出了精度所允许的最大指数值则返回上溢异常;如果结果指数比精度所规定的最小指数值还要小则返回下溢异常。
该浮点除法单元FDIV的结构设计基于SRT-8算法的SIMD结构浮点除法指令。所述SRT-8指令分为01、10、11次调用指令,即图中所示的选择信号来选择出指令执行的类型;其分别执行双精度浮点1~6(SIMD双单精度浮点1~3)次除法迭代,双精度浮点7~12(SIMD双单精度浮点4~6)次除法迭代,双精度浮点13~18(SIMD双单精度浮点7~9)次除法迭代。最后根据SRT-8指令输出的余数和商结果,及SRT-8指令的调用次数,规格化双精度浮点除法或者SIMD双单精度浮点除法不同运算精度的商结果。
该结构以SRT-8算法为基础,利用硬件资源复用技术和迭代切割技术,在同一硬件结构上并行实现双精度浮点除法,SIMD双单精度浮点除法功能。
本发明的SPE结构支持浮点除法。标量浮点除法部件(SFDIV)是SMAC部件中执行标量浮点除法运算的功能单元,主要实现了四条指令,分别为基于SRT-8除法算法的双精度浮点除法迭代指令、双精度浮点除法规格化指令、基于SRT-8除法算法的SIMD双单精度浮点除法迭代指令和SIMD双单精度浮点除法规格化指令。在GPDSP中指令采用40位编码,其SIMD浮点除法指令集包括两条双精度浮点除法指令(FSRT8D和FNORMD)和两条SIMD双单精度浮点除法指令(FSRT8S32和FNORMS32)。其实现的指令描述如表1所示:
表1除法单元指令类型和功能
指令名称 | 节拍数 | 编码位数 | 指令功能 | 标量指令 |
SFSRT8D | 7 | 40 | 双精度浮点除法迭代 | 是 |
SFNORMD | 2 | 40 | 双精度浮点除法规格化 | 是 |
SFSRT8S32 | 4 | 40 | SIMD双单精度浮点除法迭代 | 是 |
SFNORMS32 | 2 | 40 | SIMD双单精度浮点除法规格化 | 是 |
如图9所示,为本发明中SMAC部件复用的64*64乘法器结构示意图。在SMAC结构中考虑到64x64位乘法指令在设计中占用很大面积的情况,SMAC部件中的乘法器采用逻辑模块复用设计,定点/浮点复用模块主体是四个32x32位乘法器。数据输入后经操作数处理开始执行乘法操作,根据不同的指令,需根据派发过来的指令,先进行操作数选择和位扩展处理,将处理好的操作数分别输入到4个32x32乘法器中进行乘法运算。结果分定点结果和浮点结果,然后根据指令不同,结果写回寄存器或送往到下一站。
如图10所示,为具体应用实例中第三部件IEU的拓扑结构示意图。第三部件SIEU包括位处理单元BP和定点算术逻辑单元IALU,两者是具有相同数据通路的独立单元,同一周期只能有一个功能单元执行有效指令。执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址。同时,根据指令执行时候的饱和和非饱和情况,还会产生置位信号,标示出该条指令执行情况。即:同一周期两者不能同时开始执行或写回,可由软件流水调度实现并行;其操作数来源主要为标量寄存器文件中的数据,还可以来自立即数Imm、标向量共享寄存器SVR、向量单元局部控制寄存器VULCR,两者都只有两操作数指令。
如图11所示,为具体应用实例中位处理单元BP的拓扑结构示意图。BP单元包括三个功能单元,分别是64位移位器单元shifter、位处理单元Bitp和打包解包单元PK。从译码站出来的译码信号以及来自于寄存器的源操作数被三个功能单元接收,并立即开始运算,最终的输出结果根据选择信号从移位和打包解包功能单元的运算结果中选择及位处理单元结果输出。若是打包解包指令,且需要判饱和,饱和标志会在结果输出的同时输出给状态寄存器。
如图12所示,为具体应用实例中定点算术逻辑单元IALU的拓扑结构示意图。定点算术逻辑单元IALU包含了8个子模块,由于加减法操作的延时最大,在IALU的结构设计上,不和比较类指令复用加法,采用分离的加法器结构。在逻辑选择顺序上将其放在最后一级,为了更进一步的减小延时,将饱和加减法操作分离,由加减法指令,饱和指令和相关的控制寄存器联合实现。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.一种GPDSP中支持浮点除法的标量运算单元结构,其特征在于,包括作为标量运算部件的第一部件SMAC1、第二部件SMAC2和第三部件SIEU,用于支持标量基础运算;每个所述标量运算部件对应VLIW执行包中的一条标量指令。
2.根据权利要求1所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,还包括标量寄存器文件,用于数据的读取及写回操作;当接收到派发部件派发的标量指令,译码后判断是属于哪个标量运算部件,同时将对应的源操作数地址及读请求送至标量寄存器文件,待指令有效信号送至对用的标量运算部件后,将得到从标量寄存器文件得到的数据,开始执行运算,最后将结果写回标量寄存器文件。
3.根据权利要求1所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述第一部件SMAC1和第二部件SMAC2为同构MAC运算部件;所述MAC运算部件包括浮点乘加单元FMAC、定点乘加单元IMAC、浮点算术逻辑单元FALU、浮点除法单元FDIV;上述各功能单元是拥有相同数据通路的独立单元,同一周期只能有一个功能部件执行有效指令,执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址。
4.根据权利要求3所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述浮点乘加单元FMAC和定点乘加单元IMAC的乘法器采用逻辑模块复用设计,定点/浮点复用模块主体是四个32x32位乘法器;数据输入后经操作数处理开始执行乘法操作,根据不同的指令,根据派发过来的指令,先进行操作数选择和位扩展处理,将处理好的操作数分别输入到4个32x32乘法器中进行乘法运算;结果分定点结果和浮点结果,然后根据指令不同,结果写回寄存器或送往到下一站。
5.根据权利要求3所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述浮点乘加单元FMAC用来处理多周期复杂浮点运算,采用动态流水线结构,每个周期可以流出一条指令,同一个时钟周期各流水站可以执行不同的操作。
6.根据权利要求5所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述浮点乘加单元FMAC采用双精度对阶移位操作和单精度对阶移位操作分离FMAC结构,包括:操作数准备模块R、尾数乘法模块X、双精度乘加运算通路Y、单精度乘加运算通路Z、单双精度通路复用的规格化处理模块S;所述操作数准备模块R根据指令,按照IEEE-754标准完成浮点单精度、双精度操作数的符号、指数、尾数的分离和输入操作数的例外判断;所述尾数乘法模块X负责所有指令的单精度乘法结果尾数计算;所述双精度乘加运算通路Y用来完成双精度操作的指数阶差计算及双精度操作数C的161位对阶移位、双精度结果尾数计算的最后一级CSA4:2部分积压缩;所述单精度乘加运算通路Z用来完成SIMD乘加、SIMD乘减、SIMD乘法和点积、复数乘法操作的指数阶差计算、尾数交换和尾数交换后的对阶;所述单双精度通路复用的规格化处理模块S用来完成对阶移位后的结果尾数计算、规格化处理及指数修正操作。
7.根据权利要求3所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述定点乘加单元IMAC用来执行定点乘累加;在实现定点和浮点乘加、乘减指令的时候,输入乘法器的两操作数为64位浮点数据,第三操作数为53位的的浮点操作数,结果为64位的浮点操作数;而执行定点乘加减指令时,乘法器的两个操作数为32位有符号/无符号的操作数,第三个操作数为一个64位的有符号/无符号操作数,结果为一个64位的有符号/无符号的目的操作数。
8.根据权利要求3所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述浮点算术逻辑单元FALU包括浮点FALU短周期指令模块、浮点ALU转换指令模块和浮点ALU加减法指令模块;所述浮点FALU短周期指令模块包含所有单周期的浮点算术逻辑指令,包括单/双精度的大于、小于及相等比较指令,求单/双精度的指数、尾数和绝对值的指令,计算单/双精度倒数和平方根倒数的指令以及单精度浮点转换成双精度浮点数的指令。
9.根据权利要求1~8中任意一项所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述第三部件SIEU包括位处理单元BP和定点算术逻辑单元IALU,两者是具有相同数据通路的独立单元,同一周期只能有一个功能单元执行有效指令;执行完后,结果通过最后一级选择逻辑,输出至对应的目的地址;同时,根据指令执行时候的饱和和非饱和情况,还会产生置位信号,标示出该条指令执行情况。
10.根据权利要求9所述的GPDSP中支持浮点除法的标量运算单元结构,其特征在于,所述BP单元包括三个功能单元,分别是64位移位器单元shifter、位处理单元Bitp和打包解包单元PK;从译码站出来的译码信号以及来自于寄存器的源操作数被三个功能单元接收,并立即开始运算,最终的输出结果根据选择信号从移位和打包解包功能单元的运算结果中选择及位处理单元结果输出;若是打包解包指令,且需要判饱和,饱和标志会在结果输出的同时输出给状态寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510718454.7A CN105335127A (zh) | 2015-10-29 | 2015-10-29 | Gpdsp中支持浮点除法的标量运算单元结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510718454.7A CN105335127A (zh) | 2015-10-29 | 2015-10-29 | Gpdsp中支持浮点除法的标量运算单元结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105335127A true CN105335127A (zh) | 2016-02-17 |
Family
ID=55285703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510718454.7A Pending CN105335127A (zh) | 2015-10-29 | 2015-10-29 | Gpdsp中支持浮点除法的标量运算单元结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335127A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709858A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色图形处理器单指令多线程染色处理单元结构 |
CN107748674A (zh) * | 2017-09-07 | 2018-03-02 | 中国科学院微电子研究所 | 面向比特粒度的信息处理*** |
CN108762720A (zh) * | 2018-06-14 | 2018-11-06 | 北京比特大陆科技有限公司 | 数据处理方法、数据处理装置以及电子设备 |
CN109426738A (zh) * | 2017-08-23 | 2019-03-05 | 中芯国际集成电路制造(上海)有限公司 | 一种硬件加密器及加密方法、电子装置 |
CN109783055A (zh) * | 2017-11-10 | 2019-05-21 | 瑞昱半导体股份有限公司 | 浮点数运算电路及方法 |
CN111290790A (zh) * | 2020-01-22 | 2020-06-16 | 安徽大学 | 一种定点转浮点的转换装置 |
CN112506468A (zh) * | 2020-12-09 | 2021-03-16 | 上海交通大学 | 支持高吞吐多精度乘法运算的risc-v通用处理器 |
CN112835551A (zh) * | 2021-03-09 | 2021-05-25 | 上海壁仞智能科技有限公司 | 用于处理单元的数据处理方法、电子设备和计算机可读存储介质 |
CN113157247A (zh) * | 2021-04-23 | 2021-07-23 | 西安交通大学 | 一种可重构整型-浮点型乘法器 |
CN117251132A (zh) * | 2023-09-19 | 2023-12-19 | 上海合芯数字科技有限公司 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021832A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 支持局部寄存和条件执行的64位浮点整数融合运算群 |
CN101093442A (zh) * | 2007-07-18 | 2007-12-26 | 中国科学院计算技术研究所 | 一种浮点乘加器及其乘法csa压缩树的进位校验装置 |
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN101986264A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
CN103984522A (zh) * | 2014-05-27 | 2014-08-13 | 中国人民解放军国防科学技术大学 | Gpdsp中定点和浮点混合除法的实现方法 |
CN103984521A (zh) * | 2014-05-27 | 2014-08-13 | 中国人民解放军国防科学技术大学 | Gpdsp中simd结构浮点除法的实现方法及装置 |
-
2015
- 2015-10-29 CN CN201510718454.7A patent/CN105335127A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021832A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 支持局部寄存和条件执行的64位浮点整数融合运算群 |
CN101174200A (zh) * | 2007-05-18 | 2008-05-07 | 清华大学 | 一种浮点乘加融合单元的五级流水线结构 |
CN101093442A (zh) * | 2007-07-18 | 2007-12-26 | 中国科学院计算技术研究所 | 一种浮点乘加器及其乘法csa压缩树的进位校验装置 |
CN101986264A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
CN103984522A (zh) * | 2014-05-27 | 2014-08-13 | 中国人民解放军国防科学技术大学 | Gpdsp中定点和浮点混合除法的实现方法 |
CN103984521A (zh) * | 2014-05-27 | 2014-08-13 | 中国人民解放军国防科学技术大学 | Gpdsp中simd结构浮点除法的实现方法及装置 |
Non-Patent Citations (6)
Title |
---|
吴珊 等: ""32 位DSP 通路分离乘加部件的设计与验证"", 《第18届全国半导体集成电路、硅材料学术会议》 * |
宋博荣: ""X-DSP SIMD浮点算术逻辑部件的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
宋博荣: ""X-DSP SIMD浮点算术逻辑部件的设计与实现"", 《中国优秀硕士论文全文数据库 信息科技辑》 * |
彭浩: ""X-DSP 64 位 SIMD 位处理部件及混洗单元的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
邓子椰: ""一种基于SRT-8算法的SIMD浮点除法器的设计与实现"", 《计算机工程与科学》 * |
韩珊珊 等: ""基于定点与浮点复用的SIMD乘法器设计与实现"", 《第18届全国半导体集成电路、硅材料学术会议》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709858A (zh) * | 2016-12-12 | 2017-05-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种统一染色图形处理器单指令多线程染色处理单元结构 |
CN109426738B (zh) * | 2017-08-23 | 2021-11-12 | 中芯国际集成电路制造(上海)有限公司 | 一种硬件加密器及加密方法、电子装置 |
CN109426738A (zh) * | 2017-08-23 | 2019-03-05 | 中芯国际集成电路制造(上海)有限公司 | 一种硬件加密器及加密方法、电子装置 |
CN107748674B (zh) * | 2017-09-07 | 2021-08-31 | 中国科学院微电子研究所 | 面向比特粒度的信息处理*** |
CN107748674A (zh) * | 2017-09-07 | 2018-03-02 | 中国科学院微电子研究所 | 面向比特粒度的信息处理*** |
CN109783055A (zh) * | 2017-11-10 | 2019-05-21 | 瑞昱半导体股份有限公司 | 浮点数运算电路及方法 |
CN109783055B (zh) * | 2017-11-10 | 2021-02-12 | 瑞昱半导体股份有限公司 | 浮点数运算电路及方法 |
CN108762720B (zh) * | 2018-06-14 | 2021-06-29 | 北京比特大陆科技有限公司 | 数据处理方法、数据处理装置以及电子设备 |
CN108762720A (zh) * | 2018-06-14 | 2018-11-06 | 北京比特大陆科技有限公司 | 数据处理方法、数据处理装置以及电子设备 |
CN111290790A (zh) * | 2020-01-22 | 2020-06-16 | 安徽大学 | 一种定点转浮点的转换装置 |
CN111290790B (zh) * | 2020-01-22 | 2023-03-24 | 安徽大学 | 一种定点转浮点的转换装置 |
CN112506468A (zh) * | 2020-12-09 | 2021-03-16 | 上海交通大学 | 支持高吞吐多精度乘法运算的risc-v通用处理器 |
CN112835551A (zh) * | 2021-03-09 | 2021-05-25 | 上海壁仞智能科技有限公司 | 用于处理单元的数据处理方法、电子设备和计算机可读存储介质 |
CN113157247A (zh) * | 2021-04-23 | 2021-07-23 | 西安交通大学 | 一种可重构整型-浮点型乘法器 |
CN117251132A (zh) * | 2023-09-19 | 2023-12-19 | 上海合芯数字科技有限公司 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
CN117251132B (zh) * | 2023-09-19 | 2024-05-14 | 上海合芯数字科技有限公司 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335127A (zh) | Gpdsp中支持浮点除法的标量运算单元结构 | |
CN104111816B (zh) | Gpdsp中多功能simd结构浮点融合乘加运算装置 | |
CN110168493B (zh) | 在128位宽的操作数上的融合乘加浮点运算 | |
US8838664B2 (en) | Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format | |
US20090113169A1 (en) | Reconfigurable array processor for floating-point operations | |
US20090198974A1 (en) | Methods for conflict-free, cooperative execution of computational primitives on multiple execution units | |
JP4232838B2 (ja) | 再構成可能なsimd型プロセッサ | |
CN103984521B (zh) | Gpdsp中simd结构浮点除法的实现方法及装置 | |
US8996601B2 (en) | Method and apparatus for multiply instructions in data processors | |
CN106951211A (zh) | 一种可重构定浮点通用乘法器 | |
US9996345B2 (en) | Variable length execution pipeline | |
US20100125621A1 (en) | Arithmetic processing device and methods thereof | |
CN104991757A (zh) | 一种浮点处理方法及浮点处理器 | |
US20130282784A1 (en) | Arithmetic processing device and methods thereof | |
CN103984522A (zh) | Gpdsp中定点和浮点混合除法的实现方法 | |
CN100367191C (zh) | 一种快速流水线型除法器 | |
GB2511314A (en) | Fast fused-multiply-add pipeline | |
CN105335128A (zh) | Gpdsp中基于三级超前进位加法器的64位定点alu电路 | |
CN202331425U (zh) | 基于矢量运算的矢量浮点运算装置 | |
Anderson et al. | A 1.5 Ghz VLIW DSP CPU with integrated floating point and fixed point instructions in 40 nm CMOS | |
Hsiao et al. | Design of a low-cost floating-point programmable vertex processor for mobile graphics applications based on hybrid number system | |
Lasith et al. | Efficient implementation of single precision floating point processor in FPGA | |
US20140052767A1 (en) | Apparatus and architecture for general powering computation | |
Baesler et al. | FPGA implementation of a decimal floating-point accurate scalar product unit with a parallel fixed-point multiplier | |
Saini et al. | Efficient Implementation of Pipelined Double Precision Floating Point Multiplier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160217 |