(模式识别与智能系统专业论文)高性能浮点dsp中alu的研究与设计.pdf_第1页
(模式识别与智能系统专业论文)高性能浮点dsp中alu的研究与设计.pdf_第2页
(模式识别与智能系统专业论文)高性能浮点dsp中alu的研究与设计.pdf_第3页
(模式识别与智能系统专业论文)高性能浮点dsp中alu的研究与设计.pdf_第4页
(模式识别与智能系统专业论文)高性能浮点dsp中alu的研究与设计.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(模式识别与智能系统专业论文)高性能浮点dsp中alu的研究与设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 浮点a l u 进行定点与浮点的算术及逻辑运算,是现代数字信号处理器中使 用频率最高的运算部件,其运算能力是衡量d s p 芯片性能的主要指标。浮点a l u 的算法结构以浮点加减算法为基础。成熟的对浮点加减进行优化的算法包括双 路径并行,前导l 预测,并行舍入以及各种快速的定点加法算法。本文对各种 优化算法进行了分析比较,针对d s p 应用的特点做出了改进,并在此基础上采 用自顶向下的方法设计了一个用于高性能浮点d s p 的a l u ( z k l c a l u ) 。 传统的双路径并行算法以指数差作为依据将浮点运算划分为两条并行路径 执行,去掉了基本算法中关键路径上的一个尾数加法器和一个完整位宽移位器; 前导1 预测算法将前导1 判断的逻辑提前到与尾数加减并行执行,进一步缩短 了关键路径;并行舍入通过复合加法器预先算出所有可能的结果,使舍入步骤 简化为选择操作。采用这些优化算法后,将关键路径中的7 个运算步骤简化为4 个,有效地提高了浮点加减法的运算速度。 由于d s p 应用中需要大量用到双加减操作,本文提出以加减法作为划分双 路径的依据,以在关键路径中增加一个完整位宽移位器为代价,提供了每次操 作完成加减运算各一次的能力。设计的a l u 不支持向一舍入,使并行舍入的 选择逻辑得到简化,并可舍弃复合加法器前的n 位半加器,缩短了关键路径。 根据复合加法器同时计算s u m 与s u m + 1 的特点,采用选择进位的结构来实现, 并给出一种选择进位的最优化分组方法。 完成算法设计后,根据d s p 芯片系统要求z k l ca l u 提供的指令功能与外部 接口进行电路结构的设计,并使用v e r i l o g h d l 语言进行r t l 描述。之后在 c a d e n c ev e r i l o g x l 环境下用大量测试向量对z k l ca l u 进行仿真,并与软件 模拟器的运行结果进行比较,验证了z k l ca l u 逻辑功能的正确性。最后,使用 s y n o p s y sd e s i g nc o m p 订e r 对设计进行综合,结果显示在c h 撇d1 8 vo 1 8 “m c m o s 工艺下,z k l ca l u 关键路径的延时约8 5 9 n s ,符合系统设计要求。此 外,对不同分组方式下的选择进位复合加法器进行综合的结果也验证了最优化 分组方法的正确性。 关键词:浮点札u ,双路径并行,前导1 预测,并行舍入,复合加法器 a s t u d ya n dd e s i g na fa l u i n h i g hp e f b r m a n c ef i o a t i n g - p o i n td s p a b s t r a c t f l o a i i n g p o i n ta l up e r f b m sa r i t h m e t i ca n dl o g i co p e r a t i o n si nb o t hn x e d p o i n t a n d1 1 0 a t i n g p o i n tf o m l a t s f l o a t i n g - p o i n ta l ui sm em o s ti m p o r t a n tc o m p u t a t i o n u n i ti nm o d e md i g i t a ls i 弘a lp r o c e s s o r ( d s p ) f o r “i sm o s t 矗q u e n t l yu s e d t h e a r c h “e c t u r eo fn o a t i n g p o i n ta l ui sb a s e do nt h ea l g o r i t h m so fn o a t i n g p o i n t a r i 恤n c t i c ,s u c ha sd o u b l e 血t a p a t h ,l e a d i n g o n ep r e m c t i o n ,p a r a l l e lm l m d i n ga n d m a n yf a s tf i x e d - p o i n ta d d e mt h i sp 印e ra n a l y z e ds o m ec o m m o n i yu s e do p t i m a l a l g o r i m m si nd c t a i l ,i m p m v e dt h e mf o rd s pa p p l i c a t i o n ,a n dm e n ,d e s i g n e da na l u i nh 域p e r f o m a i l c en o a t i n g p o i n td s p u s i n g l et 0 p - d o w nm e m o d o l o 盱 f 1 0 a t i n g p o i n t 缸t h l n e t i ci sd i v i d e di n t ot w op a r a l l e lp a r t sa c c o r d i n gt oe x p o n e n t d i 腩r e n c ei nd o u b l ed a t a p a t ha l g o r i t ,s a v i n gas i g i l 讯c a n da d d e ra n daf l l l l - l e n 垂h s h i r e r ;i i ll e a d i n g o n ep r e d i c t i o na l g o r i t h i n ,t 1 1 el e a d i n g o n ed e t e c t i o ns t 印c a nb e p e r f o r m e di np a r a l l e lw i t hm es i g n i f i c a n da d d e r ,r e m o v i n gi t 行o mt h ec r i t i c a l 口a t h : b ys e l e c t i n gt h er e s u l t sw 1 1 i c ha r e 百v e nb yt h cs i 趴i 丘c a i l dc o m p o u n da d d e r r o l l i l d i n g a n da d d i t i o nc a nb ed o n es i m u l t a n e o u s l yw i t ht h e s ei m p f o v e da l g o r i t h j n s ,t h e n u m b e ro fs t e p si nt h ec r i t i c a lp a t hi sr e d u c e d 丘o m7t o4 ,h e r l c eo f f e r i n ga c o n s i d e r a b l es p e e da d v a l l t a g e b e c a u s et h e r e 舡es om a n y 出l a l 删s u b t r a c to p e r a t i o ni nd s p 邓p l i c a t i o n ,w e p r o p o s e dan e wd o u b l ed a t a p a t ha l g o r i t h mw h i c hd i v i d e dt h ed a t a p a ma c c o r d i n gt o e f e c t i v ea d d i t i o no rs u b t r a c t i o n t h en e wa l g o r i t 胁c a no p e r a t ea 1 1a d d i t i o na n da s u b t r a c t i o ns i m u l t a n e o u s l vi no n ec y c l eo n l vb yi n c r e a s i n gam 1 1 - l e n g ms h i r e ri nt h e cr i t i c a lp a t h z k l ca l ud o e s n ts u 口p o r tm u n dt oi n f i n i t y s ot h es e k c t i o no f p a r a l l e i r o u n d i n gi ss i m p l i n e d 龇l dt h en - b i t so fh a l fa d d e r sc a l lb er e m o v e d 矗o mt h ec r i t i c a l p 地,a l s o ,a no p t i m a ld e s i 弘o fc a r r y - s e l e c tc o m p o u n da d d c ri sp r o p o s e d w es t r u c t u r e dt 1 1 ez k l ca l ua c c o r d i r 培t oa b o v ea 1 星r o r i t h n sa n dt h es y s t e m r e q u i r c m e l l t s ,a 芏1 dd e s c 曲e dt h es t n l c t u r e i nr t lw i mv e r n o g h d lt h e n ,a s i m u i a t i o ni nc a d e n c ev e “1 0 9 x lw a sp e r f o h n e dt ov e r i f ym e1 0 9 i cf h n c t i o no ft h e a l u a tl a s t ,c i r c u i ts y n t h e s i si ns ”o p s y sd e s i g nc o m p i l e r ( c h a n e r e d1 8 v0 18 m c m o st e c h n 0 1 0 9 y ) s h o w e dac r i t i c a lp a t l ld e l a yo f8 ,5 9 n s t h er e s u l tc a n 如强1 1m e 时s t e mt e q u i r e m e n t m o r e o v 盯,m eo p t i m i z a t i o no fc a r r y - s e l e c tc o m 】砷u n da d d e rw a s p m v e db ys y n t h e s i sr e s u l t si nd i f f b r e n ts t a g es i z e s k e v w o r d s :f 1 0 a t i n g p o i n t a l u ,d o u b l e d a t 印a t h ,l e a d i n g - o n e p r e d i c t i o n ,p a r a l l e l r o u n d i n g ,c o m p o u n da d d e r 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确地说明并表示了谢意。 签名:三函虱日期:巡:= 兰! 关于论文使用授权的说明 本人完全了解中国科学院自动化研究所有关保留、使用学位论文的规定 即:中国科学院自动化研究所有权保留送交论文的复印件,允许论文被查阅和 借阅:可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段 保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:三盈重l 导师签名赳期:塑! :苎! v 第一章引言 第一章引言 随着人们对实时信号处理要求的不断提高和大规模集成电路技术的迅速发 展,d s p 的应用几乎遍及整个电子领域:通信、语音处理、图形图像处理、自 动控制、医学电子、军事与尖端科技、消费类电子产品等领域都会用到数字信 号处理器。定点d s p 可以胜任大多数应用,但在某些场合,如雷达、声纳信号 的处理中,数据的动态范围很大,按定点处理会发生数据溢出,严重时操作无 法进行。如果用定点模拟浮点运算,则程序的执行速度将大大降低。浮点d s p 的出现解决了这些问题。浮点运算相对于定点运算而言,具有精度高,动态范 围大,易于编程调试等特点,因此当前的高性能数字信号处理器( d s p ,d 硒t a l s i g n a lp r o c e s s o r ) 大都采用浮点格式。 浮点d s p 中的a l u 提供定点数与浮点数的算术运算和逻辑运算功能,是使 用频率最高的运算部件,其运算能力是衡量d s p 芯片性能的主要指标。随着v l s i 技术的不断发展,浮点a l u 在算法结构和电路实现上都逐步完善,性能不断提 高。 z k l cd s p 是国家专用集成电路中心设计的一款3 2 位高性能浮点d s p 处 理器,出片采用超哈佛结构,采用4 套独立的总线有效地将3 2 位i e e e 浮点运 算单儿、大容量双端 _ 静态存储器、输入输出控制器和程序数据外部总线及 多处理器接门集成在起。其中计算单元包括:算术逻辑单i ( a l u ) 、带定点累 加器的乘法器( m a c ) 和一个桶形移位器( s h i rle f ) 。z k l cd s p 预计采用0 1 8um 的c m o s 工艺实现,最高主频1 0 0 m h z ,可工作于3 3 一1 0 0 m h z 范围内。 本文在对各种浮点a l u 优化算法进行分析比较的基础上,针对典型数字信 号处理应用的特点,参考d s p 芯片系统设计对a l u 提出的要求,对算法进行精 简和改进,使其更适用于d s p 应用。最后,采用自顶向下的方法完成了一个高 性能浮点d s p 处理器中a l u 的设计。 高性能浮点d s p 中m 见的 i 究与设计 第二章浮点a l u 算法分析 浮点a l u 执行定点或浮点数据的算术操作( 加、减、求平均、比较大小等) , 也执行定点数据的逻辑操作( 与、或、异或、非等) 。其中最核心的操作为浮点加 减运算。 2 1 i e e e 7 5 4 浮点数标准 浮点系统中,每个计算机的字被分成两个部分:指数和尾数。为了统一浮 点数的表示方法,许多组织都制定了浮点数表示形式的标准。其中,i e e e 7 5 4 浮点算术标准逐渐被计算机业界认可,成为今天应用最广泛的浮点数表示和运 算的标准。此标准定义了两种浮点数格式:单精度( s i n g l ep r c c i s i o n ) 与双精度 ( d o u b l e p r e c i s i o n ) 浮点数。其中,单精度浮点数用3 2 位表示,包括1 位符号位( s ) , 8 位指数位( e ) 和2 3 位分数位( f ) 。指数部分是一个有符号数,采用偏移码的方式 表示( 偏移量1 2 7 ) 。分数部分与隐含位的1 共同构成实际的尾数。因此,以s - e _ f 表示的数值即为( 一1 ) 8 1 f 2 。”7 。值得注意的是,浮点数的分数部分不能和尾数 混淆。尾数中的1 不出现在表示形式中,但是在进行运算时要将它加上。 2 2 基本浮点加减算法 基本的浮点加减运算需要以下步骤 2 】 1 、指数比较:将两个浮点操作数的指数相减,差的绝对值为d ; 2 、移位对齐:将指数较小操作数的尾数右移d 位; 3 、尾数加减:移位对齐后的尾数进行加减运算( 依操作码和操作数的符号而定) ; 4 、补码转换:若尾数加减的结果为负数,则进行求补操作,将其转换为符号- 尾数的形式 5 、前导1 判断:若第3 步为减法,需要决定结果左移的位数;若为加法,需要 决定结果是否右移l 位; 第二章浮点a u j 算法分析 6 、规格化移位:对尾数加减结果进行移位,使其最高有效位为1 ; 7 、舍入并输出结果; 上述步骤中的延时主要是由2 个移位器( 移位对齐和规格化) 和3 个加法器 ( 尾数加减、补码转换和舍入) 带来的。 为了提高浮点加减法的运算速度,按照向关键路径要时间,向非关键路径 要面积的原则,分析后一步的运算是否真f 需要在前一步运算结束后爿能开始; 如果不是,则可以让它们并行执行,用增加器件( 面积) 的代价,换取时间上的提 高,缩短关键路径。 2 3 双路径并行算法 通过分析上面的浮点加法算法可以发现 1 、执行加法操作时,尾数相加的结果总为正数,不必进行补码转换。执行 减法操作时,若两指数不相等( d 0 ) ,尾数移位对齐后,根据指数比较的结果交 换尾数的位置,总用大指数操作数的尾数减小指数操作数的尾数,可以保证结 果为正数,不必进行补码转换;若两指数相等( d = o ) ,则尾数相减的结果可能为 负数,需要进行补码转换,但因为运算前尾数不必移位对齐,所以计算的结果 是精确的,不需要进行舍入操作。可以看出,补码转换和舍入操作是互斥的, 在一次浮点加减操作中,最多用到2 个加法器。 2 、执行加法操作时,运算结果的规格化操作至多进行一位右移,不需要完 整位宽的移位器。执行减法操作时,如果两个操作数的指数差大于l ( d 1 ) ,则 运算结果的规格化操作至多进行一位左移,不需要完整位宽的移位器;如果指 数差为o 或1 ( d 1 ) ,则运算前尾数的移位对齐最多右移一位,也不需要完整位 宽的移位器。因此,一次浮点加减操作中,尾数对齐的移位和规格化的移位二 者之中只有一个需要延时较大的完整位宽移位器,而另一个只需左移或右移一 位,带来的延时很小。 高性能浮点d s p 中a l u 的研究与设计 根据上述两条结论,可以设计两条独立的路径分别用于不同情况下的计算: f a r 路径计算加法和指数差大于l 的减法,而c l o s e 路径计算指数差小于等于 1 的减法 2 。8 l 。双路径算法与基本算法的运算步骤比较如表2 1 所示,可以看出, 双路径并行算法缩短了基本算法中的关键路径,提高了运算速度。 表2 1 双路径算法与基本算法的运算步骤比较 双路径并行算法 基本浮点加法算法 c l o s e 路径f a r 路径 d l 的减法加法和d 1 的减法 指数比较 指数比较+ 交换缸置指数比较+ 交换位置 移位对齐移位对齐( 完整位宽) 尾数加减尾数加减尾数加减 补码转换补码转换舍入 舍入 前导l 判断前导1 判断 规格化移位规格化移位( 完整位宽) 舍入并输出结果选择输出结果 2 4 前导1 预测算法 注:d 为浮点操作数指数差的绝对值 前导1 预测3 “5 6 1 ( l o p ) 一也称为前导0 预测( l z a ) ,用于浮点加法器中计 算结果中前导0 的个数,而前导0 的个数l 下是规格化移位的位数。 对计算结果进行规格化移位最直接的方法如图2 1 所示。尾数运算完成后, 前导1 判断( l o d ) 一也称为前导o 判断( l z d ) 电路,计算结果中前导o 的个数并 对其进行编码,l o d 编码控制尾数运算结果在移位器中进行规格化左移。因为 必须等尾数运算完成后才能确定移位位数,所以这种方法的延时较大。 第二章浮点a l u 算法分析 垒鱼 墨兰竺竺 品i 釜 l 一蓝 图2 2 前导1 预测的规格化 文献 3 】中介绍的l o p 算法结构如图2 3 。其基本步骤如下 1 、对操作数进行预编码后产生o 、1 编码串,其前导1 的位置与尾数计算 结果前导1 的位置相同( 可能有1 位误差) 。 2 、此0 、1 编码串经l o d 电路处理得到前导l 位置的二进制编码,控制尾 数计算结果在规格化移位器中左移的位数。 高性能浮点d s p 中a l u 的研究与设计 3 、由于预编码可能会产生位误差,移位后的结果还要经过补偿电路判断 并纠f 误差。 2 4 1 预编码 ab 图2 3 前导1 预测的算法结构 由i e e e 7 5 4 浮点数标准可知,尾数计算的操作数均为正数,定义两个尾数 分别为a = a o a h a m 一2 a m 1 和b = b o b l b 丌卜2 b 。_ 1 令w = a b ( 不带进位传递) ,其中 w ,= a j _ b 。,w i 一1 ,o ,1 ) ,为了方便表示,将1 记为i ,定义x 表示任意字符串,o k , 1 “,i 。分别表示k 个连续的o ,1 和i 。下面分w o ,w 0 : 由于w o ,w 串中第一个非0 的位应为l ,所以w 串可以表示为o k l ( x ) 。不 同位串形式下的前导1 位置如表2 2 所示。 第二章浮点a u j 算法分析 表2 2 w o 情况f 前导l 位置与不同位串形式的关系 位串形式前导1 位置位置描述识别子串 o 。1 1 f x l k + 1 第一个l 1 1 o “1 0 止串或o 串1 k + 1 销一个1 1 0 o “l0 1 负串 k + 2 第一个1 后第一个0 1 0 + o k l l 3 1 x k + 件l 第一个1 串的最后一个1 1 l o k l i 。o ( 正串或。串) k + j + 1第一个1 串的最后一个一1 1 0 一 扩1 1 。0 1 负串, k + j + 2第一个1 串后第一个o 1 0 + + 表示需要修l e 综合上表,若w 串中相邻两位的值满足如下条件,则第i 位为前导1 。 w ,w t 1 = 1 ( n o t i ) o r i ( n o t i )公式2 1 从表中第三行可以看出,正确的前导l 位置应为k + 2 ,然而根据公式l 得到 的前导1 位置为k + 1 ,这正是1 位误差的来源。可以看出,错误的位置总是在f 确位置的左侧,因此在误差补偿电路中只需要将结果左移。 w o 情况下1 与i 的位置,即可得到w o 时,e ( p o s ) = g ,石+ i公式2 3 w o 时,e ( p o s ) = q 一g ,石+ 磊石 公式2 5 w e x p ( o p b ) ( s i g n ( d ) = o ) :s i g l l 。u b = s i 趴( o p a ) e x p ( o p a ) = e x p ( 叩b ) ( s i g n ( d ) = o ) :s i 印;u b = s i 目缸o p a ) os i 髓( a b ) e x p ( o p a ) 1 的减法 1 指数比较指数比较+ 交换付置指数比较+ 交换位置 2 移值对齐 移位对齐( 完整位宽) 3尾数加减 尾数加减忭h 码转换| | 舍入| 1 前导1 预测 尾数加减i | 舍入 4 补码转换 5 前导1 判断 6 规格化移位 规格化移位( 完拯位宽) 7 舍入并输山结果选择输出结果 2 7 定点加法算法 从对浮点加法算法的分析中可以看出,指数比较与尾数加减这两个位于关 键路径中的步骤,都是出定点加法来实现的。因此,提高定点加法操作的速度, 对于提高浮点加减运算的速度,具有非常重要的意义。定点加法运算的各种快 速算法介绍如下。1 9 1 0 1 6 】 j 9 赢性能浮点d s p 中a l u 的研究与设计 2 7 1 行波进位加法器( m p p l ec a r r ya d d e r ) 构造一个由全加器组成的n 位加法器,主要问题是从一个单元到下一个单 元的进位传递。解决这一问题最显而易见的方法是由n 个全加器组成行波进位 加法器( 图2 6 ) ,即一个全加器的进位输出连接到它相邻的下位全加器的进位 输入。行波进位加法器的进位从最低有效位传到最高有效位,共经过了2 n 个逻 辑级,因此,它的速度比较慢。 。争垛鞘辅 图2 6 行波进位加法器 2 7 2 选择进位加法器( c a r r ys e l e c ta d d e r ) 选择进位加法器的基本思想是并行完成两个加法,一个假定进位输入为o , 另一个假定进位输入为j 。当得到来自低位的进位输出后,高位的和可以迅速选 择而不必再次计算【12 i ( 图2 7 ) 。选择进位加法器用于选择控制的进位信号需要驱 动多个多路选择器,这会增加电路的延时。为了提高运算速度,采用分组执行 的方法,各组加法并行执行,组间进位串行传递。调整每组的位宽可以使加法 速度进一步提高。 愿赫赫p 图2 7 选择进位加法器 2 7 3 超前进位加法器( c a r r yl o o k - a h e a da d d e r ) 超前进位加法器利用两个输入操作数和最低有效位的进位输入,并行产生 其它各位的进位输入( 图2 - 8 ) 。其基本思想如下: 第一章浮点a u j 算法分析 一位全加器的逻辑表达式为s f = x ,o m 0c f ,q 。= _ - ”+ ( 五+ m ) c , 定义进位产生因子蜀= t y 。,进位传播因子只= t + m 则q = 骄一。+ a 一。q 迭代可得: c f = g ;一t + p 卜1 9 f 一2 + n l p f 一2 9 卜3 + + 见一l p 卜2 p l g o + p 卜1p l 一2 p 1 风c 0 公式2 一1 9 公式2 2 0 利用公式2 2 0 计算进位的加法器就是先行进位加法器( c l a ) ,它需要一个 逻辑级形成p 和g ,需要两个逻辑级形成进位,两个逻辑级得到和,共5 个逻辑 级,这相对于需要2 n 级的行波进位加法器来说,无疑是巨大的改进。 图2 8 计算n 位加法器的进位输出c 。的先行进位电路 然而,这样构成的n 位先行进位加法器要求最高位的或门和与门要有n + 1 个扇入,而且p 。信号必须驱动n 个与门。此外,相当不规则的结构给布线带来 了极大的困难。这就使得当n 很大时,构造一个完整的先行进位加法器是不切 实际的。 利用分组思想来改进先行进位加法器的方法应运而生。定义组进位产生因 子g 与组进位传播因子p ( 若每组四位,则g = g ,+ 岛9 2 + 见p 2 蜀+ 儿p :b g 。, p = 风只段岛) ,于是组进位输出e 。= g + p - g 。,组间同样采用先行进位的思想 并行产生进位。一个两级的分组先行进位加法器如图2 9 所示。 高性能浮点d s p 中a l u 的研究与设计 幽2 9 两级先行进伉加法器 目前,单级c l a 只用来设计5 n l 的减法减法加法 指数比较+ 交换位置指数比较+ 交换位置指数比较+ 交换位置指数比较 移位对齐( 完整位宽)移位对齐( 完整位宽)移位对齐( 完接位宽) 尾数加减腑h 码转换 尾数加减【| 舍入 尾数加减脖h 码转换| | 舍入| | 前导1 预测舍入| 1 前导1 预测 尾数加减i | 舍入 规格化移位规格化移位 ( 完齄位宽) ( 完整位宽) 选择输出结果选择输出结果 以指数差为依据的双路径算法与基本算法相比,所作的改进主要有两点 每条路径中补码转换和舍入操作互斥,与基本算法相比关键路径中减少 了个加法器。 每条路径中尾数对齐的移位和规格化的移位二者之中只需要一个完整 位宽的移位器,与基本算法相比关键路径中减少了一个移位器。 当采用并行舍入算法后,舍入操作与补码转换的步骤都与尾数运算并行执 行,只要二者的延时不超过尾数加减的延时,不论如何划分路径,关键路径的 长度都不会改变。也就是说,第一点改进可以被更有效的算法替代。 第三章z k l ca l u 算法设计 改为以加、减操作作为划分双路径的依据后,减法路径中既要有完整位宽 的对齐移位器也要有完整位宽的规格化移位器,破坏了原有双路径算法带来的 第二点改进,但是,这种划分方法以在关键路径中增加一个完整位宽的移位器 为代价,达到了在一次操作时间( 一般为一个时钟周期) 内,完成加减计算各一次 的目的。对于需要频繁进行双加减操作的d s p 应用来说,采用这种划分方法实 际上提高了a l u 的运算能力。 3 2 前导1 预测算法 z k l ca l u 采用第二章中介绍的前导l 预测算法,利用公式2 7 将两操作数 尾数进行预编码,得到的o 、1 编码串经l o d 电路判断出前导1 位置后,控制 规格化移位器对尾数计算结果进行移位。由于预测算法可能存在一位的误差, 还需要补偿电路判断并纠正误差。 3 3 并行舍入算法 复合加法器通过同时计算出所有可能的结果,使舍入和补码转换的步骤与 尾数加减并行执行,之后只需要简单的选择操作即可得到正确的结果。z k l c a l u 的设计中也采用了这种算法。由于改为以加、减操作作为双路径的划分依 据,需要对每条路径中的结果选择逻辑重新进行定义。z k l cd s p 只支持就近合 入和截断舍入而不支持舍入到+ 。和一。,使设计得到了很大的简化。 首先,结果选择逻辑的控制信号只需要考虑就近舍入和截断舍入的情况。 就近舍入 加法路径处理i 、i i 的情况: j p 镒= z = g ( 三+ r + s ) + c 0 。( 【一1 + g + r + s ) 公式3 一l 减法路径处理i i i v i i 的情况: s p 瑶= 【;_ - + + 脚g + s ) 】 截断舍入 公式3 2 高性能浮点d s p 中a u j 的研究与援计 加法路径选择s :s e 艺茹一= o 公式3 3 减法路径在f s = 0 0 0 时选择s p l ,其余情况下选择s : s p 留一= e 历 公式3 4 其次,因为只有在向+ o 。和一舍入时,才需要用到x + y + 2 的结果。所以z k l c a l u 中的复合加法器只需要给出x + y 与x + y + l 的结果即可。这样设计中可以 舍弃对尾数进行预处理的n 位半加器,进一步缩短关键路径。 3 4 复合加法器算法 由表2 7 可知,在定点加法器的常用算法中,行波进位( r c a ) 结构的硬件 开销最小,但其进位链串行逐级进位,时延随数据位宽线性增加,不适合高速 计算的需要。超前进位( c l a ) 结构并行生成进位产生因子和进位传播因子, 消除了进位链的逐级进位效应,其时延与数据位宽呈对数关系,速度较快,但 该算法把进位链全部展开,硬件开销很大。选择进位( c s a ) 结构的进位链分组 并行,组间串行,速度与硬件开销介于r c a 与c l a 之间,其时延与数据位宽 呈平方根关系,在位宽较小( 如3 2 位) 时,与c l a 相比速度相差不大,硬件 开销则节省很多,且结构规则,易于布线。 c s a 结构的加法器把位宽为b 的定点加法分成n 组并行执行。每组包含两 套加法电路,将两条进位链的最低位进位分别置为0 和1 ,可得每组各自的s u m 及s u m + l ,当得到低位组的实际进位输出时,其作为选通信号可以直接选择高位 组的实际进位输出及实际和。可以看出c s a 结构中已经分别计算出了s u m 和 s u m 十l ,根据实际进位选择其中一路输出。复合加法器需要同时得到s u m 和 s u m + 1 的结果,因此将c s a 的组间进位选择逻辑与输出和选择逻辑改为两路输 出即可实现,额外增加的硬件开销与延时都很小。r c a 或c l a 结构的复合加法 器都需要构建第二条进位链。此时r c a 结构与c s a 结构的硬件开销几乎相同, 而时延却没有任何改进,依然不能满足速度要求。c l a 结构增加进位链会使电 路结构更加复杂,给布线工作带来极大的困难。综合速度与硬件开销两方面考 虑,采用c s a 结构进行复合加法器的设计( 图3 1 ) 第三章z k l ca l u 算法设计 图3 1 c s a 结构的复合加法器 a 0b 0 i 营 南丽h1 2 垣 募 sp 1 , s 图3 1 中每一位的进位( c a r r y ) 与求和( s u m ) 逻辑可用下面的公式表 示:乞。,o = 盯6 + ( 口+ 6 ) q 。o ,= 盯0 6 0 q 。o :c :圳二口6 + ( 口+ 6 ) q 。l ,= 口0 6 0 q 。1 3 5c s a 的最优化分组 普通的c s a 结构采用平均分组的方式,为了进一步缩短关键路径的延时, 可以改变c s a 的分组方式,使每组的位宽比下一组略窄,这样尽可能使来自低 位组的进位信号通过选择逻辑后与高位组的进位信号同时到达高位的进位选择 器,各信号间不必相互等待,从而缩短了延时。每组的位宽如何确定取决于操 作数的位宽以及组间进位选择逻辑的延时与进位链向前传递一位延时的比值, 后者与采用的具体电路结构和工艺有关。 设位宽为b 的两个操作数a ,b 相加,分成n 组执行,c 。为第n 组的位宽, t g 为进位传递一位的延时,t 。为组间进位选择逻辑的延时。则整个c s a 加法器 的延时o = f 。c 。+ m 。,相邻两组间位宽的差s = c f + l c l 蔓 。由每组位宽比下一 g 组略窄,得。c j + f 。c + f 。考虑到最高有效位组可能不满足+ = q + 5 ,有 b c f = q + ( f 一1 ) s = c 1 + s ( 一1 ) 2 。 由坷得昙一半郇舌一m 丘旦+ 丛生业 f g 2 公式3 5 公式3 6 高性能浮点d s p 中a l u 的研究与设计 可见给定b 和s 后,刍为n 的函数,为了得到t d 的最小值 嗜一o ,厚 一, 考虑到n 应为整数,向上取整得n7 ,n 就是使t d 最小的组数。将不同的n 值 代入公式3 5 与3 6 可得相应的蔓与c 的值。 f g 表3 2 列出了给定b 和s 后,不同n 值下按上述推导得到的分组方式及延 迟,对于具有相同延迟的分组,选择其中n 值较小的分组方法,可以使电路结 构更加规则,易于布线。 表3 2 不同分组方式f 的延迟时间表 s = 1 b = 3 2 s = 2 b = 3 2 组数分组方式延迟分组方式延迟 13 2 13 23 2 1 3 2 21 6 1 61 81 5 1 7 1 9 3 1 0 ,n 1 3 9 ,1 1 ,1 2 1 5 4 7 ,8 ,9 ,8 1 1 5 ,7 ,9 ,1 1 1 3 5 5 ,6 ,7 ,8 ,6 1 0 3 ,5 ,7 ,9 ,8 1 3 6 3 ,4 ,5 ,6 ,7 ,7 9 1 ,3 ,5 ,7 ,9 ,7 1 3 7 2 ,3 ,4 ,5 ,6 ,7 ,5 9 8 l ,2 ,3 4 ,5 ,6 ,7 ,4 9 无法分组2 n a 9 无法分组2 n ,a 1 行波进位( r c a ) 方式,不需要绢间进位选择逻辑 2 无法满足c j + 1 = c f + 5 ,不予考虑 第四章z k l c a l u 电路结构设计 第四章z k l ca l u 电路结构设计 4 1z k l ca l u 外围接口 z k l cd s p 的运算单元包括:算术逻辑单元( a l ,0 ) 、带定点累加器的乘法器 ( m a c ) 和一个桶形移位器( s h i f t e r ) 。各个计算单元在结构卜是并行安排的,它 们通过一个l o 端l | 的数据寄存器文件输入平输出数据。图4 1 足运算币元的结 构矧。 图4 1 计算单元结构框图 a u j 在时钟( c l k ) 的控制下将操作数和运算结果读出或写入寄存器。 a l u 运算需要个或两个操作数,称为x 1 和x 2 。通常返回一个结果,但 在双加减操作中,将返回两个结果,比较操作不返回任何结果,而是将状态位 更新。a l ,u 的定点指令处理3 2 位的定点操作数,并且输出3 2 位的定点结果。 浮点指令处理3 2 位或4 0 位的浮点操作数,并且输出3 2 位或者4 0 位的浮点结 果。在某些定点指令中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论