浮点M—DSP中高性能浮点乘加器的设计与实现

浮点  时间:2021-01-26  阅读:()

M—DSP中高性能浮点乘加器的设计与实现目录

M-DSP总体结构设计如图1所示

2. 1浮点乘加单元指令集设计

2. 2高性能浮点MAC单元的体系结构设计

1流水线第一站设计实现

2流水线第二站设计实现

3流水线第三站设计实现

4流水线第四站设计实现

5流水线第五站设计实现

6流水线第六站设计实现

2. 3浮点MAC单元关键模块设计

27×16位乘法器采用两级流水实现

a Shift_Bit≥0时b Shift_Bit<0且Shift_Bit≥-50时c Shift_Bit<-50且Shift_Bit≥-98时d Shift_Bit≤-98时

3. 1FMAC验证

M-DSP中浮点MAC的验证主要从模拟验证和形式验证两方面来完成[12]

正文

0引言

数字信号处理器Digital Signal Processor DSP从专用信号处理器开始发展到今天的超长指令字Very Long Itruction WordVLIW阵列处理器其应用领域已经从最初的语音、声纳等低频信号的处理发展到今天雷达、 图像等视频大数据量的信号处理。 由于浮点运算和并行处理技术的应用信号处理能力已得到极大的提高。随着数字信号处理器在处理速度和运算精度两个方向的发展体系结构中

数据流结构甚至人工神经网络结构等将可能成为下一代数字信号处理器的基本结构模式。近些年从传统DSP结构中已不能有效地提高DSP处理器的性能许多新的提高DSP性能的方法被提出[1] 。其中提高频率的方法已达到瓶颈阶段最有效的途径是提高并行性。数字信号处理领域的核心算法根据运算类型可以分为两大类一类是以密集的浮点乘加运算为典型的信号处理算法包括快速傅里叶变换FastFourier Traformation FFT [2-3] 、有限冲激响应FiniteImpulse Respoe FIR和离散傅里叶变换Discrete FourierTraf orm DFT等算法另一类是以密集的复数矩阵操作为主的算法包括信道估计和多输入多输出Multiple-Input Multiple-Output MIMO均衡[4]等算法。这两类算法均需要DSP处理器提供较高的浮点乘加运算的计算性能。第一类算法主要是进行乘加运算

a*b+c 第二类算法主要进行大量的复数矩阵乘和矩阵求逆等运算而在这些运算中都存在密集的乘后加运算a*c+c*d 。浮点乘累加器Floating-point Multiply ACcumulate FMAC已经成为提高并行计算以减少计算延时的有效方法其运算能力已经成为衡量数字信号处理器DSP性能的一个重要特征。

浮点乘加结构已被研究多年 IBM学者Montoye和Hokenek于1990年最先提出了融合乘加的概念[5]  即将乘法和加法融合成一条指令执行并将加法操作融合在乘法的部分积压缩阵列中从而减少硬件开销和延时这种乘加结构的主要缺点是求和尾数长且结果尾数舍入延时长。 Lang等[6]于2004年提出了低延时融合乘加结构这种结构采用前导零预测Leading Zero Anticipation LZA 将尾数舍入和

加法合并并在尾数加法之前进行规格化移位。 目前大多数处理器中的浮点乘加设计实现均采用这种技术为进一步提高浮点融合乘加结构的并行度以提升浮点乘加器的性能 Lang等[7]于2005年设计了双通路浮点融合乘加结构该乘加结构主要优点是延时更低、处理性能得到进一步提高但该乘加结构逻辑设计复杂硬件资源消耗大。国防科技大学研制的FT-XDSP中设计了多功能快速浮点融合乘加运算单元[8] 但该设计硬件资源消耗太多功耗过大。

本文基于高性能计算的应用需求 以M型数字信号处理器M-DSP为研究背景深入研究FMAC的各功能模块和流水线结构对已有浮点融合乘加结构[9]的关键模块和算法进行了研究与优化设计了6级流水线结构的FMA C单元可支持双精度和单精度浮点乘法、乘累加、乘累减、单精度点积和复数运算。对所设计的FM A C单元的寄存器传送语言Register Trafer Language RTL代码实现进行了仿真测试并基于45nm工艺采用Synopsys公司的DC Design Compiler对硬件实现进行了综合运行频率可达1 GH z。

1M-DSP处理器体系结构

M-DSP总体结构设计如图1所示。 M-DSP是自主研发的一款具有自主知识产权的高性能DSP 目标频率1GHz。 内核采用新型的哈佛结构采用可变长的11发射超长指令字结构可以同时并行取指和派发11条指令。 M-DSP中内核结构主要包括一级程序Cache、取指单元

Itruction Fetch IF 、指令派发单元DisPatch DP 、 向量运算部件Vector Process Unit VPU 、标量运算部件Scale

Process Unit SPU和向量阵列存储器Array Memory AM等。其中运算部件是DSP内核中最重要的单元之一约80%以上的指令来自于运算部件。标量运算单元Scale Process Element SPE包括两个乘加部件和一个定点执行单元。两个同构的乘加部件由共享54×32位乘法器结构的定点MAC单元与浮点MAC单元以及浮点算数逻辑单元

