(电子科学与技术专业论文)64位高性能通用微处理器整数部件的设计与实现.pdf_第1页
(电子科学与技术专业论文)64位高性能通用微处理器整数部件的设计与实现.pdf_第2页
(电子科学与技术专业论文)64位高性能通用微处理器整数部件的设计与实现.pdf_第3页
(电子科学与技术专业论文)64位高性能通用微处理器整数部件的设计与实现.pdf_第4页
(电子科学与技术专业论文)64位高性能通用微处理器整数部件的设计与实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(电子科学与技术专业论文)64位高性能通用微处理器整数部件的设计与实现.pdf.pdf 免费下载

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

文档简介

国蒴辩攀技本夫学蓦; 炎生貌学位论文 a b s t r a c t n o w a d a y s ,t h es c i e n t i f i cc o m p u t i n gs c a l eb e c o m e sl a r g e ra n dl a r g e r , m o r ea n dm o r e m u l t i m e d i aa p p l i c a t i o n sa l ei n t r o d u c e d ,a n dt h ed o m a i no ft r a n s a c t i o np r o c e s s i n ga n ds c i e n t i f i c r e s e a r c hg o e sd e e p e ra n dd e e p e r a l lt h e s el e a dt ot h eu r g e n td e m a n df o rh i g h e rp e r f o r m a n c e m i c r o p r o c e s s o r 鼹en a t i o na t t a c h e sm o r ea n dm o r ei m p o r t a n c et ot h ed e v e l o p i n go f t h eh i 馥 p e r f o r m a n c em i c r o p r o c e s s o r t h i sp r o j e c td e r i v e sf r o mt h eh i g h - p e r f o r m a n c ec p uc h i pd e s i g n o ft h en a t i o n a ls i g n i f i c a n t ”8 6 3 ”p r o j e c t sa n di t so b j e c ti sd e s i g na6 4 - b i th i g hp e r f o r m a n c e g e n e r a lp u r p o s em i c r o p r o c e s s o r w ea n a l y z e dt h ea r c h i t e c t u r eo fi t a n i u mp r o c e s s o rf a m i l y w h i e hb a s e do ni a 一6 4a r c h i t e c t u r e ,s t u d i e dt h em i c r o - a r c h i t e c t u r eo f t h exp r o c e s s o rw h i c hw a s d e s i g n e db yo u r s e l v e s f u r t h e r m o r ew es t u d i e dt h ei n t e g e ri n s t r u c t i o ns e to fl a * 6 4i nd e t a i la n d c o m p l e t e dt h ed e s i g no f t h ei n t e g e ru n i to ft h ex p r o c e s s o r f i n a l l y , w eo p t i m i z e da n dv e r i f i e d t h ed e s i g n e di n t e g e ru n i t 弧em a i nc o n t r i b u t i o n sa r e8 sf o l l o w s : 1 t h ea r c h i t e c t t t c eo fi a - 6 4b a s e di t a n i u mp r o c e s s o rf a m i l yi sa n a l y z e da n dt h ee p i c d e s i g ns t y l ei ss t u d i e d 2 。豉l om i c r o - a r c h i t e c t u r eo ft h exp r o c e s s o rw h i c hw a sd e s i g n e db yu sa n dt h ei n t e g e r i n s t r u c t i o ns 嫩o f i a - 6 4a r ea n a l y z e d 3 w ed e s i g n e dt h ei n t e g e ru n i to fx p r o c e s s o r , w h i c hi n c l u d i n gm u l t i m e d i au n i t t h e 融_ b i t sd y n a m i cp a r a l l e la d d e r , 6 4 b i 抟c a r r yl o o k a h e a da d d e r , t h ep a r a l l e lm u l t i p l i e r , t h es h i r e re t c 4 w eo p t i m i z e da n dv e r i f i e dt h ed e s i g n e d i n t e g e ru n i t w ep u tf o r w a r dt h r e e o p t i m i z a t i o nm e t h o d s ,w h i c hi n c l u d i n gs p l i tt h ep i p e l i n es t a g e ,r e s o u r c ed u p l i c a t eo n m i c r o o p e r a t i o nl e v e l ,p r o d u c et h ec r i t i c a ls i g n a li na d v a n c e 。w ea l s os e tu pa na p p l i e d s i m u l a t i o nv e r i f i c a t i o nf l o w t h er e s u l t sp r o v e dt h a to u ro p t i m i z a t i o na n dv e r i f i c a t i o n a r ee f f e c t i v e x p r o c e s s o rh a sb e e ne m u l a t e do n t h ep a l l a d i u mh a r d w a r ep l a t f o r ma n db e e ns y n t h e s i z e d b ya r t i s a n so 1 3u mp r o c e s sl i b r a r y t t l ei n t e g e ru n i t sc r i t i c a lp a t hd e l a yi s1 9 6 n s w h i c hc a n m e e tt h ew h o l es y s t e m sn e e d s k e ”v o r d s :e p i c ,m i c r o p r o c e s s o r , p i p e l i n e ,i n t e g e ru n i t ,d e s i g n ,o p t i m i z e ,v e r i f y l l 国防科学技术大学研究生院学位论文 凰目录 图1 章节基本关系示意图4 图2 传统结构并行示意图5 嚣3 显式势嚣嚣意黧6 图4 判定执行技术生成的机器代码8 翻5 数据前瓣结构示意囤1 l 图6a l a t 缎织结构图。1 2 图7 控镱前藤结构示意图1 3 麴8x 处理爨指令魏疆式,1 3 圈9x 处理器指令格式1 4 黧1 0x 处理器总俸框图o t 4 图l tx 处理器流水线1 5 阌1 2 憝数流水线示意图:2 2 溺1 3p a l u 模块孛三个子模块豹位置及耀互关系国2 4 图1 4p a l u 模块的逻辑图二2 6 隧1 5m m a l u 穰狭接瓣示意鬻;28a e x e 阉1 6i a l u 模块的逻辑握图2 9 图1 7i a l u 模块的接口示意图:2 9 强1 8i c m p 模块垂皇接口承意强3 0 图1 9 进行分站处瑷后的e x e 和d e t 站3 2 嚣2 0 箨令缀资源笺秘3 3 图2 l 微操作级资源复制3 4 图2 2 关键信号示意图3 5 强2 3 关键壤号提藏生残暴意嚣3 5 图2 4 错误发现时间与改派错误所耗资源关系图3 6 霭2 s 模掇系统豹缝成3 7 图2 6 第三阶段模拟验证的过程4 0 图2 7 第一、第二阶段模拟验证的过程4 l n l 国防载喾接本大学磅究生院学蹙论文 表目录 表l 措令类型与撬行单元貔关系1 7 表2 并行加、减操作的饱和限幅4 5 表3 算术逻辑指令和比较指令5 4 表4 并行算术逻辫撵令,5 4 表5 所有的i 类指令5 5 独创性声明 本人声明所曼交的学位论文是我本人在导婶指导下遵循匏磺究王佧及取褥 鲍磺究残皋。尽我所知,除了文中特别如以标注褰致谢的地方外,论文枣不毽合 其他人已经发表和撰写避的磺楚成暴,也不包含共获褥匡防转学技末大学或其它 教鸾概搀的学位线证书褥使用适骢_ 材料。与我一同工作的黧志对本研究驻敛的任 瞧贡献均已在论文中作了躜确的说碳若表示谢意。 学位论文题强: 垡囊些韭遂趱缝缝堡墨鳌塑趣篷煎遮盐妻塞鍪 学位论文作者签名:缝兰圭馨糍:如川年,月结嚣 学位论文版权使用授权书 本人突全了姆国防科学技术大学有关保謦、使用学位论文鲍规定。本人授权 国防科学技术大学可以保馨并向圜家稳关部门或机构送交论文妁复印传和电子 文档,允许论文搜查阑和借阗;可以将学位论文鲍金部或部分内容编入有关数据 库逃行检索,可以采用影印、缩印或扫描等复劁手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目: ! 焦渔蝗毙迢题缴艟墼墨整数墼焦媳遮进圭塞魏 学位论文作者签名:傣。a 名 作者指导教蝇签名:乒耳 疆期:扣q 年,f 月寸强 日期:2 。,沁每 l 愚一基 国防科学技术大学研究生院学位论文 第一耄绪论 l 。l 课蘧研究鬻景 1 1 ,i6 4 挝蹇往戴皴处理嚣缝发曩 6 4 位高性能微处理器是现代商端计算机系统的横心和引擎,它不仪提供计算机系统 所需蕊簸理靛力,箍盈髓够管理缓稃、肉存j 羹互联予系统、支持整个系统实襞多处理器并 行计算。虽然目前6 4 位微处理器的产量比以x 8 6 系列为代表的3 2 位芯片少2 个数量级、 爨撂迄缓磊奏令芯冀瓣徐貉往撩裙当予一令褰挡戆p c 飙) ,瞧是簿宅来装餐靛毫搂谤 算机系统的市场离达几百亿美元,樽加上相关联的外设、存储系统、应用软件和服务市场, 规模就慧大了。8 4 位苍片豹枣场懿争涉及到整令蹇端谤算枫枣场、大嫂摸信惑技拳瘦弱 领域的竞争。再加上企业级系统的外围服务器、客户机的选烈也往往受到数据中心大型服 务器的影晌,可以说6 4 能芯片是憋个信息技术和计算机应用市场竞争的重要焦点,是备 大计算机厂商必争的兵家要鲍【1 l 。 l 。1 2 我诗妻圭酝识产蔽徽处理器豹凝遇 6 4 位高性能微处理器的设计是信息产业的核心技术之一,技术难度很大。国外大公 司稻楼笑研究辘构在产菇研发、技术探索方嚣都畜敌羯酶积繁,形菇了数酸万计静专程, 及一大批高水平的专业人才,投搬壁垒和披术壁垒很高。如何提高性能、降低成本、降低 功耗、开发痤弱,罄不楚容易徽弱熬。 但是,任何种技术、任何一种产品,都不是一成不变的。信息技术所面向的应用模 式熬交纯,绘硬终技术戈英是芯片技术,豢来了薮的投逐。疲羯酶变化繁绘我们豹规会主 要体现在两个方面: 进入后p c 时代,接息电器迅猛发展,远远超过了p c 的产量。神信息电器( i a ) 只适予固定或单一的应用模式,不像p c 可用来做所有的事情,在很大程度上会改变游戏 规则。x 8 6 的蘩断造成的壁垒不褥是不可打破的,火家都在探索新的体系结构。 中嚣国民缀济信息纯的进程,对信怠安全提崮了摄高的器求。菔务器端的安全尤箕耋 要。豳产c p u 可为服务器安全提供基础保障。服务器用c p u 虽然也一直被国外企业占 据,键笄没寿秘显弱擎一“霰煮”。瑟蔽鏊产c p u 杏鋈占据一纛之逮。 另外,从窳现c p u 芯片的技术手段上看,集成电路设计方法的变化、半导体行、业产 盐链豹调整,瞧绘我缎磐寒了錾戆辍逯。 c p u 芯片的发展燕与集成电路技术同步的。从集成电路设计方法上来看,经历了全 定刳、a s i c 、s o c 等三个重要的除段。 第l 页 国防秘学技术大学骈究生院学位论文 全定制设诗中,整个蕊片豹设计蹩扶单个鼹体管开始豹,掰以设计工 乍量大,髑期长, 饭可能获得较高的性能。随潜芯片规模的增长和应用的拓广,全定制设计很难满熙上市时 1 4 ( t i m et om a r k e t ) 的要求,所以只有追求授麓性能的燕性能c p u 才继续采用垒定制设 计方法( 即使如此,在一些# 关键路径上的鄂件也经常采用基于综合的设计方法) 。 a s i c ( 专用集成电路) 是针对快速设计的要求,程上世纪8 0 年代产生的,黢在把原 来骰在一块板上静电路,实现在一块舔冀土,满足应丽瓣高集成度、低藏本、离w 靠萑的 臻求。a s i c 设计的基本模块是门电路或功能随强的宏单元,一般都采用逻辑综的设计 方法。 s o c ( 片上系统) 是随着集成殿的进一步提高,从上世纪9 0 年代威期开始出现的方 法,基在恕整令攘爨处理系统或其分系统集戏在一个慧冀上,以提毫镶缝馀揍魄。s 0 e 设计的基本模块集成度较巅,有时称为i p 模块,即其有知识产权的、功能明确熙体、接 鞠规范明确、可在多个设计串重复馒瘸的功都 孛。s o c 一般都以c p u 为核心,集成 外围控制电路和存储器,究成系统中信息处理的主要功能。 设计方法的上述变迁,很大程度上也依赖于集成电路设计软件( e d a 软件) 自动化 程度和毪能的不断提高。霹髓e d a 软件豹发藤趋势怒越来越蕊囱系统缀设计,谴不太了 解微电子工艺的系统设计人员,能储助e d a 工具,实现满足臌用性能的芯片。 麸整个半导舔产整链采善,藩蔫豹芯簧获浚诗弱黛产静竞熬遘程,帮是由两一令厂家 完成的,称为l d m ( i n t e g r a t e dd e v i c em a n u f a c t u r e r ) ,i n t e l 和i b m 是典型的例子。而现 在,牙敦熬痰乎划分彝专毁纯棼攀瀵瘊,缀设诗载公霹不营童产 b ) 处的分支可通遭转亿为攉涌执行的代礤而被消除。转纯的代码如下: p t , p f = c o m p a r e ( a b ) ( p t ) c = c + i ( p f ) d = d e + f 当条件为冀时谓词p - r 被嚣1 ,条件为穰辩一置o ,p f 憨是p t 的 。分支中静指 令c = c + l 与d = d e + f 的控靠l 相关蕊在被转佬成了数据檑美,遴遘c o m p a r e a b ) 甏位酊 与p f ,分支被消除了。 有了辩定执行技术看,胃黻分祈一下e p i c 体系缭构对于分支代码是翔诲运俸懿。考 虑下谣的一段代礴: 第7 燹 国防科学技术大学研究生院学位论文 踅钱璐是f 述嚣谬镯嚣译静枫嚣代码 i f a 【i 1 p t r ! = ot h e nb 【1 1 2 a 卧i e l s e b 【f 】= 鞫【i 1 r ; i = i + l 它由四个基本块缎成,包含两个分支,其中至少有个分支是难予员测的。而且并行执 霉豹胃藐缝不大,最多跫每令蓥本块肉豹搬令哥馘并行执行。鸯了判逡执嚣接零磊,e p i c 体系结构是怎样处理的呢? 圈4 给出了使用判定执行技术生成的代码。 毽4 叛定执行技本生残豹规器饯码 从代码中可以分析出,由c m p 指令产生所需要的谓词值,并且用产生的值设置分配 绘指令3 ,4 ,5 ,6 的谓词寄存器。在本饲中,翔采条件为囊,那么谓谲p 将被藿药1 , p 2 被曼为0 。指令3 ,4 积指令5 ,6 的控制相关性现在变成了数搬楣关饯。通过这神披 沭,完全消除了分支,代码的大小也变小了,而且避免了分嶷预测失败的可能性。 筵羚,攒令接测技术搜并行掇褥戆辍会攒多,嚣必理在豹 弋码爨一个綦本块,编译器 可以在疆大的范围内寻求并行性。很明照,指令5 ,6 和指令3 ,4 不再存在相关,可以 并行藏行,稳逶这并没有带来多大好处,谶为爱常请说下,必需撬行指令5 ,6 袋指令3 , 第8 受 国防科学技术大学研究生院学位论文 4 ,也就是处理器做了无用功。然而,通过把代码合并成一个基本块,指令1 ,2 有可能 和指令3 6 并行执行,只要指令1 2 的执行不影响比较的结果;同时指令7 也可以和 它前面的指令并行执行。 判定执行技术消除了分支以及分支预测失效带来的开销,增大了程序的基本块,使编 译器能够在更大的范围内开发出指令的并行性。研究表明,使用判定执行和下面将要介绍 的控制前瞻和数据前瞻技术的微处理器性能比不使用这些技术的微处理器性能会有很大 的提高。 2 1 3 前瞻执行技术 前瞻执行( s p e c u l a t e de x e c u t i o n ) 是一种将指令调度到与之可能有相关的指令之前 去执行的一种技术【2 9 】。 从1 9 8 7 年开始,c p u 的性能是每年提高5 5 ,主存性能虽然也在提高,可是速度 却慢的多。c p u 和主存之间在速度上的差异越来越大,存储延迟已经成为影响微处理器 性能提高的严重瓶颈。虽然处理器可以通过缓冲机制避免等待存储器写操作完成,但必须 等数据载入结束后才可以利用其结果。而且l o a d 操作往往是一个计算序列中的第一步, 数据载入的延迟会极大地降低系统性能。可见解决存储延迟的关键在于鳃决l o a d 操作问 题。 克服载入延迟的关键思想是通过预取数据来隐藏延迟。在硬件上可以增加数据预取部 件,把处理器将来可能需要的数据提前读取到c a c h e 中。既便如此,运算前还得先将数 据从c a c h e 载入到寄存器中。软件的方法可以通过编译器调度l o a d 指令提前执行,这样 当需要l o a d 指令的操作数时,它已经在寄存器中准备好了。 1 前瞻数据载入的两个关键问题 实现前瞻数据载入必须解决两个关键问题:第一,如何进行前瞻性指令调度:第二, 如何执行前瞻性的数据载入指令。第一个问题的主要限制不在于把l o a d 指令从原始基本 块移动到前面的基本块,而是提前载入的数据不能被前面基本块里的指令使用或覆盖,因 为这个数据是留给它原始基本块中的计算指令所使用的。通过使用编译时的重命名转换技 术可以解决这个问题。对于第二个问题,如果前瞻性l o a d 指令在执行的时候非常顺利, 未发生异常,而且确认机制确认这个数据载入操作应该执行,那么前瞻的目的就达到了, 在后续计算需要数据时,它已经准备好了。但如果前瞻性l o a d 发生了异常,注意,这个 异常可能仅仅是由于把l o a d 操作提前才引起的,如按照原来的执行顺序可能不会发生异 常。在这种情况下,如果处理器不能正确地处理前瞻的异常,将会降低系统的性能。 针对前瞻数据载入的这两个关键问蹶,e p i c 体系结构采用了编译器和体系结构相结 合的前瞻技术。这种技术将通过编译器进行数据载入的前瞻性调度,并利用体系结构的异 常检测机制来保证前瞻指令执行的正确性。 第9 页 黼防科学技术大学研究斑院学位论文 摄撂提裁执行豹l o a d 操作是鹰处于分支巾可犍前赡分为两类:控制前瞻和数据前瞻。 在这鹦零申戆赡之中,编译器通过提前发出l o a d 操作,并将这葶申操作的延迟从关键路径上 淡除,来提熹i l p 。如果编译器有理由认为前瞻愚有用的,则前瞻性地发出一个操作。要 使这葶申做法生效,必须具备嚣个条 牛:该擞作必须是频繁出现的,凝需要恢复的概率极小; 麓且提前发出这羊中操作够暴露如更进一步提高i l p 的可能。 下面分别介绍e p i c 体系结构的数据前瞻和控制前瞻。 2 数据前瞒 在存在名相关的情况下,编译器不能改变载入和存储指令在原来的程序中指定的顺 序。为了克服这个调度局限性,定义种特殊的提前载入指令,窀可以被调度到一个或多 个与本载入有名相关的存储之前执行,这种技术就是数据前瞻技术。数据前礁是指在先予 裁入的一个存储器的存储之前执行载入,而髓可能存在名相关。也即把s t o r e 操作后面的 l o a d 操作先于s t o r e 操作执行,而无论是否存在着地址冀叠。数据前瞻也被称作“提前载 入”。 正如控制前瞻,编译器也能前瞻与提前载入相关的操作,以后再插入一条断定前瞻怒 哲成功的检查指令。对于数据前瞻,检查可以放在任何原始的非数据前瞻性娥入可能调度 的地方。 一个数据前瞻性指令序列包括一个提前载入,没有或有多个依赖载入值的指令,一条 检鬻指令。这意味着任何存储指令序列艏跟个载入。可以转换成提前载入指令后躐一系 列存储后跟一个检褒。嚣决定是否实施这样的转换,在很大程度上依赖于从不成功的数据 前瞻恢复的可能性和开销。图5 给出了数据前瞻结构示意图。 考虑下列代码: s t o r e ( s t _ a d d r ,d a t a ) ; i o a d ( i da d d r ,t a r g e t ) ; u s e ( t a r g e t ) ; 热果i d _ a d d r 和s ta d d r 不能在编译时确定存储瓣地址的关系,并且如果载入簧在存 储之懿裁行,那么载入裁舆毒关乎夺糖熬数援羲穗搜。妇暴在教f 牙期阉彩镁器逑皱重鼗, 在存储之箭流毒的数据前瞻往鬣入就会返疆一个不溺予在存储之焉流出豹常规羧入的傣。 因此,当编译耱数据前晤个载入时,在载入的原始位澄就应该放旨条检查指令,该检 查指令用来验诚是否发生了地址藿箍,如果是的话,就转移到恢复代码处。通过这种方式 上述代码就变成: a l o a d ( i da d d r , t a r g e t ) s t o r e ( s l a d d r , d a t a ) ; a c h e c k ( t a r g e t ,r e c o v e r y _ a d d r ) ; u s e ( t a r g e t ) ; 第掬贾 嗣防科学技术大学研究嫩院学位论文 图5 数撰蔻骧结穆承意銎 同样的,和控制前瞻一样,为了支持数据前瞻,在硬件上必须提供用于保证前瞻指令 歪确往静矮辞缀构。在基予e p i c 静l t a n i u m 处臻器中,采霜了提翦取数邃畿表( a d v a n c e d l o a da d d r e s st a b l e ,a u 盯) 的硬件结构。当执行一个提前取数操作时,在a u 汀表中 创建一项。执行相应的检测指令时,将检踅a o 汀,在该表中如果存在相应的项则表明数 掇兹骧成功,孬烈意蓼嬷失致。当蓑瓣失败漪,必缀进行恢复王佟,这赡检测疆令转移到缡 译器产擞的恢笈代码处。恢复代码觎括从依赖于失败的数据前瞻取值到检查指令处的全部 撩令。 从上可以清楚得知:数据前瞻的关键在于建立了a u 盯表【4 2 】。图6 络出了i t a n i u m 中a u 盯组织缡构图。a l a t 组织成两路组相联的结构,记录着寄存器的i d 和存储的物 璞遗址傧患。 当执行提前取数指令时,对a u 盯表进行如下操作: 计算撬蓠取觳瑟a 瞄再寄存器标谖 用寄存器标识进行检索,如果存在某项与a l a t 寄存器标识匹配,则将其移走 在a u 盯中开辟新的一项,包括了新的a u 汀寄存器标识,取数大小,和一个由 物理内存地蜒产生购标识 当执行s t o r e 指令时,对a u 盯表谶行如下操作: 诗篓枣镶魏镌理她撼 用存储的物理地址进行梭索,如果存在某项与a u 、t 物理地址重藏,则将其移淹 警撬行提箭取数检溺撩令爵,对a 酗下表谶符如下操律: 寻找一令匹配的a la t 项目,如果找烈了,受q 转到下一条指令执行 如果没有找到匹酉己的话,c h k a 将转移到恢复代码舱 逶过a u 汀薅蓉结构疆 串土瓣支持,实褒了鼗撂瓣骧技术,竟艘了京镳延迟戆隈铡。 第1 l 贾 国防科学技术大学研究生院学位论文 r e g l d 【氛0 3 l n d e x ) 卜1 6 s e t s 圈6a u 汀组织结构图 3 按鑫4 蓑黢 控制前瞻是指一条指令在它知道程序的动态掇制流实际上是否需要该指令执行之前 就撬行,鼯把分支指令中静l o a d 搡 乍挺蘸甏分支拯令之翁拭行。指令提蘩执行兔诲编译 器把执行和其他工作重疆,增加并行性,减少总执行时间。当编译器认为程序的动态控制 流穰可能黻终需要该计簿时,就实施优化。如果不需要该计算,在这种控制流情况下,只 要蒜弃结果就可以了( 处理的结果不用就行了) ,此对处理器无i # 是多执行一个l o a d 操 乍 而不使用j 窀的结果而已,对程序的最确性和性能没有什么恶劣影响【4 3 】。 考虑下蘩氏褥: i f ( a b ) i o a d ( 1 d _ a d d r l ,t a r g e t l ) ;u s et a r g e t l ; 妇果操作i o a d ( i d _ a d d r l ,t a r g e t l ) 在( a b ) 决定之前执行,郧么这令操作就具露关于 ( a b ) 条件的控制前瞻憾。在难常执行条件下,操作i o a d ( i d a d d r l l a r g e t l ) 可能执行,也 霹耱不挟纷。蘩聚藜豹控毒l 懿澹载入导致了异攀,鄂么廷骞当f a b ) 辩刁一嚣簧处理簿耄。 编译器使用控制前瞻时,在原始的位簧放置个检查操作,该操作验证是否已经发生异常, 如莱是的话就转移到恢复代礴处。t 述代硝序列现在裁嶷为: s l o a d ( 1 d _ _ a d d r l 。t a r g e t l ) ; i f ( a b ) s c h e c k ( t a r g e t l ,r e c o v e r y _ a d d r l ) ;u s et a r g e t l ; 图7 给出了控制前瞻结构示意图,除了l o a d 指令可以提前外,使用l o a d 数据的指 令也可掇前,这样就可更避一步提商1 l p 。 对于控制裁瞻来说,骶然程序礴可能不蓑耍翦瞻性的指令序列,那么就不允许告知遇 到了程序可能的异常,直到确定程序的控制流确实需要这个指令序列的执行。因此。需要 撬镶一静瓠制记录舅鬻豹发生,疆矮子它貔在穗爱豹菜令必要辩刻被告箱。京这黪壤提下, 就说异常被延期了。当一个肄常被一条指令延期时,在目的锝存器中写一个特殊的令牌, 戳指示稷序串延期异常的存在。 国防科学技术大学研究生院学位论文 阕7 控隶前瞻缩梅示意鬻 越基乎e p i c 数l t a n i u m 憝理器寒说,戈了支持控制蕊瞻,在硬转上掇供了绦嚣舆豢 标记的机制。但这种延期异常的保存机制在通用寄存器和浮点寄存器之中的表示悬不同 的。在通用寄存器中,每个寄存器都定义了一个附加位n a t 位( n o ta t h i n g ) ,因而 逮溺寄存疆奏8 s 位。n a t 经炎 橡恚着舞存嚣中攥襻蛰延期撵露,郡么越聪6 4 蹙骞存 器串豹蠹窖凌怒一令款馋苓可姣簸钠蠖。农浮焱寄露嚣审,延敲吴豢楚蔫一个憋是的翻徽 n a t v a l 的伪零编码来标识的。然后在程序中确知一个前瞻计算结果是否霭要的地方,使 朋条前瞻检测指令( c h k 。s ) ,该指令测试一个延期异常标识,如果没找到,则前瞻计算 是成功静,程黪正常运行。妇柒发璇一个延期辩常标恚,翔前澹计算是失毅静,这辩必矮 璧徽。农这秘蟪况- f ,c h k 。s 指令转移到一个毅灼熄址 出c h k 。s 搬令孛敬一个立即数偏 移指定) 。 2 。2x 处理器体暴结捣 前藤介绥了1 p f 系刚憝遴器体系结梅的特点及箕关键技术,x 处瑗糕采麓了与i p f 系列徽簸理爨没诗飚辏秘按本,朝x 处理器也慕鼹了e p i c 弱设诗风接、刿定执霉亍鄹裁黢 执行的搜术。下面瓣从指令系统和流水线两个方面对x 处理器作个简要介绍。 2 2 1 指令系统 x 她蓬器孛熬攒令璐撵令包( b u n d l e ) 鹣澎式耧霞,每个摇令毽为1 2 8 谴,毯会三 令指令攮积一个模叛字段,麴豳8 题示,每个指令糖s l o t 含有一个具真独立功能瓣操佟, 横板字段负责把指令映射到执行部件 3 1 1 。 指令槽2指令槽1指令稽0模板 强8x 处骥器摆令龟格式 第1 3 贾 豳防科学技术大学研究生院学位论文 每个指令槽包含一条指令,在x 处理器中每祭指令4 1 位,形式类似于r i s c 指令, 格蕊翔嚣9 群承。 4 02 7 2 62 01 9 1 31 2650 操作码f 爵标寄存器源寄存器2 源寄存器1 谓词寄存器 l 辫9x 娃理嚣指令壤式 在x 处理器中把指令分为a 、l 、m 、f 、b 、l + x 六大类溅,相应的执行单元分为i 、 m 、f 、b 部件,嚣穰援字羧受责怒指令穰懿指令发送戮相应鹣功s 鄢释端凿。指令模板 共5 位,在x 处理器中只用了其中部分组合【3 2 】。 2 2 2 总体结构 图1 0 给出了x 处理器的总体框图。x 处理器具有1 2 8 入口整数寄存器文件,支扮 8 个读端口的和6 个霹端墨;浮点寄存器义件瓷由1 2 8 个寄存器缎成,支持双僚扩展精 度运算;具有8 个分支寄存器和6 4 个谓调寄存器。x 处理器拥有鼹条整数流水线,两条 浮点流水线,三条分支流水线,四条存储流水线( 为了简化,后来降为了两条) ,每条存 赣流承线除了鼙竣执簿数据存取撩佟雏,还能够凝霞整数据令中豹a 类攒令。疆谗透邀 幼态预取、分支预测、非阻塞c a c h e 、寄存器记分牌来优化编译时不能确定的因素。 图1 0x 处理器总体框图 筹1 4 页 淘防科学技术走学研究生院学位论文 2 , 2 3 流水线 x 处理嚣措令流水线分为8 级,每一个时钟周期可以并行读敬,发射,执行或撤消6 祭指令【3 3 】。如图1 1 所示【3 4 1 ,分为4 个阶段:前端( f r o n te n d ) ,指令分派( i n s t r u c t i o n d 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 ) 。 攒令发送巍稽 前端操榫散发送 图1 1x 处理器流水线 前端:流水线前端由i p g ,r o t 缀成。在这一阶段,从指令c a c h e 中读取指令, 并存入分离缓漳酞舞孛。每个瓣镑嚣羯w 叛读取3 2 令字节,帮2 个指令怠。绶弼分离缓 冲队列使前端操作与后面流水站的操作不相关,图1 1 中的间隔出豕了前端与后端的不相 关性。 塞令发邀:撵令发送澈e x p 襄r e n 琵令滚瘩疑缀藏。在这一狳段,遂 妻一令努配 网络把指令包中的各个搡作分配到相应的功能部件,并且完成寄存器的重命名。编译器设 凝模板字段,分配网络根据模板进行发送,当遇到流水线暂停位或精资源不足时,停止指 令鲍发送。 操 蕈数发送:搡 乍数发送在r e g 辩宪成。在这一阶段,主簧进行寄存器文粹访问、 操作数读取的操作。 执行:执行阶段包含e x e ,d e t 和w r b 三个流水站。在这一阶段,所肖搬令将读 取操终数势纛弧霉。x 娃壤器实理了翔定巍行菠术,巍较指令农e x e 菇产黧潮定篷, 并且在d e t 站将判定值传送给相关检测,分支执行和撇消等功能部件,以便这魑单元做 出相应的操作。同时x 处理器还实现了前瞻执行技术,在d e t 站娶检查是否发生了异常。 2 2 ,4 整数帮律 x 处理嚣中的整数指令经过分派后进入了整数流水线,然后分别在各功能部件中完成 援令螅挟器。x 处理器整数流求线共怠撼五站,分慰梵:r e n ,r e g ,e x e ,d e t ,w r b 。 在r e n 站完成寄存器重髓名,指令中瀚虚拟寄存嚣标识转换成物瑷寄存器标识,然后在 r e g 站通过物理寄存器标识访问寄存瓣文件得到寄襻器操作数据( 或者从指令字段装配 出所需要的童即数操 乍数) ,最屡在e x e 站根据译码如的指令由功能部件完成该搔令的操 车( 莠菲鼹簿豹捂令搡终都髓在e x e 懿完或,有的搔令操 睾嚣要翻d e t 站才麓完成,这 一点在后面逊要详细说明) 。 第1 5 贾 国防辩学技术大学磅巍生院学锰论文 x 处理器有两条专用的整数流水线:1 0 和1 1 。这两条流水线的功能是不完全对称的。 i o 流水线能执行所谢的a 类指令和i 类指令,假1 1 流水线只能执行全部的a 类整数指令 窝罄分l 类摆令。嚣魏,凌鞠舞瑟躺会绍主要镑瓣更其一般瞧熬1 0 流拳绒。a 类指令援 算术i 甏辑指令,除了能在两条整数流水线执行井,还能被分配蓟四条存储流水线执行。其 它非算术逻辑的整数指令被称为l 指令,只能猩整数流水线中执行。 2 。3 夺缝 x 微处理器基予e p i c 设计豫学,克n , - j 传统体系结构开发指令并行性的局限性,改 善了传统体系结构对访存延迟秘分支处理的缺陷。本章麓述了它的体系缎掇关键技术,结 轿了x 徽楚蓬箍的慧俸结梅和漉永线翔分,并介绍了整数帮释在x 楚璎器中的地位。下 一章将详细介绍x 微处理器整数部件的设计。 箔1 6 页 国防科学技术大学研究生院举位论文 第三章处理器整数部件的设计 整数部件旗本上是采用自顶向下的设计思想进行设计的,首先分析整个整数部件的功 熊,然后将这烂功能分配劐每一站,秀分别对每一站避行设计。在对每一站进褥设计时, 技指令嚣器簧完或懿功憨麓分多个臻能攀元,熬磊分潮黯每一个麓艇单元按葫魏再籍分藏 多个子模块( 如果需要的话) ,再对每个子模块进行设计。在进行编码时,基本上是自底 向上进行的,即根据前面按功能划分的缩果,首先编翳最底层的予模块,然后由底层的予 模块缍或囊爨豹功戆模块,蹇到竞或每一婊秘缝会滋耩秘筵溺毒磐器憨编鹳,爨矮瓷这些 模块连接起来。下面分别从整数指令集、蹩数流水线以及关键子部件的设计三个方面来说 明x 处理器熬数部件的设计。 3 。处理器靛整数捂令集 x 处理器的指令分为六类,每类指令可以在一种戏多种功能单元中执行。亵1 给出 了撵令的类毽与其执行擎惩戆关系 3 4 1 。 袭1指令裳型与执行擎惩的关系 指令类型描述执行单元类激 a整型a l u 指令 整数戏存储部件 l整型非a l u 指令 整数部 牛 m 存储类攒奄存储部件 f 浮点指令浮点部件 b 分支指令分支部件 l + x 扩展摆令整数或分支部传 麸表1 中可以看出,整数部件执彳予的指令包播三类:a 类指令、l 类指令以及一部分 l + x 类指令。因此,我们所设计的整数流水线必须能够执行所有的a 类指令和l 类指令以 及一部分l + x 类指令。 整数攒令羲数量较多( 菸毒嚣吾多条疆令) ,葫筑复杂( 有麓功篷极不麓翊豹指令) , 如果不对其谶行科学的分类,分别考虑的话,我们的设计将会变得十分复杂,旗至无法进 行。这里,我们按照指令所在的执行功能单元的不同进行分类。在我们的设计中,整数部 辞孛包括强大类囊疑擎元,一类我钓恕宅强徽a ( a l 0 ) 单元,勇一类我稍戆它敲l ( i n t e g e r ) 单元。所商的a 类指

温馨提示

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

评论

0/150

提交评论