(微电子学与固体电子学专业论文)基于fpga的fpu设计研究.pdf_第1页
(微电子学与固体电子学专业论文)基于fpga的fpu设计研究.pdf_第2页
(微电子学与固体电子学专业论文)基于fpga的fpu设计研究.pdf_第3页
(微电子学与固体电子学专业论文)基于fpga的fpu设计研究.pdf_第4页
(微电子学与固体电子学专业论文)基于fpga的fpu设计研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(微电子学与固体电子学专业论文)基于fpga的fpu设计研究.pdf.pdf 免费下载

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

文档简介

上海大学硕士学位论文 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示了谢意。 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交 论文复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:釉导师签名:稻如丛日期 m & ,呵j 矽 上海大学硕士学位论文 摘要 随着集成电路技术的发展,处理器的集成度越来越高,功能越来越强大。 但是处理器在浮点处理方面一直没有突破性进展,而浮点处理是高速高精度数 据处理的关键技术,因此对浮点协处理器,即浮点处理单元( f p u ,f l o a t i n g - p o i n t u n i t ) 的研究显得尤其重要。 本文介绍了f p u 的发展历史,体系结构和指令系统。重点是数据通道相关 算法的研究和算法的硬件实现,同时对控制系统设计进行了研究。最后应用 f p g a 对设计进行实现。 在数据通道设计中,提出了双路径的设计思想,实行指数和尾数并行处理。 对浮点加法器采用三级流水线双路径结构,以及合并舍入逻辑、高速l o p v 编 码电路、进位链优化技术,大大提高了运算性能。乘法运算实现中增加编码旁 路逻辑,通过路径均衡的办法消除毛刺。在除和平方根运算实现中,引入了猜 测逻辑和校正逻辑优化查找表,通过q 和q - l 寄存器t 利用相关算法消除了通 常替代方法飞速商转换的额外加法。最后介绍了利用c o r d i c 算法对三角函数等 超越函数进行实现。 在控制系统设计中,微指令设置主要采用了水平型方式,同时结合了垂直 型微指令的特点使微指令长度变短。在c o r d i c 等替代控制中采用了硬布线控制 方法,提高替代速度,即在微程序控制系统中结合使用了硬布线的方法。 最后,选用a p e x 2 0 k 3 0 0 e 器件对数据路径进行了进行实现,得到很好的性 能。 关键词:f p u 飞速商转换c o r d i cl o p v 第1 页共就页 一一一一一 圭童盔鲎堡主兰堡丝塞 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e g r a t e dc i r c u i t ,t h ed e n s i t ya n dp e r f o r m a n c eo f p r o c e s s o ra 糟b e c o m i n gh i g h e ra n dh i g h e rb u tb r e a k t h r o u g h s0 1 1t h ea b i l i t yo f f l o a t i n g - p o i n tp r o c e s s i n gh a v e n tb e e na c h i e v e d ,s oi ti se s p e c i a l l yi m p o r t a n tt o m a k er e s e a r c ho ni t t h ep a p e rp r e s e n tt h ed e v e l o p m e n to ff p ua n dt h ea r c h i t e c t u r ea n d i n s t r u c t i o ns y s t e mo f i t ,t h e ni n t r o d u c et h em o s ti m p o r t a n tp a r t so f t h ed e s i g n d a t a p a t ha n dc o n t r o lu n i t e f i n a l l yt h ei m p l e m e n t a t i o nb a s e do nf p g a i s d e s c r i b e d i nt h ed e s i g no fd a t a p a t h ,i ti s a d v a n t a g e o u st oa p p l yt w o d a t a p a t h s t r u c t u r ea n da c h i e v i n gp r o c e s s i n ge x p o n e n ta n dm a n t i s s ai np a r a l l e l ,t od i v i d e d f l o a t i n g - p o i n ta d d e ri n t ot w op a t ha c c o r d i n gt ot h ed i f f e f e n c eo fe x p o n e n ta n d p r o c e s s t h e m s i m u l t a n e o u s l y ,t o u s et h r e e - l e v e l p i p e l i n e dp a r a l l e l s t r u c t u r e ,c o m b i n a t i o no fr o u n d ,o p t i m a lc a r r y c h a i na n dh i g l l - s p e e dl o p v c i r c u i tt oi m p l e m e n tt h ea d d e r ;i nt h ei m p l e m e n t a t i o no fm u l t i p l i e a t i o n , t h r o u g h p r o p e rb y - p a s sl o g i cc i r c u i t h i g l ls p e e di so u to fp r o b l e m 1 1 l ea d o p t i o no fa m a t c hl e n g t hi nt h en e t w o r ko fb o o t he n c o d e ra n dd e c o d e ri sb e n e f i c i a lt o e l i m i n a t eg l i t c h i n ga n dg a i nl o wp o w e r n 坞i m p l e m e n t a t i o no fd i v i s i o na n d s q u a r er o o ta l g o r i t h m se m b o d yo p t i m a ll e o k - u pt a b l ed u et ot h eu s i n go f s u r m i s ea n dr e v i s i o nl o g i c i ti ss i g n i f i c a n tt oa p p l yqa n dq - 1r e g i s t e r st o e l i m i n a t et h et i m ew a s t i n go nt h ea d d i t i o n a la d do p e r a t i o nr e s u l t e df r o m c o n v e r s i o n - o n - t h e n yi nt h et r a d i t i o n a ld e s i g n a tl a s t ,t h ep a p e rp r e s e n tt h e i m p l e m e n t a t i o no fc o m p l e xf u n c t i o n ss u c ha st r i g o n o m e t r i ca n dh y p e r b o l i c f u n c t i o n s i nt h ed e s i g no fc o n t r o lu n i t ,t h eb e s tb e n e f i ti st h ec o m b i n a t i o nh o r i z o n t a l a n dv e r t i c a lm i c r o i n s m l c t i o n a s s i g n m e n t t o a b r i d g e t h e l e n g t h o f m i c r o i n s t r u c t i o n ,t oi n t r o d u c eh a r d w a r et oi m p l e m e n tt h er e c 峨n c eo fc o 1 i e a r i t h m e t i c t h a t st os a y t h ec o n t r o lu n i t ei n c o r p o r a t et h eh a r d w a r ec o n t r o l m e t h o di nm i c r o p r o g r a mc o n t r o ls y s t e m f i n a l l y ,u s i n ga p e x 2 0 k 3 0 0 ed e v i c et os i m u l a t et h ew h o l es y s t e ma n d a c h i e v eh i g hp e r f o r m a n c e k e y w o r d :f p uc o n v e r s i o n - o n - t h e f l y c o r d i cl o p v 第3 贾共7 2 页 上海大学硕士学位论文 第一章绪论 自从第一块处理器芯片i n t e l 4 0 0 4 在1 9 7 1 年面世以来,经过3 3 年的发展, 处理器性能和实现工艺都有了革命性进展。发展的速度甚至超过著名的摩尔定 律的预测。与处理器发展相适应,浮点处理能力也有很大的发展:从浮点运算 的软件实现到硬件f p u ,再到浮点协处理器,即浮点处理单元( f l o a t i n g - p o i n t u n i lf p u ) 嵌入到处理器中,浮点处理能力有质的飞跃【”。 1 1 选题的目的和意义 目前很多处理器是通用类型的,为了考虑其通用性或者因为面积的限制只 是设计了定点处理单元,对浮点处理往往只能借助软件的办法来实现,这必然 会使速度有很大的降低。为了浮点处理的发展,对浮点数处理进行研究显得极 为必要。本选题技术基于这种需要。采用完全正向的办法,设计出性能比8 0 4 8 6 内置浮点处理单元性能更优的f p u 。 在数值处理中我们按照小数是否固定将数的格式分为定点和浮点,定点表 示法约定小数的位置不改变。我们将定点数分为定点整数和定点小数2 种。采 用定点格式在进行整数简单运算的时候碰到的问鼹不是很明显,但是在处理定 点小数运算或者复杂数值处理的时候就会出现很多的麻烦,例如二进制位被很 多0 占用等等。因此浮点数应运而生,浮点数在进行运算时具有比较优势:精 度高、数的表示范围大,特别适用计算过程复杂、精度要求高的场合。 目前,浮点处理器的应用非常广泛,主要具有以下个方面的应用: 1 1 航空领域:主要包括飞控,导控,导航等方面。 2 1 航天领域:主要包括卫星的遥感,遥控。 3 1 实时信息处理;信号处理方面:主要包括数字滤波,自适应滤波,f f t 变换等。 4 1 机器人技术领域:主要有实时语音。 5 、图象处理以及应用在具有浮点运算功能的c a d 软件以及金融办公自动 化等等。 因此进行浮点处理器的研究,提高我国这方面的水平具有非常重要的意义。 第s 页兆7 2 页 上海大学硬士学位论文 1 2 浮点协处理器概述 f p u 是用来进行浮点运算的处理器,可以应用在数字图象处理,实时数据 处理等各个方面。不同的f p u ,支持的数据格式,具体硬件实现可以有所不同, 但是总离不开加、减、乘等浮点运算。一个标准的f p u 应该支持i e e e 7 5 4 单精 度、双精度和扩充双精度浮点格式,支持就近舍入规则,具有如下功能: 1 】浮点算术运算功能:包括基本函数运算和超越运算,前者包括加、减、 乘、除等常用运算,后者包括三角函数、反三角函数、指数函数和对 数函数等运算; 2 】常数加载功能:完成常用立即数的加载,提高系统速度; 3 1 数据转送功能:完成堆栈寄存器等暂存数据之间的转送; 4 ) 比较控制功能:完成数据之间的比较和利用控制寄存器和标志寄存器 反映系统状态; 1 3f p u 国内外发展 由于大公司对处理器设计、生产的垄断,浮点处理器的发展史实际上是美 国少数几个大型公司在处理器设计上竞争的历史。伴随着这些公司产品更新换 代,浮点处理得到了发展。 对于浮点数据的处理在f p u 出现之前采用软件的办法实现,浮点处理速度 不理想。因此具有浮点运算能力的f p u 就应运而生。在浮点运算方面i n t e l 走 在其他公司的前面,在建立浮点运算库( f p a l ) 的基础上设计出8 2 3 2 ( 这是 一种进行浮点运算的单板机) 。并且在1 9 8 0 年设计出协助8 0 8 6 8 0 8 8 进行浮点 运算的8 0 8 7 。8 0 8 7 采用n m o s 技术和i n t e l 的浮点标准,与i e e e 7 5 4 标准不兼 容。但它定义一个非常强大的浮点运算内核,不仅能进行加、减、乘、除等基 本算术运算,而且用硬件实现了类型转换、符号拷贝、三角函数和双曲线函数 等超越函数的计算。 1 9 8 3 年i n , e l 推出了与8 0 2 8 6 相对应的协处理器8 0 2 8 7 ,工艺上仍然采用 n m o s 。主频和功耗与8 0 8 7 基本相同,而且由于c p u 与协处理器的通信开销 造成速度上与8 0 8 7 相比较并没有多大优势。1 9 9 0 年i n t e l 公司推出第二代 8 0 2 8 7 8 0 2 8 7 x l 。该处理器基于8 0 3 8 7 的计算内核,与i e e e 7 5 4 标准完全兼窖, 8 0 2 8 7 8 0 2 8 7 x l 。该处理器基于8 0 3 8 7 的计算内核,与i e e e 7 5 4 标准完全兼窖, 第6 页共7 2 页 上海大学硬士学位论文 1 2 浮点协处理器概述 f p u 是用来进行浮点运算的处理器,可以应用在数字图象处理,实时数据 处理等各个方面。不同的f p u ,支持的数据格式,具体硬件实现可以有所不同, 但是总离不开加、减、乘等浮点运算。一个标准的f p u 应该支持i e e e 7 5 4 单精 度、双精度和扩充双精度浮点格式,支持就近舍入规则,具有如下功能: 1 ) 浮点算术运算功能:包括基本函数运算和超越运算,前者包括加、减、 乘、除等常用运算,后者包括三角函数、反三角函数、指数函数和对 数函数等运算; 2 ) 常数加载功能:完成常用立即数的加载,提高系统速度; 3 ) 数据转送功能:完成堆栈寄存器等暂存数据之间的转送; 4 ) 比较控制功能:完成数据之间的比较和利用控制寄存器和标志寄存器 反映系统状态; 1 3f p u 国内外发展 由于大公司对处理器设计、生产的垄断,浮点处理器的发展史实际上是美 国少数几个大型公司在处理器设计上竞争的历史。伴随着这些公司产品更新换 代,浮点处理得到了发展。 对于浮点数据的处理在f p u 出现之前采用软件的办法实现,浮点处理速度 不理想。因此具有浮点运算能力的f p u 就应运而生。在浮点运算方面i n t e l 走 在其他公司的前面,在建立浮点运算库( f p a l ) 的基础上设计出8 2 3 2 ( 这是 一种进行浮点运算的单板机) 。并且在1 9 8 0 年设计出协助8 0 8 6 8 0 8 8 进行浮点 运算的8 0 8 7 。8 0 8 7 采用n m o s 技术和i n t e l 的浮点标准,与i e e e 7 5 4 标准不兼 容。但它定义一个非常强大的浮点运算内核,不仅能进行加、减、乘、除等基 本算术运算,而且用硬件实现了类型转换、符号拷贝、三角函数和双曲线函数 等超越函数的计算。 1 9 8 3 年i n t e l 推出了与8 0 2 8 6 相对应的协处理器8 0 2 8 7 ,工艺上仍然采用 n m o s ,主频和功耗与8 0 8 7 基本相同,而且由于c p u 与协处理器的通信开销 造成速度上与8 0 8 7 相比较并没有多大优势。1 9 9 0 年i n t e l 公司推出第二代 8 0 2 8 7 8 0 2 8 7 x l 。该处理器基于8 0 3 8 7 的计算内核,与i e e e 7 5 4 标准完全兼容, 第6 页共,2 页 上海大学硕士学位论文 指令执行速度更快。8 0 2 8 7 x l 的速度比8 0 2 8 7 的速度要快5 0 。8 0 2 8 7 x l 采用 c m o s 工艺,主频可以达到1 2 5 m h z 。在1 2 5 m h z 时,功耗是n m o s 的l 4 。 c y r i x 推出了与8 0 2 8 7 兼容的版本8 2 s 8 7 ,i t 推出了2 c 8 7 t 2 1 。所有的这些与8 0 2 8 7 兼容的协处理器都是采用8 0 2 8 7 兼容的计算内核,只不过稍微进行了修改。8 0 8 7 和8 0 2 8 7 都采用1 6 位数据总线接口,限制了数据传送的速度。 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 s i i i 工艺,最大工作频率达到了 2 5 m h z ,相应的最大功耗只有1 9 5 0 m w t 3 1 。1 9 8 9 年第二代8 0 3 8 7 处理器 - - 8 0 3 8 7 d x 面世,采用了更加先进的低功耗c h m o s i v 工艺,最高工作频率可 以达到3 3 m h z ,而相应的功耗只有1 2 5 0 m w 6 1 。同样主频的情况下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 等。8 0 3 8 7 系列的协处理器 实际技术比较成熟,兼容版本也比较多:有c y r i x 的f a s m a t h 9 3 d 8 7 、e m c 8 7 、 f a s h m a t h3 8 7 + 、f a s h m a t h 8 3 s 8 7 0 l ,c & t 的s u p e r m a t h 3 8 7 0 0 d x 和3 8 7 0 0 s x 处理器等。值得一提的是w e i t e k 公司的w t l 3 1 6 7 没有仿制8 0 3 8 7 ,但是却性 能更好。尽管8 0 3 8 7 性能更加好但是体系结构并没有多大改进。 1 9 8 9 年i n t e l 推出了4 8 6 d x ,标志着浮点处理器发展到了一个新的阶段。 4 8 6 d x 功能上包含了一个c p u ( 3 8 6 体系结构的高速流水线实现) 和一个片上 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 倍。与8 0 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 s 工艺。5 0 础 i z 版本采用c m 幻s v 工艺。对应的最 大功耗为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 x 的5 x 8 6 等,变化最大的是外部控制逻辑。 第7 页熬7 2 页 上海大学硕士学位论文 上世纪九十年代受r i s c 思想的影响,i n t e l 抛弃了x 8 6 结构,定义了具有 很多r i s c 特点的p e n t i u m 结构。并于1 9 9 3 年3 月推出了采用这种结构的第五 代c p u - - p e n t i u m ,采用了流水线、超标置执行技术,浮点单元也是流水实现。 尽管浮点单元已经设置了单独的乘法器和除法器,数据接口已经扩大到了6 4 位,但浮点单元仍然采用旧的8 0 3 8 7 的设计思想,对其本身和与其他部件的集 成而言,缺乏很多重要的特点。p e n f i u m 内部集成有3 3 0 万个晶体管,采用的是3 5 的b i c o m s 工艺进行生产,最高主频可以达到2 0 0 m h z 。p e n t i u m 与同档次 的a m d k 5 和c y r i x 6 x 8 6 相比较在商业应用上并没有多大的性能优势,不过它 的浮点性能比竞争对手强很多。1 9 9 7 年1 月,推出了p e n t i u mm m x ,采用3 5 的c m o s 工艺进行生产,片上集成4 5 0 万个晶体管,最高主频可以达到 2 3 3 m h z 。它是i n t e l 推出的另一种“增强型”第五代c p u ,含有先进的多媒体处 理m m x 技术。浮点单元与m m x 部件共用同一组寄存器,但是浮点运算并没 有做很大的改进。 1 9 9 5 年1 1 月第六代处理器p e n f i u mp r o ,用r i s c 指令对3 8 7 指令进行了 模拟。采用了动态执行、乱序执行、猜测执行、寄存器重命名和转移预测等技 术相结合。有较高的性能,但是浮点性能没有什么改进。随后推出的p e n t i u m i i , 采用了2 5 的工艺,最高主频达到5 0 0 m h z ,结构与p e n t i u mp r o 相似,但是浮 点性能更加好些。 1 9 9 9 年,a m dk 7 和p e n t i u m 处理器作为第七代c p u ,最高主频i ( 3 i - i z 以上。k 7 分别采用2 5 和1 8 工艺。而p e n t i u m1 i 采用1 8 的工艺。k 7 提供了完 全平行的不少于3 条的乱序f p u 流水线,浮点性能比同频的p e n t i u m 要好一 些。它的注意力主要放在多媒体处理能力上,减少了m m x 指令与浮点指令工 作切换的速度,对f p u 本身并没有很大的调整【5 】。 2 0 0 2 年,i n t e l 第八代处理器推出主频在1 2 g h z 以上,代号为:m c k i n l e y 的 0 1 3 微米铜芯片。a m d 第八代处理器( k 8 ) 命名为a t h l o n - 6 4 ( c l a w h a m m e r ) 和 o p t e r o n ( s l e d g e h a m m e r ) 。采用二级缓存:a t h l o n - 6 4 采用2 5 6 k 二级缓存作为 低端家用级处理器,o p t e r o n 采用1 0 2 4 k 二级缓存来主攻高端市场。而且在处理 器版本中还会有分别采用5 1 2 k 和2 m b 二级缓存的a t h l o n - 6 4 与o p t e r o n 。不过 在浮点处理上并没有什么革命性的进步。 第8 曩共7 2 页 上海大学硕士学位论文 目前,i n t e l 和a m d 分别推出了第九代c p u ,最先进的采用9 0 纳米工艺, 主频达到4 g h z ,大都具有乱序执行、深度浮点指令运算和大容量缓冲区,超 线程技术性能得到很好的体现,使得高速缓存延迟对浮点运算性能影响不大。 在个浮点运算指令等待数据时,其他的浮点运算指令可以从缓冲区获得数据, 而不需要等待那些花费时间较长的指令结束运算。p e n t i u m 4 和i t a n i u m 均通过 l 2 级高速缓存( 延迟为6 个周期) 加载浮点运算指令。只要有数据,f p u ( 浮点运 算单元) 便可以很快地进行运算。因此,浮点指令优化编码较之整型指令编码更 加依赖于内存带宽。 国内在集成电路的研究方面大多处于追赶者的角色,在f p u 的研究方面也 不例外,目前进行过这方面研究的单位主要有西北工业大学、西安电子科技大 学,合肥工业大学以及华晶公司。完成的浮点处理器的处理能力相当于8 0 8 7 、 8 0 2 8 7 和8 0 3 8 7 的水平。 总之,c p u 的发展尽管经历了九代,但是完成浮点处理的f p u 实际上只经 过两代的发展,从第一代的串行执行结构到p e n t i u m 并发执行结构。在功能上 变化不大。 1 4 主要进行的工作 在f p u 设计的整个过程中,作者着重数据路径的设计。数据路径设计的重 点放在对浮点加法器的设计上,通过快速的浮点加法运算和移位来替代完成诸 如乘除等高级运算。对各种运算的算法进行了深刻的研究并且对算法实现进行 优化。对每一个运算实现电路进行系统级设计、编写代码和前仿真以及应用 f p g a 进行后仿真。同时对控制逻辑也进行了深入的研究,提出了可行的设计 方法。主要工作如下: 1 ) 根据浮点运算的特点设计了处理器体系结构,采用双数据路径。数据 路径微程序控制系统,为并行处理提供了基础。 2 1 重点对浮点运算的各种运算算法进行了研究,分析对照各种算法。在 算法的具体实现中,通过逻辑优化和电路优化,系统的速度和功耗都 达到了理想水平。 3 ) 对浮点控制系统进行设计,充分优化了微程序控制系统的r o m 空间提 高了微指令的下一地址( 简称下址) 产生速度。 繁9 页共7 2 页 上海太学硕士学位论文 4 ) 对数据通道进行了仿真、验证以及应用f p g a 实现。 1 5 本文的主要成果与特色 本文阐述了一个f p u 的设计的方法与过程,并且为其设计了具体的指令 系统。主要的成果如下: 1 ) 利用双数据路径来实现数据通道,对总的系统分指数与尾数路径分开处理, 特别是在尾数加法器的设计中也体现了这种思想,按照指数差的不同来选 择尾数处理路径。每条路径只有一个全长的桶形移位器,这样比原来的单 路径节省了一个全长移位的延时。 2 ) 乘运算实现中,对b o o t h 编码和译码电路进行优化,消除了由毛刺产生的 功耗。 3 1 在除法实现中引入了设置了q 和q 1 寄存器,通过算法解决了飞速商转换 的问题,消除了转换延时。 1 6 论文的安排 第一章绪论主要介绍国内外浮点处理器设计技术的发展和对各种代表性浮 点处理单元的性能进行比较。阐述课题研究的目的、意义、来源,系统功能。 第二章体系结构和指令系统主要对浮点处理器的体系结构进行研究,提出 双数据路径体系结构。同时对指令系统进行设置。 第三章算法研究及其电路实现主要对数据路径进行了研究设计,对各种算 法进行对照优化,提出了合理的实现方法,增添了旁路逻辑和采用了流水线技 术等,使设计得到优化。 第四章控制逻辑设计主要比较了硬布线和微程序控制,采用微程序设计思 想,但是结合了硬布线的一些特点,使设计真正做到节省r o m 空间和快速产 生下址。 第五章系统仿真、验证主要完成系统功能仿真和f p g a 实现。 第六章总结与展望主要回顾了整个工作的过程,指出了设计的重点和改进 点以及提出下一步要进行的工作。 蕉l o 页热7 2 页 上海大学硕士学位论文 第二章体系结构和指令系统 处理器的体系结构先后出现“冯诺曼结构”和“哈佛结构”,冯诺曼结构提 出了“存储程序”的概念和二进制原理。后来,人们把利用这种概念和原理设计 的电子计算机系统统称为“冯- 诺曼型结构”计算机。冯诺曼结构的处理器使用同 一个存储器,经由同一个总线传输。冯诺曼的主要贡献就是提出并实现了“存 储程序”的概念。由于指令和数据都楚二进制码,指令和操作数的地址又密切相 关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线 的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度 的提高。冯诺曼结构处理器比较,哈佛结构处理器使用两个独立的存储器模块, 分别存储指令和数据,每个存储模块都不允许指令和数据并存;用独立的两条 总线,分别作为c p u 与每个存储器之间的专用通信路径,而这两条总线之间毫 无关联。本处理器采用哈佛结构。对于指令系统,经过对目前使用的浮点数值 处协器和有浮点处理部件的处理器的比较,决定借鉴8 0 2 8 7 的指令系统阉【7 】嗍。 2 1 系统与外部接口 f p u 实际上是c p u 外部用来进行浮点处理的单元,需要与c p u 进行通信, f p u 与c p u 的关系如图2 1 。 图2 1f p u 与c p u 通信 从上图可以看出,f p u 在系统属于一个从属的地位,协助c p u 完成浮点运 算功能,协处理器的名称也因此而来。f p u 与c p u 需要专门的通信接口来完成 数据转送和控制协调。c p u 在数据处理的过程中,当发现指令译码器送来的指 第n 页共7 2 页 上海大学硕士学位论文 令需要浮点执行部件执行时,就将此指令发送给f p u 。协处理器指令译码器根 据指令译出相应的微指令序列,发出控制信号,控制数据在数据通道中正常流 动,得到正确的结果。在上述过程中,f p u 需要与外部进行通信,完成数据传 递。并且通过这些通信接口,f p u 与外部逻辑一起完成他的指令集。因此外部 接口的定义也很重要,设计中根据f p u 需要完成的功能,对f p u 的外部测试 接口定义如图2 2 。 d a t a b u s r c l k c u ( 1 1 c l k 2 r e s e t o v e r f l a g i s t r c n u m 外部逻辑 f p u f i n i s h 。 s t a r t i s t r c w r o i s t r c o d e m o d e f l a 一 s t a r i s i r 图2 2f p u 外部测试接口 c l k系统时钟,c l k i 和c l k 2 分别是系统时钟的二分频,用 来区分操作周期的后半段和状态转移的使能信号 r e s e t系统复位信号; o v e r f l a g 异常标志,表示是否有溢出发生; i s t r c n u m 单双操作数区分,0 表是单操作数,1 表示双操作数; d a t a b u s处理器与外部进行数据交换的数据总线; f i n i s h指令执行结束标志信号; s t a r t和f i n i s h 配合启动外部逻辑接受数据; i s t r c o d e 指令码; i s t r c w r o操作数异常标志; m o d ef l a g 表示数据类型:单精度、双精度、扩充精度; s t a r i s t r启动f p u 接收新的指令; f p u 利用接口信号与外部逻辑一起完成指令集的执行,异常的处理也离不 开外部逻辑的作用。实际上,任何一条指令的完整执行都离不开外部逻辑的参 第1 2 页共7 2 页 上海大学硕士学位论文 与。这是在实际设计中是不可以忽视的,同时接口的时序问题也根重要,接口 时序和处理器的测试有很大的关联。 2 2 处理器体系结构 f p u 主要由数据通路( d a t a p a t h ) 和控制单元( c o n t r o lu n i t ,c u ) 组成。通 过外部接口单元( b i u ) 与外部进行通信 9 1 。内部结构由系统所具有的功能,以 及需要达到的性能决定,并且受系统选择的算法选择的约束。通过对浮点算法 的研究与实现,本协处理器结构如图2 3 。 图2 3f p u 整体结构 体系结构具有如下特点:指数和尾数分离,实行双数据路径,浮点数最基 本的特点就是利用了科学记数法的特点,将收缩因子引入到数的表示中来,所 以指数和尾数可以完全并行处理。通过并行处理,执行加、减两个最频繁的运 算速度提高了5 0 e 1 0 1 。同时双数据路径的特点也应用到尾数加法器中,根据指 数差划分操作数的处理路径,可以减少移位操作,提高系统速度。所以说,双 数据路径的思想贯彻到了整个系统的设计中;乘法、除法和超越函数的c o r d i c 实现,都通过移位加来完成,在尾数加法器输出设置累加器就是用来方便实现 这种内型的线性替代;因此,加法器是实现所以运算的关键路径,必须进行重 点考虑:设置混合加法器来完成尾数加法和指数加法:指数路径在进行平方根 第1 3 页共7 2 页 上海大学硕士学位论文 运算时需要右移1 位的操作,因此设置具有移位功能的数据暂存器;在乘法等 运算时候采用前跳逻辑,对操作数进行预判断;设置8 0 位数值寄存器组,1 个 状态寄存器,1 个反映堆栈信息的标志字,保存指令和地址的地址指针和保存 数据及地址的数据指针:设计了产生士1 0 ,4 - 0 0 等常用数值的立即数逻辑,避 免了取操作数的时间; 蹩个系统中尾数路径6 8 位数据线,尾数占用0 - - 6 3 位,第6 4 - 6 5 位为整数 位,6 6 - , 6 7 位为用来进行精度保持的粘贴位,警戒位和舍入位。指数路径为1 6 位,最高位为产生的符号位,其余为对应的指数位。所有输入的源操作数都转 换成这种格式进行运算。无论指数还是尾数数据表示都采用原码形式。 2 2 1 数据通路 数据通路即数值执行部分,主要在控制部件的协调控制下,完成基本运算 和超越函数运算。数据在控制系统的作用下在数据路径内部流动。在系统内部 数据设置了两条通道:6 8 位的尾数路径和1 6 位的指数路径处理数据。出于执 行浮点运算的需要,引入专用的指数加法器、尾数加法器以及可编程的桶形移 位器。备有寄存器组,包括8 个8 0 位宽的数据寄存器,组成寄存器栈,支持临 时实数的数据类型,分为三个部分:1 位符号位、1 5 位指数位和“位尾数位。 还包括以下一些寄存器: 1 、状态寄存器 状态寄存器用1 6 位来对状态字进行寄存,状态寄存器内容反映了f p u 的状 态( 如图2 4 ) :通过寄存器的低6 位来对状态进行报告,分别表示操作异常, 非规格化操作数,除零异常,上下溢出,精度异常等。 位6 ,栈失效标志,用来标志对堆栈进行的非法操作,如往非空堆栈加载 数据和从空栈弹出数据等。 位7 ,如果一个后者多个异常位被屏蔽并且被置位,则由f p u 置位,否则 被清除。 位8 ,9 ,1 0 ,1 l 位表示数值执行部分算术操作的状态和测试比较指令使用 这些标志来报告操作结果。 位1 2 ,1 3 ,1 4 位表示栈顶寄存器的位置。 位1 5 位表示f p u 的工作状态,为“0 ”表示空闲,为“l ”表示忙。 第1 4 页共 2 页 上海大学硕士学位论文 图2 4f p u 状态字 2 、标志寄存器 标志字寄存器用来监视浮点栈中每一个数据寄存器的状态。每个浮点数据寄 存器状态用2 位来描述,标记含义为:0 0 ,内容为零;0 1 ,内容有效;1 0 ,内 容为特殊( 不是一个数,无穷) ;1 1 ,内容为空。总共1 6 位,用来对8 个寄存 器堆栈进行状态描述。 3 、异常指针寄存器 用来保存指令地址及指令操作码,如果指令编码需要访问存储器的操作数, 操作数的地址也保存数据指针中。否则指针的值无效。 4 、控制寄存器 反映控制字的内容,可以通过编程控制字来选择,不同类型的数值运算需要 不同的控制处理。低6 位用于控制f p u 的异常和错误的屏蔽。低6 位表示六种 由执行部件探测到的数值异常错误,并且位置与状态寄存器相对应。置l 则屏 蔽了对应异常,如果为0 则产生中断请求,调用处理程序。8 9 位用来设置浮 点尾数的内部精度:0 0 :取2 4 位;0 1 保留;1 0 :取5 3 位 1 1 :取6 4 位。一 般计算精度为6 4 位,但是考虑到兼容的问题所以有以上设置。其余位保留。 5 、指令指针寄存器 用来保存指令及其地址。 第1 5 页共7 2 页 上海大学硕士学位论文 2 2 2 控制部件 控制器部件是“指挥”整个处理器各功能部件( 包括控制器部件本身) 协同动 作,自动执行处理器程序的功能部件。它给出控制各功能部件正常运行全部控 制信号。浮点数值执行部件是提供运算单元,在控制部件的控制作用下,对数 据进行处理,得到最终结果的路径。因此控制部件的任务之一是同步f p u 与 c p u 之间的操作。当两个处理器必须交换信息、访问彼此运行的结果时,或者 指令译码时,这种同步是完全必要的;其次是负责译码与指令队列调度。最后, 控制部件负责执行总线操作的细节,使协处理器可以利用c p u 来完成地址计 算。 控制部件要想完成整个系统的控制,就必须设置所需操作的一种“暗示”, 即指令。这就牵涉到指令集设计问题。当前在这一问题的处理上有两种截然不 同的方向。一种是强化指令功能,实现软件功能向硬件功能转移,基于这种指 令集结构而设计实现的计算机系统称为复杂指令集计算机( c i s c ) 。另一种是 八十年代发展起来的精简指令集计算机( i u s c ) ,其目的是尽可能地降低指令 集结构的复杂性,以达到简化实现、提高性能的目的。这也是当今指令集结构 功能设计的一个主要趋势。对于本f p u ,硬件中只设置浮点加法器,通过加法 并且利用一些附加的硬件电路来完成有高级运算。从而节省运算时间,提高运 算速度,因此属于r i s c 的范围。 2 3 指令系统设计 计算机的指令一般由操作码和一个或多个操作数组成。操作码表示指令所 要完成的操作,如加法、减法、数据传送等;操作数指示指令执行过程中所需 要的数据,如加法指令中的加数、被加数等,这些数据可以是操作数本身,也 可以来自某寄存器或存储器单元。指令系统的每一条指令都有一个操作码。操 作码代表所需要进行的操作,不同的指令用操作码字段的不同编码来表示。组 成操作码字段的位数一般取决于计算机指令系统的规模。侧如,一个指令系统 只有8 条指令,则有3 位操作码就够;如果有3 2 条指令,那么就需要5 位操作 码。在指令字中操作码字段和地址码字段长度通常是固定的。考虑到与外部系 统的连接问题,本处理器实际的操作码是1 2 位。总共有4 2 条指令,指令可以 第1 6 页共7 2 页 上海大学硕士学位论文 分为以下几类:算术运算指令( 包括超越函数) ,常量加载指令,比较运算指令, 数据传送指令,指令控制指令。 算术运算指令: 算术运算指令包括基本函数和超越函数指令,具体有加,减,乘,除,平 方根等。 基本运算指令 指令类型说明操作码( 1 6 进制) f a d d 浮点加 7 8 f f s u b 浮点减 7 8 d f m u l浮点乘7 8 c f d i v浮点除 7 8 b f a b s浮点绝对值 7 8 a f s r t浮点平方根 7 8 8 f m o d 取余 7 8 9 超越函数 超越函数没有严格的定义,一般来说将一些比较复杂的函数都看做是 超越函数。一般的处理器的超越函数包括调用函数,交互函数,编译函数 等等,但是对于一个f p u 要实现的超越函数是关于算术运算的函数:三角 函数和反三角函数,对数函数和指数函数等。 指令类型说明 操作码 f s i n正弦 7 6 f f c o s余弦 7 6 7 f t a n 正切 7 6 c f a s i n反正弦 7 6 1 f a c o s反余弦 7 6 3 f a t a n反正切 7 6 d f l o g 对数 7 6 2 f l o n自然对数 7 6 a f e x p指数函数( e 为底数) 7 6 6 羹 页共7 2 页 上海大学硕士学位论文 常数加载指令 加载指令的设置可以产生常用立即数,在f p u 很多高级运算中需要调用常 数,加载指令的设置避免取操作数而造成的的时间消耗。 类型说明 操作码 f r e t z 加载+ 0 0 4 9 0 f r e t z加载+ 1 04 9 1 f r e t p i加载7 4 9 3 f r e t 2 a 加载l 0 9 2 1 0 4 9 a f r e t 2 e 加载l 0 9 2 p 4 9 e f r e t a 2 加载l o g l o2 4 9 2 f r e t e 2 加载l o g 。2 4 9 b 数据传送指令 数据传送类指令用来对数据在寄存器堆栈,存储器之间进行传送以及一些 压栈和弹出活动。 类型说明操作码 浮点数据传送指令f r e t加载浮点实数 6 7 f f s t o r e存储浮点实数 6 7 d f x c h存储器浮点数据交换 6 7 3 f s t p 存储弹出浮点数据 6 7 1 整数传送指令 f l d i 加载整数 6 8 c f s t i 存储整数 6 8 d f s t p i存储弹出整数 6 8 6 比较运算指令 在浮点处理中,有时候要将操作数进行比较,产生比较结果,或者对栈顶 操作数和另外一个相关操作数或者常数进行比较,把比较结果返回状态字 条件码。另外取整、舍入操作等操作也可能涉及到操作数的大小问题,因 此也将这种类型的指令纳入比较运算类型的指令, 浮点实数比较 第1 8 页共7 2 页

温馨提示

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

评论

0/150

提交评论