Arithmetic Logical Unit ALU组成三个单元独立运算但共用乘累加Mu l t i p ly-AC cumulate MAC单元的写端口写回到寄存器三个单元共用同一套寄存器端口。

向量运算单元Vector Process Element VPE 内数据通路如图2所示它包含64个局部通用寄存器三个同构的MAC部件由定点乘加Integer Multiply Accumulate IMAC 、浮点MAC和浮点ALU单元三个单元构成其中FMAC和IMAC复用了一个54×32乘法器。 向量运算部件均包含有16个相同结构的向量运算单元VPE与标量运算类似每一个向量运算单元由三个向量乘加部件Vector MultiplyACcumul ate VMAC及一个向量定点执行单元组成。每一个单元内部的部件组成及数据写回方式与标量的处理方式相同。 VPE之间通过混洗网络和规约树网络进行数据交互。混洗网络可以根据混洗粒度和混洗模式的不同对VPE之间的数据进行混洗操作归约网络将多个VPE中的数据通过多宽度规约方式规约到一个或者多个VPE中多宽度归约操作将所有的16个VPE进行分组每个分组归约操作并行执行分组只支持平均分组分组大小为2的整数次幂。

2 FMAC单元的结构设计与实现

2. 1浮点乘加单元指令集设计

浮点MAC单元共设计实现9条指令如表1所示 包括双精度乘法Double Floating-point MULtiply DFMUL 、单精度乘法

Single Floating-point MULtiply SFMUL 、双精度乘加

Double Floating-point MULtiply-Adder DFMULA 、单精度乘加

Single Floating-point MULtiply-Adder SFMULA 、双精度乘减

Double Floating-point MULtiply-Subtration DFMULS 、单精度乘减Single Floating-point MULtiply-Subtration

SFMULS 、浮点复数实部乘法Floating-point Complexmultiplication REAL FCREAL 、浮点复数虚部乘法Floating-point Complex multiplication IMAGinary FCIMAG和

浮点点积Floating-point DOT product FDOT指令。 由于寄存器端口的限制双精度指令和4操作数单精度指令需要读取两拍双精度结果写回需要两拍。

2.2高性能浮点MAC单元的体系结构设计

浮点MAC单元其总体结构设计实现如图3所示。基于经典低延时浮点乘加结构根据M-DSP的体系结构设计要求设计实现了双精度浮点乘加运算通路在此基础上复用部分硬件实现单精度指令的相关运算通路包括单精度浮点乘法/乘加、点积和复数操作。为提高性能、降低逻辑设计复杂度基于传统浮点乘加结构将单、双精度指令计算分开处理设计了一套单、双精度通路分离[10]的浮点乘加结构。所设

计的浮点MAC单元包括54×32共享乘法器、指数计算、源操作数例外判断、尾数对阶移位、尾数加法、乘法结果输出、结果符号计算、结果尾数规格化移位、结果舍入和结果选择写回等模块单/双精度浮点操作均需要用到上述模块。根据逻辑复用的设计思想将对阶移位、尾数加法和前导零等模块进行优化使得硬件逻辑在支持单/双精度浮点乘加的同时支持单精度浮点乘法后加法操作。各流水线设计如下

1流水线第一站设计实现。流水线第一站主要由源操作数读取、源操作数例外判断、指数计算和对阶移位量计算等运算模块构成乘法器模块单独设计 其中乘法器的相关模块与定点MAC单元共用为了减少乘法器面积和提高逻辑复用的能力采用4个27×16的乘法器实现54×32的乘法操作双精度乘法需要两次乘法操作才能计算出结果。

2流水线第二站设计实现。流水线第二站主要包括部分积压缩第3级、 27×16乘法结果的S um与C arry的加法和乘法/乘加指令的尾数对阶移位等运算模块。第3级部分级压缩将乘法器中前两级压缩的结果采用进位保留加法器Carry-Save Adder CSA进一步压缩在得到单精度乘法的部分积和阵列的Sum和C arry后采用43位加法器对Sum和Car ry进行全加操作得到高位部分的单精度浮点乘法结果尾数。

3流水线第三站设计实现。流水线第三站包括乘加/乘后加指令的尾数加法等运算模块。在第三站中在单精度乘法操作完成后双精

度乘法的中间结果S um和Carry也已计算出来采用2个全加器用来计算浮点尾数求和前导零LZA逻辑有部分逻辑在第三站进行。

4流水线第四站设计实现。第四流水站主要包括前导零预测LZA第二部分、乘加结果尾数舍入进位处理、乘法结果溢出、例外判断和乘法结果选择写回等运算模块在乘法结果旁路写回模块中单精度乘法执行4拍写回双精度乘法由于读、写都要多一拍需要6拍写回结果。

5流水线第五站设计实现。流水线第五站主要包括规格化移位、尾数舍入处理、结果符号计算和结果指数修正。在第五级流水线中浮点MAC除乘法类的各条指令的规格化移位都使用128位对数移位器对结果尾数进行规格化移位。根据舍入模式以及粘接位的值舍入模块判断是否对最后结果尾数进行加1操作。根据规格化移位的结果尾数和移位量利用指数修正模块可以计算出正确的结果指数根据尾数加法的最后结果采用符号计算逻辑判断结果符号。

