(微电子学与固体电子学专业论文)32位浮点加法器的优化设计.pdf_第1页
(微电子学与固体电子学专业论文)32位浮点加法器的优化设计.pdf_第2页
(微电子学与固体电子学专业论文)32位浮点加法器的优化设计.pdf_第3页
(微电子学与固体电子学专业论文)32位浮点加法器的优化设计.pdf_第4页
(微电子学与固体电子学专业论文)32位浮点加法器的优化设计.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(微电子学与固体电子学专业论文)32位浮点加法器的优化设计.pdf.pdf 免费下载

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

文档简介

摘要 浮点加法器是构成c p u 的基本部件之一,其性能优劣将直接影u i 自c p u 浮点处理 _ ,q _ h 一一一 能力。本文首先分析讨论了浮点加法理论,并在此基础上设计出一种新的更合理 的算法结构。着重研究了整数加法器、移位器、先导零预测逻辑等浮点加法器关 键部件的优化设计。其次,探讨了c m o s 数字电路的优化设计技术,在保证浮点加 法器性能的基础上,对浮点加法器电路进行了优化设计。最后,对所设计电路进 行了仿真测试。测试结果表明,所设计的浮点加法器无论从功能上还是性能上讲, 都能满足设计要求。 关键宇:浮点加法l z a 移位器整数加法器。优化设计 a b s t r a c t f l o a t i n g p o i n ta d d e ri so n eo ft h eb a s i cp a n so fc p u i t sp e r f o r m a n c eh a sad i r e c t e f f e c to nc p u f l o a t i n g p o i n tp r o c e s s i n g c a p a c i t y f i r s t ,f l o a t i n g p o i n t a d d i t i o n a r i t h m e t i ci s a n a l y z e d ,a n dan e wr a t i o n a la r c h i t e c t u r ei s d e s i g n e db a s e do ni t i n t e g e r a d d e r s h i f t e ra n dl z at h e s ek e y p a r t sa r em a i n l ys t u d i e da n do p t i m a l l y d e s i g n e d t h e n c m o s1 c so p t i m a ld e s i g ns k i l l sa r ed i s c u s s e da n df l o a t i n g - p o i n ta d d e ri s o p t i m a l l y d e s i g n e dw i t hi t sp e r f o r m a n c es u r e f i n a l l y , t h ef l o a t i n g p o i n ta d d e ri ss i m u l a t e d t e s t r e s u l t si n d i c a t et h ef l o a t i n g p o i n ta d d e rc a nm e e t d e s i g nn e e d si ne i t h e rp e r f o r m a n c eo r f u l l c t i 0 1 3 k e y w o r d :f l o a t i n g - p o i n ta d d i t i o nl z a s h i f t e r i n t e g e ra d d e ro p t i m a l d e s i g n 第一章前言 第一章前言 s 1 1 研究背景 在科研、工程计算、航海航空及国防领域中,经常需要对大量数据进行实时 处理,并要求计算三角函数、对数函数、指数函数这样一些“超越”函数的值。 在各种处理过程中( 如c a d 、三维建模、视频编辑、3 d 技术、科学应用) 都需要 大量的浮点运算。例如,当我们用不同的电脑计算圆周率时,会发现一台电脑的 计算较另一台来讲结果更加精确。或者我们在进行枪战游戏的时候,当粒子弹 击中墙壁时,墙上剥落下一块墙皮,同样的场面在一台电脑上的表现可能会非常 的呆板、做作:而在另外一台电脑上就会非常生动、形象,甚至与我们在现实中 看到的所差无几。以上我们看到的一切,都源于c p u 内部添加的“浮点运算功能”。 在高端工作站和服务器中c p u 最重要的性能是浮点处理方面的表现。一个3 d 渲染工作站,需要c p u 有尽可能快的浮点运算速度和有效的多任务处理能力。随 着微处理器性能的不断提高,计算机的发展日益需要微处理器具有高精度的浮点 数处理能力。浮点处理器( f p u ) 的发展十分迅速,在计算精度和计算速度等各方 面都实现了巨大飞跃。 1 1 1 国外f p u 的发展史 大家知道,计算机中的嚏2 ”有“定点数”和“浮点数”之分,“定点数”的运算部件 的设计和实现比较容易,而“浮点数”的运算部件的设计和实现却复杂得多,困难得 多。因此,较早的计算机许多都不配备浮点运算,而是采用i b m 的巴科斯( j b a c k u s , 1 9 9 9 年度图灵奖获得者) 发明的软件,由定点运算部件去完成浮点运算。但这种做 法使浮点运算的速度大大降低,难以满足某些应用的需要。为此凯亨在i n t e l g e 作 期间,主持设计与开发了8 0 8 7 芯片,于1 9 8 0 年成功地实现了高速、高效的浮点运 算部件。8 0 8 7 以n m o s 工艺制造,主要有5 m h z 、8 m h z 、1 0 m h z 三种版本,最大 功耗是2 4 0 0 m w 。8 0 8 7 确立了浮点枷处理器8 0 位的数据精度,定义了一个非常强大 的浮点运算内核。不仅进行加、减、乘、除等基本算术运算的操作,而且硬件实 现了类型转换、符号拷贝、三角函数和双曲函数等超越函数的计算。但是它不能 与1 9 8 5 年公布的i e e es t a n d a r d7 5 4 浮点标准完全兼容。 1 9 8 2 年,i n t e l 公司推出了命名为8 0 2 8 6 的芯片,并于1 9 8 3 年推出了8 0 2 8 6 的协处理器8 0 2 8 7 。8 0 2 8 7 仍采用n m o s 工艺,主频和功耗等性能与8 0 8 7 基本相 同,使用相同的计算内核,同样也没有与i e e e 7 5 4 标准兼容。由于c p u 与协处 3 2 位浮点加法器的优化设计 理器的通信开销,8 0 2 8 7 比8 0 8 7 慢。为此,i n t e l 在1 9 9 0 年推出了8 0 2 8 7 x l ,8 0 2 8 7 x l 与i e e e 7 5 4 标准完全兼容。8 0 2 8 7 x l 基于8 0 3 8 7 的计算内核,采用c m o s 工艺, 主频可以达到1 2 5 m h z ,并且在1 2 5 m h z 时,功耗是n m o s 工艺的8 0 2 8 7 的1 4 。 指令执行速度更快,基准测试下,8 0 2 8 7 x l 比8 0 2 8 7 快5 0 。8 0 8 7 和8 0 2 8 7 系列 都采用1 6 位数据总线接口,限制了数据传送的速度。 1 9 8 5 年,i n t e l 推出了8 0 3 8 6 芯片,它是8 0 x 8 6 系列中的第一种3 2 位微处理 器。1 9 8 6 年,i n t e l 推出8 0 3 8 6 的协处理器8 0 3 8 7 ,总线接口扩大为3 2 位,且与 i e e e 7 5 4 标准兼容。采用1 5 微米c h m o s1 i i5 1 2 艺,最大工作频率达到了2 5 m h z , 相应的最大功耗却只有1 9 5 0 m w 。1 9 8 9 年第二代8 0 3 8 7 处理器一8 0 3 8 7 d x 面世, 采用i n t e l 更先进的低功耗c h m o si v 工艺,最高工作频率达到了3 3 m h z ,而相 应的最大功耗降为1 2 5 0 m w 。同样主频的情况下,8 0 3 8 7 d x 平均比8 0 3 8 7 快了2 0 , 而实际许多指令执行要快得多,比如超越函数计算指令快了2 6 。8 0 3 8 7 d x 开始 支持与c p u 的异步操作,其内部可以采用与c p u 完全不同的时钟,灵活性加大。 随后又推出了适应不同用途的版本,比如8 0 3 8 7 s x 和8 0 3 8 7 s l 等。虽然3 8 7 系列 比以往的处理器性能要好得多,但是整个体系结构并没有大的改变,浮点计算内 核的功能基本未变,仅执行速度有了显著的提高。 1 9 8 9 年i n t e l 推出的8 0 4 8 6 d xc p u 芯片标志着浮点处理器发展的一个飞跃。 8 0 4 8 6 d x 将8 0 3 8 6 、8 0 3 8 7 以及一个8 k b 的高速缓存集成在一个芯片上,并首次采用 r i s c 技术。由于片上f p u 消除了昂贵的c p u 与f p u 通信开销,而且可以利用同片的 c a c h e 和高度流水部件,使f p u 能以硬件允许的最大速度工作,故浮点计算性能是 同主频8 0 3 8 7 d x 的3 4 倍。与3 8 7 相比,4 8 6 d x 的f p u 除了性能更好以外,超越函数 的计算精度也提高了;而且在运算时间很长的浮点指令执行的过程中,允许被产 生的中断终止,可以获得较优化的中断响应延时。4 8 6 d x 的2 5 m h z 、3 3 m h z 仍然 采用c h m o si v 工艺,5 0 m h z 采用c h m o sv 工艺,对应的最大功耗为5 0 0 0 m w , 集成度达到了1 2 0 万晶体管。i n t e l 还推出了4 8 6 d x 2 、4 8 6 s x 的协处理器4 8 7 s x ,浮 点部分与4 8 6 d x 基本相同。4 8 6 系列处理器虽高外部主频达到了1 0 0 m h z 。a m d 很 早就开始设计制造4 8 6 兼容的处理器,最好的版本是5 k 8 6 ,主频可以达到1 3 3 m h z , 性能接近9 0 m h z 的p e n t i u m 。此外还有兼容的c y r i x5 x 8 6 。w e i t e k 的w t l 4 1 6 7 ,兼 容4 8 6 系统,实际应用中浮点计算性能l 1 :, 4 8 6 高1 0 以上。 1 9 9 3 年3 月i n t e l 推出了第五代c p u - - p e n t i u m ,采用了多个流水线的超标量执 行技术,浮点单元也是流水实现。p e n t i u m 内部集成有3 3 0 万个晶体管采用的是 0 3 5 微米b i c m o s 工艺进行生产,内置了1 6 k 的一级缓冲,最高主频达到了 2 0 0 m h z 。1 9 9 5 年,a m d 公司推出了k 5 系列的c p u ,内部总线频率和p e n t i u m 差不多,内置了2 4 k 的一级缓冲。由于k 5 的内置缓存比p e n t i u m 高出了一半,整 第一章前言 数运算和整体性能高于同频率的p e n t i u m ,但其浮点运算能力比不上p e n t i u m 。1 9 9 6 年底,i n t e l 推出了p e n t i u mm m x ,采用0 3 5 微米c m o s 工艺进行生产,片上集 成4 5 0 万个晶体管,最高工作频率达到了2 3 3 m h z 。m m x 是i n t e l 公司在1 9 9 6 年为增强p e n t i u mc p u 在音像、图形和通信应用方面而采取的新技术,它为c p u 增加了5 7 条m m x 指令,除了指令集中增加m m x 指令外还将c p u 芯片内的 一线缓存由原来的1 6 k b 增加到3 2 k b ,因此m m xc p u 比普通c p u 在运行含有 m m x 指令的程序时,处理多媒体的能力上提高了6 0 左右。1 9 9 7 年9 月i n t e l 又推出了体积更小、功耗更低的第二代p e n t i u mm m x ,代号为t i l l a m o o k ,采用的 生产工艺是i n t e l 先进的0 2 5 微米制造技术,从而使c p u 的内核电压从2 5 v 降为 1 8 v ,迸一步降低了芯片的功耗。 1 9 9 5 年1 1 月第六代处理器一p e n t i u mp r o ,工作频率是1 5 5 1 6 6 1 8 0 2 0 0 m h z , 工艺仍然是0 3 5 微米。它除了采用1 6 k 的一级缓存外,对于前三者还采用了2 5 6 k 的二级缓存,但1 6 位应用的性能不佳。1 9 9 7 年5 月,i n t e l 推出了影响力最大的 p e n t i u mi i ,将p e n t i m up r o 精华与m m x 技术完美结合起来。为了提高数据交换 速度,它采用了双独立总线结构,即其中一条总线联接二级高速缓存,另一条联 接主要内存。这样就使可以脱离芯片的外部高速缓存,运行在相当于c p u 自身时 钟频率一半的频率下。在接口技术方面,p e n t i u m l l 也首次采用了s o l t l 接口标准。 采用0 2 5 微米工艺,最高主频达到了5 0 0 m h z 。1 6 位与3 2 位的性能同样出色。由 于采用了动态执行结构,浮点性能也提高很大。浮点单元的结构仍固定为加法器、 乘法器、除法器并行的流水结构,没有大的改变。1 9 9 8 年,a m d 推出了k 6 2 系 列处理器,一级缓存是6 4 k b ,内置了3 d n o w ! 指令及超标量m m x 功能,提高了 三维图形、多媒体、以及浮点运算密集的个人电脑应用程序的运算能力,使三维 图形加速器全面地发挥性能。k 6 2 也使a m d 公司的产品首次在整数性能以及浮 点运算性能上同时超越i n t e l 。 1 9 9 9 年a m dk 7 和p e n t i u m1 1 1 处理器作为第7 代c p u ,主频目前都达到了 1 g h z 。k 7 处理器采用同类产品中前所未有的超标量浮点设计,内含3 个设有流水 线的乱序浮点运算单元( 浮点装载、浮点加法、浮点乘法) ,每次可同时发出处理 3 个指令,而且每一单元都保持有一周期的传输量。k 7 处理器的最高x 8 7 浮点执 行速率较英特尔p i i i 处理器高一倍,即使与目前不少用于工作站及服务器的精简 指令集运算( r i s c ) 处理器比较,a m dk 7 处理器的浮点运算性能亦毫不逊色。 从现有资料来看,a m dk 7 处理器与p e n t i u m l i i 处理器加以比较时,k 7 在乘、 除及平方根等重要指令方面都明显较p e n t i u m l i i 更胜一筹。而且它可以和传统的 x 8 7 结构完全兼容,无论单、双还是扩展精度浮点数据类别都符合目前国际通行的 i e e e 7 5 4 和8 5 4 标准。 4 3 2 位浮点加法器的优化设计 2 0 0 1 年1 1 月,i n t e l 推出了奔腾i v 处理器,它可以在一个时钟周期内完成浮 点数的移动、存储、交换、浮点加法、浮点乘法或浮点除法。英特尔表示,奔腾 i v 的运行速度分别为1 5 或1 4 g h z ,而且将来还有进一步提升速度的余地。业内 人士指出这种新型处理器的速度将在5 年内达到1 0 g h z ,这一速度大约是最新型 奔腾i i i 处理器的1 l 倍。这种新型处理器主要针对互联网应用而设计,其较之前 几种处理器而言可以提供最优质的制图、视频以及多媒体功能。同时,n e c 发表 了世界上运算最快的超级计算机,浮点运算速度每秒8 万亿次。 综上所述,f p u 的发展经历了两代:第一代是串行执行结构,主要是最早的 8 0 x 8 7 和8 0 4 8 6 ;第二代是流水的并发执行结构,即p e n t i u m 结构处理器下的浮点 单元。而功能上改变不多,基本上都是与i e e e 一7 5 4 标准兼容。 1 i 2 国内在浮点运算方面所做的工作 国内从事附点研究的不多,目前只有航天7 7 1 所和西北工业大学航空微电子 中心在这方面作了比较多的工作。7 7 1 所在九五期间自行设计与研制了用于单处理 器系统的3 2 位浮点l sr i s c 微处理器、用于多处理器系统的3 2 位浮点l sd s p 微处理器和用于s i m d 系统的1 6 位定点l sm p p 协处理器,并正在着手设计用于 异构协处理器系统中的微处理器核的3 2 位浮点l sc o r e 微处理器。n r sf p u 是 西北工业大学航空微电子中心研制的、具有自主版权的浮点处理器,与8 0 3 8 7 指 令级兼容,符合浮点i e e es t a n d a r d7 5 4 1 9 8 5 标准,在军用、民用的各个领域中都 有广泛的应用前景,对改变数值协处理器全部依赖进口的局面有十分重要的意义。 但是由于种种原因,他们还没有形成完整的理论体系和设计方案。许多关键 浮点部件( 如浮点加法器,乘法器,超越函数的实现) 的设计还不够完善,难以 满足月益增长的对浮点运算部件的高速低功耗要求,需要进一步研究、改进。 1 2 本文工作 由于集成电路技术的发展,芯片的集成度大大提高,因此在许多图形加速器、 d s p 处理器及高性能计算机系统中已经将f p u 与i u ( i n t e g e ru n i t ) 集成在一个芯片 中,并且f p u 已经超过了原来辅助功能的范畴成为c p u 的一个重要部件。根据 o b e r m a n 的技术报告可知旺1 ,浮点指令中浮点加法器的使用频率为5 5 ,因此浮点 加法器在f p u 中占有绝对重要的地位,它的性能的优劣将直接影n l h j c p u 浮点处理能 力。鉴于这个原因,并考虑到国内浮点部件设计的不足,我们着手设计研究了3 2 位浮点加法器。 浮点加法器是微处理机和浮点d s p 数据通道必需的内建单元,其功耗、性能 第一章前言 直接影响着应用目标的功耗及性能。浮点加法的硬件实现包括众多不同的数据处 理子单元,因而在其操作过程中要消耗大量功耗。设计高性能低功耗的浮点加法 单元是当前的一个重要课题。 本文我们首先将对浮点加法器算法、结构、关键部件以及c f f o s 数字电路的优 化设计技术进行分析研究:然后采用其中一些优化技术对浮点加法器进行优化设 计,并在设计的同时进行仿真,验证设计的准确、合理性。 在本次设计中采用了自顶向下的设计方法,在各个层次( 版图级除外) 对电 路进行了设计和验证。 6 3 2 位浮点加法器的优化没计 第二章浮点加法 在处理机中,不仅要处理整数运算,而且也要处理小数运算如何处理小数 点的位置是十分重要的,经常采用定点法和浮点法来表明小数点的位置。 定点表示法就是规定一个固定的小数点位置。常常把小数点的位置固定在数 的最高有效位的前面或最低有效位的后面,这样就把所有的数化为纯小数和纯整 数,因此运算起来比较方便。但这要求对所有的原始数据要用比例因子化成小数 或整数,计算的结果又要用比侧因子折算成真实值。同时这种方法所表示的数的 范围小,精度低。为此,引入了浮点表示法。 2 1 浮点算术 浮点算术要讨论的问题包括浮点数的表示和浮点数的算术操作。 2 1 1 浮点数的表示 浮点数的表示包括:浮点数表示格式与基的选择,范围与精度,规格化,含 入以及基本误差分析。这里将以1 e e es t a n d a r d7 5 4 的浮点数表示法为基础,讨论 处理上述问题的方法。 数的浮点表示是数的标准( 十进制) 科学表示的一个机器等效形式,是一种 适应科学计算的非常好的数的表示方法。定点数的主要缺点是数的表示范围有限, 带来了程序设计引比例的麻烦:而浮点数的实质则是在单个操作级由机器自动实 现引比例的处理。在浮点表示中,数n 是用一对数( e ,s ) 表示的,使得n = s xr e 。 其中e 是一个带符号的整数,通常叫做指数:s 是一个带符号的定点数,通常是分 数,叫做有效数或尾数;对于给定的表示,基r 是不变的,故不显式地表示在浮 点数中。事实上,r 6 是一个机器可调的比例因子,用以指示有效数s 中小数点的 位置。换句话说,改变一个给定浮点数中的指数,将产生小数点位置也变化的有 效数。例如,3 1 4 2 1 0 ,3 1 4 2 1 0 0 ,o 3 1 4 2 1 0 1 是所有同一个数的不同表示, 在基为1 0 的浮点数中,它们的表示分别为( 1 ,3 1 4 2 ) ,( o ,3 1 4 2 ) ,( 1 ,0 。3 1 4 2 ) ,这 就是浮点名称的由来。 i e e e7 5 4 标准规定了四种浮点数格式1 2 0 o 两种基本格式是单精度与双精度格 式,对应于这两种格式还各有一种扩展精度格式,如表2 1 所示,用于使结果显示 第二章浮点加法 具有更高的精度。i e e e 标准的所有四种格式的基都是2 。有效数采用符号与大小 表示,而且是一个带隐含位的分数。标准要求任何合适的实现支持单精度格式, 并建议支持下列三种组合之一:单精度与单精度扩展;单精度,双精度与双精度 扩展;所有四种组合。选定浮点数的一种表示格式,就是决定如何分配指数与有 效数之间的可用位数,选择有效数的表示格式,选择指数的表示格式。 表2 11 e e es t a n d r a d7 5 4 的浮点数格式 格式 参数 单精度单精度扩展殿精度双精度扩展 格式宽度 3 2 4 36 4 7 9 有效数宽度 2 4 3 25 3 6 4 指数宽度 8 1 1 l l1 5 最大指数 1 2 81 0 2 41 0 2 41 6 3 8 4 最小指数 1 2 71 0 2 31 0 2 3 1 6 3 8 3 指数偏移 1 2 71 0 2 3 精确度 2 23 05 l 6 2 指数的表示 原则上讲,原码、反码与补码三种表示定点数的方法中的任何一种都可以用 来表示指数。但实际上,事情并非如此简单,数零的特殊地位导致指数的表示要 采用稍微不同的方法。 显然( e ,0 ) = 0 2 e = 0 ,因此,数学上讲任何表示( e ,o ) 都看作零,即零没有 一个唯一的表示。为了防止这一点,则需用摄小的指数作为零的指数,这样零就 有了唯一的表示。从工程的角度看,如果正的零用一串全零表示,那将是方便的, 容易检测。在用最小指数表示零的限制下,这可以通过加一个偏移指数( 该最小 指数的绝对值) 来实现。为了保持一致,对每个数的指数都要加偏移。也就是说 使用一个偏移指数来取代真正的指数。如果真正的指数为e ,满足关系式n e n ,则使偏移指数e 满足关系式0 e + 2 n ,即e = e + n 。于是( 0 ,o ) 就可以 作为零的唯一表示。注意:当有效数采用一个隐含位时,不能再依靠一个全0 的 有效数来表示0 ,为此,必须保留一个特殊的指数( 最小指数) 用于0 的表示。对 指数的操作只有加法与减法,而这些操作在补码表示法中是最快的。因此,偏移 补码是指数的最好表示法。 指数溢出是指在指数的最后结果中,指数大于或小于允许的指数值时所造成 的溢出。当结果的指数大于最大允许指数时,就发生指数上溢;当结果的指数小 3 2 位浮点加法器的优化设计 于最小允许指数时,就发生指数下溢。当发生下溢时有两个简单的处理方法: 一是让结果冲零,这种方法已在当前许多计算机中采用:另一种方法是不遵守规 格化要求,将有效数移位,并相应的调整指数,直到得到一个具有最小可能指数 的非规格化的有效数,这样得到的数叫做反规格化数。反规格化处理比冲零更难 正确地实现,而且误差分析复杂,但是,它通常能产生有意义的结果。当发生上 溢时,处理方法是按照中间结果是负数或正数,将结果分别置为负无穷大或正无 穷大。而对于像0 c o ,o o 一。,以及0 + 0 这样的操作,它们的结果应该是什么并 不清楚,通常认为这种情况产生一个不确定数( n a n ) 。 综上所述,指数的表示是偏移的,有两个指数值不是用于表示正常数的,而 是留作特殊情形:最小可能的指数e m i n 保留用作0 以及反规格化数;最大可能 的指数e m a x 用作c 。以及n a n 。于是指数偏移之后,各种场组合的解释如下: , , e m a x 与一个非零有效数表示n a n ; , e m a x 与一个零有效数按照符号位的不同表示+ 。或一c o : j e m i n 与一个非零有效数表示一个反规格化数; 其余的指数值与有效数表示正常的数。 有效数的表示 基于定点算术的早期讨论,似乎补码表示是有效数的最好表示。但是,有许多 因素表明要采用其他的选择。首先,如前所述,处理下溢的一种方法就是使+ o 与0 均有意义,这只有原码与反码才是有可能的;再次补码表示的数的范围缺乏 对称性,不是每个可表示的数的求负仍然是可表示的,这会带来处理不方便;第 三,在补码表示中,四种操作a + b ,一a + b ,a + ( b ) ,a + ( 一b ) 不能同样容易地实现, 但用反码和原码表示时是可以的;在把中间结果变为最后精度而进行的一些舍八 处理中用原码比用反码和补码更容易实现,也更能产生一致的结果,因此,原 码是有效数表示的最好选择。 有效数表示的第二个问题是基点在有效数中的位置,几乎在所有的机器中,基 点的位置都是放在有效数的最高有效位( 符号位) 与下一位之间的。 有效数表示的第三个问题是规格化。为了得到尽可能的精度,在浮点计算中通 常是尽可能消除有效数的非有效位,例如用o 3 1 4 2 代替0 0 0 0 3 1 4 2 。因为在机器中 可表示的位是固定的,保留有效位就可以得到最大的精确度。说一个数是规格化 的,就是指它是在有效数的范围之内,而且有一个非零的开头位。对于一个非零 的、基为2 的有效数来说,如果它是规格化的,则它的开头的非符号位的值一定 为1 ,因此可以通过不存储这一位而使可表示数的数目加倍,进而获得额外一位的 精度。这个省去的位通常叫做隐含位。除非特别指明总是认为所有算术操作的被 操作数以及操作的结果都要求是规格化的。这就是说,对于每个非零的数,只有 第章浮点加法 一种允许的表示,简化了数的比较工作,而且有利于保证硬件实现的一致性,便 于误差分析而且能够减少一定的误差。但是,规格化牺牲了表示一些非常小的数 的能力,为此,在i e e e 标准中引入了反规格化数,它在计算机中的数据表示格式为 指数为零,尾数不为零的浮点数。 2 1 2 浮点数的算术操作 浮点数的算术操作包括基本算术操作和初等函数的操作。初等函数的操作不 属于本文研究之列,这里仅对基本算术操作进行介绍。基本算术操作包括加法、 减法、乘法、除法等四种操作。加法与减法操作时,首先要将指数较小的被操作 数的有效数右移,使两个数的指数相等,于是使基点对齐,然后才能进行加法与 减法操作。除法与乘法操作要简单得多,只需对其有效数完成除法与乘法操作, 对其指数完成加法与减法操作。基本算术操作可描述如下:( 其中,( e l ,s i ) 和( e 2 ,s z ) 是两个被操作数) d 1 1 法 ( e 1 ,s i ) + ( e 2 ,s 2 ) = ( e l ,s l + s 2 2 1 ) ,c = e 1 一e 2 0 ( 2 - 1 ) ( e i ,s 1 ) + ( e 2 ,s 2 ) = ( e 2 ,s 2 + s 1 2 。) ,e = e 1 一e 2 0 ( 2 2 ) 减法 ( e l ,s 1 ) 一( 2 ,s 2 ) = ( e 1 ,s i s 2 2 1 ) ,p = e l e 2 0 ( 2 - 3 ) ( 巨,s ) 一( 2 ,s 2 ) = ( e 2 ,s i2 。一s 2 ) ,e = e i e 2 j k ,g j 。= g ,只。= 只) 块进位传导函数 只。= 只,0 。 ( 4 5 ) 块进位产生函数 g h = g 。+ # ,g 川t ( 4 - 6 ) 块进位函数 c = g 川, + 只“ c k ( 4 7 ) 8 位树形超前进位加法器1 1 的具体实现电路如图4 1 l 示。它包含两种模块, a 模块计算进位传导函数,进位产生函数及和位;b 模块计算块进位传导函数,块 进位产生函数及块进位。 在高速场合经常使用的另一种整数加法器是选择进位加法器,如图4 1 2 所示。 由图可知,它的高速是以面积损耗为代价的。显然,树形超前进位加法器是多位 整数加减的最佳选择,本次设计中的加法器( 除快速加l 电路外) 都采用上述的 树形加法器。 快速加l 电路: 在浮点加法器中舍入加1 单元、尾数上溢指数调整单元等多处需要快速加1 电路。上述分析已经得知: c 。= g f + 只g 。+ + # 只一,。只g o + 只只一1 5 p o c o ( 4 - 3 ) 塑堕主堡皇塑堡矍 塑垡些墼! ! 一3 s ,= a 。0 b o c f ( 4 1 ) 对于加1 情况,我们令b = o ,c 。= 1 ,得到g ,= o ,只= a ,- 进而得到: c ,i = a a1 。a 1 a o s = a ,0c 。 ( 4 8 ) ( 4 9 ) 这种逻辑非常简单,5 位字长输八的快速加1 逻辑电路的实现如图4 1 3 所示。 a c r a , o 进何a 4 a 7 “1 ”进位a 4 a 7 s u m o s u m 3 s u m 4 s u m 7 c 8 幽4 1 2 选择进位加法器 图4 13 快速加1 电路 丝 3 2 位浮点加法器的优化设计 分析发现,对于不超过3 2 位字长的输入,输入到输出只需经过3 4 个门级 因此这种逻辑能够实现快速加l 操作。 4 3 2 移位器 将一个数据向左或向右移动一个固定位是一个非常简单的操作,只要利用多路 选择器选择正确的连接线路即可。然而,若移位次数是个变量,则实现移位操作 是复杂的,常用结构化( 多路选择器阵列结构) 变量移位器来实现。常用的结构 化移位器有桶形移位器和对数移位器2 1 ,分别如图4 1 4 ,4 1 5 示。 a 3 a 2 a 1 a 0 a o ! l f - 气o弋c j s h l了 飞了 。 j ,一 。 r - j r 1 一r l恒,i 1 o i 1 j :1 s h 2 ,j,, i ti 一 工r 1 、:。l f :。1 一:【r s h 3 ,f j t t f r , j r- t h :。1 :-l 一:-jc l 下 r 一- ij t l s h 0s h is h 2 s h 3 图4 1 4 桶形移位器 s h is h 2 s h 3 倒4 1 5 对数移位器 b 3 b 2 b 1 b 0 由图可见,二者均采用单管n m o s 阵列结构,阵列行数( 移位字) 均为字长, 第四章浮点加法器的优化设计 其中桶形移位器的列( 移位次数控制信号) 数等于最大移位次数,对数移位器的 列数等于最大移位次数的对数。可以发现,桶形移位器的优点是传输信号至多通 过一个传输管;缺点是移多少位就得多少控制信号。由于任何时候只能有个控 制信号为l ,还需对移位次数进行译码,因此管子数目多,面积大。 对数移位器刚好相反,控制信号的数目是移位次数的对数,因此管子数目少, 面积小。缺点是传输信号需要通过缴联的几个传输管,降低了移位器速度,因此 对于大移位值需要在中间加入缓冲器。对于大移位次数而言,对数移位器远小于 桶形移位器,因此我们选用对数移位器,并在其中加入了一级缓冲驱动来缓解带 来的速度损伤。 4 3 3l z a 当两操作数尾数相加时,若两操作数为规格化数,或其中一个操作数为规格 化数而另一个操作数为反规格化数,经过移位后的尾数至少有一个的首位为】,因 而相加后先导零的个数必定为0 ( 尾数上溢情况在后面的操作中考虑) ;若相加的 两操作数都为反规格化数,由于指数为l 。进行规格化移位时最多只能左移一位, 即得一反规格化数,因此先导1 的位置没必要进行预测,只需根据尾数前两位中 是否有1 束决定移位次数为0 还是l 。任两个数相减( 无论是规格化数还是反规格 化数) ,则先导零的个数是个变量,因此需要对先导0 的个数进行预测。因此此 处我们所设计的l z a 逻辑只对尾数相减情况的先导零进行预测。 l z a 预编码逻辑1 1 3 j 假设尾数f 1 ,f 2 中f 1 为正值,f 2 已被求负。假定减法没有借位,可以产生一l , 则编码函数w = f j + 厂2 = 1 , 0 ,一1 ,令p ,z ,n 分别代表l ,0 ,一l ,则 p j = f l ? f 2 :t 、4 - 1 0 ) z = ,l 。o f 2 , ( 4 1 1 ) n = ( f l 。+ f 2 ,) ( 4 1 2 ) 由于在第二级中尾数进行了比较,减法结果始终为j 下所以首位不为零的w i 必定为1 。1 用l 表示。 令w 0 ,0 i x ,x 为任意一个子串,设前导零的个数为k 。 ( 1 ) 当x 的首位为l 时( w = o o l i x ) ,任何借位均被它吸收,所以k + l 位就 是先导l 位置,即w j w 。= 1 1 时第i 位为先导1 的位置。 ( 2 ) 当x 的首位为0 时,若x 为正,w 0 0 1 0 0 i x ,由于没有借位,k + l 位的这个i 即先导l :若x 为负,w 0 0 1 0 0 1 x ,由于存在借位,所 以1 后的那一位才是先导l 位置。即l q = j o 时,第j 位为先导l 的位 3 2 位浮点加法器的优化设计 置,但可能有l 位误差。 ( 3 ) 当x 的首位为一l 时,w 0 ,o l t 一1 ( o ,1 ) x ( 其中t 的个数为j ) 。可以转 化为w 0 0 1 ( 0 ,i ) x ,同上讨论。即w k w + 2 = t 1 时,第k + j + l 位为 先导l 的位置;w k 。饥:= t o 时,第k + j + l 位为先导l 的位置,但有 l 位误差。 综合以上几种情况,可以得出预测函数

温馨提示

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

评论

0/150

提交评论