




已阅读5页,还剩66页未读, 继续免费阅读
(电子科学与技术专业论文)x微处理器fpu的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 a b s t r a c t xm i c r o p r o c e s s o ri sah i g hp e r f o r n l a l l c eo n ei nc i s c ,w h o s ef 1 0 a t i n g p o i mu 血t ( f p u ) h a sv e r yp o w c 血la b i l i t i e so fp m c e s s i n gn u m e r i c a lv a l u e 、t h ef p us u p p o r t si n t e g e r , f l o a t i n g p o i n ta i l dp a c k e db c d d a t af o 加1 a t s 廿l a tm ei e e e 7 5 4 - 8 5s t a n d a r dd i 矗n e s t h i s p a p e ri n v e s t i g a t e s t l l ea r c h i t e c t i l r ec h a r a c t e r i s t i ca n dt h em e t h o dt od e s i g n h i 曲- p e r f b n 姐c ec o p r o c e s s o ra n df p u i tp r e s e n tad e s i g no f t h ea r c m e c t u r ea n d t h ep r i m 盯y d a t a p a t h s ( c o m p r i s eo fe x p o n e m i a ld a t 印舳a i l dm a n t i s s ad a t a p a t h ) a n ds o m en m c t i o n a l 1 i t s o f f p ui nxm i c r o p m c e s s o r t h e nd i s c u s s e ss 伽ea l g o r i t h m so f t h e 劬c t i o n a lu i l i t s ,e s p e c i a l l y n l a k e sd e e pr e s e a r c h e so nd i v i s i o na l g o r i m m sa n ds q u a r er o o ta l g o r i 廿1 m s a ni m p r o v e d1 0 9 i c s t n l c t i l r ea 1 1 dam e t h o df o ri m p l e m c n t i n gt h es 锄et op e r f o r md i v i s i o na i l d s q u a r er o o t o p e r a t i o n sf o rr a d i xf o u rd i v i s i o nh a r d w 盯ei sd i s c l o s e da 1 1 di m p l e m e n t e di nf u l l - c u s t o mo n o 18m i c r o nc m o st e c h n o l o g y ar a d i xf o l l rs r tn o n r e s t o r i n gd i v i s i o nm e t h o di se m p l o y e df o rt h ed i v i d e r ,谢t 1 1f i x e d i t e r a t i o nc y c l e s ,t h ep a n i a lr c m a i n d e ri nar e d u n d 距tf o mc o m p r i s i n ga “s u m ”锄da “c a 褂w ”,c a r r ys a v ea d d e r ( c s a ) i t e r a t i v e l yg e n e r a t i n gan e x ”e d u i l d a n tp a r t i a l r e m a i n d e r , t h eq u 埘e n ti nar e d u n d a n tf 0 肌c o i r l 砸s i n gap o s i t i v eq u o t i e n ta n dan e g a t i v eq u o t i e n t ,t l l e t 、o p r e d i c t i o nq u o t i e n tb i t sb e i n gs e l e c t e d 丘o maq u o t i e n tp r e d i c t i o nt a b l e ,o i h e - f l y c o r r e c t i o na n dp i p e l i n et h ec o m p o n e m so f d i v i s i o ns t e p s as u b 仃a c t i v ea l g o 珊吼f o rr a d i x2s q u a r er o o ti si m p l e m e n t e di nd i v i s i o nh a r d w a r e w i 也o u t 出惦r i o r a t i n gt l ec i r c u “p e r f o n n a n c ef o rd i v i s i o no p e r a t i o n m o d e l ss i m u l a t i o na n ds y s t e mi n s t m c t i o n sv e r i f i c a t i o np m v et h a tt 1 1 ei m p l e m e n t a t i o ni s v a l i da n dc o n f o n nt on l es p e c i f i c a t i o no fx m i c r o p r o c e s s o r ,a n d3 9c y c l e sa n d7 0c y c l c s 眦 n e e d e df o rd i v i s i o ni n s n u c t i o na 1 1 ds q u a r cr o o ti n s t m c t i o ni n d i v i d u a l l y t h ex m i c r o p r o c e s s o r c h i pm n a t3 0 0 m h zw i u ta n yf l o a t i n gd i v i s i o ne r r o r s a tt h ee n do ft h i st l l e s i s ,an e wi m p r o v e dd i v i d e rb a s e do nr a d i xf o u rd i v i s i o nc i r c u i t u s i n go v e r l a p p e dq u o t i e n tb i ts e l e c t i o nh r h i c hc a l lp r o d u c ef o u rb i t so fq u o t i e mp e rd i v i d e r c y c l ei sp r o p o s e df o rn e x tg e 删o no fh i 曲e 卜p e r f o r m a l l c em i c r o p r o c e s s o r t h e o r e t i c a l l y , h a l fo fc y c l e sw i l lb es a v e df o rt h i si m p r o v e ds t m c t u r e k e yw o r d s :f l o a t i n g - p o i n tu n i t 四p u ) , d a t a p a t h , d i v i s i o na l g o r i t h m , s q u a r e r o o ta i g o r i t h m , d i v i d e r ,o v e r l a p p e dq u o t i e n tb i ts e i e c t i o n 第1 i 页 国防科学技术大学研究生院学位论文 图1 1 图2 1 图2 2 图2 3 图2 4 图2 5 图2 6 图2 7 图2 8 图2 9 图2 1 0 图2 1 l 图2 1 2 图3 1 图3 2 图3 3 图3 4 图3 5 图3 6 图3 7 图3 - 8 图3 ,9 图3 1 0 图3 1 1 图3 1 2 图3 1 3 图4 1 图4 2 图4 3 图4 4 图4 5 图5 1 图5 2 图目录 8 0 x 8 7 算术协处理器内部结构 x 微处理器结构框图 x 微处理器流水线结构 x 微处理器f p u 整体结构框图 x 微处理器f p u 数据通路图 f p u 控制寄存器位图 f p u 状态寄存器位图 f p u 特征字寄存器位图 指数部件数据通路 双通路尾数加法器结构原理图 尾数乘法器的基本结构 在不同精度下与舍入有关的位图分布 浮点舍入部件的设计 s r t 除法器的基本结构 两种基于硬件复制的除法器结构【l 典型的r a d i x4 除法算法流程 r a d i x4 尾数除法器结构原理图一 浮点除法器的流水线划分 商选择逻辑 部分余数生成电路 商生成电路 商精度选择 两种简单的3 2 位整数平方根硬件实现 扩展双精度浮点平方根硬件实现 四种可选方案对系统性能的影响比较 共享除法部件的平方根实现 模拟验证结构图 基于参考机器的验证结构 模块级、电路级验证流程 版图验证流程 商预测表全遍历波形 3 7 9 1 1 1 2 一1 4 1 4 一1 5 一1 7 1 8 一2 0 2 1 一2 3 ,2 5 2 7 一2 8 3 0 一3 1 3 2 一3 4 3 5 一3 7 4 0 4 2 4 3 基于r a d i x4 除法原理的采用并行商选择结构的r a d i x1 6 除法器结构 商合成逻辑电路结构 4 4 4 6 4 7 4 8 4 8 4 9 5 5 5 7 第i i i 页 国防科学技术大学研究生院学位论文 第i v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:! 垡丛堡墨! 旦塑遮进皇塞塑 学位论文作者签名 辟! 茸涵 日期:硝年五月彦日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:! 邀矬堡墨婴! 煦遮让复塞理 学位论文作者签名:砬生聋盗 作者指导教师签名 ,觯 日搬:砷譬年f 跫铲日日期:卢嘭年月尹日 日期:形年,扩月妒日 国防科学技术大学研究生院学位论文 第一章绪论 1 1 课题的研究背景 当今世界,研制高性能处理器是各个科技大国在综合科技实力上竞争的一个热点。 “十五”期间我国在通用微处理器的研制方面开始了较大的投入。以科技部“6 4 位通用 高性能微处理器”和“s o c 重大专项”牵引,国内对于通用微处理器嵌入式微处理器d s p 的兴起了研究热潮。中芯微系统公司、中科院计算所、北京大学、北京多思公司、上海 复旦微电子公司、上海交通大学等都先后开发出了具有自主知识产权的高性能c p u 芯片, 结束了我国信息产业无“芯”的历史。但这些c p u 主要应用于嵌入式系统和低端服务器, 还不能用于计算机领域最广泛的桌面型电脑,不能替代目前通用信息处理平台的核心处 理器,因此,仍然难以打破国外对c p u 技术的垄断。 由于微处理器的研制是一个集计算机体系结构、超大规模集成电路设计、半导体工 艺等等都密切相关的综合性技术,虽然目前我国在这几个方面都有长足的发展,与世界 先进水平的差距在不断缩小,但是代表超大规模集成电路综合水平的高性能通用微处理 器的整体水平与国际先进水平仍有很大差距。产量小、产品技术低,设计能力、制造技 术、产品和市场开发都缺乏自主能力。目前我国高性能通用处理器芯片几乎完全依赖进 口,意味着我国信息产业的核心技术仍然受制于人,这不仅影响到我国的经济发展,而 且严重威胁了国家安全。因此,研究和开发具有自主知识产权的高性能通用微处理器已 经刻不容缓。在这样的大背景下,我们开始了一款通用高性能微处理器一x 微处理器的 研发。 随着工艺技术的进步和人们对高性能孜孜不倦的追求。新的微体系结构、基于新算 法和新工艺下的逻辑和电路结构层出不穷,使微处理器的整体性能不断提高。因此在x 微处理器研制中集成了许多高性能通用微处理器的技术特征,并且采用了许多性能提升 措施。 x 通用微处理器是一款高性能的超标量c i s c 微处理器。这款芯片的研究开发,无论 在高性能微处理器的体系结构,还是深亚微米设计方法学等相关领域,都是一次非常有 意义的探索。并为今后自主研究更高性能的微处理器提供技术储备。本论文课题是该项 目下的一个子项目浮点部件的研究与设计,重点完成了浮点除法部件的设计与实现。 1 2f p u 的研究与发展 1 2 1 f p u 的背景与研究现状 f p u 的前身是数学协处理器,1 9 7 8 年英特尔公司生产的第一个1 6 位的微处理器 8 0 8 6 ,并于1 9 8 0 年同时生产出与之相配合的数学协处理器i 8 0 8 7 ,这两种芯片使用相互 兼容的指令集,但i 8 0 8 7 指令集中增加了一些专门用于对数、指数和三角函数等数学计 第l 页 国防科学技术大学研究生院学位论文 算的指令。人们将这些指令集统一称之为x 8 6 指令集。8 0 8 7 是一款数字协处理器,应用 于i n t e l 的8 0 8 6 、8 0 8 8 、8 0 1 8 6 和8 0 1 8 8 处理器中。8 0 8 7 有8 个8 0 位的通用寄存器构 成的堆栈。所有的浮点操作都是针对堆栈( 栈顶) 中和外部存储器中的数据进行操作的, 外部存储器访问的有效地址计算是由中央处理器完成的。中央处理器和8 0 8 7 都可以译码 浮点指令,它们都是从e s c a p e 位模式开始的。如果译码指令发现有存储器操作数,那么 中央处理器计算有效地址并且对存储单元执行“d u 珊yr e a d ”。8 0 8 7 接受存储器地址或 数据,利用获取的地址向存储器读更多的数据或向存储器写入数据。之后,中央处理器 继续执行整数指令而不必等到8 0 8 7 执行完浮点指令。为了同步多浮点指令的执行,中央 处理器采用w a i t ( f w a i t ) 策略直到协处理器可用。因为整数指令和浮点指令可并行执 行,所以在当时的x 8 6 程序中见到整数指令和浮点指令的混合是很平常的事。 1 9 8 2 年,i n t e l8 0 2 8 6 处理器家族中又添协处理器成员8 0 2 8 7 。8 0 2 8 7 在结构上与 8 0 8 7 相似,完全兼容8 0 8 7 的目标代码( 管脚不兼容) ,而且在指令条数及执行时间上也 差不多,它们之间的差别主要体现在以下两方面: 1 、8 0 2 8 7 可与中央处理器异步执行。8 0 2 8 6 处理器外部时钟采用二分频技术,而协 处理器采用三分频技术。如果8 0 2 8 6 和8 0 2 8 7 采用同样的外部时钟频率将导致协处理器 以中央处理机2 3 的速度运行程序; 2 、中央处理机执行浮点指令之前检查协处理器是否空闲,如果不空,将等待协处理 器程序执行完毕。这种设计的一个好处是在大部分的8 0 2 8 7 指令之前不必加入等待w a i t ( f w a i t ) 指令。 1 9 8 7 年,i n t e l 8 0 3 8 7 协处理器以增强8 0 2 8 6 和8 0 3 8 6 的数值处理器能力。该协处理 器与8 0 3 8 6 同样的速度运行,并且支持中央处理机的所有执行模式实模式、保护模 式和虚拟模式。因为保持与8 0 2 8 7 和8 0 8 7 的目标代码的兼容,同时采用其他的性能提升 措施使8 0 3 8 7 具有更高性能: l 、更高的协处理器频率( 1 6 m h z 一3 3 删z ) ; 2 、以更快的速度、更少的周期执行优化的浮点指令; 3 、3 2 位的数据总线。 i n t e l 系列的算术协处理器从8 0 8 7 、8 0 2 8 7 、8 0 3 8 7 s x 、8 0 3 8 7 d x 发展到与8 0 4 8 6 s x 微处理器共同使用的8 0 4 8 7 s x 。这些标识为8 0 x 8 7 的协处理器系列在结构上基本上没有 什么变化,图卜l 中给出了协处理器的内部结构【1 ,可分为两个主要部分:控制单元和 数字执行单元。 控制单元( c o n t r 0 1u n i t ,c u ) 将协处理器连接到微处理器系统数据总线上。微处 理器和协处理器均监视指令流,如果是e s c 指令,则由协处理器执行,否则由微处理器 执行。 数字执行单元( n u m e r i ce x e c u t i o nu n i t ,n e u ) 负责执行所有协处理器指令。n e u 有一个8 寄存器的堆栈,用于存储算术指令的操作数和结果。指令或者寻址在指定堆栈 数据寄存器中的数据,或者是用一种弹出和压入机制在栈顶存储和取回数据。n e u 中的 其他寄存器分别为状态、控制、标记和异常指针寄存器。很少有指令在协处理器和微处 理器的a x 寄存器之间传输数据,f s t s wa x 指令是协处理器允许通过a x 寄存器和微处理 器直接通信的唯一指令。( 8 0 8 7 中不包含该指令) 协处理器中的堆栈包含8 个8 0 位的寄 存器。数据只有驻留在内存中是才可能是其他格式的,当数据从内存转移到协处理器的 寄存器堆栈时,协处理器将这些带符号的整数、b c d 数、单精度、双精度数转化为扩展 第2 页 国防科学技术大学研究生院学位论文 双精度浮点数存储。 一一一一一一一一一一一一一一一一一一一一一一一一一一一一 一一一一一一 j 一一一一一一一一,一一一一一一 控制单元( c u )数字执行单元( n e u ) 图卜18 0 x 8 7 算术协处理器内部结构 协处理器都是并联在微处理器上的外部集成电路。微处理器执行所有常规指令,而 8 0 x 8 7 只执行算术协处理器指令。微处理器和协处理器可以同时或并行执行自己的指令。 算术协处理器是一个特殊的微处理器,专门为有效的执行算术或超越函数的运算而设计 的。微处理器截取和执行常规指令系统中的指令,而协处理器只截取和执行协处理器指 令。协处理器指令实际上是换码( e s c ) 指令,微处理器使用这些指令为协处理器产生一 个内存地址,使得协处理器可以执行协处理器指令。在功能上可以实现乘法、除法、加 法、减法、求平方根、部分正切、部分反正切和对数运算。数据类型包括1 6 位、3 2 位 和6 4 位带符号数,1 8 位b c d 数据以及3 2 位、6 4 位和8 0 位的浮点数。每种数据在系统 中都有特殊的用途,而许多系统需要所有这三种数据类型。应用8 0 x 8 7 执行的操作通常 比使用微处理器常用指令系统写出的最有效程序来执行同等的操作块许多倍。 对于各种协处理器,指令系统和编程几乎完全一样,主要的区别是每种协处理器被 设计成与i n t e l 的不同型号微处理器共同工作。 直到8 0 4 8 6 d x 开始有自己内置的算术协处理器也就是现在所说的f p u 。后来的 p e n t i u 【一直到p e n t i u m 4 微处理器都在片内集成专门的处理数值运算的浮点部件f p u 。 f p u 集成了所有协处理器的优点,同时不包含协处理器中的指令译码部件和数据 c a c h e ,使f p u 与中央处理器结合更加紧密,甚至可以说f p u 是整数执行部件的延伸,提 供快速高精度的数值运算能力。 集成f p u 的p e n t i u m 微处理,其运算速度比同等时钟下的8 0 4 8 6 微处理器执行速度 快5 倍”。 当今,人们把浮点部件性能看得比以往任何时候都更重要,因为p c 机工作站的应用 不再局限在电子数据表以及商务方面,它涉及领域已经深入到对试验数据的分析、模拟 第3 页 国防科学技术大学研究生院学位论文 处理、过程控制、机器人技术以及三维图形图像处理甚至导航等复杂的算法方面。采用 更高效的算法设计更高性能的f p u 功能部件,如加法器、乘法器、除法器和乘加器等基 本运算部件,甚至可以固化硬件实现超越函数运算;开发浮点指令的并行性,提高指令 吞吐率;提高流水线效率、减少流水停顿;提高运算频率是研究设计更高性能的f p u 的 途径。 1 2 2 除法的背景与研究现状 传统的二进制除法算法基本遵循十进制手工计算除法方式,也就是所谓的比较法或 者试探法。主要算法有恢复余数除法和不恢复余数除法。恢复余数除法不管被除数( 部 分余数) 是否够减都一律做减法,其规则【2 是: 1 、符号位单独处理:c o = a oob o : 2 、数值部分为两正数相除,每次迭代均通过2 r i fb i 实现,其中,i = o ,1 ,n ,r o = | a | ; 若2 r 厂jb | = r 。+ l o ,即新余数为正,该位商l ; 若2 r 一lb = r 。+ 1 f 段:完成从指令预取缓冲取出指令,存入指令f i f o ( f i r s ti nf i r s to u t ) 的功能; d l 段:完成指令译码或生成微操作码; d 2 段:生成操作数地址; e x 段:内存和寄存器读,将浮点数据转换为外存数据格式和存储器写: x 1 浮点执行站1 ;将外部存储器的数据转换成f p u 内部的浮点数据格式;将 第8 页 国防科学技术大学研究生院学位论文 操作数写入寄存器文件; x 2 浮点执行站2 ; w f 进行舍入处理以及写浮点运算结果到寄存器文件 e r 错误报告修改状态寄存器。 图2 2x 微处理器流水线结构 点流水线 多媒体流水线 下面以几条浮点运算指令为例来说明指令部件、整数部件及浮点部件怎样协同流水 实现浮点指令运算。例: f a d ds t ( 1 ) ,s t ( 0 ) f a d da 1 f x c h f s i n 语句、是两条基本的浮点运算指令,表示将两个寄存器数s t ( 1 ) 、s t ( 0 ) 相加结果罴于次栈项s t ( 1 ) ;语句表示将一个3 2 位或6 4 的存储器数a 2 与栈顶相加 结果存在栈顶s t ( o ) ;语句是数据传送类指令,实现s t ( 0 ) 与s t ( 1 ) 内容的交换; 语句是超越函数指令,求s t ( o ) 的正弦函数,结果置于s t ( o ) 。流水执行过程如下: 预取指令部件在p f 段通过1 2 8 位宽的数据总线从i c a c h e 或者存储器依次预取指令 、至4 个1 6 字节的指令预取缓冲区( 此处假定指令预耿缓冲区为空) ,查 看b t b ,预测转移是否发生( 此处无转移类指令) 。 取指令部件在f 段主要用来进行指令长度译码和计算以及对指令前缀进行译码。由于 例中的浮点指令序列都是无指令前缀的指令,则只进行指令长度译码和计算。此段还包含 个指令f i f o 。这个f i f 0 是透明的,可以存放多达4 条指令,当f i f 0 为空时,指令还 可以通过一条b y p a s s 路径直接送到译码部件而不会增加额外的延迟时间。一般情况下, 依赖于能够获得的代码字节数以及其它因素,两条指令能被推进到指令f i f o ,甚至被 同时拉进d l 段,由于指令执行的平均速度少于每个时钟周期2 条,因此f i f o 在通常情况 下是满的。既然f i f 0 是满的,它能缓冲任何在指令取和分析阶段的阻塞。如果发生了这 样的阻塞,f i f o 将会阻止在流水线的执行段产生阻塞。如果f i f o 是空的,那么一次执行 阻塞可能是由于流水线缺少指令来执行所引起的。f i f o 入口处的阻塞可能是由长指令或 者前缀,以及“极端未对准的目标”所引起的( 例如,位于1 6 个对准的字节中最后一个 字节的转移目标) 。 由于指令已经通过b y p a s s 8 】路径送到译码部件进入了流水d 1 段,通过简单译码并 流出。、指令对被从f i f 0 中拉出来进入d 1 段,两个并行的译码器试图对其中的两条 顺序指令进行译码并流出。译码器将根据指令相关性检查情况进行配对并决定是流出一条 国防科学技术大学研究生院学位论文 还是两条指令。由于没有可配对的指令已经单独流出,根据浮点指令配对规则,两 条指令可配对,然后同时向u 、v 流水线的d 2 站发射,指令进入u 流水线d 2 站,指令进 入v 流水线d 2 站。这一对指令也必须同时离开d 2 站进入e x 站。如果一条指令在d 2 站滞留, 另一条指令也必须在d 2 站停顿。一旦成对指令进入e x 站,若能同时执行完最好,否则要使 u 流水线的指令先执行完。在e x 站,若u 流水线指令停顿,则v 流水线指令也停顿;若v 流水 线指令停顿,与之配对的u 流水线指令不能提前进入u 流水线的e x 站。 流水纵深发展进入第二级译码d 2 段和执行站e x 段,这两段主要在整数部件执行,d 2 段 计算并产生存储器操作数的地址,由于指令、没有存储器操作数,不需要计算操作数 地址,但也必须流经这一级;对于指令,则计算操作数a 2 的地址,如果t 1 b 命中的话只 需一个时钟周期,否则需多个时钟周期。在e x 段,指令读两个寄存器操作数并将扩展双 精度的数据转化为外存数据格式。对于指令,如果t l b 命中,则完成数据c a c h e 访问,否 则根据d 2 段计算出的a 2 的内存地址取存储器数据。 此时流水执行进入浮点单元内部,浮点执行第一站x 1 段,将外部存储器数据转化为f p u 内部的浮点数据格式。浮点执行第二站x 2 段,指令、由加法器完成,指令由相应的 交换逻辑和数据装配逻辑完成。流水继续进入舍入逻辑,写回寄存器文件,修改状态寄存 器等。 对于超越函数指令,因为不是简单指令,它将通过复杂指令译码,也就是说必须由 微码r o m 来实现,译码单元首先把指令存储在存储器中,然后通过p l a 译码产生一系列信 号,控制从微码r o m 中发出微指令矢量,这些微指令矢量再控制流水线上的整数部件和浮 点执行部件完成一个或多个微操作,从而实现指令求栈项正弦函数的功能。由于复杂指 令通常都需要执行很多个时钟周期,为了加快运算速度,微码被设计利用u 、v 两条流水线。 纵观以上流水线,无论是哪一条流水线,都需经指令控制模块完成预取段( p f ) 、 取段( f ) 、一级译码( d 1 ) 以及与二级译码( d 2 ) 接口相关的控制操作。因此,在处理 器系统的指令控制部件中,需要完成的功能有: 从i c a c h e 里预取指令,包括分支预测b t b 对分支指令的预测; 指令长度的译码与确定、指令边界的分析; 所有指令的译码; 复杂指令的译码及微码r o m 形成分析;对定点、浮点及m m x 指令流的流出的 控制、指令配对相关性检查; 与指令部件有关的指令的执行;对所属寄存器的操作; 其它相关的控制与操作。 为了提高流水效率,f p u 部件在流水线的x 1 站进行安全指令确认( s i r ) ,s i r 的 具体实现将在后续章节中进行介绍。 同时,采用了旁路技术来减少由于数据相关而带来的流水停顿,所谓旁路就是允许一 个即将被写入寄存器文件的数据作为后续指令所需读取的操作数来使用。可使得还未写入 寄存器文件的数据成为可用的数据。在x 微处理器f p u 中存在两条旁路: 1 、浮点数加载的数据( 在流水线x 1 站写寄存器文件) 在流水线x 1 站写时可以旁路, 使后一指令在流水线的操作数取阶段或e 站来直接获取。 2 、任何浮点部件算术运算的结果在流水线w f 站的结果在写寄存器文件时可被旁路, 该值可作为后续指令所需的操作数被直接送到执行单元。 国防科学技术大学研究生院学位论文 2 2x 微处理器f p u 的结构设计 x 微处理器3 2 位的体系结构以及片内f p u 的体系结构的设计目标是:不仅支持科学技术 应用方面的那些传统的数值处理软件技术,其本身还拥有内在的商用计算机制。它们可以 处理高达1 8 位的十进制数而不会出现舍入错误,可以对大到2 ”( 或者1 0 ”) 的数值进行精 确的算术运算。在浮点部件内部拥有可供高级用户调用的一些任选的数值处理机制,如定 向舍入逻辑、渐渐下溢以及异常事故处理设施这些工具性的软件,在数值处理软件中不仅 拥有高度的灵活性,而且程序编写得比较容易,且计算结果精确,使一般计算机用户享有 高精度数值计算的强大功能。浮点部件所提供的不仅仅是能使计算密集型任务的计算速度 大幅度提高,更重要的是能使广大计算机用户能使用高精度数值计算的强大功能。而且浮 点部件的这些功能还能被大部分程序设计语言使用。 2 2 1 f p u 功能部件组成 从系统设计人员的角度而不是程序员的角度来看f p u 就不是简单的可寻址数据区和 指令集的集合了。x 微处理器f p u 从大致结构上来讲,可分成控制单元( c u ) 和数值执 行单元( n e u ) ,数值执行单元又可分成指数执行部件和尾数执行部件。 其内部整体结构如图2 3 所示,主要由以下功能部件组成:8 个8 6 位的寄存器堆栈, 图2 3x 微处理器f p u 整体结构框图 第1 1 页 国防科学技术大学研究生院学位论文 一个控制寄存器,一个状态寄存器,一个特征字寄存器以及单独的指数运算部件, 双通路的尾数加法器,尾数乘法器,尾数除法器,专门的加法和除法运算结果舍入逻辑, 固化的l o a d 、s t o r e 逻辑( 属于总线接口逻辑,图中未画出) 以及总线接口和数据检测 以及数据装配逻辑,另外,为了支持高效高精度的科学计算专门设计了一块常数r o m , 该r o m 中存储了3 0 4 个8 6 位的常数。 2 2 3 简化的数据通路 图2 4 已经较为详细的画出了f p u 结构图,但是要具体的设计某一功能部件,必 须清楚设计要求:清楚各功能部件从系统中接受什么输入,输出什么,完成什么功能, 保证功能部件的设计满足系统的设计要求。系统整体上分为控制通路和两个并行的数据 通路:指数通路和尾数通路。 图2 4x 微处理器f p u 数据通路图 图2 4 画出了x 微处理器f p u 的简易结构及数据通路。x 微处理器f p u 从功能上可 分为浮点接口、寄存器文件和控制逻辑f i r c ,指数运算部件f e x p ,尾数运算部件主要包 括浮点加法器f a d d ,浮点乘法器f m u l ,浮点除法器f d i v 和单独的舍入逻辑f r n d 。f i r c 主要功能是接受数据c a c h e 中的数据和微指令并指派各功能部件执行相应操作:判断浮 点操作是否产生错误或发生异常;执行简单的传输类指令如从寄存器到寄存器和从存储 器取操作数等:f i r c 通过在x 1 段写寄存器文件完成浮点l o a d 操作执行;同时还执行数 据类型转化、数据的检测和装配;因为外部总线是3 2 位的,内部总线是6 4 位的,所以 f p u 与与外部交换数据时需要执行数据的装配过程。从图中可知,加法器和除法器共享 舍入部件,乘法器有自己单独的舍入部件。舍入后的结果返回给f i r c 同时可以送到各运 算部件或者写寄存器、存储器。指数部件f e x p 完成所有的指数运算。较详细的f p u 数据 通路设计见附录i i i 。 第1 2 页 国防科学技术大学研究生院学位论文 2 3f p u 寄存器堆栈及控制部件的设计 2 3 1f p u 数据寄存器堆栈 f p u 数据寄存器是8 个8 6 位的数据寄存器组成的寄存器堆栈,以扩展形式存储各类 数据。其容量相当于2 0 个3 2 位寄存器的容量。每一个寄存器还可以进一步细分为几个 字段,以便与浮点部件中的扩展精度数据形式相对应。数据读入时f p u 内部自动完成从 各种数据类型到扩展双精度实数的转换,数据写回时自动完成相反转换。寄存器堆栈的 所有寻址都是相对栈顶t o p 的。任何时候堆栈栈顶那个寄存器都是由f p u 的状态寄存器 的t o p 字段指示( 状态字寄存器在下面介绍) 。l o a d 操作时t o p 加1 ( 相当于p u s h 操作) 、 s t o r e 操作时t o p 减1 ( 相当于p o p 操作) ,同时将一个值装到新的栈顶寄存器中。可见, 这个寄存器堆栈与存储器中的堆栈类似,都是朝着地址较低的寄存器向下增长。当出现 反卷时( w r a p a r o u n d ) 产生s t a c k o v e r f l 0 w 异常。许多数值指令都可以使用多种寻址 方式,既可以在堆栈顶上进行隐式操作,也可以在相对于栈顶的某一特定寄存器上进行 显式操作。汇编中用s t ( 0 ) 或s t 表示栈顶,s t ( n ) 表示相对于栈顶的第n 个寄存器。 和整数部件中的通用寄存器一样,f p u 中8 个寄存器的内容不受子程序调用的影响, 所以可用寄存器堆栈在子程序问传递参数。由于堆栈中的结构以及相对于栈顶对数值寄 存器进行寻址的寻址方式,允许程序在寄存器堆栈内传送参数,从而简化了予程序的设 计过程。又由于在调用子程序时是通过寄存器对站传送参数而不是采用专用寄存器传送 参数,所以在调用子程序时表现了很高的灵活性。只要这个堆栈不满,每个程序都可以 在调用一个子程序之前,把参数装到堆栈内。子程序就可以像相对于栈顶一样对参数进 行寻址。即使两次调用子程序时栈顶寄存器发生改变,子程序照样可准确无误地访问所 需要的参数。 程序设计人员可以像使用常规堆栈那样来使用f p u 的数据寄存器,或者在x 微处理 器的流水线操作过程中与寄存器内容交换指令f x c h 指令结合在一起使用,使f p u 的寄存 器使用更灵活,程序设计更简单、方便。 f p u 部件的寄存器文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省事业单位招聘考试综合类专业能力测试试卷(工程类)真题模拟
- 用户行为预测分析-第3篇-洞察与解读
- 烘焙课堂考试题库及答案
- 核磁氢谱考试题及答案
- 2025国考北京证监局行测言语理解与表达高频考点及答案
- 2025国考农业农村部申论题库含答案
- 2025国考承德市刑事技术岗位申论必刷题及答案
- 2025国考宁夏法语专业科目必刷题及答案
- 2025国考本溪市统计调查岗位申论必刷题及答案
- 2025国考北京审特申论公文写作模拟题及答案
- 【MOOC】医学心理学-北京大学 中国大学慕课MOOC答案
- 《3-6岁儿童学习与发展指南》考试复习题库(含答案)
- 政府融资合同范例范例
- 医院培训课件:《产科病历书写规范》
- 2024年国家公务员考试《行测》真题卷(副省级)及答案解析
- 人教版八年级地理上册期中考试卷(及参考答案)
- 2024年新青岛版(六三制)六上科学全册知识点
- GB/T 44281-2024工业互联网平台解决方案分类方法
- 项目验收通知书模板
- 残疾儿童康复救助工作总结
- JT-T 1495-2024 公路水运危险性较大工程专项施工方案编制审查规程
评论
0/150
提交评论