6流水线第六站设计实现。第六级流水线主要包括结果尾数的例外判断、溢出判断以及结果选择写回处理。结果尾数选择写回时先根据浮点控制寄存器中各标志位进行结果处理待结果尾数确定后选择写回写回时双精度指令要写两拍。

2.3浮点MAC单元关键模块设计

传统的定点和浮点运算部件都有单独的乘法器单元。特别是处于同一流水线上的定、浮点单元这样的设计会导致硬件资源浪费。因此

在M-DSP中采用定点乘加部件与浮点乘加部件复用同一个乘法器这样可以在满足功能要求的前提条件下提高硬件利用率减少芯片面积。按照指令设计需求定点MAC单元中有32×32和单指令多数据

Single Itruction Multiple Data SIMD的16×16定点乘法浮点MAC单元有54×54和24×24的浮点乘法。 由于寄存器文件端口个数和位宽的限制浮点乘加的读操作数与写结果均需要两拍实现无法实现全流水操作。通过优化逻辑结构 因此将乘法器设计为54×32位乘法器采用4个27×16的子乘法器搭建而成复用的乘法器共三级流水其中定点MAC单元使用前面的两级流水站浮点MAC单元使用三级流水站。 由于乘法器面积在定、浮点乘加部件面积中比重较大共享同一个乘法器的设计可以大幅度减少MAC单元的面积。

27×16位乘法器采用两级流水实现其实现结构如图4所示其中基2Booth编码[11] 、第一级压缩与第二级压缩为第一站第三级压缩和S um与Carry的加法为第二站。这样的流水设计满足功能要求和时序要求并且可以提高乘法器速度。对所设计的27×16位与54×32位乘法器进行模块级验证后使用综合工具DC在40 nm工艺下对所设计的乘法器进行了逻辑综合 27×16位乘法器关键路径340ps单元面积6758.707μ m2单元总功耗6.0817mW 54×32位乘法器关键路径390p s单元面积27438. 196μ m2单元总功耗17.4217mW。

定、浮点MAC单元共享乘法器结构如图5所示其中PP0PP8表示9个部分积Part of the Product PP 乘法器内部有单独的源操作数预处理模块根据派发的定、浮点指令对读取的源操作数进

iWebFusion:独立服务器月付57美元起/5个机房可选,10Gbps服务器月付149美元起

iWebFusion(iWFHosting)在部落分享过很多次了,这是成立于2001年的老牌国外主机商H4Y旗下站点,提供的产品包括虚拟主机、VPS和独立服务器租用等等,其中VPS主机基于KVM架构,数据中心可选美国洛杉矶、北卡、本德、蒙蒂塞洛等。商家独立服务器可选5个不同机房,最低每月57美元起,而大流量10Gbps带宽服务器也仅149美元起。首先我们分享几款常规服务器配置信息,以下机器可选择5...

阿里云服务器绑定域名的几个流程整理

今天遇到一个网友,他之前一直在用阿里云虚拟主机,我们知道虚拟主机绑定域名是直接在面板上绑定的。这里由于他的网站项目流量比较大,虚拟主机是不够的,而且我看他虚拟主机已经有升级过。这里要说的是,用过阿里云虚拟主机的朋友可能会比较一下价格,实际上虚拟主机价格比云服务器还贵。所以,基于成本和性能的考虑,建议他选择云服务器。毕竟他的备案都接入在阿里云。这里在选择阿里云服务器后,他就蒙圈不知道如何绑定域名。这...

易探云:香港物理机服务器仅550元/月起;E3-1230/16G DDR3/SATA 1TB/香港BGP/20Mbps

易探云怎么样?易探云(yitanyun.com)是一家知名云计算品牌,2017年成立,从业4年之久,目前主要从事出售香港VPS、香港独立服务器、香港站群服务器等,在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。目前,易探云推出免备案香港物理机服务器性价比很高,E3-1230 8 核*1/16G DDR3/SATA 1TB/香港BGP线路/20Mbps/不限流量,仅...

浮点为你推荐
dvdes-644DVDES-829第二位出场的女的叫什么国内免备案服务器国内的服务器是都要备案是吗?有没有不需要备案的?麒麟990和骁龙865哪个好高通865处理器怎么样?值得入手吗?英语词典哪个好哪个英语词典好游戏盒子哪个好游戏盒子哪个好?美国国际东西方大学你知道美国哪些大学有预科课程吗牡丹江教育云空间登录我想知道校园云空间是用什么账号登录的?群空间登录为什么QQ群空间登陆不了飞信空间登录关于飞信登陆方式东莞电信宽带东莞电信宽带资费问题。急!
到期域名查询 已经备案域名 香港vps99idc 59.99美元 老左博客 68.168.16.150 鲜果阅读 好玩的桌面 网络空间租赁 太原网通测速平台 免费智能解析 中国网通测速 天翼云盘 gtt shopex主机 最漂亮的qq空间 域名dns 网通服务器 网购分享 photobucket 更多