(计算机科学与技术专业论文)64位高性能融合乘加部件的研究与实现.pdf_第1页
(计算机科学与技术专业论文)64位高性能融合乘加部件的研究与实现.pdf_第2页
(计算机科学与技术专业论文)64位高性能融合乘加部件的研究与实现.pdf_第3页
(计算机科学与技术专业论文)64位高性能融合乘加部件的研究与实现.pdf_第4页
(计算机科学与技术专业论文)64位高性能融合乘加部件的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

国防科学技术大学研究生院学位论文 摘要 本文深入研究了融合乘加鼢f ( 1 t i p l ya d df u s e d ) 部件的体系结构及其设计方法, 并设计、实现了6 4 位定点、浮点乘加部件,该部件高性能实现了i a 一6 4 体系结构的定点、 浮点乘加指令。 本文设计实现的乘加部件采用了一种改进的m a f 结构。在这个结构中,前导零预测 l z a ( l e a d i n gz e r oa n t i c i p a t o r ) 操作被放到了加法操作之前执行,而加法和舍入操作被 放到最后完成,与典型的m a f 结构相比,该结构能减少了通路的延时。 为简化对阶移位操作,本文采用了一个1 9 4 位桶形移位器柬实现对阶移位,这个对阶 移位器只需右移加数而乘积不移就可以完成对阶移位;为了提高速度,在乘法器模块设计 中采用了4 2 进位存储加法器c s a ( c a r r ys a v ea d d e r ) 树形结构,它降低了c s a 树形结构 的逻辑级数,有利于降低超深亚微米工艺下的通路延时;在l z a 模块设计中,采用了并 行的误差修正结构,这种结构减少了l z a 的延时;在加法和舍入模块中,通过预置舍入位、 最后一位修正、预置低1 3 0 位等方法实现了i e e e 一7 5 4 标准所规定的四种舍入模式。 在加法和舍入模块设计中,本文提出了一种并行求粘接位( s t i c k y b i t ) 的算法。在 传统的方法中,粘接位的计算是在加法结果求出之后才进行,这种方法的延时很大。本文 提出的粘接位的求解算法不必等待加法的计算结果,而是直接由两个加数计算出结果可能 为l 的标识,然后再求所有标识的“或”。这比传统的计算粘接位的延时有了非常大的改 善。 这个乘加部件采用四站流水实现,在0 1 3 微米的工艺下,时钟频率可以达到3 0 0 5 0 0 m h z 。 关键词:融合乘加,首零预测,粘接位,舍入 国防科学技术大学研究生院学位论文 a bs t r a c t t h i st h e s i sr e s e a r c h e st h ea r c h i t e c t u r eo f m u l t i p l y a d df u s e d ( m a f ) u n i ta n d t h em e t h o dt o d e s i g nh i g h p e r f o r m a n c em a f u n i t i tp r e s e n t sad e s i g no f6 4b i t sf l o a t i n g p o i n ta n d f i x e d p o i n t m u l t i p l y a d dc o m p o n e n ti m p l e m e n t e d w i t hl h ea r c h i t e c t u r eo fm a f u n i t ,f l o a t - p o i n t m u l t i p l y - - a d d a n d f i x e d - p o i n tm u l t i p l y - a d d i n s t r u c t i o n so fi a - 6 4a r e i m p l e m e n t e db y t h e c o m p o n e n t w i t hh i g hp e r f o r m a n c e a ni m p r o v e da r c h i t e c t u r eo fm a fu n i ti s e m p l o y e d i nt h e d e s i g n o fm u l t i p l y - a d d c o m p o n e n t t h ea r c h i t e c t u r ei sb a s e di nt h ea n t i c i p a t i o no ft h en o r m a l i z a t i o ns t e pb e f o r et h e a d d i t i o na n di nt h el a s t s t e po fc o m b i n e da d d i t i o na n dr o u n d i n g c o m p a r e dw i t ht y p i c a l a r c h i t e c t u r eo f m a f u n i t ,t h ee m p l o y e d a r c h i t e c t u r er e d u c e sd e l a y o f d a t a - p a t ho f t h eh a r d w a r e t o s i m p l i f y t h e a r c h i t e c t u r e ,a 19 4 一b i tb a r r e ls h i f t e ri su s e dt o i m p l e m e n te x p o n e n t a l i g m n e n tt h a ti sc o m p l e t e db ym o v i n gt h ea d d e n dt or i g h ta n dr e s u l to fm u l t i p l i c a t i o nb e i n g f i x e d ,a4 - 2c a r r ys a v ea d d e r s ( c s a s ) t r e ei su s e dt oa d da l lt h ep a r tp r o d u c t si nt h em o d u l eo f m u l t i p l i c a t i o n ,w h i c hr e d u c e t h el o g i cl e v e l si nt h ec s a t r e e ,a n dt h ep a t hd e l a yo f c r i t i c a lp a t h o nav e r yd e e ps u b m i c r o ( v d s m ) p r o c e s si sr e d u c e d ,ap a r a l l e lc o r r e c t i o ni s d e s i g n e dt o r e d u c ed e l a yo fl z a i nt h ec o m b i n e da d d i t i o na n d r o u n d i n g ,f o u rr o u n d i n gm o d e s t h a ta r ef u l l y c o m p l i a n t w i t ht h ei e e e 一7 5 4s t a n d a r da r e i m p l e m e n t e dt h r o a 班p r e s e t t i n gr o u n d i n gb i t , p r e s e a i n g l e a s t1 3 0b i t sa n dc o r r e c t i o no f l e a s ts i g n i f i c a n db i t ( l s b ) a p a r a l l e lm e t h o d o f c o m p u t es t i c k y b i ti sp r o p o s e d i nt h ec o m b i n e da d d i t i o na n d r o u n d i n g c o n v e n t i o n a lm e t h o dt oc o m p u t et h es t i c k y b i ti s “o r r e s u l to fa d d i t i o na f t e rt h er e s u l th a s o b t a i n e d i nt h ep a r a l l e lc o m p u t a t i o no f s t i c k y - b i t ,a d d e n d sa r ed i r e c t l yc h a n g e di n t oi d e n t i f i e r s t h a ti d e n t i f yl o c a t i o no f1 i nt h er e s u l to fa d d i t i o n ,t h e n “o r ”a l li d e n t i f i e r s t h e r ei sag r e a t i m p r o v e m e n t o f l a t e n c y t h em a fu n i ti si m p l e m e n t e dw i t hf o u r s t a g ep i p e l i n e ,w h i c hc a na t3 0 0 5 0 0 m h zo na o 1 3 - m i r c op r o c e s s k e yw o r d s :m u l t i p l y a d d f u s e d ( m a f ) ,l e a d i n g - z e r o a n t i c i p a t i o nf l z a ) ,s t i e k y - b i t , r o u n d i n g n 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目: i ! 焦商性能世佥垂垄翌佳盟堡窒生塞塑 学位论文作者签名:叠生叁:塑日期:渺多年,三月巧日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目: i ! 焦直性能融佥垂盘塑住的丛窟生塞望 学位论文作者签名: 盘查:旦:1日期:渺弓年) - 月巧日 作者指导教师签名:! 耄玉亟,是日期:2 码年t 2 月穹日 国防科学技术大学研究生院学位论文 图目录 图1 1 双通路浮点加法 图1 2 合并舍入的浮点加法器 图1 3 具有2 个或3 个时钟延时的浮点加法器 图1 4 具有1 个或2 个或3 个时钟延时的浮点加法器 图1 5 阵列乘法器中的两行 图1 6 最简单的迭代结构 图1 73 - 2 c s a 的不规整性 图2 1i a 一6 4 结构图 图2 2 处理器8 级流水线 图2 3 浮点寄存器格式 图2 4 浮点单元结构一 图3 1 典型的浮点m a f 结构 图3 2 对阶移位的位宽一 图3 3 本文采用的m a f 结构图 图3 4 移位数量的示意图一 图3 5 指数调整和对阶移位 图3 6 本文采用的乘法结构 图3 7 基本的部分积符号扩展 图3 8 简化后的部分积符号扩展 图3 , 96 4 位乘法部分积符号扩展简化t 图3 1 06 4 位乘法的部分积 图3 1 14 2 c s a 外部接口 图3 1 24 - 2 c s a 的结构- 图3 1 3 4 2c s a 的互连接构* 图3 1 4 规格化移位的两种情况 图3 1 5 l z a 的结构 图3 1 6 编码树结构 图3 1 7l z a 预编码和修正的预编码 卫 。 一 j _ 擂 馆 他 他 h h 垤 墙 加 笛 拍 ”丝 船 矜 如 如 虬 讲 哪 | | j | ;| 一 ;| 国防科学技术大学研究生院学位论文 国防科学技术大学研究生院学位沦文 第一章绪论 1 1 乘法和加法的发展 乘法和加法运算在科学和工程应用中至关重要。随着多媒体、数字信号处理、图象 处理、移动计算等技术的发展,对乘法和加法运算要求越来越高。另外,高性能计算对高 精度浮点乘法和加法的需求更加迫切。 在早期的系统中,定点运算被用来执行数值计算,由于定点表示的动态范围的限制, 所以急需浮点表示数据进行运算,这时就出现了用定点仿真浮点运算;随着芯片的价格越 来越便宜,采用硬件实现浮点计算成为可能,用硬件完成浮点运算比用定点仿真完成浮点 运算的速度快得多。在开始的时候,浮点运算的硬件和核心的处理器是分开的,浮点运算 采用专门的浮点协处理器来完成,核心处理器一旦遇到浮点指令,即将指令发送到浮点协 处理器并回收浮点指令的处理结果,浮点部件和定点部件不能并行完成指令的处理;后来, 把浮点的硬件与c p u 中其他部件组合到了起,这使处理器的浮点性能大大提高,硬件消 耗降低,例如,i n t e l8 0 8 7 就能够初步的完成浮点操作和其它操作的并行执行。随着浮 点应用程序的增加,加快了对更高性能浮点运算的要求,把浮点运算集成到c p u 中成为非 常必要,这期间出现了许多集成的方法w 。 在大部分的机器里,浮点的乘法指令和浮点加法指令是分开的、各自独立的,加法 指令由加法器完成,乘法指令由乘法器完成。在以前的文献中,对浮点加法和乘法做了非 常多的研究,下面分别介绍。 1 1 1 浮点加法的背景和研究现状 由于浮点加法在典型的科学应用中所占的比例较高,但是浮点加法的延时又非常大, 所以以前对浮点加法的研究主要集中在减少延时和增加流量上。 浮点加法的结果是原码表示,尾数是有效位的绝对值,因此求尾数时,如果结果为 负的,要把它转换成正的;如果结果为正的不需要转换。基本的浮点加法由许多串行的步 骤组成j ”: 1 指数减:执行指数的减操作,得到指数的差fe a - e b = d 。 2 对阶:两个操作数中,较小的操作数的尾数右移d 位,较大的操作数的指数作为 待调整的指数e f 。 3 尾数加:根据有效操作执行加法或减法。 4 转换:当加法的结果为负时,对箕求补,这其中包括一个加的操作。 5 前导1 探测:减法时,确定结果需要左移的位数:加法时,确定结果是否要右移 第1 页 国防科学技术大学研究生院学位论文 一位。 6 规格化:规格化尾数或结果,更新指数e f 。 7 舍入;根据i e e e 标准的要求,有条件的对结果加1 。如果舍入上溢,还要右移 一位,e f 加1 。 上述操作过程包括多个延时较大的操作,第2 步和第4 步是两个全字长的移位器; 第3 、4 、7 步是三个全字长的加法器,所以基本的浮点加法算法的延时是很大的。 1 双通路浮点加法 双通路浮点加法对基本的浮点加法作了改进,改进依据是浮点加法或减法的下列特 性: 1 对于有效减法,由指数差的符号位来确定两个操作数中哪一个更大,然后交换操 作数的位置,使大的操作数总是减小的操作数。除了两个操作数的指数相等之外,其他的 操作数运算都不需要第4 步( 转换) 。这是因为,一个大数减一个小数总是正的,不需要求 补转换;而两个操作数的指数相等时,两个操作数的大小不能马上判断,因此结果有可能 是负的,这时需要转换求补。在指数相等时,由于没有对阶移位,减法的结果不需要第7 步。这样在进行浮点加法或减法时不会同时需要第4 步和第7 步。 f a rc l o s e 雨 下珂 b 一l ! ! 竺l 厂- 商南 ir s n m 【 _ ll 】 厂,j 一,一 匕型 io o o v o , o o l 1 ,。1 li 1 i l “。一一1 “1 。一 r 一1 庄卜j ir o m l 1 。,j 图1 ,1 双通路浮点加法 2 在有效加的情况下,结果不会出现前导零,因此不需要全长的规格化移位,只需 要个全长的对阶移位。对于有效减操作分成两种情况:第一种,指数差d ) l 时,需要全 长的对阶移位,不需要全长的规格化移位,可能需要一位的左移;第二种,指数差d = l 第2 负 国防科学技术大学研究生院学位论文 时,不需要全长的对阶移位,需要全长的规格化移位,有可能需要一位的对阶移位。因此 全长的对阶移位和全长的规格化移位不会同时需要”1 。 3 l z a 可以使前导零探测与加法并行操作“,l z a 不是加法结束之后才开始,而是 直接对操作数进行预测。 采用了以上技术之后,浮点加法被分成了两个通路:c l o s e 通路和f a r 通路,c l o s e 通路处理d l 的有效减法和有效加法。改进后的浮点加 法的关键路径由7 步减少到4 步。这种浮点加的方法被一些处理器”7 。”采用,它的结构如 图1 1 所示。图中的e x pd i f f 表示指数差,s w a p 表示交换,r s h i f t 表示对阶移位的右移, s i g a d d 表示尾数加,r o u n d 表示舍入,m u x 表示选择,p r e d i c t 表示操作数大小的预测, l z a 表示前导零预测,p e n c 表示优先编码,l s h i f t 表示规格化左移。为了增加浮点加法 器每个时钟的流量,双通路的加法也可以流水实现,流水实现的结构也如图1 1 所示。 2 合并舍入浮点加法器 合并舍入加法器是对双通路加法器的进一步的优化。因为舍入前后的值变化很小, 舍入操作的执行在浮点加法操作的最后一步执行,所以可以预先计算出可能的舍入结果, 最后根据舍入的要求进行选择。预先的计算可以和尾数加( 基本的浮点加法第3 步) 共用 一个模块,这样原来的舍入操作被简化成选择结果的操作,这种方法被o u c h 和f l y n n 。”1 提出。 1 呼“li “守l ! 竺! il ! ! 叫 ii r 。= 厂上1 。1 i芒l l 叵 广l 1 l s h ml 一一 l j 匕到 图1 2 合并舍入的浮点加法器 对于i e e e 标准要求的最近舍入模式,舍入和转换( 基本的浮点加法第4 步) 后的结 果只有两种可能,即a + b 和a + b + 1 ,因此只要预先计算出这两个值即可。这两个值的 计算是通过一个复合加法器( c o m a d d ) ,它能够同时计算出a + b 和a + b + 1 ,但它的面积 第- 3 页 国防科学技术大学研究生院学位论文 比两个加法器小。 对于i e e e 标准要求的正无穷舍入( r p ) 和负无穷舍入( r m ) ,舍入和转换后的结果 有可能是a + b + 2 。为了计算这个值,q u c h 和f l y n n 在文献 9 中提出把一排半加器放到 双通路的浮点加法器f a r 路的复合加法器前面,这样与复合加法器结合起来就能够产生a + b + 2 。 i n t e l i 8 6 0 浮点加法器“3 也是采用了预先计算可能结果的方法,但在计算预先的 结果时,它又增加了一个加法器。原来的加法器计算没有进位的a + b + 1 和a + b ;增加 的加法器计算有进位的a + b + 1 和a + b 。这种方法比q u c h 和f l y n n 提出来的方法更快, 但要完整的复制一个加法器。由于舍入( 基本的浮点加法第7 步) 与尾数加( 基本浮点加 法的第3 步) 合并,合并舍入的浮点加法比双通路的浮点加法减少一步,艇个的浮点加法 需要三步完成。基于q u c h 和f l y n n 的合并舍入的浮点加法的结构如图1 2 所示。 3 延时变化的浮点加法 这种浮点加法是s o b e r m a n 在文献 1 3 中提出柬的,设计依据是不同操作数的浮点 加法和浮点减法的延时不同。 1 具有2 个或3 个时钟周期的延时变化的浮点加法器 如图1 2 所示,合并舍入浮点加法器被分成三站,整个浮点加法操作要三个时钟周 期完成,可以进行流水操作。在第一个时钟周期,f a r 通路的延时很大,要完成指数的 f a r c l o s e s w a p | 二 1 二一 陌p d l f f i广l r 1 “m l i a i i i 一 5i 司 l l 一 一 二j 。器l l i g s l i c o “ 呻l 加l e o u t p u t 图1 3 具有2 个或3 个时钟延时的浮点加法器 第4 页 国防科学技术人学研究生院学位论文 o u t 口u t 图1 4 具有1 个或2 个或3 个时钟延时的浮点加法器 减法和尾数的交换:而c l o s e 通路只需要比较指数的最低两位,再通过一个选择器完成尾 数的交换即可。由于c l o s e 通路的延时很小。因此可以把c l o s e 通路的后两站的内容向它 们的前一站移动。这样形成的浮点加法器就有两种延时,对于f a r 通路,延时是三个时钟 周期:对于c l o s e 通路,延时是两个时钟周期。这个具有2 个或3 个时钟延时的加法器的 结构如图1 ,3 所示。 2 具有1 个或2 个或3 个时钟延时的浮点加法器 在图1 3 所示的结构中,c l o s e 通路又可以分成有效的加法操作和有效的减法操作。 对于有效的加法操作,不需要规格化移位操作,可以在第一个时钟周期完成浮点加法操作。 这样得到的浮点加法器的延时可能有三种情况:f a r 通路的延时为3 个时钟周期:c l o s e 通路的有效减法操作的延时为2 时钟周期;c l o s e 通路的有效加法操作的延时为1 个时钟 周期。它的结构如图1 4 所示。 由于延时的变化,延时变化的浮点加法器需要处理器的动态的调度,增加了处理器 控制的复杂度。 1 1 2 乘法的背景和研究现状 浮点乘法的指数部分很简单,这里不再讲述,主要讲尾数部分的乘法,以下简称乘 法。乘法的计算分成两步:第一步是部分积的形成,第二步是部分积的求和。下面分两步 第5 页 国防科学技术大学研究生院学位论文 介绍乘法的背景和现状。 1 部分积的形成 部分积的产生可以象手算乘法那样每一位乘数产生一个部分积,乘数有几位就产生 几个部分积,这种方法部分积的个数很多。实际上,可以采用编码的方法减少部分积,修 f 的b o o t h 算法就可以把部分积的数目减少一半,编码方法如表1 1 所示。乘数被分成若 干组,每组包括相邻的3 位,两个相邻的组有个共用的位。 还有一种扩展的修正b o o t h 编码 2 ,这种方法每次检查4 位,编码3 位,产生部分 积的数目是乘数位数的三分之一。如表1 2 所示,它需要产生三倍的被乘数,这实现起来 比较复杂,而且会增大部分积产生的延时。 表1 1 修正b o o t h 编码 b 口1 b n b n + l子倍数 0000 001 a 01o a 】 o1l 2 a h 1 00 - 2 a j 扑 101 a 卦 11o 一【a k l11o 表1 2 扩展的修正b o o t h 编码 掣2 2 。2 - 。 碓h了“l砖 碓一1o p 蹿副妇 000 o斗帕 oaal描 00 10“ 00l1 - i - 2 x 0l00 4 - 2 x 0i0 1+ & x 0i10 + :王x 0l1 l斗一4 x i0a0- - i x 重0ol x 量0l0 a x l0l l2 x lld0 一2 x ll0 1x l110x 置l1 1 一0 第6 - 页 国防科学技术大学研究生院学位论文 2 部分积求和 部分积求和是首先通过各种求和结构把部分积的数目减少到两个,最后两个部分积 采用全加器相加得到最后的结果。为了减少部分积求和加法的延时,多数的求和结构都采 用了进位存储加法器c s h ( c a r r ys a v ea d d e r ) ,这样可以解决串行加法器的进位传递的延 时问题。部分积求和结构一般有以下三种: i 阵列乘法器( a r r a ym u l t i p l i e r $ ) 传统的线性阵列乘法器是由一行行的c s a 组成的。每个c s a 接收3 个同权的输入, 输出权为l 的s k l m 和权为2 的c a r r y 。图1 5 为阵列乘法器的一部分,每一行c s a 都把一 个部分积与上一行c s a 产生的中间结果相加,由于中间结果是冗余表示的,所以只有纵向 的进位而没有横向的进位。这意味着阵列乘法器的延时只与阵列的深度有关而与部分积的 位宽无关。阵列乘法器具有较高的性能,同时结构规整,因此在许多算术协处理器和专用 的d s p 芯片中被采用。 i 488 ab 日c abc ab c l c s ac s alc s alc s a l c 。,y 童m 、c a r r y $ h m l 6 r qs 跚s u m 如沛沛冲亨 i 且 珏c l c s ac 8 ac s ac s a i c a r r ys u mc a n ys u i nc a r t ys u n c a r t ys u m 图1 5 阵列乘法器中的两行 阵列乘法器主要问题是延时很大,在进行位数很多的乘法时,这一缺点更加明显。 对于一个6 5 位的乘法,修正的b o o t h 编码后产生3 3 个部分积,若采用阵列结构,它的延 时就是3 1 个3 - 2 c s a 的延时,因此在乘法的位数较多时一般不采用这种方法。 2 迭代乘法器( i t e r a t i v em u l t i p l i e r s ) 为了减少面积,一些设计通过一个时钟控制,反复的使用部分的阵列,达到求和的 目的。它除了需要部分的阵列外,还需要一个锁存器,存储中间的结果。最简单的迭代结 构如图1 6 所示,当锁存器的延时很小,而且时钟的周期与一级c s a 的延时相当时,它的 流量和延时与阵列结构的乘法器是一样的。这个结构被一些公司“4 1 采用。 3 树形( t r e es t r u c t u r e ) 树形结构对部分积累加求和速度极快。对于一个6 5 位乘法,采用线性阵列乘法器, 第7 页 国防科学技术人学研究生院学位论文 需要3 l 级c s a 的延时:若采用w a l i c e 树结构,仅需要8 个c s a 的延时。 大多数的树形结构,例如w a l l c e 树和d a d “树,采用3 - 2 c s a 作为基本单元。由于 3 - 2 c s a 具有3 个输入2 个输出的特性,因此不可能建立一个规整的树形结构,图1 7 显 示了这种不规整性。在v l s i 设计中,结构规整是一个很重要的问题。结构规整的设计可 以用基本块很容易的搭建起来,基本块的重用一方面减少了版图设计的工作量,另外提高 了性能,降低了设计时间,减少了出错的可能性。树形乘法器所具有的不规整性使得它的 结构和版图设计很烦琐,虽然e d a 工具可以加速这一过程,但是需要额外的面积开销,同 时性能也会有所损失。 1 1 3 融合乘加的背景和现状 图1 6 最简单的迭代结构 图1 73 - 2 c s a 的不规整性 最早提出融合乘加m a f ( m u l t i p l y a d d f u s e d ) 的是i b m 的m o n t o y e 和h o k e n e k “。所 谓的m a f 是把乘加当作一条不可分的指令来执行,这条乘加指令的实现是通过一个合并的 乘法和加法结构来完成的。乘法的输出是用s u m 和c a r r y 表示的乘积,没有计算出最终的 乘积结果,然后与加法输入到一组3 - 2 c s a ,产生两个新的s u m 和c a r r y ,再求它们的和。 第8 页 国防科学技术大学研究生院学能论文 m a f 较分离的乘法和加法有两个优点: 1 ,把分离乘法和加法完成乘加操作斛( b c ) 需要的两次舍入减少到一次舍入,提 高了计算的精度。 2 由于融合的加法和乘法共用一些部件减少了操作的延时,也减少了硬件的面积。 典型的m a f 包括以下的计算步骤“: 1 被乘数和乘数的乘法,加数的对阶移位。 2 对阶后的加数与c a r r y 和s u m 表示的乘积输入到3 - 2 c s a 产生两个输出。 3 3 - 2 c s a 的两个输出相加,同时确定规格化移位的数量。 4 加法的结果一出来就开始规格化移位。 5 结果的舍入。 由以上步骤可阻看出,典型的m a f 结构的延时还很大,有待进一一步的改进。本文乘 加部件设计采用了一种改进的m a f 结构,它的延时比典型的m a f 结构的延时有了改善。第 三章详细的阐述了这个改进的m a f 方案。 1 2 课题研究的背景 本课题是国家重点科研项目“8 6 3 ”课题高性能通用c p u 芯片设计的浮点单元设 计的一部分。这个高性能的c p u 是i a 一6 4 体系结构,对本文的乘加结构提出了极高的要求: 具有6 4 位有效位浮点算术的能力: 一完全符合i e e e7 5 4 8 5 的要求; _ 兼容浮点和整数运算; 两种控制舍入精度的方法,一种是把结果转化到扩展双精度,另一种是把结果转 化到目标精度; 一兼容浮点运算的指令包括:浮点乘加,浮点乘减,浮点负乘加,浮点乘,浮点 负乘,浮点加,浮点减,浮点规格化,并行浮点乘加,并行浮点乘减,并行浮点 负乘加,并行浮点乘,并行浮点负乘,有符号的定点乘,无符号的定点乘; 工作频率3 0 0 5 0 0 m f i z 1 3 论文的结构 本文包括如下的六章内容: 第一章阐述了浮点运算发展,乘加部件的背景和现状。 第二章阐述了乘加部件的工作环境,i a 一6 4 的结构和浮点单元的结构,还有这个乘加 部件的操作数的格式。这个乘加部件的操作数是8 2 位的浮点寄存器格式,有1 7 位指数位, 和6 4 位尾数,可以完成扩展双精度的计算。 第9 页 国防科学技术大学研究生院学位论文 第三章阐述了乘加部件的每个部件的原理及实现。主要包括乘法,加法舍入,l z a 等 模块。这里的乘法采用的4 - 2 树结构,并兼容整数乘法。加法舍入模块,采用了加法与舍 八合并实现的方法,讲述了四种舍入的实现。l z a 模块采用了能够同时预测加法和减法的 结果的前导零的结构。l z a 的编码单元能够把编码从高位到低位依次输出,同时电设计了 从高位到低位依次执行移位的规格化移位器,这样当编码完成之后,规格化移位也快要完 成了,大大降低了延时。规格化移位时,有一位的误差,这里对误差的纠正也采用了一个 并行的结构。 第四章阐述了乘加部件测试中采用的几种方法。一种是v e r i l o g h o l 对乘加的功能进 行描述来产生t e s t b e n c h ,这种方法可以检测出设计中的大多数的错误。还用一种方法, 就是采用已有的服务器作为参照进行验证,这种方法更好的保证了设计的正确性。 第五章阐述了乘加部件中三个关键模块的优化。其中有个并行求粘接位的方法, 它采用了一种非常新颖的技术大大减少了延时。 第六章对整个论文做了总结。 1 4 本文的研究成果 本文对微处理器设计,尤其是浮点单元单元设计中的乘加部件进行了研究和实现。 研究并实现了一种新的m a f 结构。提出了一种高性能的l z a 结构;也提出了一种高效的计 算粘接位的方法。另外,对m a f 结构中的其它模块的设计也做很多的改进。以第一作者在 计算机科学与工程发表论文一篇( 见附录) ,以第二作者在“第八届计算机工程与工 艺年会”发表论文一篇( 见附录) 。 第1 0 - 页 国防科学技术大学研究生院学位论文 第二章la - 6 4 结构特征及其浮点单元的概述 自从1 9 9 3 年i n t e l 和一些公司推出i a 一3 2 的服务器以来,i a 一3 2 服务器经历了4 8 6 系统、p e n t i u m p r o 系统、p i i 系统、p i i i 系统、x e o n 系统等几代,服务器不断改进,但 所采用的总线结构一直是i a 一3 2 。随着服务器的不断发展,使i a 一3 2 的总线结构逐渐成为 了性能进一步提高的瓶颈。1 9 9 4 年,i n t e l 联合 p 开发了i a 一6 4 体系结构。 l a 一6 4 不是i a 一3 2 的简单的扩充,而是一种基于新的设计思想,它就是显示指令并行 计算技术e p i c ( e x p l i c i t l yp a r a l l e li n s t r u c t i o nc o m p u t in g ) 。e p i c 继承了超长指令 字v l i w ( v e r yl a r g e ri n s t r u c t i o nw o r d ) 能够开发更大的指令级并行性的能力,而克 服了v l i w 代码空问浪费和兼容性差的缺点。同时,e p i c 继承了超标量r i s c 处理器的优 势,指令长度固定,一条指令的操作数由两个输入和一个输出寄存器组成,指令只对寄存 器操作。e p i c 具有多个不同的流水线或执行部件,能够并行执行多条指令,使e p l c 能发 挥出最佳的性能。 处理器的设计采用e p i c 设计方法,它的基本原则是: 编译器负责指令的调度和优化 一体系结构提供信息,辅助编译器开发静念的指令级并行i l p ( i n s t r u c t i o nl e v e l p a r a l l e l ) 一体系结构提供机制,把编译器的优化指导信息传递给执行硬件 _ 自适应资源伸缩机制:动态伸缩处理器的硬件资源,满足性能和功耗的的需要 为了支持e p i c 设计风格,处理器引入了很多新的微体系结构特性,主要表现为: 提供大量快速的、并行的、流水式的执行资源,并直接暴露给软件。 _ 宽发射e p i c 硬件,增强指令级并行,每个时钟周期可以发射6 条指令。 _ 8 级深流水线,提高操作的频率。 _ 对处理编译时无法预测的东西,在硬件运行时迸行动态处理。 _ 支持新的e p i c 结构的记录和控制,比如推测执行和前瞻。 2 1i a 一6 4 的基本结构 处理器提供了下列执行部件如图2 1 所示:4 个整数a l u ( 其中2 个分配在i 型流水 线,2 个分配在m 型流水线) 2 个l o a d s t o r e 部件以及3 个分支部件。处理器每个时钟周 期可以进行6 条指令的取指,执行和提交。为了支持高i l p 执行,设置了丰富的硬件资源。 包括1 2 8 个通用寄存器,1 2 8 个浮点寄存器,6 4 个谓词寄存器。 处理器采用8 级顺序流水线结构,如图2 2 所示,分为4 个阶段:前端( f r o n t 第1 i 贞 国防科学技术大学研究生院学位论文 e n d ) ,指令分派( i n s t r u c t i o nd e l i v e r y ) ,操作数传递( o p e r a n dd e l i v e r y ) 和执行 ( e x e c u t i o n ) 。 前端:流水线前端由指令指针生成i p g ( i n s t r u c t i o np o i n t e rg e n e r a t o r ) 和旋转 r o t ( r o t a t i o n ) 组成。在这一阶段,处理器从指令c a c h e 中读取指令包,并存入指令包 队列。每个时钟周期可以读取3 2 个字节,即2 个指令包。前端操作与后面流水站的操作 不相关,即使流水线的后端发生阻塞,前端仍可以取指。 指令分派:指令分派由扩展e x p ( e x p a n d ) 和重命名r e n ( r e n a m e ) 两个流水站组成。 在这一阶段,处理器通过一个指令分派网络把指令包中的各个操作分配到相应的功能部 件,并且完成寄存器的重命名。编译器设置处理器指令包中的模板字段,模板字段指明操 作所需的功能部件以及相关标志位,因此分派网络可以直接根据模板字段进行发送,当遇 到暂停位或者资源不足时,停止指令的分派。 图2 1i a - 6 4 结构图 操作数传递 图2 , 2 处理器8 级流水线 操作数发送:操作数发送由寄存器r e g ( r e g i s t e r ) 流水站组成。在这一阶段,处理 第1 2 页 国防科学技术大学研究生院学位论文 器主要进行寄存器文件访问,操作数读取的操作。 执行:执行阶段包含执行e x e ( e x e c u t i o n ) ,检测d e t ( d e t e c t i o n ) 和写回w r b ( w r i t e b a c k ) 三个流水站。在这一阶段,所有指令将读取操作数并且执行。处理器将实现推测执 行技术,比较指令在e x e 阶段产生谓词,并且在d e t 阶段把谓词值传送给相关检测,分支 执行和提交等功能部件,以便这些部件做出相应的操作。处理器还将实现前瞻执行技术, 在d e t 阶段检查是否发生了延期的异常。 2 2 i 浮点数据类型和格式 2 2i a - 6 4 的浮点单元 i a - 6 4 浮点单元完全符合二进制浮点a n s i i e e e 标准( s t d 7 5 4 1 9 8 5 ) 。它支持i e e e 的单精度、双精度、扩展双精度实数格式。支持两种i e e e 控制舍入精度,第一种是把结 果转换成扩展双精度的指数范围,第二种是把结果转换成目标精度。另外,它还支持一些 对i e e e 的扩展,例如,融合的浮点乘加、最大值和最小值操作、一一个比最小的扩展双精 度数范围更大的寄存器格式。 在数据类型上直接支持6 种数据类型:单精度、双精度、扩展双精度实数( i e e e 实 数类型) 、6 4 位符号整数、6 4 位无符号整数和8 2 位浮点寄存器格式;支持一对i e e e 单精 度值占用一个浮点寄存器的有效数据位( s i g n i f i c a n t ) 的“并行浮点f p ( f l o a t i n gp o i n t ) 格式”;软件例程支持i e e e 风格的四精度实数。i e e e 支持的实数类型如表2 1 所示。 表2 1i e e e 浮点格式 s i n g l e d 0 u b l e 3 0 u b j e e t e n d e da u a d p r e c i s i o n t e e er e a l - t ) l p e p a r a m e t e r s s 哪 + c r l + 0 | 一l + g r l + a - 一 e m t + 1 2 7+ 1 0 2 3+ 1 臼b 3+ 1 8 3 e m h - 1 2 61 0 2 21 8 21 s 碡2 b 口m e n t b i a 8+ 1 2 7+ 1 0 2 3+ 1 8 3+ 1 舒够 f 怕d a i o n 【b 嘲 2 45 36 41 1 3 i e e e m m o w f o t m a t s t o b i m e m o r y f e r r n a t w i d t hc b i b t 3 26 4 8 。 1 2 8 s i g n f i e l d 嘶d hc b i t = ) 1 i 1 1 h p e m 自日d w i d t hc 目蛐 日”1 s1 5 s i g n m = a n d l i p i d m 似l 始钮1 1 2 1 浮点寄存器格式 浮点寄存器格式可以表示实数,也可以表示整数。如图2 3 ,浮点寄存器包括三个域, 符号域l 位,它的位置在最高位,1 表示这个数是负的,0 表示这个数是正的。指数域1 7 位,是移码表示的,偏移量是6 5 5 3 5 。指数域的每一位都是1 被用来表示i e e e 的有符号 无穷和非数n a n ( n o tan u m b e r ) 。指数域和尾数域都是0 被用来表示i e e e 的有符号0 。 指数域全0 尾数不是0 被用来表示扩展双精度的非规格化数和扩展双精度未规格化数。尾 第1 3 页 国防科学技术大学研究生院学位论文 数域6 4 位,包括了这个数的有效位, 6 3 位显示的表示这个数的整数部分; 6 2 :o 位表 示这个数的小数部分。 8 1 丑r :o 二。;。:6 【6 3 。a 。 o i + 符号指数尾数 图2 ,3 浮点寄存器格式 一个有限的浮点数被表示成指数非零的格式,它的大小可以用公式( 2 1 ) 计算: ( 一1 ) 5 2 ”6 5 5 ”- ( m a n 6 3 m a n 6 2 :o ) ( 2 1 ) 一个有限的浮点数被表示成指数为零的格式,它的大小可以用公式( 2 2 ) 计算: ( 一1 ) “2 2 ( m a n 6 3 ,m a n 6 2 :0 】) f 2 2 、 6 4 位有符号和无符号整数,并行的浮点数,它们的指数都是1 0 0 3 e ( 6 3 ) ,符号位为0 。 2 2 2 浮点单元结构 斟- 第- 1 4 页 国防

温馨提示

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

评论

0/150

提交评论